Language Selection

English French German Italian Portuguese Spanish

Login

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

More in Tux Machines

Programming Leftovers

  • Type instances

    The particular nature of our work is up for any amount of debate, but the basic fact of it comes with a few requirements, and they are by and large inevitable if you wish to be a well-behaved, well-integrated member of the GNOME community. One of which is: “please, think of the language bindings”. These days, luckily for all of us, this means writing introspectable interfaces that adhere to fairly sensible best practices and conventions. [...] Please, please use GObject. Writing type system code is already boring and error prone, which is why we added a ton of macros to avoid people shooting themselves in both their feet, and we hammered away all the special snowflake API flourishes that made parsing C API to generate introspection data impossible. I can only recommend you go down the GTypeInstance route if you’ve done your due diligence on what that entails, and are aware that it is a last resort if GObject simply does not work within your project’s constraints.

  • The joys and perils of C and C++ aliasing, Part 1

    In C, C++, and some other programming languages, the term aliasing refers to a situation where two different expressions or symbols refer to the same object. When references access that object in different ways—as both reads and stores—there are consequences for the order in which these mixed accesses can happen. The value that is stored first is expected to be read by the subsequent access. In many instances, aliasing is harmless: It is common, safe, and usually optimally efficient to use two pointers of the same type to read, and even to write to the same object. But in some cases, using aliasing symbols for mixed accesses is less benign, and can adversely affect the correctness or efficiency of your code. Although there are quite a few articles on this subject, most tend to focus on the rules and requirements outlined in the standards (such as the strict aliasing rule). In this article, I focus on the details of the C and C++ language restrictions, their challenges and pitfalls, and examples demonstrating the restrictions’ beneficial effects in optimized code. In Part 2, I will present exemptions from aliasing, which can help you get around the restrictions more or less safely. I also consider some of the common pitfalls of aliasing and mixed accesses, and the actual problems these pitfalls might cause.

  • Why I switched from Java to Kotlin

    Kotlin is a cross-platform, general-purpose programming language that runs on the Java Virtual Machine (JVM). JetBrains led its implementation, which began in 2010, and it has been open source since early in its development. The great news for Java developers is that Kotlin is interoperable with Java. Standard Java code can be included in a Kotlin program, and Kotlin can be included in a Java program. That immense investment in compatibility means if you come from a Java background, picking up Kotlin will feel familiar and be a low risk since it will run alongside any of your existing Java code. To introduce you to Kotlin, I will go over some of its basic syntax, ranging from variables to defining functions and classes. If you want to follow along and learn some of the language's features, there is a great browser-based Kotlin playground you can use. [...] Kotlin's simplicity and Java interoperability equate to little risk that you will spend time learning something that isn't useful. After taking your first steps into Kotlin, you may never look at your Java code or the JVM the same way again.

  • New feature highlights in Elixir Cross Referencer v2.0

    Maxime Chrétien has extended Elixir to support kernel configuration parameters. Actually, he contributed a new parser to the universal-ctags project to do so. This way, you can explore C sources and Kconfig files and find the declarations and uses of kernel parameters...

  • Excellent Free Books to Learn Eiffel

    Eiffel is an object-oriented programming language designed by Bertrand Meyer (an object-orientation proponent and author of Object-Oriented Software Construction) and Eiffel Software.

  • Fortran newsletter: June 2020

    Welcome to the June 2020 edition of the monthly Fortran newsletter. The newsletter comes out on the first calendar day of every month and details Fortran news from the previous month.

  • sidetable - Create Simple Summary Tables in Pandas

    Today I am happy to announce the release of a new pandas utility library called sidetable. This library makes it easy to build a frequency table and simple summary of missing values in a DataFrame. I have found it to be a useful tool when starting data exploration on a new data set and I hope others find it useful as well. This project is also an opportunity to illustrate how to use pandas new API to register custom DataFrame accessors. This API allows you to build custom functions for working with pandas DataFrames and Series and could be really useful for building out your own library of custom pandas accessor functions.

  • Using pandas to plot data in Python

    In this series of articles on Python-based plotting libraries, we're going to look at an example of making plots using pandas, the hugely popular Python data manipulation library. Pandas is a standard tool in Python for scalably transforming data, and it has also become a popular way to import and export from CSV and Excel formats. On top of all that, it also contains a very nice plotting API. This is extremely convenient—you already have your data in a pandas DataFrame, so why not use the same library to plot it?

  • 2020.21/22 Four by Wenzel

    Wenzel P. P. Peppmeyer has written not one, not two, not three, but four blogs in the past two weeks, each addressing some feature or quirk of the Raku Programming Language.

  • Monthly Report - May

    I have been doing Monthly Report since June 2018 non-stop. It has become a ritual for me now. It gives me an opportunity to look upon my activities. Since the beginning of the year 2020, I have made conscious decision to slow down as far as submitting Pull Request. I have also stopped playing CPAN game of daily upload after breaking the chain three times. I am happy that Perlancar is keeping the game alive. It has given me space to try something new. Although COVID-19 keeping us indoor all the time, still looking for interesting project to keep the mind busy.

  • PHP 8.0 JIT Is Offering Very Compelling Performance Ahead Of Its Alpha

    With the PHP 8.0 schedule putting the first alpha release for the middle of June, I've been trying out its latest Git state in recent days for looking at its performance as well as when enabling its brand new JIT (Just In Time) compiler support that is new to PHP8. The results are quite compelling and here are metrics going back to the days of PHP 5.4 for comparison.

