2025-06-20
Cursed Knowledge | Immich
immich.app/cursed-knowledgeThings we wish we didn't know
2025-06-16
CSS Classes considered harmful
www.keithcirkel.co.uk/css-classes-considered-harmfulThe solution to all of these problems
I humbly put forward that modern web development provides us all the utilities to move away from class names and implement something much more robust, with some fairly straightforward changes:
Attributes
Attributes allow us to parameterise a component using a key-value representation, very similar to Map<string, T>. Browsers come with a wealth of selector functions to parse the values of an attribute.
2025-06-13
What I talk about when I talk about IRs
bernsteinbear.com/blog/irsI have a lot of thoughts about the design of compiler intermediate representations (IRs). In this post I’m going to try and communicate some of those ideas and why I think they are important.
2025-06-12
Always do Extra
www.bennorthrop.com/Essays/2021/always-do-extra.phpExtra is different than More. Extra is finishing those two screens, but then researching a new library for form validation that might reduce the boilerplate code. Or it's learning ways to protect against common security vulnerabilities from data entry. These little off-ramps from the main highway of Normal Work could be dead-ends and not have any practical value to the project. But they might also be important contributions. And that's the thing with Extra. While the tangible value to the project is uncertain (it could be nothing this time or it could be something), the value to you is real.
2025-05-28
SAT Live!
localhost:40002025-04-29
No-engine gamedev using Odin + Raylib
zylinski.se/posts/no-engine-gamedev-using-odin-and-raylibGames can be made in many different ways. Many games are made using big, general purpose game engines such as Unity and Godot. I enjoy using the Odin Programming Language combined with Raylib.
Odin is a C-like programming language and Raylib is library for drawing graphics, checking input and playing sounds. So it’s just a program that uses a simple library, no engine!
There are no objectively best ways to create games.
2025-03-21
Life Altering Postgresql Patterns
mccue.dev/pages/3-11-25-life-altering-postgresql-patterns2024-12-31
Idiosyncra
exple.tive.org/blarg/2024/12/29/idiosyncraInteresting setup for pet computers. Debian + sway + cage
2024-12-17
Advent of Code on the Nintendo DS
sailor.li/aocnds.htmlSolving AoC on the DS with Rust.
Using Nix to Try Tools
entropicthoughts.com/using-nix-to-try-tools2024-09-16
Technical Writing One introduction
developers.google.com/tech-writing/one2024-09-15
Writing an OS in Rust
os.phil-opp.comThis blog series creates a small operating system in the Rust programming language. Each post is a small tutorial and includes all needed code.
2024-07-05
JavaScript-Free Sidenotes in Hugo
danilafe.com/blog/sidenotes2024-06-26
A (more) Modern CSS Reset
piccalil.li/blog/a-more-modern-css-reset2024-06-24
Microfeatures I Love in Blogs and Personal Websites
danilafe.com/blog/blog_microfeaturesIn this post, I talk about pleasant but seemingly minor features in personal sites
2024-06-18
Comparing Objective Caml and Standard ML
adam.chlipala.net/mlcomp2024-06-14
A useful shell prompt
blog.meain.io/2022/my-shell-promptFeatureful zsh prompt.
2024-06-13
A simple, arena-backed, generic dynamic array for C
nullprogram.com/blog/2023/10/05Optimal SQLite settings for Django
gcollazo.com/optimal-sqlite-settings-for-djangoThere’s plenty of information out there on how to scale Django to handle numerous requests per second, but most of it…