Donkey code
This is an attempt to write down a very simple example I’ve been using to explain the profound impact the language we use has on thought, discussion and ultimately code. Imagine you have a co…
This is an attempt to write down a very simple example I’ve been using to explain the profound impact the language we use has on thought, discussion and ultimately code. Imagine you have a co…
Welcome to part 1 of this narrative series about writing a complete video game from scratch, using the PICO-8. This is actually the second part, because in this house (unlike Lua) we index from 0, so if you’re new here you may want to consult the introductory stuff and table of contents in part zero. If you’ve been…
Step-by-step tutorial explaining scaled dot-product self-attention for large language models, with Python code that builds the mechanism from scratch.
This week we (me & Anton Kovsharov) published Paperproof, a Gentzen-tree-like proof interface for Lean 4. In this post I'll review proof visualisations from o...
“Clean code” is so over: all the cool kids are switching to CRISP code . I’ll show you how to achieve it in five catchy, T-shirt-friendly slogans.
I see a lot of new terms like Command-Event, Event-Based Compute, etc., presented around Event-Driven Architecture. Let me clear that up because there are no such things…
I find myself thinking about a particular design principle of Rust today. I’m not sure I’ve ever seen it named specifically before, but it gets referred to from…
Elixir was built on Erlang. Erlang was built to provide "consistently low latency" and a few other audacious goals. Note, this is not a hard realtime constraint. It is soft, squishy and yet, important and real. It makes Erlang unusually suitable to systems where latency matters and where a near-realtime experience is…
In the latest release of htmx , you can add event listeners to elements with hx-on :
Audio formats typically fall into one of three categories: “lossless” , “complicated” or “bad” . After developing a simple image format last year, I tried to come up with an audio format that fits neither of these categories.
The original NMOS version of the MOS 6502, used in computers like the Commodore 64, the Apple II and the Nintendo Entertainment System (NES), is well-known for its illegal opcodes: Out of 256 possible opcodes, 151 are defined by the architecture, but many of the remaining 105 undefined opcodes do…
Emacs incremental search (isearch) has an embarrassingly rich feature set. That said, I rarely use isearch beyond its basics for the twofold reasons: There are many isearch commands that are...
A few months back, I started writing a profiler from scratch, and the code since became the base of my profiler validation tools. The only problem with this project: I wanted to write a proper non-safepoint-biased profiler from scratch. This … Continue reading →
Right after getting my degree, I was lucky to be hired into a small but decent R&D department as an embedded software engineer. My first task was to create a Unit Test project and have it run in our build pipeline after compilation. I was not particularly excited about this task, it seemed like busywork to me. I…
From the highly eclectic blog of Mark Dominus
First: performance is tricky and bechmarking even more so. I will talk some numbers in this post but of course they are what I have measured for my specific tests on my machine. Your numbers for your test cases will be different. Over the last six months or so, curl has undergone a number of … Continue reading curl 8…
Just one instruction at a time!
It's unnecessary and complicated at almost every layer. At best I can congratulate someone for quickly and simply solving a problem on top of the shit that they are given. The only software that I like is one that I can easily understand and solves my problems. The amount of complexity I'm willing to tolerate is…
It was way back in the summer of 2019 when I first became a member ( i.e. a Fedizen!) of the Fediverse, the distributed social network formed by various Free and Libre servers communicating using the Activitypub protocol.
The question of which language suits best for compiler development is a frequent one amongst language enthusiasts (e.g., see discussions here , here , and here ). Sadly, most of the commenters either 1) just answer with their language of choice without any explanation, or 2) provide a vague explanation without any…
I push back on Alex Russell's "Market for Lemons" post blaming JS frameworks and their advocates for poor mobile web performance. Developers aren't stupid or deceived: React dominates because of rational economics. Frameworks save developer time, enable hiring, and compound via ecosystems. Better frameworks, not fewer…
When I see the landscape of native GUI in 2022, I feel like something is missing.
2023-12-27—Ars Technica: YOYOZO wins GOTY accolade! almost unbelievable to be listed alongside such games as: Chants of Sennaar, Cocoon, Dave the Diver, Hu...
<p>A new take on the age-old question: Should you rewrite your application from scratch, or is that “the single worst strategic mistake that any software company can make”? Turns out there are more than two options for dealing with a mature codebase.</p>
There is a common sentiment I’ve seen over and over in the Rust community that I think is ignorant at best and harmful at worst.
Most of my readers will understand that cache is a fast but small type of memory that stores recently accessed memory locations. This description is
Read this list unless you want to build a money disappearing system