Security Leftovers

  • What sort of SSH keys our users use or have listed in their authorized keys files

    My first surprise is that we have so many DSA keys listed, since they're no longer supported (and those 380 ssh-dss keys are across 203 different people). People clearly don't clean out their authorized keys files very often. 670 people have RSA keys, 13 have Ed25519 keys, and 15 have some form of ECDSA keys (which implies that a few people list a bunch of ECDSA keys).

    However, that's just what people have sitting around in their authorized keys files, not what actually gets used. What actually gets used is a somewhat different picture. Here are the numbers for how many different keys of each type have been used over the course of 2020 so far: [...]

  • Microsoft is blocking the Windows 10 May 2020 Update on lots of devices [Ed: Microsoft cannot even patch its own software without breaking it]

    Microsoft is preventing a large number of devices from updating to the Windows 10 May 2020 Update. While the software company released the update last week, Microsoft has quietly acknowledged that there are a number of known issues preventing the update from being installed on a variety of PCs. Microsoft has a list of 10 issues it’s currently investigating, and 9 of them have resulted in a “compatibility hold” which stops the Windows 10 May 2020 Update from being installed via Windows Update. One issue involving unexpected errors or reboots with always-on, always-connected devices, affects devices like Microsoft’s Surface Pro 7 or Surface Laptop 3.

  • Security updates for Tuesday

    Security updates have been issued by Arch Linux (ant, bind, freerdp, and unbound), CentOS (bind, freerdp, and git), Debian (python-httplib2), Fedora (ant, kernel, sqlite, and sympa), openSUSE (java-11-openjdk and qemu), Oracle (bind), Red Hat (freerdp), Scientific Linux (python-pip and python-virtualenv), Slackware (firefox), SUSE (qemu), and Ubuntu (Apache Ant, ca-certificates, flask, and freerdp2).

Android Leftovers

Mozilla Firefox 77 Is Now Available for Download, Here’s What’s New

Highlights of the Firefox 77 release include improved accessibility by allowing screen reader users to access the applications list in Firefox Options, providing labels for date/time inputs for users of accessibility tools and updated text in the JAWS screen reader for some live regions. This release also implements support for viewing and managing web certificates via a new about:certificate page, and adds Pocket recommendations on the New Tab page for users located in the United Kingdom (UK). Among other changes, Firefox 77 removes the browser.urlbar.oneOffSearches preference. Users will now have to uncheck the search engines on the One-Click Search Engines option in the about:preferences#search page if they want to hide the one-off search buttons. Read more Direct: 77.0 Firefox Release Also: Firefox 77 Released With Security Fixes, AV1 Image File Support Firefox 77.0 Released with Pocket Recommendations for UK users Firefox 77.0