Language Selection

English French German Italian Portuguese Spanish


Enter your Tux Machines username.
Enter the password that accompanies your username.

More in Tux Machines

Identify Songs On Your Linux Desktop Using SongRec, A Shazam Client For Linux

SongRec is an open source Shazam client for Linux. It's written in Rust, with the GUI using Gtk3. Using the Shazam audio fingerprinting algorithm, this application can identify a song from an audio file or using the microphone. MP3, FLAC, WAV and OGG formats are supported. This works by analyzing the captured sound, be it from the microphone or and audio file, and seeking a match based on an acoustic fingerprint in a database of millions of songs. Most of the processing is done server-side (so SongRec connects to the Shazam servers). When finding a match in the Shazam database, SongRec shows the artist, song and album names, as well as the date when the recognition was done. All recognized songs are kept in a history list that you can export to CSV or wipe. Shazam is a music recognition application own by Apple, available for Android, iOS, watchOS and macOS. It can identify music based on a short sample, provided that the background noise level is not high enough to prevent an acoustic fingerprint being taken, and that the song is present in the software's database. Read more

Ubuntu 20.10 Released

  • Ubuntu 20.10 released, brings full Linux dekstop to Raspberry Pi

    Open-source software fans will now be able to work across even more devices after Canonical revealed the launch of Ubuntu 20.10. The latest version of the world's most popular open-source software features a raft of upgrades and improvements, making it more accessible and easier to use than ever before. For the first time, users will be able to enjoy Ubuntu on Raspberry Pi devices, with the new release offering optimised Raspberry Pi images for desktop and server.

  • Ubuntu 20.10 Desktop Now Supports the Raspberry Pi 4

    As of the latest release, Raspberry Pi models with 4GB or 8GB RAM can run the Ubuntu 20.10 desktop. Yup, the Groovy Gorilla dishes up support for full-fledged, full-fat desktop version. Groovy is but the first foot forward towards a larger goal: an Ubuntu LTS release on the Raspberry Pi, as Eben Upton, CEO at Raspberry Pi, says: “From the classic Raspberry Pi board to the industrial grade Compute Module, this first step to an Ubuntu LTS on Raspberry Pi with long term support and security updates matches our commitment to widen access to the very best computing and open source capabilities.”

  • Ubuntu 20.10 rolls out today, along with official support for the Raspberry Pi 4

    While users who want a properly stable base to game with should probably stick to Ubuntu 20.04 which is the long-term support release, the Ubuntu 20.10 'Groovy Gorilla' update is out today. For a while there has been a few special Ubuntu flavours that have offered images to install on the Raspberry Pi like Ubuntu MATE, however, that's now becoming official directly within Ubuntu as of the 20.10 release. This is actually awesome, as Ubuntu is one of the easiest Linux distributions to get going with. From the press release: “In this release, we celebrate the Raspberry Pi Foundation’s commitment to put open computing in the hands of people all over the world,” said Mark Shuttleworth, CEO at Canonical. “We are honoured to support that initiative by optimising Ubuntu on the Raspberry Pi, whether for personal use, educational purposes or as a foundation for their next business venture.” “From the classic Raspberry Pi board to the industrial grade Compute Module, this first step to an Ubuntu LTS on Raspberry Pi with long term support and security updates matches our commitment to widen access to the very best computing and open source capabilities” said Eben Upton, CEO of Raspberry Pi Trading.

