Language Selection

English French German Italian Portuguese Spanish

Development

Programming: Perl, Python, CRAN

Filed under
Development
  • Garbage collection in Perl 6

    In the first article in this series on migrating Perl 5 code to Perl 6, we looked into some of the issues you might encounter when porting your code. In this second article, we’ll get into how garbage collection differs in Perl 6.

    There is no timely destruction of objects in Perl 6. This revelation usually comes as quite a shock to people used to the semantics of object destruction in Perl 5. But worry not, there are other ways in Perl 6 to get the same behavior, albeit requiring a little more thought by the developer. Let’s first examine a little background on the situation in Perl 5.

  • An introduction to the Django Python web app framework

    In the first three articles of this four-part series comparing different Python web frameworks, we covered the Pyramid, Flask, and Tornado web frameworks. We've built the same app three times and have finally made our way to Django. Django is, by and large, the major web framework for Python developers these days and it's not too hard to see why. It excels in hiding a lot of the configuration logic and letting you focus on being able to build big, quickly.

    That said, when it comes to small projects, like our To-Do List app, Django can be a bit like bringing a firehose to a water gun fight. Let's see how it all comes together.

  • Dirk Eddelbuettel: RcppArmadillo 0.9.100.5.0

    A new RcppArmadillo release 0.9.100.5.0, based on the new Armadillo release 9.100.5 from earlier today, is now on CRAN and in Debian.

    It once again follows our (and Conrad's) bi-monthly release schedule. Conrad started with a new 9.100.* series a few days ago. I ran reverse-depends checks and found an issue which he promptly addressed; CRAN found another which he also very promptly addressed. It remains a true pleasure to work with such experienced professionals as Conrad (with whom I finally had a beer around the recent useR! in his home town) and of course the CRAN team whose superb package repository truly is the bedrock of the R community.

Programming: Go, Agile, and Literature

Filed under
Development
  • File Indexing In Golang

    I have been working on a pet project to write a File Indexer, which is a utility that helps me to search a directory for a given word or phrase.

    The motivation behind to build this utility was so that we could search the chat log files for dgplug. We have a lot of online classes and guest session and at time we just remember the name or a phrase used in the class, backtracking the files using these are not possible as of now. I thought I will give stab at this problem and since I am trying to learn golang I implemented my solution in it. I implemented this solution over a span of two weeks where I spent time to upskill on certain aspects and also to come up with a clean solution.

  • How Agile helps non-technical teams get things done

    What are the best ways for governments to improve effectiveness and efficiency? At San Jose City Hall, we’re getting traction with an unconventional approach: agile for non-technical teams. Public servants who do everything from emergency management to parks programs are finding that Agile methods help them with that most basic of challenges: Getting things done amid frequent interruptions and evolving priorities.

    Last September, I proclaimed, "Scrum is the best thing that’s happened to our government team." Our innovation team of five had discovered that planning and delivering work in small increments enables us to stay focused, aligned, and continuously improving. We didn’t yet know if our experience would be replicable by other teams in our organization. We offered Agile training for 10 colleagues to see what would happen.

    Nine months later, 12 teams and more than 100 staff members throughout our organization are using Agile methods to organize their work. Notably, the spread of Agile among city teams has been largely organic, not driven by top-down mandates.

  • Top Linux developers' recommended programming books

    Without question, Linux was created by brilliant programmers who employed good computer science knowledge. Let the Linux programmers whose names you know share the books that got them started and the technology references they recommend for today's developers. How many of them have you read?

    [...]

    Linux was developed in the 1990s, as were other fundamental open source applications. As a result, the tools and languages the developers used reflected the times, which meant a lot of C programming language. While C is no longer as popular, for many established developers it was their first serious language, which is reflected in their choice of influential books.

    “You shouldn't start programming with the languages I started with or the way I did,” says Torvalds. He started with BASIC, moved on to machine code (“not even assembly language, actual ‘just numbers’ machine code,” he explains), then assembly language and C.

    “None of those languages are what anybody should begin with anymore,” Torvalds says. “Some of them make no sense at all today (BASIC and machine code). And while C is still a major language, I don't think you should begin with it.”

    It's not that he dislikes C. After all, Linux is written in GNU C. "I still think C is a great language with a pretty simple syntax and is very good for many things,” he says. But the effort to get started with it is much too high for it to be a good beginner language by today's standards. “I suspect you'd just get frustrated. Going from your first ‘Hello World’ program to something you might actually use is just too big of a step."

Programming Leftovers

Filed under
Development
  • [Older] Julia 1.0 release Opens the Doors for a Connected World

    Today Julia Computing announced the Julia 1.0 programming language release, “the most important Julia milestone since Julia was introduced in February 2012.” As the first complete, reliable, stable and forward-compatible Julia release, version 1.0 is the fastest, simplest and most productive open-source programming language for scientific, numeric and mathematical computing.

  • This Week in Rust 247
  • BARR-C Aims to Make Us Better Programmers

    Look up “panacea” and you’ll find a bunch of C programming tools. Everyone and his dog has ideas about how to create better, more reliable C code. Use an ISO-certified compiler. Follow MISRA C guidelines. Write the comments first. Agile Programming. Energy crystals. The late-night remedies never end.

    Or, you could learn from the master. Michael Barr does embedded programming. He’s got a Masters in electrical engineering; was an adjunct professor of EE/CS; was Editor-in-Chief of Embedded Systems Programming magazine; founded consulting company Netrino to teach people how to write better code; then founded Barr Group to do it again. The man knows a few things about writing embedded software, mostly by watching his clients and students doing it badly. There’s no substitute for experience, and this guy has collected decades worth of it.  

    So it’s no surprise that he’s come up with his own little black book of programming pointers. These are the rules, guidelines, and suggestions gleaned from years of reviewing other peoples’ bad code and then fixing it. Best of all, a PDF download of the book is free. If you’re a traditionalist, you can buy the paperback version from Amazon.

Programming: Rust, Top Languages and Studying Developers

Filed under
Development
  • [Rust] Diagnosing A Weak Memory Ordering Bug

    For the first time in my life I tracked a real bug's root cause to incorrect usage of weak memory orderings. Until now weak memory bugs were something I knew about but had subconciously felt were only relevant to wizards coding on big iron, partly because until recently I've spent most of my career using desktop x86 machines.

    Under heavy load a Pernosco service would assert in Rust's std::thread::Thread::unpark() with the error "inconsistent state in unpark". Inspecting the code led to the disturbing conclusion that the only way to trigger this assertion was memory corruption; the value of self.inner.state should always be between 0 and 2 inclusive, and if so then we shouldn't be able to reach the panic. The problem was nondeterministic but I was able to extract a test workload that reproduced the bug every few minutes. I tried recording it in rr chaos mode but was unable to reproduce it there (which is not surprising in hindsight since rr imposes sequential consistency).

  • IEEE Survey Ranks Programming Languages

    It's been said that programming languages are akin to religion. Engineers and developers will go out of their way to defend the use of their favorite language. (Perhaps it's more the pain of learning a new language that keeps us using the old). Surely you've seen many surveys on programming language preferences. As with all surveys, the results depend on who was asked.

  • Programming Languages May Finally Be Reaching a Status Quo

    The analyst firm RedMonk has tracked programmers' interest in various programming languages since 2011. During that time, Swift and Kotlin grew faster than any other language the firm tracked, including Google's Go and Mozilla's Rust. Earlier this year Swift, which Apple released in 2014, managed to tie with Apple's much more established Objective-C language for tenth place in RedMonk's rankings.

  • Machine learning algorithms can identify anonymous programmers

    Rachel Greenstadt, associate professor of computer science at Drexel University, and Aylin Caliskan, an assistant professor at George Washington University, have found that code can be a form of stylistic expression, a bit like writing, reported Wired.

    As such, the researchers developed a machine learning algorithm to recognise the coding structure used by individual programmers based on samples of their work and spot their traits in compiled binaries or raw source code.

