Language Selection

English French German Italian Portuguese Spanish

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

Development, Standards, Simplicity and More

Filed under
Development
  • Jon Chiappetta: Trying to live a simpler life

    Since I have been working from home during this fall/winter season up north, in the woods, I also setup a mini-network here with a nice: 802.11ac tri-band POE-AP, Netgear gigabit-ethernet POE-SWITCH, and the famous TP-LINK archer C7-V5 OpenWRT router/firewall. These all make for a great, stable, and reliable home network configuration when used together!

  • Gopher, The Competing Standard To WWW In The ’90s Is Still Worth Checking Out | Hackaday

    he 30th anniversary of the World Wide Web passed earlier this year. Naturally, this milestone was met with truckloads of nerdy fanfare and pining for those simpler times. In three decades, the Web has evolved from a promising niche experiment to being an irreplaceable component of global discourse. For all its many faults, the Web has become all but essential for billions around the world, and isn’t going anywhere soon.

    As the mainstream media lauded the immense success for the Web, another Internet information system also celebrated thirty years – Gopher. A forgotten heavyweight of the early Internet, the popularity of Gopher plummeted during the late 90s, and nearly disappeared entirely. Thankfully, like its plucky namesake, Gopher continued to tunnel across the Internet well into the 21st century, supported by a passionate community and with an increasing number of servers coming online.

  • /dev/random: Software obsoleting faster than Hardware

    This was not an one-off situation either. We had multiple customers with years of uptime. In one of the academic institutes, the uptime was well into decades, that multiple sysadmins changed, but the netware box tirelessly worked on. At some point of time, nobody knew where the server was physically located, as nobody looked at it as everything worked fine.

    In almost all the cases, the hardware failed before the software. The software was engineered so well that it would have run forever on superior hardware (albeit not so efficiently capable of using the modern hardware in its true potential). Those days, even the hardware was built to last for decades. It was the good old times before the planned obsolescence.

    Fast forward to today, 2021. I have a Redmi 4 android phone, built by the mass manufacturer Xiaomi. I bought it on May 30th 2017 and still use it everyday. I always purchase things for long-term. I believe in BuyItForLife principles. I maintain my hardware properly (Fully discharge and then recharge, handle with care etc.). Even my prior phone, a Motorola E398 lasted me a about a decade, before the charger gave up.

  • Picolibc Continues Maturing As Very Lightweight C Library For The Embedded World

    While Keith Packard is known for his work on X11/X.Org, the past few years he has also been developing Picolibc as a C library intended for embedded systems. He also recently jumped from SiFive to Amazon and appears at the ecommerce giant to be working on Picolibc in an official capacity, presumably for use on Amazon's growing hardware devices.

    Keith packard presented virtually yesterday for the Linux Foundation's Open-Source Summit North America on Picolibc in an Amazon capacity. Picolibc 1.0 released back in 2019 and we've covered it a few times since while this was the first status update we've heard on the project for 2021.

  • Heatshrink - An ultra-lightweight compression library for embedded systems - CNX Software

    When I wrote about Bangle.js 2 JavaScript smartwatch yesterday, I noticed they used “Heatshrink compression” in ESPruino firmware. I can’t remember ever reading about Heatshrink before, and indeed there are no results while searching on CNX Software.

    Heatshrink is an open-source data compression library designed for resources-constrained embedded systems that works with as little as 50 bytes of RAM. That’s impressive, so let’s investigate.

  • Vulkan 1.2.194 Brings New Extension For Google's Fuchsia OS - Phoronix

    Vulkan 1.2.194 is out as the latest spec revision to this high performance graphics and compute API.

    Vulkan 1.2.194 comes with the usual assortment of documentation fixes/clarifications collected over the past week. Plus there is one new extension.

  • CISA and NSA Release Guidance on Selecting and Hardening VPNs [Ed: This must be satire because when NSA touches such things it adds back doors to them]

    The National Security Agency (NSA) and CISA have released the cybersecurity information sheet Selecting and Hardening Standards-based Remote Access VPN Solutions to address the potential security risks associated with using Virtual Private Networks (VPNs). Remote-access VPN servers allow off-site users to tunnel into protected networks, making these entry points vulnerable to exploitation by malicious cyber actors.

