news
Programming Leftovers
-
Security Week ☛ Nissan Confirms Impact From Red Hat Data Breach
The personal information of 21,000 customers was stolen after [intruders] compromised Red Hat’s GitLab instances.
-
Sean Goedecke ☛ Nobody knows how large software products work
Large, rapidly-moving tech companies are constantly operating in the “fog of war” about their own systems. Simple questions like “can users of type Y access feature X?”, “what happens when you perform action Z in this situation?”, or even “how many different plans do we offer” often can only be answered by a handful of people in the organization. Sometimes there are zero people at the organization who can answer them, and somebody has to be tasked with digging in like a researcher to figure it out.
How can this be? Shouldn’t the engineers who built the software know what it does? Aren’t these answers documented internally? Better yet, aren’t these questions trivially answerable by looking at the public-facing documentation for end users? Tech companies are full of well-paid people who know what they’re doing1. Why aren’t those people able to get clear on what their own product does?
-
Sandor Dargo ☛ Time in C++: Inter-clock Conversions, Epochs, and Durations
By now in this series, we’ve spent time looking at the major standard clocks and their behavior. We’ve talked about wall-clock time, monotonic clocks, and the myths around “high resolution”. Today, we are going to talk about a subtle area: how clocks relate to each other, how epochs differ, and what happens when you - need to - convert durations.
-
Matt Godbolt ☛ Switching it up a bit
The standard wisdom is that switch statements compile to jump tables. And they do - when the compiler can’t find something cleverer to do instead.
Let’s start with a really simple example: [...]
-
Matt Godbolt ☛ When compilers surprise you
Every now and then a compiler will surprise me with a really smart trick. When I first saw this optimisation I could hardly believe it. I was looking at loop optimisation, and wrote something like this simple function that sums all the numbers up to a given value: [...]
-
Jeffrey Paul ☛ Jeffrey Paul: My 2024 Code Styleguide
I have documented and published, for the first time, my personal code style guide. It is a living document (which is why it’s in git) that I will update periodically as I consciously notice more of my longstanding habits and techniques. I estimate it’s 70-80% complete (at least for Go) presently; the other languages included are just stuff that’s off the top of my head.
Half the trouble with documenting things like this for publication is that a ton of my experience and methods are so ingrained that I don’t even notice them anymore.
-
Andrew Nesbitt ☛ Package managers keep using git as a database, it never works out
Using git as a database is a seductive idea. You get version history for free. Pull requests give you a review workflow. It’s distributed by design. GitHub will host it for free. Everyone already knows how to use it.
Package managers keep falling for this. And it keeps not working out.
-
Ruby ☛ Ruby 4.0.0 Released
We are pleased to announce the release of Ruby 4.0.0.
Ruby 4.0 introduces “Ruby Box” and “ZJIT”, and adds many improvements.
-
Perl / Raku
-
Rakulang ☛ Day 22 – Numerically 2026 Is Unremarkable Yet Happy – Raku Advent Calendar
The computations in this document are done with the Raku package “Math::NumberTheory”, [AAp1].
-
Rakulang ☛ Day 23 – A Day Late and A Fish Short – Raku Advent Calendar
Hello again! I return during this week of winter solstice to tell you about my experience participating in the Langjam Gamejam. I planned to use Raku, partially so that you could have an advent blogpost to read today, but also because Raku’s builtin support for grammars ensure that I would not get stuck when writing my parser.
-
Rakulang ☛ Day 24 – Maze Making Using Graphs – Raku Advent Calendar
This document (notebook) describes three ways of making mazes (or labyrinths) using graphs. The first two are based on rectangular grids; the third on a hexagonal grid.
All computational graph features discussed here are provided by “Graph”, [AAp1]. The package used for the construction of the third, hexagonal graph is “Math::Nearest”, [AAp2].
-
Manuel Matuzović ☛ For the Love of <details> - HTMHell
When you list all the things HTML can do out of the box without the help of CSS or Javascript, it can seem like a short list. Headings and lists will come to mind. You will most likely think of things like images and video. Any good list of HTML elements will grow to include form elements like input and select, the original interactive elements, too. Recently, a lot of work and attention has turned to some of the lesser known semantic HTML elements too. The work of Heydon Pickering comes to mind, and his incredible effort to explain every HTML element in alphabetical order.
Among the lists and the images and the forms and the videos though, I think there is an unsung hero. There is a piece of semantic markup that exists at the intersection of SEO, accessibility, performance and interactivity.
I am talking of course about the <details> element and its partner, the <summary> element.
-
-
Shell/Bash/Zsh/Ksh
-
Balthazar Rouberol ☛ Creating yearly reminders from the macOS terminal
I wanted to be able to quickly make note of someone's birthday without having to know their year of birth, and still get a yearly reminder to wish them happy birthday. It turns out, I can write a small birthday bash script wrapping osascript.
-
-
Rust
-
Ben Congdon ☛ RAII Guards and Newtypes in Rust
I’ve been having a bunch of fun in Rust recently. I’ve finally gotten past the point of fighting with the borrow checker and now am solidly in the plateau of productivity with the language.1 One of the first things that struck me about Rust was how confident I felt that if I wrote something sane-looking that passed the compiler, I was more likely than in other languages to have a program that actually worked. The borrow checker does a lot of the heavy lifting here, of course. But there are some other useful language conventions that help too.
-
Rust Weekly Updates ☛ This Week In Rust: This Week in Rust 631
Hello and welcome to another issue of This Week in Rust!
-