Programming: OSM, WebGL and New Research

Filed under
Development
  • Vector Tile Support for OpenStreetMap’s iD Editor

    Protocolbuffer Binary Format(.pbf) and Mapbox Vector Tiles(.mvt) are two popular formats for sharing map data. Prior to this GSoC project, the iD editor in OSM supported GPX data. GPX is an XML schema designed as a common GPS data format for software applications. It can be used to describe waypoints, tracks, and routes.

  • Beautiful maps in minutes: Meet Kepler.gl

    Shan He may hold Silicon Valley's most meta job.

    "When I started out, I was building maps. Then I moved on to build tools to build maps, and now I'm doing tools to do tools that build maps."

    He, who dumped brick-and-mortar architecture studies for computational design, joined Uber as founding member of the data visualization team in 2014. She went on to construct Kepler.gl, a tool that helps make "beautiful maps in like 10 seconds"—without any coding. Built using the deck.gl WebGL data visualization framework, the ride-sharing company recently open sourced the geospatial toolbox that can be used with QGIS, Carto, and Mapbox Studio. Given its origins, it's easy to see why Kepler excels at large-scale visualizations centering on geolocations.

  • Machine Learning Can Uncover Programmers’ Identity

    Just like a painter or author, programmers tend to have their unique style in which they code. As they line up thousands of lines of code, they leave behind a sort of personal “signature” in it.

