Language Selection

English French German Italian Portuguese Spanish


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

More in Tux Machines

KDE/Qt: KWin, Qt, and Walled Gardens

  • Scene Items in KWin by Vlad Zahorodnii

    If your background includes game development, the concept of a scene should sound familiar. A scene is a way to organize the contents of the screen using a tree, where parent nodes affect their child nodes. In a game, a scene would typically consist of elements such as lights, actors, terrain, etc. KWin also has a scene. With this blog post, I want to provide a quick glimpse at the current scene design, and the plan how it can be improved for Wayland. [...] At the end of March, an initial batch of changes to migrate to the item-based design was merged. We still have a lot of work ahead of us, but even with those initial changes, you will already see some improves in the Wayland session. For example, there should less visual artifacts in applications that utilize sub-surfaces, e.g. Firefox. The end goal of the transition to the item-based design is to have a more flexible and extensible scene. So far, the plan is to continue doing refactorings and avoid rewriting the entire compositing machinery, if possible. [...] In short, we still have some work to do to make rendering abstractions in KWin fit well all the cases that there are on Wayland. However, even with the work done so far, the results are very promising!

  • A new face for the Qt Project

    project, could learn how to contribute. Additionally, for current members, having a good way of representing this contribution information will help to analyze these contributions for different Qt modules, and help the decision-making process to boost the development in some modules. This information is already spread in many places, mainly in our wiki, which doesn't facilitate newcomers that don't know their way around to easily find, which raised the motivation of creating a one-page site which will play the role of being the face of the Qt project.

  • Walled gardens

    Plasma Mobile aims to be not a walled garden, and provides a full control/freedom to users, which interestingly also comes with freedom to use the walled garden inside your open garden. If user can not have this freedom or is actively being pushed towards ecosystem liked by the developers, then what we have created is a walled garden with illusion of being open garden. [...] Where we aim that users have full control over their data and do not use closed systems. Which is why we need to find a balance between both of this goals/mission. We need to make sure that our default user experience does not make use of closed ecosystem software and at same time if users/developers have preference or requirement of using other systems we enable them to do so to best of our capability.

Devices: Rockchip, STMicroelectronics, Arduino

  • T95 Plus Android 11 TV Box features Rockchip RK3566 AIoT processor, 8GB RAM

    Last month, we wrote about the first Rockchip RK3566 TV box we had seen so far with a new version of the H96 Max TV box running Android 11 with up to 8GB RAM. While Rockchip RK3566 processor has multimedia capabilities with 4K HDR video playback and output, it has many other interfaces such as native PCIe and SATA that would not make it as cost-effective as TV Box SoC’s like Rockchip RK3328 or Amlogic S905X4. But this does not stop companies from making TV boxes with the AIoT processor, and T95 Plus TV box offers another option, again with up to 8GB RAM.

  • Cellular IoT Discovery Kit from STMicroelectronics Contains eSIM with Bootstrap Profile for Immediate Connection

    The STMicroelectronics B-L462E-CELL1 Discovery kit brings together the critical hardware and software building blocks, including GSMA-certified embedded SIM (eSIM) to quickly develop power-conscious Cellular IoT devices that connect to the Internet through LTE-Cat M and NB-IoT networks. It is well suited for embedded developers and IoT evangelists, and affordable for OEM and mass-market customers.

  • Arduino Core mbed 2.0 supports Raspberry Pi Pico & Arduino Nano RP2040 Connect - CNX Software - Embedded Systems News

    Last week, we noted and tried the unofficial Raspberry Pi Pico Arduino Core that works on RP2040 boards, including Raspberry Pi Pico. Everything was super early to set up and the blink sample worked just fine. But Arduino recently tweeted about the Arduino Core mbed 2.0 release that adds for Raspberry Pi RP2040 boards including Arduino Nano RP2040 Connect and Raspberry Pi Pico boards. Arduino first used mbed for their Arduino Nano 33 BLE board as they didn’t have an official Arduino core for the Nordic nRF52840 Cortex-M4 microcontroller, and it appears they’ve done the same for Raspberry Pi RP2040 whose mbed implementation itself relies on the C SDK.

