news
Programming Leftovers
-
Codeberg ☛ Letter from Codeberg: Onwards and upwards!
(This is a stripped-down version of the newsletter sent out to Codeberg e. V. members as an email. The version emailed to our members contains some additional details concerning the association's Annual Assembly. If you are interested in helping us shape Codeberg, consider contributing or participating our non-profit association! Strength comes in numbers; we could always use your support!)
Dear Codeberg e.V. members and supporters!
It's time to share some news about what has happened in the past months around Codeberg.
-
Sandor Dargo ☛ Time in C++: Understanding and the Concept of Clocks
As I’ve shared many times during the past eight years, the main goal of this blog is to document what I learn — hence this new series on clocks and time.
In this first part, I’ll set the stage for the whole series, which is aimed at C++ developers who’ve used std::chrono but never really thought deeply about what a clock is.
-
PHP ☛ PHP: PHP 8.5 Release Announcement
The pipe operator allows chaining function calls together without dealing with intermediary variables. This enables replacing many "nested calls" with a chain that can be read forwards, rather than inside-out.
-
XKCD ☛ 2347: Dependency
Technology architecture is often illustrated by a stack diagram, in which higher levels of rectangles indicate components that are dependent on components in lower levels. This is analogous to a physical tower of blocks, in which higher blocks rest on lower blocks. The stack in this cartoon bears a striking resemblance to a physical block tower, suggesting the danger that the tower will lose its balance when a critical piece is removed, in this case a piece near the bottom, labeled as being maintained by a single semi-anonymous person located somewhere relatively unimportant doing it for their own unknown reasons without fame or acknowledgement. The concept of balance is not intended to be communicated by a stack diagram, making this a humorously absurd extension of a well-known diagram style.
-
Zypp - different and still the same
zypp makes sure that it not just randomly moves between repositories of different vendors. Vendors in this case can be the (open)SUSE base packages and different buildservice repositories. If you want to do it via
zypper dup --from <repoid>You get a lot of questions for “do you really want to change the vendor?”.
-
Jakub Steiner ☛ 12 months instead of 12 minutes
Hey Kids! Other than raving about GNOME.org being a static HTML, there’s one more aspect I’d like to get back to in this writing exercise called a blog post.
I’ve recently come across an apalling genAI website for a project I hold deerly so I thought I’d give a glimpse on how we used to do things in the olden days. It is probably not going to be done this way anymore in the enshittified timeline we ended up in. The two options available these days are — a quickly generated slop website or no website at all, because privately owned social control media is where it’s at.
The wanna-be-catchy title of this post comes from the fact the website underwent numerous iterations (iterations is the core principle of good design) spanning over a year before we introduced the redesign.
-
Remi Collet ☛ Remi Collet: 💎 PHP version 8.5 is released!
RC5 was GOLD, so version 8.5.0 GA was just released, at the planned date.
A great thanks to Volker Dusch, Daniel Scherzer and Pierrick Charron, our Release Managers, to all developers who have contributed to this new, long-awaited version of PHP, and to all testers of the RC versions who have allowed us to deliver a good-quality version.
-
LWN ☛ PHP 8.5.0 released
Version
8.5.0 of the PHP language has been released. Changes include a new
"|>" operator that, for some reason, makes these two lines
equivalent: [...]
-
Python
-
Juha-Matti Santala ☛ My Debugging Python talk from PyCon Finland published
This past October, I spoke in PyCon Finland about debugging Python.
Video of the talk has now been released in Plone’s Youtube channel.
-
Rlang ☛ (ICYMI) RPweave: Unified R + Python + LaTeX System using uv
If you juggle R, Python, and LaTeX for research, you know the pain: fragmented scripts, mixed environments, manual copying, and fragile reproducibility.
I needed a setup/workflow that handles both languages, any LaTeX template, environment isolation, and a command-line–first workflow — so I assembled RPweave. Not a new idea, but a polished, modern take that just works.
-
Brett Cannon ☛ The varying strictness of TypedDict
I was writing some code where I was using httpx.get() and its params parameter. I decided to use a TypedDict for the dictionary I was passing as the argument since it was for a REST API, where the potential keys were fully known. I then ran Pyrefly over my code and got an unexpected error about how "object" is not a subtype of "str". I had no object in my TypedDict, so I didn't understand what was going on. I tried Pyright and it also failed. I then tried ty and it passed! What?! I know ty takes a less strict approach to typing to support a more gradual approach, so I figured there was a strict typing thing I was doing wrong. I did some digging and I found out that a new feature of TypedDict solves the issue for me, and so I figured I would share what I learned.
-
-
Java/Golang
-
Gunnar Morling ☛ Building a Durable Execution Engine With SQLite
Now, at a high level, "durable execution" is nothing new. A scheduler running a batch job for moving purchase orders through their lifecycle? You could consider this a form of durable execution. Sending a Kafka message from one microservice to another and reacting to the response message in a callback? Also durable execution, if you squint a little. A workflow engine running a BPMN job? Implementing durable execution, before the term actually got popularized. All these approaches model multi-step business transactions—making the logical flow of the overall transaction more or less explicit—in a persistent way, ensuring that transactions progress safely and reliably and eventually complete.
-
Niko Matsakis: Move Expressions
This post explores another proposal in the space of ergonomic ref-counting that I am calling move expressions. To my mind, these are an alternative to explicit capture clauses, one that addresses many (but not all) of the goals from that design with improved ergonomics and readability.
-
-
Rust
-
Ubuntu Handbook ☛ RustDesk 1.4.4 Released with Edge Scrolling Support
RustDesk, the free open-source remote desktop application, release new 1.4.4 version few days ago. The new release of this Teamviewer or AnyDesk alternative app introduced edge scrolling support, when your app window is smaller than the remote screen size. Previously, it scrolls automatically when you move cursor around the screen.
-
Hackaday ☛ This Week In Security: Cloudflare Wasn’t DNS, BADAUDIO, And Not A Vuln
You may have noticed that large pieces of the Internet were down on Tuesday. It was a problem at Cloudflare, and for once, it wasn’t DNS. This time it was database management, combined with a safety limit that failed unsafe when exceeded.
-