news
Programming Leftovers
-
Thomas Rigby ☛ The design is not the spec
Design files are useful, they have a definite purpose. A design file is an excellent tool for alignment; show it to various stakeholders for them to agree on (and, please make sure your development partner is one of those stakeholders). It removes some level of ambiguity when everyone thinks of the particular feature. See also, consistent naming of components.
-
Sean Goedecke ☛ Notes on incidents
Incidents are boring. Most of what you actually do during an incident is wait: for some other team to investigate, or for a deploy to finish, or for the result of some change to become apparent, or for someone else who’s been paged to come online. It’s stressful, but there’s often just not that much to do.
-
Kiran Chauhan ☛ Let's Build Video Player
This is the first article in the series of the articles where we are going to build video player - player. The idea is simple, we will create a minimal video player program and then extend the functionalities of it via "extension articles". Let's see how things will go! I will update the following list as I publish the article(s) in this series.
-
Chris Wellons ☛ Concurrent, atomic MSI hash tables
Readers will be familiar with Mask-Step-Index (MSI) hash tables, a technique for building fast, open-addressed hash tables in a dozen lines of code. If multiple threads or processes access an MSI table with at least one still inserting elements, care must be taken to avoid data races. This article will show how to add atomic operations to MSI tables in order to support different concurrency constraints.
Let’s begin with the simplest case: An integer hash set, no deletions, only one insert thread (single producer), and consumers do not care about insert order. That is, the producer inserts A then B, but consumers may observe B in the table before A. Suppose this is the hash table in the single-threaded case: [...]
-
Qt ☛ Qt Creator 20 Beta released
We are happy to announce the release of Qt Creator 20 Beta!
-
Perl / Raku
-
Perl ☛ PTS 2026
A quick summary of what I got up to at PTS 2026 in Vienna.
-
-
Python
-
Rlang ☛ Edge detection in Python
Today I want to focus on a topic from a timeless book that inspired me to think differently and, particularly, to effectively apply a first principles approach to problem-solving. The topic is edge detection, and that book is Vision, by David Marr7. Just as On the Origin of Species8 and On Growth and Form9, this is yet another masterpiece that brought together different disciplines – in this case neurophysiology and computer vision – to revolutionise science.
In this blog post we will define and compare algorithms for image edge detection, and explore their remarkable similarity with neurophysiological readings.
-
-
Shell/Bash/Zsh/Ksh
-
University of Toronto ☛ Detecting (or not) the use of -l and -c together in Bourne shells
Many Bourne shells go slightly beyond the POSIX sh specification to also support a '-l' option that makes the shell act as a 'login shell'. POSIX's omission of -l isn't only because it doesn't really talk about login shells at all, it's also because Unix has a special way of marking login shells that goes back very far in its history. The -l option isn't necessarily what login and sshd and so on use, it's something that you can use if you specifically want to get a login shell in an unusual circumstance.
-
-
R / R-Script
-
Rlang ☛ Differencing: A Transformation or a Trap?
Differencing is one of the most common transformations in time series analysis.
It is also one of the easiest transformations to misunderstand.
-