Programming/Development: Git-cinnabar Release and Programming Language Rankings

Filed under
Development
  • Announcing git-cinnabar 0.5.0

    Git-cinnabar is a git remote helper to interact with mercurial repositories. It allows to clone, pull and push from/to mercurial remote repositories, using git.

  • The RedMonk Programming Language Rankings: June 2018

    They’re a month overdue, and from the volume of inbound questions about when the language rankings would drop, it’s been noticed. As always, these are a continuation of the work originally performed by Drew Conway and John Myles White late in 2010. While the means of collection has changed, the basic process remains the same: we extract language rankings from GitHub and Stack Overflow, and combine them for a ranking that attempts to reflect both code (GitHub) and discussion (Stack Overflow) traction. The idea is not to offer a statistically valid representation of current usage, but rather to correlate language discussion and usage in an effort to extract insights into potential future adoption trends.

Programming/Development: Julia 0.7 and Rust

Filed under
Development
  • Julia 0.7 arrives but let's call it 1.0: Data science code language hits milestone on birthday

    Julia, the open-source programming language with a taste for science, turned 1.0 on Thursday, six years after its public debut in 2012. The occasion was presented on YouTube, live from JuliaCon 2018 in London.

    Created by Jeff Bezanson, Stefan Karpinski, Viral Shah, and Alan Edelman, the language was designed to excel at data science, machine learning, and scientific computing.

    That's a niche – a rather substantial one these days – also served by Python and R, among other languages. However, the Julia aspires to be better, undaunted by being ranked 50 on Tiobe's programming language popularity index for August 2018. For what it's worth, Python presently sits at number 4 while R comes in at 18.

  • Julia 1.0 Programming Language Released

    Julia, the LLVM-based, speed-focused, dynamic and optional typing, full-featured programming language focused on numerical computing has reached the version 1.0 milestone.

    The Julia language has been in the works for nearly a decade while now the 1.0 milestone has been reached. Julia remains committed to its key focus areas for the language. With Julia 1.0 the developers are committing to language API stability.

  • Rust's Low-Level Graphics Abstraction Layer Is Showing A Lot Of Potential

    The Rust programming language's "GFX-RS" initiative that is backed by Mozilla continues working on exposing a universal "Vulkan-like" graphics API within Rust that in turn would have back-ends for Vulkan, OpenGL, Metal, and Direct3D 11/12 in order to reach all major platforms. Early benchmark results are quite promising for GFX-RS.

Julia 1.0

Filed under
Development

The much anticipated 1.0 release of Julia is the culmination of nearly a decade of work to build a language for greedy programmers. JuliaCon2018 celebrated the event with a reception where the community officially set the version to 1.0.0 together.

[...]

Try Julia by downloading version 1.0 now. If you’re upgrading code from Julia 0.6 or earlier, we encourage you to first use the transitional 0.7 release, which includes deprecation warnings to help guide you through the upgrade process. Once your code is warning-free, you can change to 1.0 without any functional changes. The registered packages are in the midst of taking advantage of this stepping stone and releasing 1.0-compatible updates.

The single most significant new feature in Julia 1.0, of course, is a commitment to language API stability: code you write for Julia 1.0 will continue to work in Julia 1.1, 1.2, etc. The language is “fully baked.” The core language devs and community alike can focus on packages, tools, and new features built upon this solid foundation.

Read more

Also: Julia 1.0 Released, 2018 State of Rust Survey, Samsung Galaxy Note 9 Launches Today, Margaret Dawson of Red Hat Named Business Role Model of the Year in Women in IT Awards and Creative Commons Awarded $800,000 from Arcadia