Programming Leftovers

Filed under
Development
  • The Rust Programming Language Blog: Core team membership updates

    The Rust Core team is excited to announce the first of a series of changes to its structure we’ve been planning for 2021, starting today by adding several new members.

    Originally, the Core team was composed of the leads from each Rust team. However, as Rust has grown, this has long stopped being true; most members of the Core team are not team leads in the project. In part, this is because Core’s duties have evolved significantly away from the original technical focus. Today, we see the Core team’s purpose as enabling, amplifying, and supporting the excellent work of every Rust team. Notably, this included setting up and launching the Rust Foundation.

  • How to Insert in the Front Index List in Python

    In this tutorial, we are going to see how we can insert an element at the front of the list in Python. In addition, we will only use the integer concepts to be easy to understand, and other data types will be similar, as shown in this article.

  • Rakudo Weekly News: 2021.39 Programming Haku

    Wim Vanderbauwhede introduces Haku, a Japanese programming language. It shows a very interesting example of how you can use grammars of the Raku Programming Language to create your own programming language (see introduction). This caused quite a discussion on Hacker News and some on /r/rakulang.

Developers: Let distros do their job

Filed under
Development
GNU
Linux

I wrote a post some time ago titled Developers shouldn’t distribute their own software, and after a discussion on the sr.ht IRC channel today, the topic seems worthy of renewed mention. Let’s start with this: what exactly is a software distribution, anyway?

I use “software distribution” here, rather than “Linux distribution”, because it generalizes better. For example, all of the major BSD systems, plus Illumos and others besides, are software distributions, but don’t involve Linux. Some differ further still, sitting on top of another operating system, such as Nix or pkgsrc. What these systems all have in common is that they concern themselves with the distribution of software, and thus are a software distribution.

An important trait of these systems is that they function independently of the development of the software they distribute, and are overseen by a third party. For the purpose of this discussion, I will rule out package repositories which are not curated by the third-party in question, such as npm or PyPI. It is no coincidence that such repositories often end up distributing malware.

Software distributions are often volunteer-run and represent the interests of the users; in a sense they are a kind of union of users. They handle building your software for their system, and come to the table with domain-specific knowledge about the concerns of the platform that they’re working with. There are hundreds of Linux distros and each does things differently — the package maintainers are the experts who save you the burden of learning how all of them work. Instead of cramming all of your files into /opt, they will carefully sort it into the right place, make sure all of your dependencies are sorted upon installation, and make the installation of your software a single command (or click) away.

Read more

Programming Leftovers

Filed under
Development
  • Ravgeet Dhillon: Build a Tip Calculator App in Flutter

    In this tutorial, you’ll create a Tip Calculator app and learn some of the basics of developing a Flutter app. The app will let the user input - Bill Amount and Tip Percentage. Based on these values, it will calculate Tip Amount and Total Amount.

  • Book Review: Cross-Platform Development with Qt 6 and Modern C++

    I recently received a review copy of the Cross-Platform Development with Qt 6 and Modern C++ by Nibedit Dey available from Packt. I find it interesting to read books on Qt in the midst of a major version shift, as many of the underpinnings of Qt are revisited and updated by the development teams.

    In his book, Nibedit balances between the newer technologies used, e.g. CMake, function reference based signals and slots, etc while referring back to Qt 5 (and even Qt 4) practices such as QMake, the SIGNAL and SLOT macros, and more. This gives a good context to the reader, which is good for the reader, as older practices still are used in older Qt-based codebases.

    The book is divided into blocks with increasing depth and complexity. This makes it a good read for the beginner, as well as the more experienced used of Qt. Either you start from the beginning and get introduced to both widgets and QML, or you can dive straight into the more advanced topics such as the model-view concepts.

  • SReview::Video is now Media::Convert

    SReview, the video review and transcode tool that I originally wrote for FOSDEM 2017 but which has since been used for debconfs and minidebconfs as well, has long had a sizeable component for inspecting media files with ffprobe, and generating ffmpeg command lines to convert media files from one format to another.

    This component, SReview::Video (plus a number of supporting modules), is really not tied very much to the SReview webinterface or the transcoding backend. That is, the webinterface and the transcoding backend obviously use the ffmpeg handling library, but they don't provide any services that SReview::Video could not live without. It did use the configuration API that I wrote for SReview, but disentangling that turned out to be very easy.

