Language Selection

English French German Italian Portuguese Spanish


Mozilla: Firefox Extensions for New Year’s Resolutions and Rust Programming

Filed under
  • Firefox Extensions for New Year’s Resolutions

    It’s that time of year again where we endeavor to improve ourselves, to wash away poor habits of the past and improve our lot in life. Yet most of us fall short of our yearly resolution goals. Why? Maybe we just haven’t found the right Firefox extensions to assist our annual renewals…

  • This Week in Rust 214

    Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safety, concurrency, and speed. This is a weekly summary of its progress and community. Want something mentioned? Tweet us at @ThisWeekInRust or send us a pull request. Want to get involved? We love contributions.

  • Zeeshan Ali: My journey to Rust

    As most folks who know me already know, I've been in love with Rust language for a few years now and in the last year I've been actively coding in Rust. I wanted to document my journey to how I came to love this programming language, in hope that it will help people to see the value Rust brings to the world of software but if not, it would be nice to have my reason documented for my own sake.

Programming: Unit Testing, podlators, FRustrations

Filed under
  • Unit Testing: Time-Consuming but Product-Saving

    Long-time Node.js advocate Ashley Williams kicked off her recent Twitter thread in the same sort of stream of consciousness that many devs go through when they are coming to terms with the truth: Unit testing is annoying but necessary.

    Unit testing is an essential part of developing software applications. Also called component testing, it is all about isolating one unit of code to verify that it’s working as it should be. And unlike many types of testing, this is usually done by the developer of the code itself.

    A unit test differs from an integration test because an integration test, as its name suggests, focuses on the interaction between these units, modules, or components, as a unit test focus on one specific piece. The unit test also mocks behavior while the integration test runs on the actual code or in production.

  • podlators 4.10

    podlators is the source for Pod::Man and Pod::Text, which convert POD documentation to man pages and text documents.

    This version includes a fairly significant formatting change for Pod::Man: man page links and function names (including auto-discovered function names) are now bold instead of italic.

  • FRustrations 1

    I’ve been hacking about learing Rust for a bit more than a year now, building a Hawk crate and hacking on a distributed lock service named Rubbish (which will never amount to anything but gives me a purpose).

    In the process, I’ve run into some limits of the language. I’m going to describe some of those in a series of posts starting with this one.

    One of the general themes I’ve noticed is lots of things work great in demos, where everything is in a single function (thus allowing lots of type inference) and most variables are 'static. Try to elaborate these demos out into a working application, and the borrow checker immediately blocks your path.

    Today’s frustration is a good example.

Programming: Game Development, Fuzzing, PHP, Weblate, LLVM 5.0.1 Release

Filed under
  • 10 keys to quick game development

    In early October, the inaugural Open Jam sponsored by drew 45 entries from teams located around the world. The teams had just three days to create a game using open source software to enter into the competition, and three teams came out on top.

    We hosted our own Open Jam event at our university for anyone who wanted to participate. We reserved a computer lab for the weekend and taught people how to use open source software—Godot for the game engine, LMMS for music creation, GIMP for 2D art, and Blender for 3D art—to create games and game art assets. Three games were submitted from our event: Loathsome, Lost Artist, and Paint Rider (which I created).

  • Fuzzing: An Old Testing Technique Comes of Age

    Both proprietary and open source development tends to have more developers than testers. As a result, automated testing has become increasingly common. In the last year, fuzzing — testing with dummy or random data — has become particularly widespread, and its popularity seems likely to continue.

    Fuzzing’s name is newer than the concept itself. Computer scientist Gerald Weinberg recalls that when he worked at IBM and Mercury Project in the late 1950s “it was our standard practice to test programs by inputting decks of punch cards taken from the trash. We also used decks of random number punch cards. We weren’t networked in those days, so we weren’t much worried about security, but our random/trash decks often turned up undesirable behavior.

  • Safely testing my students’ PHP graded labs with docker containers

    Of course one may give a grade only by reading the students’ code and not testing, but that would be bad taste. And yes, there are probably ways to escape the container safety net in PHP… but I sould maybe not tempt the smartest students of mine in continuing on this path

  • New projects on Hosted Weblate
  • LLVM 5.0.1 Release

    LLVM 5.0.1 is now available! Download it now, or read the release notes.

    This release contains bug-fixes for the LLVM 5.0.0 release. This release is API and ABI compatible with 5.0.0.

  • LLVM 5.0.1 Released

    LLVM 5.0.1 is now available as the first and likely only point release to LLVM 5.0.

    LLVM 5.0.1 incorporates bug fixes that were requested for back-porting to LLVM 5.0 rather than waiting for LLVM 6.0. LLVM 5.0.1 retains API/ABI compatibility with LLVM 5.0.0.

