Language Selection

English French German Italian Portuguese Spanish


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

More in Tux Machines

Programming: JS, Java, Rust and Lots More

  • QMI and MBIM in Python, Javascript…

    The libqmi and libmbim libraries are every day getting more popular to control your QMI or MBIM based devices. One of the things I’ve noticed, though, is that lots of users are writing applications in e.g. Python but then running qmicli or mbimcli commands, and parsing the outputs. This approach may work, but there is absolutely no guarantee that the format of the output printed by the command line programs will be kept stable across new releases. And also, the way these operations are performed may be suboptimal (e.g. allocating QMI clients for each operation, instead of reusing them). Since the new stable libqmi 1.26 and libmbim 1.24 releases, these libraries integrate GObject Introspection support for all their types, and that provides a much better integration within Python applications (or really, any other language supported by GObject Introspection). The only drawback of using the libraries in this way, if you’re already using and parsing command line interface commands, is that you would need to go deep into how the protocol works in order to use them.

  • NodeJS on Ubuntu: Installation and First Steps

    Every time we read something about web development, the subject of NodeJS always comes up. But this is not bad, because it is quite an important technology that is the basis of many current applications. So if you want to develop web applications you probably need to install NodeJS on Ubuntu or another system. NodeJS is a server-side implementation of javascript. It is event-driven and asynchronous so it is often used as a partial replacement for PHP. NodeJS is cross-platform so installing it on Ubuntu is not difficult. However, it is always useful to know.

  • Top 10 Java stories of May: TIOBE Index, Spring Boot 2.3, Java 16 plans & more

    Every month, we take a look back at our top ten most clicked topics. Last month was packed full of exciting news such as more info on Java 16 with its upcoming migration to Git and GitHub. Other top news include interviews on the programming language Julia, the visualization platform Grafana and the Node alternative Deno. In May, we also learned how to analyze big data using Java and saw C pass Java in the monthly TIOBE Index.

  • This Week in Rust 341
  • Programming languages: Rust enters top 20 popularity rankings for the first time

    Programming language Rust has entered the top 20 of the Tiobe popularity index for the first time, but it's still five spots behind systems programming rival Go. [...] Paul Jansen, CEO of Tiobe software, said Rust's rise is because it's a systems programming language that is "done right". "All the verbose programming and sharp edges of other languages are solved by Rust while being statically strongly typed. Its type system prevents run-time null pointer exceptions and memory management is calculated compile-time," said Jansen. "So no garbage collection that suddenly kicks in. We have D, Lua and Julia trying to beat C and C++, but Rust seems to be the first one to come really close." [...] The rankings roughly line up with Stack Overflow's list of most commonly used languages, which were JavaScript, HTML/CSS, SQL, Python, Java, Bash/Shell/PowerShell, C#, PHP, TypeScript, C++, C, and Go.

  • The joys and perils of aliasing in C and C++, Part 2

    In the previous article, I discussed the benefits of C and C++ language restrictions in optimized code. In this second half, I present a variety of programming language exemptions and compiler extensions that developers can use to get around aliasing restrictions more or less safely. I will also discuss the common pitfalls of aliasing, both resulting from the extensions as well as from misuses of standard language constructs, and illustrate common problems these pitfalls might cause.

  • Status update - Tie up loose ends before starting

    Besides e-mail, IRC chat, and Telegram, my mentor (Siqueira) and I are meeting every Wednesday on Jitsi, where we also use tmate for terminal sharing. We also use, together with Trevor, a spreadsheet to schedule tasks, report my daily activity, and write any suggestions. [...] My first project task is to find out why it is not possible to access debugfs files when running kms_cursor_crc (and fix it). Two things could help me solve it: learning about debugfs and dissecting kms_cursor_crc. To guide my studies, my mentor suggested taking a look at a patchset for the IGT write-back test implementation that CI reported a crash on debugfs_test for i915. For this investigation, I installed on another machine (an old netbook) a Debian without a graphical environment, and, accessing via ssh, I applied the patches and ran the test. Well, everything seemed to work (and the subtests passed). Perhaps something has been fixed or changed in IGT since the patchset was sent. Nothing more to do here.

  • littler 0.3.10: Some more updates

    The eleventh release of littler as a CRAN package is now available, following in the fourteen-ish 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 as it predates Rscript. It allows for piping as well for shebang scripting via #!, uses command-line arguments more consistently and still starts faster. It also always loaded the methods package which Rscript only started to do in recent years. littler lives on Linux and Unix, has its difficulties on macOS due to yet-another-braindeadedness there (who ever thought case-insensitive filesystems as a default where a good idea?) and simply does not exist on Windows (yet – the build system could be extended – see RInside for an existence proof, and volunteers are welcome!). See the FAQ vignette on how to add it to your PATH.

  • Exploring Algol 68 in the 21st century

    Perhaps this quote carries particular weight for me as I, too, was a first-year student in 1973-1974, though at a different institution—the University of British Columbia. Moreover, "back in those days," the introductory computer science course at UBC was taught in the second year using Waterloo FORTRAN with a bit of IBM 360 Assembler thrown in; nothing so exotic as Algol 68. In my case, I didn't encounter Algol 68 until my third year. Maybe this wait, along with experiences in other programming languages, contributed to my lifelong fascination with this underrated and wonderful programming language. And thanks to Marcel van der Veer, who has created a very fine implementation of Algol 68 called Algol 68 Genie, that is now in my distro's repositories, at long last, I've been able to explore Algol 68 at my leisure. I should also mention that Marcel's book, Learning Algol 68 Genie, is of great utility both for newcomers and as a refresher course in Algol 68.

  • Float/String Conversion in Picolibc: Enter “Ryū”

    I recently wrote about this topic having concluded that the best route for now was to use the malloc-free, but imprecise, conversion routines in the tinystdio alternative.

  • Jonathan Dowland: using Template Haskell to generate boilerplate

    Here's a practical example of applying Template Haskell to reduce the amount of boilerplate code that is otherwise required. I wrote the below after following this excellent blog post by Matt Parsons. This post will be much higher-level, read Matt's blog for the gorier details.

  • Learning APIs with curl: Posting to social media

    To demonstrate how to utilize curl in a real-world scenario, here's a quick example of interacting with a social network platform. Mastodon is an open-source, federated social network and microblogging platform, and features a rich API to read, write, and manage your account. Other social networks may have similar features, and while the exact API commands differ from site to site, Mastodon provides a reasonable example of the process, and in just three simple steps. If you want to try this process yourself, you must sign up for a Mastodon account (and if you do, be sure to follow the bot to see a shell and curl-based bot in action).

