Language Selection

English French German Italian Portuguese Spanish

Development

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

Filed under
Development
  • 10 keys to quick game development

    In early October, the inaugural Open Jam sponsored by Opensource.com 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
Development
  • 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
Development
  • 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 Python.org. 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
Development
  • 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 Indeed.com. 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
Development
  • 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
Android
Development
Software
  • 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
Development
OSS
  • 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
Development
  • 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?

Compiler/Development News

Filed under
Development
GNU
BSD
  • LLVM 5.0.1 Expected For Release Next Week

    While the LLVM 5.0.1 bug-fix release was originally expected last month, after going through three release candidates the stable version is now expected to arrive next week.

    Tom Stellard of Red Hat announced on Thursday that 5.0.1-rc3 has been tagged. He expects this to be the final release candidate and to then officially declare v5.0.1 next week.

  • DTrace & ZFS Being Updated On NetBSD, Moving Away From Old OpenSolaris Code

    The NetBSD operating system has been working on updating their DTrace and ZFS implementations.

    Chuck Silvers with the NetBSD project has been working on updating their DTrace and ZFS code. Up to now NetBSD has been relying upon outdated ZFS/DTrace code that originated from the OpenSolaris code-base. As many of you know, OpenSolaris hasn't been a thing now for many years since Oracle acquired Sun Microsystems.

  • Intel Continues Tuning Glibc's Performance: More FMA'ing

    Intel continues contributing performance optimizations to the GNU C Library (glibc) for allowing various functions to make use of modern processor instruction set extensions.

    Glibc this year has seen FMA optimizations, its per-thread cache enabled, AVX optimizations, and other performance work contributed in large part by Intel engineers. Glibc isn't gaining weight this holiday season but is continuing to be optimized for speed.

Programming Leftovers

Filed under
Development
  • PHP version 7.0.27RC1 and 7.1.13RC1
  • The junior programmer’s guide to asking for help

    Asking for help is a skill, and a skill you can learn. Once you’ve mastered this skill you will be able ask questions at the right time, and in the right way.

  • Cliff Lynch's Stewardship in the "Age of Algorithms"

    I agree that society is facing a crisis in its ability to remember the past. Cliff has provided a must-read overview of the context in which the crisis has developed, and some pointers to pragmatic if unsatisfactory ways to address it. What I would like to see is a even broader view, describing this crisis as one among many caused by the way increasing returns to scale are squeezing out the redundancy essential to a resilient civilization.

  • Stewardship in the "Age of Algorithms"

    This paper explores pragmatic approaches that might be employed to document the behavior of large, complex socio-technical systems (often today shorthanded as “algorithms”) that centrally involve some mixture of personalization, opaque rules, and machine learning components. Thinking rooted in traditional archival methodology — focusing on the preservation of physical and digital objects, and perhaps the accompanying preservation of their environments to permit subsequent interpretation or performance of the objects — has been a total failure for many reasons, and we must address this problem. The approaches presented here are clearly imperfect, unproven, labor-intensive, and sensitive to the often hidden factors that the target systems use for decision-making (including personalization of results, where relevant); but they are a place to begin, and their limitations are at least outlined. Numerous research questions must be explored before we can fully understand the strengths and limitations of what is proposed here. But it represents a way forward. This is essentially the first paper I am aware of which tries to effectively make progress on the stewardship challenges facing our society in the so-called “Age of Algorithms;” the paper concludes with some discussion of the failure to address these challenges to date, and the implications for the roles of archivists as opposed to other players in the broader enterprise of stewardship — that is, the capture of a record of the present and the transmission of this record, and the records bequeathed by the past, into the future. It may well be that we see the emergence of a new group of creators of documentation, perhaps predominantly social scientists and humanists, taking the front lines in dealing with the “Age of Algorithms,” with their materials then destined for our memory organizations to be cared for into the future.

  • Testing OpenStack using tempest: all is packaged, try it yourself

    tl;dr: this post explains how the new openstack-tempest-ci-live-booter package configures a machine to PXE boot a Debian Live system running on KVM in order to run functional testing of OpenStack. It may be of interest to you if you want to learn how to PXE boot a KVM virtual machine running Debian Live, even if you aren’t interested in OpenStack.

Syndicate content

More in Tux Machines

Librem 5 Phone Progress Report

  • Librem 5 Phone Progress Report – The First of Many More to Come!
    First, let me apologize for the silence. It was not because we went into hibernation for the winter, but because we were so busy in the initial preparation and planning of a totally new product while orienting an entirely new development team. Since we are more settled into place now, we want to change this pattern of silence and provide regular updates. Purism will be giving weekly news update posts every Tuesday, rotating between progress on phone development from a technology viewpoint (the hardware, kernel, OS, etc.) and an art of design viewpoint (UI/UX from GNOME/GTK to KDE/Plasma). To kickoff this new update process, this post will discus the technological progress of the Librem 5 since November of 2017.
  • Purism Eyeing The i.MX8M For The Librem 5 Smartphone, Issues First Status Update
    If you have been curious about the state of Purism's Librem 5 smartphone project since its successful crowdfunding last year and expedited plans to begin shipping this Linux smartphone in early 2019, the company has issued their first status update.

Benchmarking Retpoline-Enabled GCC 8 With -mindirect-branch=thunk

We have looked several times already at the performance impact of Retpoline support in the Linux kernel, but what about building user-space packages with -mindirect-branch=thunk? Here is the performance cost to building some performance tests in user-space with -mindirect-branch=thunk and -mindirect-branch=thunk-inline. Read more

An introduction to Inkscape for absolute beginners

Inkscape is a powerful, open source desktop application for creating two-dimensional scalable vector graphics. Although it's primarily an illustration tool, Inkscape is used for a wide range of computer graphic tasks. The variety of what can be done with Inkscape is vast and sometimes surprising. It is used to make diagrams, logos, programmatic marketing materials, web graphics, and even for paper scrapbooking. People also draw game sprites, produce banners, posters, and brochures. Others use Inkscape to draft web design mockups, detail layouts for printed circuit boards, or produce outline files to send to laser cutting equipment. Read more

Behind the scenes with Pop!_OS Linux

In October, Linux PC maker System76 released its homegrown version of Linux, Pop!_OS, giving users the choice between its legacy Ubuntu operating system or the new Pop!_OS flavor of Linux. Recently Opensource.com gave away a System76 laptop with Pop!_OS installed, which made me curious about the company and this new version of Linux, so I spoke with Cassidy James Blaede, Pop!_OS's user experience (UX) designer. Blaede joined System76 in 2014, fresh out of college at the University of Northern Iowa and marriage to his wife, Katie. While in college, he co-founded the elementary OS project and interned at UX consultancy Visual Logic, both of which influenced his work for System76. He started at System76 as a front-end developer and was later promoted to UX architect. Read more