Addressing the adding situation
We learn why adding on x86 isn't as obvious as you might think
The latest blog posts to take off on Hacker News. 14,537 posts.
We learn why adding on x86 isn't as obvious as you might think
Announcing AoCO 2025 - daily December posts about compiler optimisations
Sending a ping by creating an ICMP socket normally requires root: you can’t create a raw socket to send ICMP packets without it. The ping command line tool works without root however, how is that possible? It turns out you can create a UDP socket with a protocol flag, which allows you to send the ping rootless. I…
A walk through of building an image that displays its own MD5 Hash
[5 min read] The question Sheon Han poses — “Is Ruby a serious programming language?” — says a lot about what someone thinks programming is supposed to fee...
Why do compilers love xor-ing registers so much?
In distributed systems, there’s a common understanding that it is not possible to guarantee exactly-once delivery of messages. What is possible though is exactly-once processing. By adding a unique …
Using git `rebase --onto` workflow to work with stacked diffs
If you want €:\, you can have it, sort of
A comprehensive guide to CRDTs and their tradeoffs, from counters to sequences. Written in the spirit of the Typeclassopedia, exploring how different CRDTs solve the distributed consensus puzzle.
Django 6.0 introduces a built-in background tasks framework in `django.tasks`. But don't expect to phase out Celery, Huey or other preferred solutions just yet.
Every couple of years somebody notices that large tech companies sometimes produce surprisingly sloppy code. If you haven’t worked at a big company, it might be…
A deep dive into how a 'one-shot' Claude headless loop (paired with scoring, defensive tooling, and a simple bash driver) massively accelerates matching decompilation of Snowboard Kids 2 on the Nintendo 64.
How to build a RAG system that's fully self-hosted.
From the highly eclectic blog of Mark Dominus
Interruptions, recovery time, and task size: three numbers that determine if you'll get real work done. Interactive visualizations show the math behind bad days.
A lesson in X11, networking, and design.
Recently I was scrolling through brson’s Rust quote database and stumbled upon a link to the official Rust tutorial from the very beginning of 2013. It says Rust 0.6 in the corner, but it lists many things that were removed in 0.6, so it’s likely closer to 0.5. I heard tales of old Rust before, but not of how the…
It may be a good language for data science, but it’s not a great one.
My take on Windows NT subsystems and the thin line between VMs and subsystems.
From ChatGPT Plugins to Agent Skills, a look at how we've been trying (and failing) to extend LLMs for the last three years.
This post talks about the many different aspects under the umbrella term OOP
I was working on a bug in Chocolate Quake netcode. The issue was an edge case where starting two clients on the same machine resulted in the second one zombifying the first one. When the bug occurred there was no disconnection but the client could no longer move. Instead the screen would show an "indicator" looking…
Class website here: https://kmicinski.com/cis531-f25
I used to call myself a Rust hater, but really I was doing it just to compensate for the perceivable fanboyism e.g. Rust tops on stackoverflow surveys as most-loved language. There are many reasons to hate C++, and I hate C++ too. Lots of people were waiting for a better programming language, but got Rust instead.
How quarterly fixit weeks help teams tackle small annoyances that never bubble up to the priority list.
When you write code, you want to focus on the code, not on the text of the code. This means a) you have to have a good text editing setup, and b) you need to have a muscle-memory level instinct for using that setup. The second comes with practice and with consistency (i.e. not changing your config too much too…