Security and DRM, Proprietary Traps

  • Alarm over DDoS produces threat inflation. False flags, cosplayers, and wannabes. Cyberspace Solarium sees lessons for cyber in the pandemic.
  • Security updates for Wednesday

    Security updates have been issued by Fedora (java-11-openjdk, perl-Email-MIME, perl-Email-MIME-ContentType, and slurm), openSUSE (imapfilter, mailman, and python-rpyc), Red Hat (bind and firefox), SUSE (evolution-data-server, python, qemu, and w3m), and Ubuntu (python-django).

  • Google details Fuchsia, states it is not experimental

    Google seems to want to make really clear that Fuchsia is diametrically the opposite of Android when it comes to updates. They don’t mince words here, and it might as well read “everything Android is not”:

    Fuchsia works by combining components delivered in packages. Fuchsia packages are designed to be updated independently or even delivered ephemerally, which means packages are designed to come and go from the device as needed and the software is always up-to-date, like a Web page.

    Fuchsia aims to provide drivers with a binary-stable interface. In the future, drivers compiled for one version of Fuchsia will continue to work in future versions of Fuchsia without needing to be modified or even recompiled. This approach means that Fuchsia devices will be able to update to newer versions of Fuchsia seamlessly while keeping their existing drivers.

  • Seven years later, I bought a new Macbook. For the first time, I don't love it

    Even though this review was exhaustive, don't get me wrong, most annoyances are minor except for the one deal-breaker: the typing experience. I have written this review with the laptop keyboard and it's been a continuous annoyance. Look, another irony. Apple suffered so much to fix their keyboard, yet it's still ruined by a comically large trackpad. The forest for the trees.

    Point #4: For the first time since using Macs, I do not love this machine.

  • [After Microsoft blackmailed Samsung with software patents over Linux] Samsung teams with Microsoft to ensure you’ll never stop paying for phones

    I searched through the terms and conditions and Samsung doesn’t address what happens if you finish paying for your phone but still want to keep Access. Speaking from experience, however, three years is a lot to expect from a Galaxy phone, so you’ll definitely want to upgrade before then. And if you do, Access really isn’t a bad deal. You’ll get the latest Galaxy hardware, an Office subscription that can be installed on five devices, and 1TB in OneDrive Cloud storage for a flat discounted monthly fee. And presumably, you’ll be able to lower your Access subscription to a lower tier at the time of upgrade.

