news
Programming Leftovers
-
[Repeat] FSF ☛ I didn't get free software until I became a reverse engineer
The peripherals in question were nothing special—essentially 500-dollar hunks of plastic probably manufactured for thirty cents. There was only one interesting aspect of the design: a small EEPROM (a type of memory storage used for small amounts of data), which tracked how many times the peripheral was used. This didn't have a purpose beyond forcing hospitals to purchase more of these peripherals after just a handful of uses, as each had an artificial limit. There was no justifiable technical or medical reason for this; on their own, these peripherals could function indefinitely. The restrictions were artificial, a way to extract more money from medical professionals and, ultimately, their patients.
-
Vereis ☛ Simple Elixir Optimization
We all know that feeling when you get that bug report... "This new feature is so slow!", or you notice your unit tests are taking longer than expected.
I ran into this last week while pairing with a new engineer in my team, and I was able to point out a few simple optimizations that made a huge difference in the performance of our new code.
Without diving deep into the rabbit hole of complex profiling tools, I wanted to share some simple tips that can help you optimize your Elixir code quickly and effectively.
-
Stephen Kell ☛ Rambles around computer science
The cartoonist Dick Guindon famously wrote as follows.
1. Writing is nature's way of letting you know how sloppy your thinking is.
-
Nicholas Tietz-Sokolsky ☛ That boolean should probably be something else
One of the first types we learn about is the boolean. It's pretty natural to use, because boolean logic underpins much of modern computing. And yet, it's one of the types we should probably be using a lot less of. In almost every single instance when you use a boolean, it should be something else.
-
Jono Alderson ☛ Stop testing. Start shipping.
Because SEO testing isn’t free. It’s not clean. And it’s rarely conclusive.
And too often, the pursuit of measurability leads to a skewed sense of priority. Teams focus on the things they can test, not the things they should improve. The strategic gives way to the testable. What’s measurable takes precedence over what’s meaningful. Worse, it’s often a distraction from progress. An expensive, well-intentioned form of procrastination.
-
Greg Newman ☛ Emacs Take Two (Eglot)
I started using Emacs about 20 years ago. From the start I was heavily involved in the Emacs IRC channel and the Org mode mailing list. I contributed the refresh of the Org mode logo to Dr. Carsten Dominik and the community as a small thank you for such a great package. All my notes were stored in Org mode files, along with my task lists. For development I used Elpy for Python and Webmode for anything HTML and Javascript. Elpy was good enough for me back then. Webmode was just ok but had a lot of problems with javascript. I jumped over to LSP mode pretty early and that solved a lot of problems with Python but it was a pain to configure and broke at the most inconvenient times. I was frustrated a lot of the time I was trying to work.
-
Chloé Vulquin ☛ Emacs After a Decade of Vim
It's not a secret, I've been a vim, then neovim user. Actually for longer than a decade, but it sounds better this way. This is a story about my recent (3 months) excursion into emacs.
-
Rlang ☛ Building Trust with Code: Validating Shiny Apps in Regulated Environments
This blog post is a follow up to my 2025 R/Medicine talk on Validating Shiny Apps in Regulated Environments.
-
Rlang ☛ Predicting Gold Prices: Backtesting of ML Models
Fitch projects a decline of about 30% in gold in 2026. Easing the trade war and the Israel-Iran conflict may support this idea. We will project how the prices could go by the end of the year. We will use the modeltime.resample package for forecasting modeling.
-
Rlang ☛ May 2025 Top 40 New CRAN Packages
One Hundred seventy-six new packages made it to CRAN in May.
-
Evan Hahn ☛ Notes from June 2025
A roundup from my June 2025.
See also: my notes from last month, which links to every previous month this year so far.
-
Godot Engine ☛ Godot Community Poll 2025
We want to learn more about the Godot community, understand who the users of the engine are, and find out how we can better support you.
-
Perl / Raku
-
Perl Hacks ☛ Stop using your system Perl
Recently, Gabor ran a poll in a Perl Facebook community asking which version of Perl people used in their production systems. The results were eye-opening—and not in a good way. A surprisingly large number of developers replied with something along the lines of “whatever version is included with my OS.”
If that’s you, this post is for you. I don’t say that to shame or scold—many of us started out this way. But if you’re serious about writing and running Perl in 2025, it’s time to stop relying on the system Perl.
Let’s unpack why.
-
Rakulang ☛ Rakudo Weekly 2025.26 Release #184
Rakudo compiler, Release #184 (2025.06) was announced with many improvements and fixes to v6.d and I counted 40 new features for RakuAST in v6.e.PREVIEW.
-
-
Python
-
Didier Stevens ☛ Overview of Content Published in June
-
Philip Zucker ☛ Inequality Union Finds: Baby Steps to Refinement E-graphs
The basic idea of an inequality union find is brutally simple once you ask the question, and I’m not sure there is anything super fancy/clever you’ll ever be able to do to improve on the basic version of it. You’re going to pay super linear cost for dealing with the inequalities. I don’t think there is a free lunch here. The question is more so how to avoid materialization and how to make an elegant low level data structure (which I am only partially addressing since I’m sticking to python).
-
Rlang ☛ Did my eyes just see Python in the pharmaverse?
The eagle-eyed among you might have noticed in recent months updated wording on our pharmaverse charter and generally across our website to generalize our scope to “open-source software packages and codebases”.
As part of this, we released our first ever dedicated page to an open source language other than R, with our Python page. Here you can explore the first pharmaverse offerings in this space: [...]
-
-
Shell/Bash/Zsh/Ksh
-
University of Toronto ☛ How history works in the version of the rc shell that I use
Later, the version of rc that I use got support for GNU Readline and other line editing environments (and I started using it). GNU Readline maintains its own in-memory command history, which is used for things like cursor-up to the previous line. In rc, this in-memory command history is distinct from the $history file history, and things can get confusing if you mix the two (for example, cursor-up to an invocation of your 'repeat the last command' function won't necessarily repeat the command you expect).
-
Ted Unangst ☛ writing a little gosh
I had the idea to write a little shell in go. Called gosh, of course. There’s a few people playing with the same theme, but nothing exactly the same.
The idea is we have all these commands outputting data and processing it, and the unix ideal where everything is a beautiful line of text is awkward to process. That’s why they called it awk. What if the data were structured in some way, so that I can sort ls output by file owner, even if ls doesn’t offer that, and without counting columns and hoping they’re always the same?
-