Posts with the tag Free Software:

Music production with Linux: How to use Guitarix and Ardour together

Music production for guitar has a lot of options on Linux. We will see how to install the required software, and how to use Guitarix together with Ardour either with the standalone version of Guitarix or with an embedded version inside Ardour.

SymPy: a powerful math library

SymPy is a lightweight symbolic mathematics library for Python under the 3-clause BSD license that can be used either as a library or in an interactive environment. It features symbolic expressions, solving equations, plotting and much more!

A Truly Free AI

Understanding what makes a software Free (as in freedom) has been going on since the beginning of the Free Software movement in the 80’s (at least). This led to the Free Software licenses, which help users to control the technology they use. However, considering the peculiarities of Artificial Intelligence (AI) software, one may wonder whether those licenses account for those.

Free Software licenses were designed so that users control technology, and facilitate their collaboration. Software released under a Free Software license guarantees that users can use, study, share and improve it however they want, with anybody they want. Once one accesses the source code and the accompanying license(s), he or she can run the software. Indeed, most software runs on commodity hardware. However, this is not true for AI and deep learning, the branch of AI powering most of the recent successful AI technologies.

Computers can't sustain themselves

The situation where an unskilled user can enjoy a well-working computer does only last so long.1 Either the user becomes good at maintaining the computer, or it will stop working correctly. That’s because computers are not reliable. If not used carefully, at some point, they will behave unexpectedly or stop working. Therefore, one will have to get their hands dirty and most likely learn something along the way.

Some operating systems are more prone to gathering cruft, though. Windows computers are known to decay over time. This is caused by file system fragmentation, the registry getting cluttered, OS / software updates,2 or unwanted software installation. Furthermore, users can install software from any source. As a result, they have to check the software quality by themselves, whether it’s compatible with their system, perform the installation procedure and the maintenance. This may create problems if any of these tasks are not done well. Conversely, despite giving users a lot of power, GNU/Linux is more likely to stay stable. Even though it depends on the distributions policies, software installation and updates are done through package manager repositories that are administered and curated by skilled maintainers. Breaking the system is thus more difficult, but not impossible. After all, with great power comes great responsibility.

How to install the original Doom on Fedora 31

If you want to distance yourself from the craziness of the world around and happen to be a computer geek, only a few things are more satisfying than blasting hordes of demons on Doom. Here is how to install GZDoom - an OpenGL port of Doom released under the GPLv3 license - and a mod called Brutal Doom on Fedora 31.

On Deep Learning and Free Software

As Deep learning is becoming more and more popular, there is an ongoing debate on whether it’s possible to create Deep Learning applications with a Free Software license. See for example this discussion on the debian-devel mailing list.

The argument we often see is that:

  • It’s impossible to study the inner workings of a Deep Learning software (for example, an image classifier or a text generator) or improve it, because one cannot understand how it’s going to make predictions only by looking at the weights of the Deep Learning model
  • Training a Deep Learning model requires a specialized and expensive hardware that runs non-Free software

But the first statement misses the point of Deep Learning programs. We should not treat deep learning programs as the “regular” ones. A regular program contains a set of tasks the computer has to do. The human has the knowledge of how the tasks that should be completed. But this is not true for Deep Learning. The software is not the set of actions that solve the problem, it is the set of instructions used to learn how to solve it. So the Deep Learning program is not the knowledge (the weights) used to perform the mission, it’s how to guide computers to that knowledge. In a way, this is similar to the compilation of a large program to assembly. The compilation output is hardly readable and editable, but the program can easily be studied and analyzed. The same goes for Deep Learning if we consider the model weights as the compilation output. They are not meant to be edited by hand.