Open Hardware: Raspberry Pi, Astro Pi and OpenPower Foundation

  • Low-cost air quality sensor works with Raspberry Pi

    Metriful is launching a $39 “Sense” indoor air quality sensor module that works with the Raspberry Pi and other I2C-enabled systems. Other sensors include temperature, humidity, air pressure, light, and sound. In recent months, much of the world’s population has spent a lot of time indoors, often crowded into small apartments. If the air quality has improved outside due to the pandemic, the same cannot always be said for the indoor realm. Metriful has gone to Kickstarter launch a remarkably low-cost sensor board called Sense to help you find how much pollution has come inside and how much is being generated from within from HVAC, cooking, and manufactured goods. It also checks temperature, humidity, air pressure, light, sound, and even gives you a rough estimation of CO2. Metriful has posted example code and setup instructions for Raspberry Pi and Arduino on GitHub and offers additional documentation.

  • 6558 programs from young people have run on the ISS for Astro Pi 2019/20!
  • OpenPower Puts Open Source Software Guru In Charge

    Effective today, Kulina, is the new executive director of the OpenPower Foundation, and his appointment follows the trend of gradually moving from a systems-centric view from the people at the top to one where people are more familiar with the open source software movement and how to build ecosystems. We had a chat about the OpenPower effort and what plans Kulina has to shape what the foundation does and to make Power more broadly implemented than it is currently today.

Linux Foundation Leftovers

  • New Cloud Engineer Bootcamp from The Linux Foundation Fully Prepares Individuals for a Cloud Career
    The Linux Foundation, the nonprofit organization enabling mass innovation through open source, today announced the availability of its first ever bootcamp program, designed to take individuals from newbie to certified cloud engineer in six months. The Linux Foundation Cloud Engineer Bootcamp bundles self-paced eLearning courses with certification exams and dedicated instructor support for a comprehensive and well-rounded educational program. The training begins with Linux at the operating system layer, and moves up the stack, covering DevOps, cloud, containers and more, providing all the knowledge needed to work as a cloud engineer. The specific courses and exams included, all of which are taken online, are...

  • The Linux Foundation introduces Cloud Engineer Bootcamp for cloud job seekers

    Back when I was going to tech shows every few weeks, no matter what the show was about -- Linux, networking, open-source software development -- I could always count on one thing: Every, and I mean every, company was looking for cloud-savvy people to hire. found that between October 2015 and October 2019, cloud computing jobs increased by 55%. By 2022, Gartner predicts the public cloud services market alone will be three times bigger than overall IT services. But there isn't anything like enough cloud experts to meet the demand. That's where the Linux Foundation's new Cloud Engineer Bootcamp comes in.

  • Linux Foundation Launches Cloud Engineer Bootcamp

    The Linux Foundation has announced its first ever bootcamp program, designed to take individuals from newbie to certified cloud engineer in six months. The training begins with Linux at the operating system layer, and moves up the stack, covering DevOps, cloud, containers and more, providing all the knowledge needed to work as a cloud engineer. The Linux Foundation Cloud Engineer Bootcamp bundles self-paced eLearning courses with certification exams and dedicated instructor support for a well-rounded educational program. “A price point significantly below most bootcamps, coupled with industry-leading certifications and vendor-neutral training, makes this offering a tremendous value and provides an accessible option for individuals looking to break into the IT and cloud industries. At the same time, it will help close the talent gap and ensure adequate staffing for companies seeking cloud talent,” quipped Clyde Seepersad, SVP and general manager of training & certification at The Linux Foundation.

  • Priyanka Sharma Takes Over The Helm Of CNCF