Programming/Development: Journal of Open Source Software (JOSS), Qt, Julia vs. Python, and GitHub Stats

Filed under
  • Who gets the credit?

    The primary goal of the Journal of Open Source Software (JOSS) is to give researchers who develop, contribute to, and maintain open source software a means to get citable credit for their work within today’s research ecosystem. In short, JOSS is a developer-friendly journal for publishing research software packages. It’s also an online academic journal (ISSN 2475-9066) with a formal peer review process that is designed to improve the quality of the software submitted by making sure it meets minimum standards and includes standard identifiers for content on digital networks (Digital Object Identifiers, or DOIs) for all accepted papers.

  • nanoQuill

    Qi, KDAB and Qt have now taken their collaboration one step further by introducing nanoQuill, otherwise known as “The Coloring Book of Life,” which is a crowdsourced coloring book and mobile app that gives anybody the opportunity to color cancer images to help annotate organelles inside those electron microscopy images. Qi is then able to take the crowdsourced annotations to measure a cell’s detail, render 3D images from the colored 2D images, and ultimately train new deep learning algorithms, all in the name of advancing cancer research.

  • An Unexpected C++ Journey

    Some of you may know that KDAB employees enjoy flexibility on working hours as well as location, and some choose to work from home, with the opportunity to share childcare, do part-time study or simply enjoy an out-of-the-way location. All that’s required is a decent bandwidth for KDAB work.

  • Julia vs. Python: Julia language rises for data science

    Of the many use cases Python covers, data analytics has become perhaps the biggest and most significant. The Python ecosystem is loaded with libraries, tools, and applications that make the work of scientific computing and data analysis fast and convenient.

    But for the developers behind the Julia language — aimed specifically at “scientific computing, machine learning, data mining, large-scale linear algebra, distributed and parallel computing”—Python isn’t fast or convenient enough. It’s a trade-off, good for some parts of this work but terrible for others.

  • Who contributed the most to open source in 2017? Let’s analyze GitHub’s data and find out.

    Note that analyzing GitHub doesn’t include top communities like Android, Chromium, GNU, Mozilla, nor the the Apache or Eclipse Foundation, and other projects that choose to run most of their activities outside of GitHub.

Programming/Development: Pipenv, Builder 3.27 Progress, and Compiler

Filed under
  • Pipenv – The Officially Recommended Python Packaging Tool

    Yesterday, we published a beginners guide to manage Python packages using PIP. In that guide, we discussed how to install pip, and how to install, update, uninstall Python packages using pip. We also discussed the importance of virtual environments and how to create a virtual environment using venv and virtualvnv tools. However managing multiple environments using venv and virtualenv tools is tedious task. No worries! There is an another python package manager named pipenv, which is the new recommended Python Packaging tool by It can be used to easily install and manage python dependencies without having to create virtual environments. Pipenv automatically creates and manages a virtualenv for your projects. It also adds/removes packages from your Pipfile as you install/uninstall packages.

  • An odd test failure
  • Builder 3.27 Progress (Again)

    As normal, I’ve been busy since our last update. Here are a few highlights of features in addition to all those bug fixes.

  • Builder IDE Becoming More Capable In GNOME 3.28

    The GNOME Builder development environment has already been working on many new features for next year's GNOME 3.28 desktop environment while even more features are now on track.

    Work already being addressed is improved Flatpak support, pseudo-terminal support in the build pipeline, improved search, better CMake and Meson build system integration, support for unit tests, and more.

    Lead GNOME Builder IDE developer Christian Hergert has written another status update on his latest improvements for the project.

  • Compiler to convert Go language to JavaScript

    Developers wanting to use the Google Go language, aka Golang, for web programming can try the beta open source Joy compiler, which promises—when it reaches production release—to turn Go code into JavaScript code.

    With Joy, idiomatic Go code will be translated into JavaScript that will work in every browser (as ECMAScript 3 code, with ECMAScript 5 code on the roadmap as well), the open source project claims. It also means JavaScript developers will be able to use Go’s type system and tools. Joy project creator Matthew Mueller says the Go-to-JavaScript translation work is about 90 percent complete.

Programming/Development: Most In-Demand Programming Languages and More

