Language Selection

English French German Italian Portuguese Spanish

Development

PipeWire and fixing the Linux Video Capture stack

Filed under
Development
Software

PipeWire has already made great strides forward in terms of improving the audio handling situation on Linux, but one of the original goals was to also bring along the video side of the house. In fact in the first few releases of Fedora Workstation where we shipped PipeWire we solely enabled it as a tool to handle screen sharing for Wayland and Flatpaks. So with PipeWire having stabilized a lot for audio now we feel the time has come to go back to the video side of PipeWire and work to improve the state-of-art for video capture handling under Linux. Wim Taymans did a presentation to our team inside Red Hat on the 30th of September talking about the current state of the world and where we need to go to move forward. I thought the information and ideas in his presentation deserved wider distribution so this blog post is building on that presentation to share it more widely and also hopefully rally the community to support us in this endeavour.

Read more

Programming Leftovers

Filed under
Development
  • Dirk Eddelbuettel: RcppArmadillo 0.10.7.0.0 on CRAN: New Upstream

    Armadillo is a powerful and expressive C++ template library for linear algebra aiming towards a good balance between speed and ease of use with a syntax deliberately close to a Matlab. RcppArmadillo integrates this library with the R environment and language–and is widely used by (currently) 912 other packages on CRAN.

    This new release brings us Armadillo 10.7.0 released this morning by Conrad. Leading up to this were three runs of reverse dependencies the first of which uncovered the need for a small PR for subview_cols support which Conrad kindly supplied.

  • PoCL 1.8 OpenCL Implementation Coming With LLVM 13 Support, Better SPIR-V On CUDA

    PoCL is the open-source project implementing OpenCL for CPU-based execution as well as multi-device support by getting its Portable Computing Language implementation working atop NVIDIA GPUs via CUDA, AMD GPUs via HSA, and other experimental implementations through leveraging LLVM/Clang.

  • Arm Begins Adding Armv9 Support To The GNU Compiler Toolchain

    Arm engineers have begun landing their Armv9 enablement work in the GNU compiler toolchain.

    Yesterday brought the initial Armv9 commits to GNU Binutils. This included adding armv9-a to -march for the GNU Assembler as well as for GAS adding the Cortex-X2, Cotex-A510, and Cortex-A710.

  • Awesome Python Video Tutorials Keep You Motivated | Hackaday

    Programming languages are one of those topics that we geeks have some very strong and often rather polarised opinions about. As new concepts in computing are dreamt up, older languages may grow new features, if viable, or get left behind when new upstarts come along and shake things up a bit. This scribe can remember his early days programming embedded systems, and the arguments that ensued when someone came along with a project that required embedded C++ or worse, Java, when we were mostly diehard C programmers. Fast forward a decade or two, and things are way more complicated. So much choice, so much opinion.

  • 8 reasons why I learned Core Java | Opensource.com

    Computer programming, also known as coding for short, is not about which language you use. It's about developing programming logic and learning to think like a programmer. The language you start with should be the one that helps you the most in this endeavor. So you have to ask yourself the question: "What do you want to do as a programmer?"

    For example, if you want to work on Android app development, video game development, desktop GUI applications, or just general software development, I think learning Java is an excellent option. It's the language I chose, and it has made a whole world of programming available to me. In India, where I live, the average salary of a Java programmer is around 5.9 Lakhs per Annum (LPA) (it can be as high as 10 LPA, depending on your experience.)

    Java is a vast language, though, with lots of frameworks and variants to choose from. Core Java is the term the tech industry has developed to refer to the central components of the Java language—the thing that people use to write the frameworks and has developed the cottage industry around Java. I believe that Core Java is one of the most powerful skills you can acquire because understanding the basics of Java gives you a significant advantage when learning all of the related tools built on top of it.

Programming Leftovers