today's leftovers

  • The rise of online readability scrapers

    There are a new breed of services coming out that purport to make the modern web less frustrating to use in specific circumstances. But they’ve incurred the wrath of creators in doing so, and don’t address the structural issues for why we’re at this point.


    A recipe site scraper was the most recent and publicised example. Its developers claimed the tool removed superfluous paragraphs of text surrounding actual cooking instructions, based on the perception that recipe sites are mostly filler. In the social media space, “unroll” services present long Twitter threads on a single page, making them as easy to read as a blog.


    Both of these types of services address a real need people online have, for better or worse. I love reading about the history of a family recipe, but there are far more people who think the padding is only there to serve more ads. Likewise, as long as people insist on using Twitter’s threads feature instead of linking to a blog post, unroll services render them more accessible.

  • Jelmer Vernooij: The upstream ontologist

    The Debian Janitor is an automated system that commits fixes for (minor) issues in Debian packages that can be fixed by software. It gradually started proposing merges in early December. The first set of changes sent out ran lintian-brush on sid packages maintained in Git. This post is part of a series about the progress of the Janitor. The upstream ontologist is a project that extracts metadata about upstream projects in a consistent format. It does this with a combination of heuristics and reading ecosystem-specific metadata files, such as Python’s, rust’s Cargo.toml as well as e.g. scanning README files.

  • Demystifying programs that create programs, part 1: A disassembler

    People appear to enjoy the blog posts about me porting different compilers to OpenBSD. What I would like to do for the next couple of posts beginning with this one is to take a step back and de-complexify these programs. Both the D compiler and the GNU Modula-2 compiler are highly complex pieces of software. But at their core they are the exact same thing: a program that can create programs. We need not explore something so complex in order to learn how to create a program of our own that creates programs. In this series of blog posts, we will create two programs that will help us demystify programs that create programs: first, in this blog post, we will create a disassembler, or a program that reads a program and produces a higher-level representation (assembly); second, in a couple of subsequent blog posts, we will create an assembler, a program that understands that higher-level assembly language and produces a program from it.

  • Demystifying programs that create programs, part 2: Starting an assembler

    It's time to tackle the inverse of a disassembler. It will take a lot more effort than our disassembler, but I believe we are up for it. For today, let's sit down and plan our assembler and begin coding up some boilerplate at least and see how far we get.

  • Demystifying programs that create programs, part 3: Globals, passes, and error handling

    Let's continue writing our assembler. Today, I want to set up any global variables we might need and also set up error handling.

  • Demystifying programs that create programs, part 4: Parsing

    On this episode of building our Z80 assembler, we are going to learn how to parse a line of assembly into tokens. We'll need to do this so that we can figure out what that line of assembly is trying to tell us. Then we will be able to generate the correct object code for that line.

    You may have heard about concepts such as abstract syntax trees, or top-down and bottom-up parsers, or LL and LALR parsers. We are going to discuss none of that. We are instead going to take a much more direct approach: we will assume every line of assembly is its own independent universe. We can therefore parse a line and generate object code in one step. Once we have done that, we will discard the line we are currently working with, read the next line, and repeat the process.

  • LibreOffice Writer Guide 7.1 is just out!

    The LibreOffice documentation team is happy to announce the immediate availability of the Writer Guide 7.1 The book is a complete guide for advanced user the want to explore the best resources of LibreOffice Writer, the word processor of the LibreOffice suite. Covering advanced topics such as styles, illustrations, indexes and table of contents, master documents, form design, document automation and more, this guide will bring your word processing skills to a professional level. The Writer Guide 7.1 is a joint effort of Jean Weber and Kees Kriek, who reviewed and updated The LibreOffice 6.4 Writer Guide with the new features of LibreOffice 7.1, released last February. “I enjoy writing user documentation for LibreOffice because it gives me an excuse to learn about new and improved features that I might otherwise not know about. The team members are good to work with, friendly and helpful. I especially want to thank Kees Kriek for reviewing all the chapters of this book.”

  • Mozilla Firefox ends support for Amazon Fire TV, Echo Show

    According to the company, the users will no longer be able to install the app on FireTV, receive security updates, or be able to reinstall the app if they uninstall it starting on April 30.

  • Inkscape [Releases] Beta Download for Version 1.1

    Inkscape will be launching it's much-awaited 1.1 update in the coming months, but in the meantime, you can download the beta on the official website.

  • Next Open NeuroFedora meeting: 12 April 1300 UTC

    Please join us at the next regular Open NeuroFedora team meeting on Monday 12 April at 1300UTC in #fedora-neuro on IRC (Freenode). The meeting is a public meeting, and open for everyone to attend. You can join us over:

GNU: GCC, G'MIC, and Guile

  • Intel Rocket Lake Target Added To GCC 11

    While Intel is often very proactive in adding new CPU families to the open-source GCC and LLVM/Clang compilers where it tends to land a year or more in advance of the processors actually shipping, occasionally there are slipups. Today in fact the "Rocket Lake" support finally was merged into GCC 11 days ahead of that compiler release and after the CPUs were already launched at the end of March. This morning the Rocket Lake support was merged so users/developers can enjoy the likes of -march=rocketlake beginning with GCC 11 and possibly back-ported to a future GCC 10.x point release.

  • G'MIC 2.9.7 Is Released

    G'MIC is a really advanced framework for image processing. It can be used stand-alone or as a plug-in for GIMP and other image manipulation software. The latest version is a minor update to the G'MIC development branch that will eventually lead to a big 3.0 release. 2.9.7 brings better support for .webp images, a new meigen command and two bug-fixes.

  • Andy Wingo: guile's reader, in guile

    Like many language implementations that started life when you could turn on the radio and expect to hear Def Leppard, Guile has a bottom half and a top half. The bottom half is written in C and exposes a shared library and an executable, and the top half is written in the language itself (Scheme, in the case of Guile) and somehow loaded by the C code when the language implementation starts. Since 2010 or so we have been working at replacing bits written in C with bits written in Scheme. Last week's missive was about replacing the implementation of dynamic-link from using the libltdl library to using Scheme on top of a low-level dlopen wrapper. I've written about rewriting eval in Scheme, and more recently about how the road to getting the performance of C implementations in Scheme has been sometimes long. These rewrites have a quixotic aspect to them. I feel something in my gut about rightness and wrongness and I know at a base level that moving from C to Scheme is the right thing. Much of it is completely irrational and can be out of place in a lot of contexts -- like if you have a task to get done for a customer, you need to sit and think about minimal steps from here to the goal and the gut doesn't have much of a role to play in how you get there. But it's nice to have a project where you can do a thing in the way you'd like, and if it takes 10 years, that's fine.