Python Programming

  • DISTUTILS_USE_SETUPTOOLS, QA spam and… more QA spam? – Michał Górny

    I suppose that most of the Gentoo developers have seen at least one of the ‘uses a probably incorrect DISTUTILS_USE_SETUPTOOLS value’ bugs by now. Over 350 have been filed so far, and new ones are filed practically daily. The truth is, I’ve never intended for this QA check to result in bugs being filed against packages, and certainly not that many bugs. This is not an important problem to be fixed immediately. The vast majority of Python packages depend on setuptools at build time (this is why the build-time dependency is the eclass’ default), and being able to unmerge setuptools is not a likely scenario. The underlying idea was that the QA check would make it easier to update DISTUTILS_USE_SETUPTOOLS when bumping packages. Nobody has asked me for my opinion, and now we have hundreds of bugs that are not very helpful. In fact, the effort involved in going through all the bugmail, updating packages and closing the bugs greatly exceeds the negligible gain. Nevertheless, some people actually did it. I have bad news for them: setuptools upstream has changed entry point mechanism, and most of the values will have to change again. Let me elaborate on that.

  • Python and the infinite []

    A recent proposal on the python-ideas mailing list would add a new way to represent floating-point infinity in the language. Cade Brown suggested the change; he cited a few different reasons for it, including fixing an inconsistency in the way the string representation of infinity is handled in the language. The discussion that followed branched in a few directions, including adding a constant for "not a number" (NaN) and a more general discussion of the inconsistent way that Python handles expressions that evaluate to infinity. In general, Python handles floating-point numbers, including concepts like infinity, following the standards laid out by IEEE 754. Positive and negative infinity are represented by two specific floating-point values in most architectures. Currently, representing a floating-point infinite value in Python can be done using a couple of different mechanisms. There is the float() function, which can be passed the string "inf" to produce infinity, and there is the inf constant in the math library, which is equivalent to float('inf'). Brown provided several reasons why he believed a new, identical, and built-in constant was necessary. One of his reasons was that he felt that infinity is a "fundamental constant" that should be accessible from Python without having to call a function or require a library import.

  • Further analysis of PyPI typosquatting []

    We have looked at the problem of confusingly named packages in repositories such as the Python Package Index (PyPI) before. In general, malicious actors create these packages with names that can be mistaken for those of legitimate packages in the repository in a form of "typosquatting". Since our 2016 article, the problem has not gone away—no surprise—but there has been some recent analysis of it, as well as some efforts to combat it. On the IQT blog, John Speed Meyers and Bentz Tozer recently posted some analysis they had done to quantify PyPI typosquatting attacks and to categorize them. They started by looking at the examples of actual attacks against PyPI users from 2017 to 2020; they found 40 separate instances over that time span. The criteria used were that the package had a name similar to another in PyPI, contained malware, and was identified and removed from the repository.

  • Automating PDF generation using Python reportlab module

    Generating PDF using python reportlab module, Adding table to PDF using Python, Adding Pie Chart to PDF using Python, Generating PDF invoice using Python code, Automating PDF generation using Python reportlab module

  • Level Up Your Skills With the Real Python Slack Community – Real Python

    The Real Python Community Slack is an English-speaking Python community with members located all over the world. It’s a welcoming group in which you’re free to discuss your coding and career questions, celebrate your progress, vote on upcoming tutorial topics, or just hang out with us at the virtual water cooler. As a community member, you also get access to our weekly Office Hours, a live online Q&A session with the Real Python team where you’ll meet fellow Pythonistas to chat about your learning progress, ask questions, and discuss Python tips and tricks via screen sharing.

  • Remove Duplicates From a List

    How do we remove duplicates from a list? One way is to go through the original list, pick up unique values, and append them to a new list. About the "Writing Faster Python" series "Writing Faster Python" is a series of short articles discussing how to solve some common problems with different code structures. I run some benchmarks, discuss the difference between each code snippet, and finish with some personal recommendations. Are those recommendations going to make your code much faster? Not really. Is knowing those small differences going to make a slightly better Python programmer? Hopefully! You can read more about some assumptions I made, the benchmarking setup, and answers to some common questions in the Introduction article.

LibreOffice 6.4.7 Released as the Last in the Series, End of Life Set for November 30

Containing a total of 72 bug fixes across most of its core components, the LibreOffice 6.4.7 update is here about two months after LibreOffice 6.4.6 to add one last layer of improvements and fixes, ensuring the LibreOffice 6.4 series remains as stable and reliable as possible, as well as to improve document compatibility and interoperability with other office suites. While it’s already working on fixing bugs for the latest LibreOffice 7.0 office suite series, The Document Foundation currently still recommends LibreOffice 6.4 for enterprise users and any other type of organization that wants to save money by not buying expensive licenses for proprietary office suites. Read more