Filed under
Development
  • Common mistakes when using libcurl

    I’ve been traveling this road for a while. Here’s my collection of 15 of the most common mistakes and issues people will run into when writing applications and services that use libcurl. I’ve also done recorded presentations on this topic that you can watch if you prefer that medium.

  • Things unlearned

    This post is part of a series, starting at Reflections on a decade of coding.

    This is one of my favorite questions to ask people: what are some things that you used to strongly believe but have now changed your mind about?

    I want to focus especially on ideas that I wasted a lot of time on, or that got in the way of success.

  • Fun with glibc and the ctype.h functions

    I got really bored tonight and went down some rabbit holes and turned up something from about a year ago. If you follow the latest Linux type stuff, you probably remember this, but if not, this might seem new to you. It's just something dumb and amusing.

  • CHERI Software Release for Summer 2021

    The CHERI protection model provides architectural primitives to protect computer systems from widely-exploited security vulnerabilities. CHERI revises the hardware/software architectural interface with hardware support for capabilities that can be used for fine-grained memory protection and scalable software compartmentalization. Supported by DARPA (the US Defense Advanced Research Projects agency) as well as UKRI (UK Research and Innovation) and its Digital Security by Design (DSbD) program, CHERI is the work of a large research team at the University of Cambridge, SRI International, Arm and many industrial and academic collaborators throughout the world.

  • Understanding AWK

    It turns out Awk is pretty simple. It has only a couple of conventions and only a small amount of syntax. As a result, it’s straightforward to learn, and once you understand it, it will come in handy more often than you’d think.

    So in this article, I will teach myself, and you, the basics of Awk. If you read through the article and maybe even try an example or two, you should have no problem writing Awk scripts by the end of it. And you probably don’t even need to install anything because Awk is everywhere.

A tale of two toolchains and glibc

Filed under
Development

Over the past few years, the LLVM toolchain has seen increasing development and adoption alongside the older, more established GNU toolchain. The emergence of this new two major toolchain world is bringing challenges and questions for projects that need to support both, in particular the GNU C library (glibc), which only supports GCC.

Is it worth it to fix glibc (and other projects which support only GCC) to build with LLVM? Is it better to just replace them with alternatives already supporting LLVM? Is it best to use both GCC and LLVM, each for their respective supported projects?

This post is an exploration starting from these questions but does not attempt to give any definite answers. The intent here is to not be divisive and controversial, but to raise awareness by describing parts of the current status-quo and to encourage collaboration. The obvious elephant in the room, licensing, is left out despite being a very important topic.

Read more

Also: Ratiu: A tale of two toolchains and glibc

Programming Leftovers

Filed under
Development
  • FreeAptitude - Playing with D-Bus and KDE applications (Part 1)

    Speaking about the several ways that a Linux system offers to users to create custom automation, there is a software technology that hides under the hoods of modern desktop environments,

  • prctl in C example Usage

    The prctl system call has been used in the C language to manipulate diverse characteristics of the calling function or process activities. The first parameter of the “prctl” system call defines what has to be done with the initialised values in header. All the other arguments or parameters would be used as per the first argument and its worth. Let’s take a deep glance at the “prctl” system call in C while we have been working on the Ubuntu 20.04 at the time of implementing this article.

  • The basics of PyQt5

    PyQt5 is a python module for GUI desktop application development. It’s available for multiple platforms such as Windows, Mac, Linux, iOS, and Android. Python offers several modules that are, in fact, capable of GUI development, such as Tkinter, wxPython, PySide2, and more. However, PyQt5 utilizes more than 1000 classes; in fact, PyQt5 is a huge module! Moreover, PyQt5 includes a Qt Designer, a graphical user interface designer, which further facilitates GUI creation. It can be used to create anything from media players to web browsers. In this tutorial, we will learn the basics of the PyQt5 module.

  • This Week In Rust: This Week in Rust 410
  • Ampere Altra Max 128-Core CPU Is Priced Lower Than Flagship Xeon, EPYC CPUs - Phoronix

    From our Ampere Altra Max M128-30 Linux performance preview earlier this week, one of the questions a number of readers were wondering about and a question I also still had open was on the Altra Max pricing... I've now received the current price list and actually comes in much lower than expected for a 128-core CPU in 2021.

Qt Releases

Filed under
Development

Thibault Saunier: GStreamer: one repository to rule them all