Filed under
  • Top 7 Most In-Demand Programming Languages Of 2018: Coding Dojo

    Most of the fields in the tech industry demand a regular learning from you as they are dynamic in nature. You need to be up-to-date with the latest trends and make sure that your skillset matches the needs of your target industry.

    For developers, this change becomes even more necessary. For example, today’s mobile app developers need to eventually make a shift from Java and Objective-C to Kotlin and Swift, respectively. This growing adoption and demand is reflected clearly in different lists of the popular programming languages.


    Coding Dojo analyzed the data from job listing website This job posting data revolved around twenty-five programming languages, frameworks, and stacks. It’s worthing noting that some most loved programming languages like Ruby and Swift didn’t make the cut as their demand was lower as compared to other biggies. The other growing languages that didn’t make the cut were R and Rust.

  • The proof is in the pudding

    I wrote these when I woke up one night and had trouble getting back to sleep, and spent a while in a very philosophical mood thinking about life, success, and productivity as a programmer.

  • littler 0.3.3

    The fourth release of littler as a CRAN package is now available, following in the now more than ten-year history as a package started by Jeff in 2006, and joined by me a few weeks later.

    littler is the first command-line interface for R and predates Rscript. In my very biased eyes better as it allows for piping as well shebang scripting via #!, uses command-line arguments more consistently and still starts faster. Last but not least it is also less silly than Rscript and always loads the methods package avoiding those bizarro bugs between code running in R itself and a scripting front-end.

Tryton and Python Deprecation Warnings

Filed under
  • Trying Tryton

    The quest to find a free-software replacement for the QuickBooks accounting tool continues. In this episode, your editor does his best to put Tryton through its paces. Running Tryton proved to be a trying experience, though; this would not appear to be the accounting tool we are searching for.
    Tryton is a Python 3 application distributed under the GPLv3 license. Its home page mentions that it is based on PostgreSQL, but there is support for MySQL and SQLite as well. Tryton, it is said, is "a three-tier high-level general purpose application platform" that is "the core base of a complete business solution providing modularity, scalability and security". The "core base" part of that claim is relevant: Tryton may well be a solid base for the creation of a small-business accounting system, but it is not, out of the box, such a system itself.

  • Who should see Python deprecation warnings?

    As all Python developers discover sooner or later, Python is a rapidly evolving language whose community occasionally makes changes that can break existing programs. The switch to Python 3 is the most prominent example, but minor releases can include significant changes as well. The CPython interpreter can emit warnings for upcoming incompatible changes, giving developers time to prepare their code, but those warnings are suppressed and invisible by default. Work is afoot to make them visible, but doing so is not as straightforward as it might seem.
    In early November, one sub-thread of a big discussion on preparing for the Python 3.7 release focused on the await and async identifiers. They will become keywords in 3.7, meaning that any code using those names for any other purpose will break. Nick Coghlan observed that Python 3.6 does not warn about the use of those names, calling it "a fairly major oversight/bug". In truth, though, Python 3.6 does emit warnings in that case — but users rarely see them.

Programming/Development: GAPID 1.0 and Atom 1.23

Filed under
  • Diagnose and understand your app's GPU behavior with GAPID
  • GAPID 1.0 Released As Google's Cross-Platform Vulkan Debugger

    Back in March we wrote about GAPID as a new Google-developed Vulkan debugger in its early stages. Fast forward to today, GAPID 1.0 has been released for debugging Vulkan apps/games on Linux/Windows/Android as well as OpenGL ES on Android.

    GAPID is short for the Graphics API Debugger and allows for analyzing rendering and performance issues with ease using its GUI interface. GAPID also allows for easily experimenting with code changes to see their rendering impact and allows for offline debugging. GAPID has its own format and capturetrace utility for capturing traces of Vulkan (or GLES on Android too) programs for replaying later on with GAPID.

  • Hackable Text Editor Atom 1.23 Adds Better Compatibility for External Git Tools

    GitHub released Atom 1.23, the monthly update of the open-source and cross-platform hackable text editor application loved by numerous developers all over the world.

    Including a month's worth of enhancements, Atom 1.23 comes with the ability for packages to register URI handler functions, which can be invoked whenever the user visits a URI that starts with "atom://package-name/," and a new option to hide certain commands in the command palette when registering them via "atom.commands.add."

    Atom 1.23 also improves the compatibility with external Git tools, as well as the performance of the editor by modifying the behavior of several APIs to no longer make callbacks more than once in a text buffer transaction. Along with Atom 1.23, GitHub also released Teletype 0.4.0, a tool that allows developers to collaborate simultaneously on multiple files.

Turi as FOSS