What’s up with Sandboxing?

Filed under
OS
Development
Gadgets

In February 2021 we released Sailfish OS 4.0.1 Koli, which introduced a new concept into the OS: Application sandboxing. For the device user, the sandboxing is mostly visible in the permissions dialogs, displayed when a sandboxed app is run for the first time. In this blog post, I’ll dig into the current status, our plans for the future, and what this all means for application developers.

In case you haven’t heard about sandboxing in the context of Sailfish OS before, here’s a short primer: the purpose of sandboxing is to improve user privacy, by limiting what applications can do. This is done using a security technology in the Linux kernel called namespaces. This is a lightweight but effective mechanism, which lets us define quite nicely which resources each app can use. All in all, the end result is that the device user is in charge of what resources each app can access.

Read more

Open Hardware/Modding Projects

Filed under
Development
Hardware
  • ANAVI Gardening uHAT adds soil and other sensors to Raspberry Pi (Crowdfunding) - CNX Software

    We’ve been covering and reviewing ANAVI open-source hardware boards for several years now, either standalone boards based on ESP8266, or add-on boards for Raspberry Pi.

    The ANAVI Gardening uHAT is the latest board from Leon Anavi. It is a micro HAT designed for Raspberry Pi Zero to Raspberry Pi 4 SBCs that offers interfaces for soil sensors and other environmental sensors allowing measurements of soil moisture, atmospheric pressure and humidity, temperature with a waterproof sensor, and light intensity for gardening applications.

  • ZB-GW03 ESP32-based Ethernet Zigbee gateway works with Tasmota firmware - CNX Software

    ZB-GW03 is an Ethernet Zigbee Gateway compatible with eWelink mobile app and with a design similar to SONOFF ZBBridge gateway but replacing ESP8266 SoC by ESP32 SoC, and adding an Ethernet port.

    The ZB-GW03 gateway is apparently based on the same Silicon Labs EFR32MG21 Zigbee Arm Cortex-M33 chip and has been hacked to run Tasmota open-source software for people preferring more flexibility and/or integration with OpenHAB or Home Assistant open-source home automation frameworks via Zigbee2MQTT.

  • Arduino Orchestra Plays The Planets Suite | Hackaday

    We’ve seen a great many Arduino synthesizer projects over the years. We love to see a single Arduino bleeping out some monophonic notes. From there, many hackers catch the bug and the sky is truly the limit. [Kevin] is one such hacker who now has an Arduino orchestra capable of playing all seven movements of Gustav Holst’s Planets Suite.

    The performers are not human beings with expensive instruments, but simple microcontrollers running code hewn by [Kevin’s] own fingertips. The full orchestra consists of 11 Arduino Nanos, 6 Arduino Unos, 1 Arduino Pro Mini, 1 Adafruit Feather 32u4, and finally, a Raspberry Pi.

  • 3D Printed Research Robotics Platform Runs Remotely | Hackaday

    By patching Ubuntu Linux, and enabling preemptive multitasking for real-time scheduling, as well as carefully selecting Wi-Fi drivers, it was possible to get raw packets out to robot in about 1 ms, enabling control loop bandwidths of around 1 Khz. And, that, was fast enough to run at least sixteen motors in parallel.

  • Automated Window Blinds Using MQTT And Home Assistant | Hackaday

    Finnish software engineer [Toni] is on a quest to modernize his 1991 house, and his latest project was to automate the window blinds and control them using Home Assistant. Unless your blinds have built-in motors, most of the effort of such a project centers around how to integrate and attach the motor — and as [Toni] points out, there are tons of different blinds with all kinds of operating mechanisms. But once you solve that issue, half the battle is over.

    These particular blinds require less than one turn of the control rod to go from fully open to fully closed, and [Toni] selects a 270-degree range-of-motion, 20 kg*cm torque servo motor to drive them. He really wanted to install the motor inside the window, but it just wouldn’t fit. Instead, each servo motor is mounted in a custom 3D-printed case installed on the window frame just below the operating rod. An ESP8266-based controller box is installed above the window, hidden behind curtains, and operates all three servos.

Syndicate content