Language Selection

English French German Italian Portuguese Spanish

Programming Leftovers

Filed under
Development
  • Bash alias to output the current Swatch Internet Time
  • Text filter in Linux - Linux Concept

    Normally, shell scripting involves report generation, which will include processing various text files and filtering their output to finally produce the desired results. Let’s start discussing the two Linux commands, namely more and less:

    more: Sometimes we get a very large output on the screen for certain commands, which cannot be viewed completely in one screen. In such cases, we can use the more command to view the output text one page at a time.

  • The 2021 Python Language Summit

    Every year, a small group of core developers from Python implementations such as CPython, PyPy, Jython, and more come together to share information, discuss problems, and seek consensus in order to help Python continue to flourish.

    The Python Language Summit features short presentations followed by group discussions. The topics can relate to the language itself, the standard library, the development process, documentation, packaging, and more! In 2021, the summit was held over two days by videoconference and was led by Mariatta Wijaya and Łukasz Langa.

  • Reports from the 2021 Python Language Summit

    Over on the Python Software Foundation blog, the reports from day 1 of the Python Language Summit are available. At the time of this writing, a few from day 2 are ready as well.

  • Jussi Pakkanen: Managing dependencies with Meson + WrapDB

    A recent blog post talked about how to build and manage dependencies with CMake and FetchContent. The example that they used was a simple GUI application using the SFML multimedia libraries and the Dear ImGui widget toolkit using the corresponding wrapper library. For comparison let's do the same with Meson.

    [...]

    In Meson every subproject is compiled in its own isolated sandbox. They can only communicate in specific, well defined and secured channels. This makes it easy to generate projects that can be built from source on Windows/macOS/Android/etc and which use system dependencies on Linux transparently. This equals less hassle for everyone involved.

  • Docker introduces developer environments in containers

    Virtual DockerCon kicked off today, at which the company introduced Docker Development Environments, calling them "the foundation of Docker's new collaborative team development experience."

    In the past Docker containers have been mainly for deployment of applications, but the Docker Development Environment extends that to... (you guessed it) development as well.

  • Indie developers created an easier way to try out Fuchsia OS on your computer

    Google officially released their Fuchsia OS earlier this week, starting by rolling it out to some owners of the original Nest Hub. Now, a group of indie developers have created a simpler way of trying out Fuchsia on your own computer.

    From the very beginning, Fuchsia OS has been developed in the open, meaning it’s possible to download the code yourself, build it on your computer, then run it on a compatible device such as the Google Pixelbook or in an emulator. While this is an achievable task — and one we’ve undertaken on more than one occasion — it creates a massive barrier to entry for those who want to get a taste of what Fuchsia OS is all about.

  • Wouter Verhelst: SReview and pandemics

    The pandemic was a bit of a mess for most FLOSS conferences. The two conferences that I help organize -- FOSDEM and DebConf -- are no exception. In both conferences, I do essentially the same work: as a member of both video teams, I manage the postprocessing of the video recordings of all the talks that happened at the respective conference(s). I do this by way of SReview, the online video review and transcode system that I wrote, which essentially crowdsources the manual work that needs to be done, and automates as much as possible of the workflow.

    The original version of SReview consisted of a database, a (very basic) Mojolicious-based webinterface, and a bunch of perl scripts which would build and execute ffmpeg command lines using string interpolation. As a quick hack that I needed to get working while writing it in my spare time in half a year, that approach was workable and resulted in successful postprocessing after FOSDEM 2017, and a significant improvement in time from the previous years. However, I did not end development with that, and since then I've replaced the string interpolation by an object oriented API for generating ffmpeg command lines, as well as modularized the webinterface. Additionally, I've had help reworking the user interface into a system that is somewhat easier to use than my original interface, and have slowly but surely added more features to the system so as to make it more flexible, as well as support more types of environments for the system to run in.

  • New in Qt 6.1: std::hash Support for QHash

    In the previous blog post of this series, we discussed KDToolBox::QtHasher, a helper class that allows us to use unordered associative containers datatypes which have a qHash() overload but not a std::hash specialization. The majority of Qt value classes indeed are lacking such a specialization, even if they do provide a qHash() overload.

    For our datatypes, having to provide both qHash and std::hash (if you want to store them in either QHash/QSet or std::unordered_map/set without the need of a customer hasher) is…mildly annoying. In a project, I’ve even resorted to using a macro to implement one function in terms of the other one.

    This consideration led me to ask myself, “why can’t QHash itself support std::hash directly?” This would allow me to implement just one hashing function, and not two. Cherry on top: it would allow us to use QHash/QSet datatypes that only offer std::hash and not qHash, such as the ones coming from the Standard Library! (You may want to read here about why it’s actually impossible to reliably add a qHash overload for them.)

  • [Development] New Qt Multimedia

    After 5 months of work, I am now preparing to merge the new API and implementation for Qt Multimedia back into the development branch.

    You can find the first iteration of a merge commit here: https://codereview.qt-project.org/c/qt/qtmultimedia/+/351108

    With this, Qt Multimedia is probably the module that is changing most between Qt 5 and Qt 6. The reason for that is that we had large issues maintaining Qt Multimedia during the Qt 5 lifetime, and never really got to a point where it offered a consistent experience across all platforms.

    The hope is that we can change that for Qt 6. To make this possible, we have changed not only parts of the public API, but completely redone its internal architecture, especially how multimedia connects to the platform specific backends. Apart from cleaning up the backend API and greatly simplifying it, I also chose to make it private and remove the plugin architecture around it. The backend is now selected at compile time, and we’re now only supporting one backend per platform.

    The architectural cleanup lead to huge simplifications in the code base. The module went from 140k LOC in 5.15 to 73k LOC in Qt 6, while keeping 90% of the functionality we had in 5.15 and adding a few things that were missing there. This should make it significantly easier to maintain and further develop the module over the lifetime of Qt 6.

  • Qt Multimedia Prepares For Qt 6 With Rewritten GStreamer Backend, Other Big Changes

    Qt Multimedia should return for Qt 6.2's release later this year and is perhaps the module changing the most in its transition from Qt5 to Qt6.

    Qt Multimedia has been one of the many missing modules currently from Qt 6.0~6.1 while not only has it been ported to Qt 6 now but has been seeing some radical improvements.

  • Daniel Stenberg: QUIC is RFC 9000

    The official publication date of the relevant QUIC specifications is: May 27, 2021.

    I’ve done many presentations about HTTP and related technologies over the years. HTTP/2 had only just shipped when the QUIC working group had been formed in the IETF and I started to mention and describe what was being done there.

    [...]

    I initially wanted to keep up closely with the working group and follow what happened and participate on the meetings and interims etc. It turned out to be too difficult for me to do that so I had to lower my ambitions and I’ve mostly had a casual observing role. I just couldn’t muster the energy and spend the time necessary to do it properly.

    I’ve participated in many of the meetings, I’ve been present in the QUIC implementers slack, I’ve followed lots of design and architectural discussions on the mailing list and in GitHub issues. I’ve worked on implementing support for QUIC and h3 in curl and thanks to that helped out iron issues and glitches in various implementations, but the now published RFCs have virtually no traces of me or my feedback in them.