Filed under
  • Fruit of an acquisition: Apple AI software goes open

    Apple's joined other juggernauts of the tech sector by releasing an open source AI framework.

    Turi Create 4.0, which landed at GitHub recently, is a fruit of its 2016 US$200 million acquisition of Turi.

    As the GitHub description explains, it targets app developers that want custom machine learning models but don't have the expertise to “add recommendations, object detection, image classification, image similarity or activity classification” to their apps.

  • Apple Releases Turi ML Software as Open Source

    Apple last week released Turi Create, an open source package that it says will make it easy for mobile app developers to infuse machine learning into their products with just a few lines of code.

    “You don’t have to be a machine learning expert to add recommendations, object detection, image classification, image similarity, or activity classification to your app,” the company says in the GitHub description for Turi Create. “Focus on tasks instead of algorithms.”

Programming/Development: fwupd, LLVM and More

Filed under
  • CSR devices now supported in fwupd

    The BlueCore CSR chips are used everywhere. If you have a “wireless” speaker or headphones that uses Bluetooth there is a high probability that it’s using a CSR chip inside. This makes the addition of CSR support into fwupd a big deal to access a lot of vendors. It’s a lot easier to say “just upload firmware” rather than “you have to write code” so I think it’s useful to have done this work.

  • Skylake Server Scheduler Model Updated In LLVM 6.0 Along With Other Intel CPU Updates
  • Most Software Code Will Be Written By Machines By 2040, Researchers Predict

    Imagine a scenario where a programmer needs to follow a couple of tried and tested procedures to write code that becomes a part of a bigger program that needs some insightful contribution from another programmer. So, is the first programmer really needed? Can’t we find a robotic replacement for the same?

    In the past, GitHub CEO had already made a prediction which says that future of coding is no coding at all. A similar speculation has been made by the researchers at the Oak Ridge National Laboratory, Tennessee, who have said that machines will write most of their own code by 2040.

  • Hazelcast joins Eclipse, JCache is key focal point

    Open source In-Memory Data Grid (IMDG) company Hazelcast has joined the Eclipse Foundation – and it has done so for a reason.

    Hazelcast’s primary focus will be on JCache the Eclipse MicroProfile and EE4J.

    In particular, Hazelcast will be collaborating with members to popularize JCache, a Java Specification Request (JSR-107).

    So what place does JCache fill in the universe then?

Syndicate content

More in Tux Machines

Software: Corebird, RawTherapee, LVFS and More

Red Hat and Fedora: Red Hat Enterprise Linux 8 Alpha, Results Imminent, Fedora Atomic Workstation and More

Ubuntu and Mint Leftovers

  • Ubuntu 18.04's Automatic Suspend Shows Linux Suspend Can Still Be An Issue In 2018
    One of the subtle changes that seemed to have been made during the Ubuntu 18.04 development cycle is automatic suspend now being enabled by default on desktop systems. Automatic suspend is flipped on with Ubuntu 18.04 desktop after a twenty minute delay of being idle, at least on several systems I've been running the daily Bionic Beaver with this month.
  • Bid “bonjour” to our Bionic Beaver!
    Along with a sneak preview of our official Bionic mascot, it’s a short update this week as we’re all heads-down in bug fixing mode. There are a couple of links to check out if you’re interested in what sort of data we want to collect about hardware and setup, with links to the source.
  • MintBox Mini 2
    Based on the Compulab Fitlet2, the new Mini is just as small as the original MintBox Mini and the MintBox Mini Pro but with much better specifications, better performance and a few more features.

Android Leftovers

  • Android tips and tricks: 10 great ways to boost your phone experience
  • About the privacy of the unlocking procedure for Xiaomi’s Mi 5s plus
    First, you got to register on Xiaomi’s website, and request for the permission to unlock the device. That’s already bad enough: why should I ask for the permission to use the device I own as I am pleased to? Anyway, I did that. The procedure includes receiving an SMS. Again, more bad: why should I give-up such a privacy thing as my phone number? Anyway, I did it, and received the code to activate my website account. Then I started the unlock program in a virtualbox Windows XP VM (yeah right… I wasn’t expecting something better anyway…), and then, the program tells me that I need to add my Xiaomi’s account in the phone. Of course, it then sends a web request to Xiaomi’s server. I’m already not happy with all of this, but that’s not it. After all of these privacy breaches, the unlock APP tells me that I need to wait 72 hours to get my phone to account association to be activated. Since I wont be available in the middle of the week, for me, that means waiting until next week-end to do that. Silly…
  • You Can Now Try Android Games Without Downloading Them
    Tired of downloading games only to realize they suck? Google Play Instant might mean never doing that again.
  • Plex for Android Will Soon Let You Cast Your Own Videos to Chromecast