ECC RAM should be a human right
I am now a staunch advocate for ECC RAM, after the events of last week. You see, over the last several weeks my main desktop workstation has been misbehaving, with occasional freezing and crashing. After some diagnostics I began to suspect a faulty RAM module, and sure enough, upon performing a quick run of memtest86…
Amiga Systems Programming in 2023
If you ever get a chance to look through the classic Amiga OS source-code still floating around some murky corners of the internet, it is a thing of beauty and astonishing capabilities. It’s an inspirational piece of computing history with unmatched capabilities for the time. Remember, this was all on a computer…
I Built Linux from Scratch
Linux From Scratch or LFS is a project that provides and maintains a set of instructions of how to build your own Linux system from scratch. I am always curious to understand how things work ‘under the hood’, and since I’m a daily Linux user i decided to take on the challenge to try and complete building Linux From…
Using a Mac without a network connection
New version of ViableS runs in a sandbox, with no shared folders, and can now be isolated from networks. So how well does Ventura work without internet?
Understanding every byte in a WASM module
In my last post, we explored how to build WASM modules, both with and without WASI support, using Clang. In a comment on Reddit, it was mentioned that much of the setup I walked through in that post could be avoided by just leveraging Zig’s WASI supprt. This is a great point, and I would recommend doing the same. The…
Jailbroken iOS can't run macOS apps – I spent a week to find out why (2021)
I ran command line macOS tools, such as Bash and Geekbench, on a jailbroken iPhone by replacing iOS’s dyld shared cache (all of iOS’s code) with macOS’s. However, graphical apps will never work: macOS’s WindowServer won’t start, since iOS’s drivers are too different.
How to speed up the Rust compiler
It has been five months since my last general update on the Rust compiler’s performance. Let’s see what has happened in that time.
Setenv Is Not Thread Safe and C Doesn't Want to Fix It
You can't safely use the C setenv() or unsetenv() functions in a program that uses threads. Those functions modify global state, and can cause other threads calling getenv() to crash. This also causes crashes in other languages that use those C standard library functions, such as Go's os.Setenv ( Go issue ) and Rust's…
What's wrong with enterprise Linux
An examination of what is wrong with the Enterprise Linux model and a recommendation for a middle ground.
Python, C, Assembly – Faster Cosine Similarity
From pure Python to AVX-512 assembly, optimizing cosine similarity reveals a 2,500x speedup through SIMD, FP16, and VNNI instructions on modern Intel CPUs.
Using LD_PRELOAD to cheat, inject features and investigate programs
This post assumes some basic C skills. Linux puts you in full control. This is not always seen from everyone’s perspective, but a power user loves to be in control. I’m going to show yo…
Near-lossless image formats using ultra-fast LZ codecs
I think simple ultra-high speed lossy (or near-lossless) image codecs, built from the new generation of fast LZ codecs, are going to become ...
Emacs standing alone on a Linux Kernel
Nano How-To explaining how to setup a root file system with only emacs.
How to get transactions between almost any data stores
How to get ACID transactions between almost any data stores, with the Epoxy protocol.
The faker's guide to reading x86 assembly language
Assembly code scares people. There’s a good reason for that. For many people, writing code in assembly language seems equivalent to writing code in ancient dwarven runes, or calculating pi in roman numerals. The fact that RollerCoaster Tycoon was almost completely written in assembly language sounds almost too amazing…
OpenBSD PF versus FreeBSD PF
I encountered yet another discussion about OpenBSD PF versus FreeBSD PF . For those who are new to the discussion: OpenBSD developers created PF in 2001, and it rapidly improved to become the most approachable open source packet filter. FreeBSD ported PF over to its kernel in 2004, with occasional updates since. Today…
Linux on the Xbox 360
Hello and welcome back to The Cool Blog. I've been meaning to write more but I had these things called finals and then I had to move home for the summer and then I got addicted to Satisfactory again and yeah. Anyway I'm back and time for me to share a project of mine that I've been working on since like March.
Possible reasons for 8-bit bytes
Some possible reasons for 8-bit bytes
Understanding Kafka with Factorio (2019)
While playing Factorio the other day, I was struck by the many similarities with Apache Kafka.
Linux guide for power users (2022)
A guide to help you setup your Linux work machine and configure it for a power users workflow
Career advice for young system programmers
For some of us, the backend vs frontend discussion just doesn’t cut it. What do do, then?
Apple CPU Architecture Through the Ages
Learn how CPUs work, and discover Apple’s underrated competitive advantage.
Faster LZ is not the answer to 150-250 GB video game downloads
When the JPEG folks were working on image compression, they didn't create a better or faster LZ. Instead they developed new approaches. I se...
Dusting off Dreamcast Linux
Yes, here at Old VCR we live in the past, when RISC Unix workstations still ruled the earth like large boxy tentaculous Cthulhus. Oh, sure, ...
Hotspot performance engineering fails
Developers often believe that software performance follows a Pareto distribution: 80% of the running time is spent in 20% of the code. Using this model, you can write most of your code without any care for performance and focus on the narrow pieces of code that are performance sensitive. Engineers like Casey Muratori…