More in Tux Machines

digiKam 7.7.0 is released

After three months of active maintenance and another bug triage, the digiKam team is proud to present version 7.7.0 of its open source digital photo manager. See below the list of most important features coming with this release. Read more

Dilution and Misuse of the "Linux" Brand

Samsung, Red Hat to Work on Linux Drivers for Future Tech

The metaverse is expected to uproot system design as we know it, and Samsung is one of many hardware vendors re-imagining data center infrastructure in preparation for a parallel 3D world. Samsung is working on new memory technologies that provide faster bandwidth inside hardware for data to travel between CPUs, storage and other computing resources. The company also announced it was partnering with Red Hat to ensure these technologies have Linux compatibility. Read more

today's howtos

  • How to install go1.19beta on Ubuntu 22.04 – NextGenTips

    In this tutorial, we are going to explore how to install go on Ubuntu 22.04 Golang is an open-source programming language that is easy to learn and use. It is built-in concurrency and has a robust standard library. It is reliable, builds fast, and efficient software that scales fast. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel-type systems enable flexible and modular program constructions. Go compiles quickly to machine code and has the convenience of garbage collection and the power of run-time reflection. In this guide, we are going to learn how to install golang 1.19beta on Ubuntu 22.04. Go 1.19beta1 is not yet released. There is so much work in progress with all the documentation.

  • molecule test: failed to connect to bus in systemd container - openQA bites

    Ansible Molecule is a project to help you test your ansible roles. I’m using molecule for automatically testing the ansible roles of geekoops.

  • How To Install MongoDB on AlmaLinux 9 - idroot

    In this tutorial, we will show you how to install MongoDB on AlmaLinux 9. For those of you who didn’t know, MongoDB is a high-performance, highly scalable document-oriented NoSQL database. Unlike in SQL databases where data is stored in rows and columns inside tables, in MongoDB, data is structured in JSON-like format inside records which are referred to as documents. The open-source attribute of MongoDB as a database software makes it an ideal candidate for almost any database-related project. This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo‘ to the commands to get root privileges. I will show you the step-by-step installation of the MongoDB NoSQL database on AlmaLinux 9. You can follow the same instructions for CentOS and Rocky Linux.

  • An introduction (and how-to) to Plugin Loader for the Steam Deck. - Invidious
  • Self-host a Ghost Blog With Traefik

    Ghost is a very popular open-source content management system. Started as an alternative to WordPress and it went on to become an alternative to Substack by focusing on membership and newsletter. The creators of Ghost offer managed Pro hosting but it may not fit everyone's budget. Alternatively, you can self-host it on your own cloud servers. On Linux handbook, we already have a guide on deploying Ghost with Docker in a reverse proxy setup. Instead of Ngnix reverse proxy, you can also use another software called Traefik with Docker. It is a popular open-source cloud-native application proxy, API Gateway, Edge-router, and more. I use Traefik to secure my websites using an SSL certificate obtained from Let's Encrypt. Once deployed, Traefik can automatically manage your certificates and their renewals. In this tutorial, I'll share the necessary steps for deploying a Ghost blog with Docker and Traefik.