news
Programming Leftovers
-
Daniel Fichtinger ☛ permission to begin learning
I like learning programming languages.
You may think this goes without saying, considering that I’m, well, a programmer, but I don’t think programmers necessarily like programming languages.
Let me explain.
-
Casey Primozic ☛ A Modern Recommender Model Architecture
The model follows the high-level design of a Denoising Autoencoder. It uses user profiles as input (what shows the user watched and what they rated them) and holds out some percentage of its entries during training. The model is then trained to re-construct the full profile, including the held-out entries.
Like all autoencoders, the model also has a bottleneck layer which is significantly smaller than the input. This forces the model to learn to effectively compress the input into a more efficient internal representation rather than just passing it through or memorizing it.
-
Andrew Nesbitt ☛ The Compact Index: How Bundler Scales Dependency Resolution
In October 2012, Bundler’s success was killing RubyGems.org. Dependency resolution requires knowing what each version of each gem depends on, and dependencies form a graph, not a tree. You can’t resolve one package without potentially needing metadata about hundreds of others. Unlike curated distribution repositories, language registries rarely remove packages or old versions, so the index only ever grows. Fetching that information one gem at a time over HTTP is painfully slow, so Bundler had a dependency API that returned everything in bulk. It made bundle install fast, but it was consuming so many server resources that the site faced periodic outages and emergency throttling.
-
Daniel Lemire ☛ Don’t be so eager to rewrite your code
If you maintain software projects, you see it all the time. Someone new comes along and they want to start rewriting everything. They always have subjective arguments: it is going to be more maintainable or safer or just more elegant.
If your code is battle tested… then the correct instinct is to be conservative and keep your current code. Sometimes you need to rewrite your code : you made a mistake or must change your architecture. But most times, the old code is fine and investing time in updating your current code is better than starting anew.
-
Daniel Lemire ☛ Parsing IP addresses quickly (portably, without SIMD magic)
What if you want high speed without too much work or a specialized library? You can try to roll your own. But since I am civilized programmer, I just asked my favorite AI to write it for me.
-
Unnamed Website ☛ Haskelling My Typst
Typst is a typesetting system similar to LaTeX. It’s also a dynamically typed programming language with value semantics, so of course the natural question is: Can we implement the Haskell lazy infinite lists trick in Typst?
-
Efron Licht ☛ Have you tried turning it off and on again?
This holy trinity: “Restart, Reboot, Reinstall” - has a higher success rate than any other debug or repair strategy since the first MOS 6502 rolled off the assembly line in 1975. They are remarkably universal and effective repair strategies.
They are so universal and effective that we sometimes don’t think of them as strategies at all. How many times over the last few days have you had to do one or more of these things? All of these events took place over the last 72 hours: [...]
-
Steffen Vogel ☛ A New Home for My Open Source Projects: Embracing Codeberg
More than 14 years ago, I migrated my 26 open source code project to GitHub. Back then GitHub was a fresh and modern platform pushing the boundaries of collaborative software development. Over the years, however, my perspective on GitHub has changed significantly.
I have recently migrated my by now 79 repositories from GitHub to Codeberg, a decision driven by several significant factors.
-
It's FOSS ☛ F*** You! Co-Creator of Go Language is Rightly Furious Over This Appreciation Email
And I understand why he got annoyed and angry.
-
Shell/Bash/Zsh/Ksh
-
Linuxiac ☛ Fish Shell 4.3 Released With Scripting and Terminal Improvements
On first startup after upgrading, Fish performs a one-time migration, freezing the current theme and key bindings into files under ~/.config/fish/conf.d/. Upstream recommends removing those generated files and managing themes directly in config.fish to keep configurations clean and predictable. Users can still opt into universal variables if needed, though this comes with limitations for dynamic theme switching.
-