Filed under
Development

For the last years, the GStreamer community has been analysing and discussing the idea of merging all the modules into one single repository. Since all the official modules are released in sync and the code evolves simultaneously between those repositories, having the code split was a burden and several core GStreamer developers believed that it was worth making the effort to consolidate them into a single repository. As announced a while back this is now effective and this post is about explaining the technical choices and implications of that change.

You can also check out our Monorepo FAQ for a list of questions and answers.

[...]

Since we can not create new merge requests in your name on gitlab, we wrote a move_mrs_to_monorepo script that you can run yourself. The script is located in the gstreamer repository and you can start moving all your pending MRs by simply calling it (scripts/move_mrs_to_monorepo.py and follow the instructions).

Read more

Raspberry Pi Pico Makes For Expeditious Input Device

Filed under
Development
Hardware

With its copious number of GPIO pins and native USB, the Raspberry Pi Pico is arguably the ideal microcontroller for developing your own platform agnostic USB Human Input Devices. But you don’t have to take our word for it. Check out how quickly the $4 USD board allowed [Alberto Nunez] to put together a pair of foot pedals for his computer.

Read more

Programming Leftovers

Filed under
Development
  • JavaScript has utterly ruined the web, so why does Brendan Eich get congratulated? Bonus: Gemini rising.

    For some years now, the web has been getting fatter and fatter. You’d be hard pressed to find anyone who thinks it’s doing much more for the user than it did 20 years ago (except maybe for native media codecs instead of Adobe Flash). Overall, it’s turned into less of a decentralized and open domain for the free exchange of ideas and code and people’s web logs, and more into a corporate shithole of Google, Facebook, and Cloudflare.

    In Richard Stallman’s “The JavaScript Trap” essay, he wrote that “web apps” are a danger to computer users because they encourage the use of non-Free software when the user doesn’t consider the problem. That they are applications, that they are written in ways that obscure how they work, that they are copyrighted and proprietary, and…even worse, they run on someone else’s computer, and they can stop you from using them at all after you need them, and spy on you.

    I’ve never, personally, seen anything dumber than an office suite you have to be online to use, and apparently enough people agreed with me even if they won’t just switch to LibreOffice, that Microsoft backpeddled from their previous position that there would be no more desktop program, and announced new versions of the desktop Microsoft Office.

    In fact, Microsoft’s office programs today are a huge regression over even their own products 20 or 30 years ago, when there was no annoying product activator and this web app nonsense that requires you to be online to edit a document, and then be “encouraged” to save them all to your OneDrive account where the government has access to everything. Also, Microsoft is the second largest advertising network on the internet after Google, and now they can parse anything you’re stupid enough to save on their cloud. (Plus, if you want to use MS Office 95 forever because reasons, Wine runs it just fine.)

  • Godot Engine - Release candidate: Godot 3.3.4 RC 1

    While we're busy working on both the upcoming Godot 4.0 and 3.4 releases (with a dev snapshot for 3.4 beta 5 available now), we still cherry-pick important bug fixes to the 3.3 branch regularly for maintenance releases (see our release policy).

    Godot 3.3.3 was released a month ago, and a handful of important fixes have been queued in the 3.3 branch since then. Most notably, users of the GDScript LSP in Visual Studio Code have been experiencing crashes in 3.3.3, which are fixed in this new Godot 3.3.4 RC 1.

    Note: Version numbers can be confusing with three branches worked on in parallel - this release is 3.3.4, i.e. a maintenance update to the 3.3 branch. This is not the upcoming 3.4 feature release.

    As there is no new feature and only bug fixes, this RC 1 should be as stable as 3.3.3-stable and can be used in production if you need one of the fixes it includes.

    As usual, you can try it live with the online version of the Godot editor updated for this release.

  • An introduction to monitoring using the ELK Stack

    If you need centralized, comprehensive monitoring, putting Elasticsearch, Logstash, and Kibana together can be a useful combination.

  • Web::PageMeta - a mixed sync/async lazy Perl Moose HTTP-GET module | Jozef [blogs.perl.org]

    Announcing here Web::PageMeta which is lazy build-ed HTTP-GET and web-scrape-data module able to work both in classic code and also to behave non-blocking in async code. More info on my blog or on CPAN or on GitHub.

  • The new MoarVM dispatch mechanism is here! | 6guts

    Around 18 months ago, I set about working on the largest set of architectural changes that Raku runtime MoarVM has seen since its inception. The work was most directly triggered by the realization that we had no good way to fix a certain semantic bug in dispatch without either causing huge performance impacts across the board or increasingly complexity even further in optimizations that were already riding their luck. However, the need for something like this had been apparent for a while: a persistent struggle to optimize certain Raku language features, the pain of a bunch of performance mechanisms that were all solving the same kind of problem but each for a specific situation, and a sense that, with everything learned since I founded MoarVM, it was possible to do better.

    The result is the development of a new generalized dispatch mechanism. An overview can be found in my Raku Conference talk about it (slides, video); in short, it gives us a far more uniform architecture for all kinds of dispatch, allowing us to deliver better performance on a range of language features that have thus far been glacial, as well as opening up opportunities for new optimizations.

    Today, this work has been merged, along with the matching changes in NQP (the Raku subset we use for bootstrapping and to implement the compiler) and Rakudo (the full Raku compiler and standard library implementation). This means that it will ship in the October 2021 releases.

  • 10 Very Stupid Linux Ideas

    If you are reading this page then you are like all of us a Linux fan, also you are using the command line every day and absolutely love Linux. But even in love and marriage there are things that make you just a little bit annoyed. Here in this article we are going to show you some of the most stupid Linux commands that a person can find.

  • Infinite loop ssh (Using echo, sleep, ssh)
  • Infinite loop ssh
  • 8 Useful and Interesting Bash Prompts

    Many people don’t think of the command line prompt as a useful element, or even pay it much attention. However, a useful prompt can change the way you use the command line, and by extension, your system. This article shows you a number of useful and interesting Bash prompts with examples. Note that we begin with the prompts themselves, then offer some further instructions on how to work with them.

    Here we offer a few Bash prompts, and not all will be serious. For example, our first entry on the list could bring a little joy to you when using the command line!

  • Mozilla Attack & Defense: Fixing a Security Bug by Changing a Function Signature

    This post is aimed at people who are developers but who do not know C or low-level details about things like sign extension. In other words, if you’re a seasoned pro and you eat memory safety vulnerabilities for lunch, then this will all be familiar territory for you; our goal here is to dive deep into how integer overflows can happen in real code, and to break the topic down in detail for people who aren’t as familiar with this aspect of security.

  • diziet | Rust for the Polyglot Programmer

    Rust is definitely in the news. I'm definitely on the bandwagon. (To me it feels like I've been wanting something like Rust for many years.) There're a huge number of intro tutorials, and of course there's the Rust Book.

    A friend observed to me, though, that while there's a lot of "write your first simple Rust program" there's a dearth of material aimed at the programmer who already knows a dozen diverse languages, and is familiar with computer architecture, basic type theory, and so on. Or indeed, for the impatient and confident reader more generally. I thought I would have a go.

Python modules in Calamares

Filed under
Development
KDE
Software

Calamares is a distro- and desktop-agnostic installer for Linux distributions. Dozens of distributions, medium and small, use Calamares every day for getting the distro from an ISO image onto the computers of their users. There have been three Calamares releases in the past seven days: release, hotfix and another hotfix. That’s embarrassing, and annoying for the distributions that pick up the latest release on their rolling ISO images. There is one specific cause of this gaggle of releases: Python

Calamares is built to be extensible. There are about 60 modules in the core distribution, another dozen in an -extensions repository, and distributions have their own collections of modules as well. Some modules are written in C++, some are written in Python.

The Python modules are there because it’s easy to write some Python, it’s a nice language, and the requirements for many modules are quite straightforward: read a file, write a file, run some command in the target system. Distributions can also easily contribute to the codebase, because there’s more Python programmers than C++ programmers out there (at least in the making-a-distro scene).

Read more

Syndicate content