Programming: State of Rust Survey and Python Development

Filed under
Development
  • Launching the 2018 State of Rust Survey

    It’s that time again! Time for us to take a look at how the Rust project is doing, and what we should plan for the future. The Rust Community Team is pleased to announce our 2018 State of Rust Survey! Whether or not you use Rust today, we want to know your opinions. Your responses will help the project understand its strengths and weaknesses and establish development priorities for the future.

    Completing this survey should take about 10 to 15 minutes and is anonymous unless you choose to give us your contact information. We will be accepting submissions until September 8th, and we will write up our findings a month or so afterwards to blog.rust-lang.org. You can see last year’s results here.

  • Perform robust unit tests with PyHamcrest

    At the base of the testing pyramid are unit tests. Unit tests test one unit of code at a time—usually one function or method.

    Often, a single unit test is designed to test one particular flow through a function, or a specific branch choice. This enables easy mapping of a unit test that fails and the bug that made it fail.

    Ideally, unit tests use few or no external resources, isolating them and making them faster.

  • Adding None-aware operators to Python?

    A PEP that has been around for a while, without being either accepted or rejected, was reintroduced recently on the python-ideas mailing list. PEP 505 ("None-aware operators") would provide some syntactic sugar, in the form of new operators, to handle cases where variables might be the special None value. It is a feature that other languages support, but has generally raised concerns about being "un-Pythonic" over the years. At this point, though, the Python project still needs to figure out how it will be governed—and how PEPs can be accepted or rejected.

  • The Grumpy Editor's Python 3 experience

    LWN has been running articles for years to the effect that the end of Python 2 is nigh and that code should be ported to Python 3 immediately. So, naturally, one might expect that our own site code, written in Python, had been forward-ported long ago. Strangely enough, that didn't actually happen. It has mostly happened now, though. In the process of doing this work, your editor has noticed a few things that don't necessarily appear in the numerous porting guides circulating on the net.

    One often-heard excuse for delaying this work is that one or more dependencies have not yet been ported to Python 3. For almost everybody, that excuse ran out of steam some time ago; if a module has not been forward-ported by now, it probably never will be and other plans need to be made. In our case, the final dependency was the venerable Quixote web framework which, due to the much appreciated work of Neil Schemenauer, was forward-ported at the end of 2017. Quixote never really took the world by storm, but it makes the task of creating a code-backed site easy; we would have been sad to have to leave it behind.

    Much of the anxiety around moving to Python 3 is focused on how that language handles strings. The ability to work with Unicode was kind of bolted onto Python 2, but it was designed into Python 3 from the beginning. The result is a strict separation between the string type (str), which holds text as Unicode code points, and bytes, which contains arbitrary data — including text in a specific encoding. Python 2 made it easy to be lazy and ignore that distinction much of the time; Python 3 requires a constant awareness of which kind of data is being dealt with.

Programming: Licensing FUD, NASA, Rust and Curl

Filed under
Development
  • Dual Licensing for Open Source Components: Yeah or Meh? [Ed: Microsoft partner speaks out against GPL or spreads fear, as usual]
  • Flexera Adds Big Automation Boost to Open Source Software Scanning, Compliance and Protection
  • NASA wants you to build your own Mars rover

    It's just not practical for a private citizen to own an actual car-sized NASA Mars rover, as cool as that would be. But with an assist from NASA's Jet Propulsion Lab, you can build a mini version to explore your own backyard.

    The JPL Open Source Rover Project tells you everything you need to know to build a scaled-down rover. 

    While the actual Curiosity rover cost into the billions in US dollars, NASA estimates you can makes its mini-me for about $2,500 (£1,900, AU$3,400) using off-the-shelf parts. JPL published the detailed open-source design on GitHub.

  • Explore New Worlds With JPL's Open Source Rover

    NASA Jet Propulsion Laboratory’s Mars rovers have a special place in my heart. I loved seeing pictures of Sojourner nuzzling up to rocks, and I still wonder whether it managed to drive around the Pathfinder lander after contact was lost. Spirit going silent was heartbreaking, and Opportunity continues to inspire so far beyond its expected lifetime, even as a dust storm threatens to starve it to death. And I particularly remember thinking how insane it was that Curiosity was going to drop onto the surface from a hovering robotic sky crane (!), and then being entirely overwhelmed to watch it happen flawlessly from the media room at JPL.

  • This Week in Rust 246
  • Daniel Stenberg: much faster curl uploads on Windows with a single tiny commit

    These days, operating system kernels provide TCP/IP stacks that can do really fast network transfers. It's not even unusual for ordinary people to have gigabit connections at home and of course we want our applications to be able take advantage of them.

    I don't think many readers here will be surprised when I say that fulfilling this desire turns out much easier said than done in the Windows world.

