Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,545 posts.
Assembly Nights
Over the last three months, I’ve developed an unusual little nighttime routine: after reading bedtime stories to the kids, I hop into bed and instead of reaching for a fiction book, I’m turning on my 14-year old Asus eeePC 701 (wikipedia.org) miniature laptop and writing x86 assembly language. This is turning out to…
Repurposing Hugo as a wiki
As part of a project that I’m working on, I decided to see if I could repurpose the excellent Hugo website framework (which also powers this very site) as a single-user wiki of sorts.
Destructuring Assignment in ECMAScript 6
I have seen this question come up a few times, and unfortunately, people usually don't find an answer, give up, and don't test their source maps. However, testing source maps isn't too hard if you are using Node.js and the mozilla/source-map library. If you aren't using Node.js and the mozilla/source-map library, you…
Don't fall in love with your technology
It's not about technology for its own sake. It's about being able to implement your ideas.
APL Tutorial
Interested in learning about APL? Have you heard of this exciting language with strange characters and incredible brevity? Look no further, here you will find an introduction to the language, and even understanding from a historical perspective.
Haskell as fast as C: working at a high altitude for low level performance
After the last post about high performance, high level programming, Slava Pestov, of Factor fame, wondered whether it was generally true that “if you want good performance you have to write C…
How outdated information hides in LLM token generation probabilities
Random tech notes
Learn Vim motions with an ice-cream van
A free browser game that teaches real Vim motions. The van is your cursor, the town is your text. Serve every customer under par.
Need Something Sorted? Sleep on It
An unexpected paradigm journey into sleep sort
Failing in Haskell
I’m a Haskell failure, don’t tell anyone! Recently I encountered some dubious error handling code. Not only was it failing, it was failing WRONG 1. This frus
How Actors Work Internally in Swift
Lets explore how actors work under the hood, using Swift's own source code as a guide to finding out how they work inside the compiler.
JavaScript: Function Invocation Patterns
Web Presense Of Barry Steyn - Software Engineer, Entrepreneur
A magic getopt
Enter magic getopt . Via a little bit of macro magic, the above options-handling code turns into this:
Math on GitHub: Following Up
About six weeks ago, on May 19, 2022, GitHub released Math support on Markdown. At the time of the release, it received criticism for being ill-designed and buggy. I, too, wrote a blog post about it.
Using the mold linker for fun and 3x-8x link time speedups
A large C++ codebase meets a new linker: The good, the bad and the performance improvements <a class="more-link" href="https://www.productive-cpp.com/using-the-mold-linker-for-fun-and-3x-8x-link-time-speedups/">... Read More</a>
Making a parallel Rust workload 10x faster with (or without) Rayon
In a previous post, I’ve shown how to use the rayon framework in Rust to automatically parallelize a loop computation across multiple CPU cores.Disappointingly, my benchmarks showed that this only provided a 2x speedup for my workload, on a computer with 8 CPU threads.Worse, the total “user” and “system” times…
Tracking down a Zsh history data loss bug
For many years, I sometimes discovered that commands I was sure I had run were no longer present in my Z shell history file (~/.zsh_history). In this article, I will show you how I tracked down the bug. Spoiler: ultimately, patching Zsh to make it crash loudly and analyzing the crash’s core dump was the winning…
Running GUI apps with Docker
I've been doing all of my real (paid) work on VMs / containers for a while now but when it comes to writing Java code...
Mathematical Notation in Emacs
Any combination of these tools may be chosen; Fira Code is not required to utilize prettify-symbols or pretty-mode. Similarly, the entire Fira Code font is not required to use Fira’s ligatures.
Life of an instruction in LLVM
LLVM is a complex piece of software. There are several paths one may take on the quest of understanding how it works, none of which is simple. I recently had to dig in some areas of LLVM I was not previously familiar with, and this article is one of the outcomes of this quest.
Weird CPU architectures, the MOV only CPU (2020)
I like CPU architectures, especially weird, interesting and unusual ones. For example, the Intel iAPX 432 is still something I would love to play around with. Recently, I realized that a working CPU can be made with just a simple Move instruction. For this to work, everything needs to be memory mapped. The ALU…
Waiting for many things at once with io_uring
When doing systems programming we often need to wait for something to happen. Common examples might be waiting for some data to come through a socket or waiting on a lock. We also often want to wait on any of several conditions to become true. A web server might be handling many sockets at once, waiting for any number…
An instruction oddity in the ppc64 (PowerPC 64-bit) architecture
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…