Rust in an Instant
Personal website of Jan-Erik Rediger
Personal website of Jan-Erik Rediger
In the field of computer science, the Paxos algorithm is notorious for how difficult it is to understand. I had to learn the Paxos algorithm in my distributed systems class. I even have "implemented" it by translating Leslie Lamport's TLA+ to Python. But I didn't understand it until much much later.
I really like Secure by Design. The key idea is that there is a big overlap between secure code and good software design. Code that is strict, clear and focused will be easier to reason about, and …
Why buy an expensive desktop computer when your iPhone is a faster SMT solver?
<p> <i>Python</i> haters always say, that one of reasons they don't want to use it, is that it's <i>slow</i>. Well, whether specific program - regardle...
Protobuf needs no introduction, but this post argues that you shouldn’t use it for telemetry. The basic premise of this post is that a good telemetry library needs to be lightweight to avoid perturbing the application; inefficient diagnostic tools are self-defeating. Unlike other formats, nested Protobuf messages…
In Denmark it is possible to register domains with funny characters such as æ, ø and å. And we do. One prominent example is our national portal for booking Covid-19 tests at https://coronaprøver.dk . Wikipedia calls these beasts Internationalised domain names , so they must indeed exist.
C++ remains one of the leading programming languages in game development despite the emergence of new technologies and languages. Its flexibility, performance, and extensive ecosystem make it the preferred choice for building complex game systems, engines, and high-performance applications.
Short answer: because we said so.
Patterns and structures of current operating systems and some thoughts about how that could be improved, with lessons learnt from Self, Smalltalk and other "structured" systems.
Using the best tool for a job may slow things down. It may be "best" in a sense you don't need. The actual best tool might be relatively crude.
Isn’t it weird that we treat source code as text? That is, we have this extremely well-structured and strongly-typed object — the abstract syntax tree — that exists conceptually in our minds, and in actuality inside of our compiler, but for some reason we pretend it’s just a pile of bytes and edit it byte-by-byte…
Cache-Oblivious Algorithms Cache-oblivious algorithms seemed incredible to me when I first heard about it in 6.854 (Advanced Algorithms). It’s relatively straightforward to imagine algorithms that utilizes information about page size $B$ and cache size $M$ to create efficient data structures. However, cache-oblivious…
I expect I'll annoy everyone with this post: the anti-JavaScript crusaders, justly aghast at how much...
Go has a problem. Go modules place a strange naming requirement on modules version 2 or greater. Module names on modules v2+ must end in the major version ala …/v2 , and communication of this rule has been weak. It's non-obvious, and the community at large does not understand it.
DRY, or Don't Repeat Yourself is frequently touted as a principle of software development. "Copy-pasta" is the derisive term applied to a violation of it, tying together the concept of copying code and pasta as description of software development bad practices (see also spaghetti code ).
The Open 7400 Logic Competition is a crowd-sourced contest with a simple but broad criteria for entry: build something interesting out of discrete logic chips. It's now in its second year, and this time around I was inspired to enter it.
AWK As A Major Systems Programming Language — Revisited
In case you are not yet familiar with why an initramfs (or initrd, or initial ramdisk) is typically used when starting Linux, let me quote the wikipedia definition: “[…] initrd is a scheme for loading a temporary root file system into memory, which may be used as part of the Linux startup process […] to make…
A blog about computing and other fun.