Syndicate content

More in Tux Machines

Kate/KTextEditor Picks Up Many Improvements To Enhance KDE Text Editing

Even with KDE's annual Akademy conference happening this past week in Vienna, KDE development has been going strong especially on the usability front. The Kate text editor and the KTextEditor component within KDE Frameworks 5 have been the largest benefactors of recent improvements. This KDE text editing code now has support for disabling syntax highlighting entirely if preferred. When using syntax highlighting, there have been many KTextEditor enhancements to improve the experience as well as improvements to the highlighting for a variety of languages from JavaScript to YAML to AppArmor files. Read more

KStars v2.9.8 released

KStars 2.9.8 is released for Windows, MacOS, and Linux. It is a hotfix release that contains bug fixes and stability improvements over the last release. Read more Also: KDE Itinerary - How did we get here?

today's leftovers and howtos

  • Project curl governance
    Over time, we've slowly been adjusting the curl project and its documentation so that we might at some point actually qualify to the CII open source Best Practices at silver level. We qualified at the base level a while ago as one of the first projects which did that. Recently, one of those issues we fixed was documenting the governance of the curl project. How exactly the curl project is run, what the key roles are and how decisions are made. That document is now in our git repo.
  • How to install OwnCloud 10 on CentOS 7 and RHEL 7
  • How to Get Google Camera Port for Asus ZenFone Max Pro M1
  • How to check your CentOS Version
  • 5 Practical Examples of chgrp command in Linux
  • Trinity Desktop R14.0.5 Brings Modern Compiler Support and Security Fixes
    Trinity Desktop, the Linux desktop environment which is forked from KDE 3, has just released an update bringing Trinity Desktop to version R14.0.5. Because Trinity Desktop is a “traditional desktop” based on KDE 3 and focuses on function rather than a lot of special effects, its benefits are typically things like increased battery life on laptops, and just overall efficiency for the user.
  • This week in Usability & Productivity, part 32
    I’m back from Akademy, and I can’t wait to share some of the cool stuff that happened there over the past week. I’m going to post the video of my talk as soon as it’s up. But first, I know what you’re all really waiting for: this week’s Usability & Productivity update. Though we were all quite busy, somehow everyone managed to accomplish an enormous amount of work, too!
  • Reminder: Shotwell Facebook publishing no longer working
    As announced earlier, since August 1st, 2018 Shotwell cannot publish to Facebook any more. The API that Shotwell used for that was removed and it is currently not clear to me how developers that do not use Android, iOS or Facebook’s web SDKs should provide similar functionality.
  • Gentoo on Integricloud
    Integricloud gave me access to their infrastructure to track some issues on ppc64 and ppc64le. Since some of the issues are related to the compilers, I obviously installed Gentoo on it and in the process I started to fix some issues with catalyst to get a working install media, but that’s for another blogpost. Today I’m just giving a walk-through on how to get a ppc64le (and ppc64 soon) VM up and running.
  • Industrial Mini-ITX board pumps up with Coffee Lake
    Commell’s “LV-67X” Mini-ITX board runs on 8th Gen “Coffee Lake” processors, with up to 32GB DDR4, 3x SATA, triple 4K displays, USB 3.1, and PCIe x16 and mini-PCIe expansion. The LV-67X, which shares some of the layout and feature set of its Intel Apollo Lake based LV-67U board, is the first industrial Mini-ITX board we’ve seen with Intel’s 8th Gen Coffee Lake CPUs. (Going forward, we’ll likely use the caffeinated nickname rather than “8th Gen” because Intel also applies the 8th Gen tag to the transitional and similarly 14nm Kaby Lake-G chips as well as the new, 10nm Cannon Lake processors.)
  • Unofficial OpenGApps for Android Pie 9.0 Released for ARM and ARM64 Platforms

Red Hat and Fedora News