The Shitty Stack System
How Microsoft's ruthless employee evaluation system annihilated team collaboration.
Unpacking Elixir: Syntax
Elixir is a language with syntactical roots in Ruby. It also carries the Erlang legacy. Legacy used here as in "a great legacy" and not as in "system you don't like anymore". Ruby is an object-oriented language. Elixir is functional language. The Erlang part has an impact as Elixir was designed to provide strong…
My primality testing code is faster than Sir Roger Penrose's
But, I guess he did win the Nobel Prize for Physics in 2020 so I can't really brag. However, it was a great surprise when looking at two pa...
Demystifying Tupper's Formula
A book I was recently reading mentioned a mathematical curiosity I haven't seen before - Tupper's self-referential formula . There are some resources about it online, but this post is my attempt to explain how it works - along with an interactive implementation you can try in the browser.
Can you trust a compiler to optimize your code?
More or less the title this time, but first, a story about SIMD. There are three levels of understanding how SIMD works (well, at least I am level 3 at the moment):
Things I've learned about building CLI tools in Python
I build a lot of command-line tools in Python. It’s become my favorite way of quickly turning a piece of code into something I can use myself and package up …
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.
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…
Nibbles of Rust – Restructuring Patterns
In Rust, there is this feature known as “pattern matching”, whereby you can take apart a piece of structured data by writing out patterns which bind to parts of it. This process is known as “destructuring”, because you’re breaking a structure into parts.
Divan: Fast and Simple Benchmarking for Rust
Nikolai Vazquez is a software engineer, designer, and musician.
Racket frustrates me
2024-07-06 I’ve archived this post Looking for the post Racket frustrates me? You can read the original post on The Internet Archive’s Wayback Machine. Why archive this post? It’s been about a year since I published this post and since realized something: I don’t have any skin in the game anymore. My workflow is now…
Defaulting on Single Page Applications
If you’re trying to build a single page application (SPA), you should probably use a tool designed primarily for the job. Site generators focused on…
Repeating yourself thrice doesn’t turn you into a 3x developer
Three is a magic number. This is the number of things we can keep in our minds without losing focus. So, logically, a three-tier software…
Poor Man's Web
The Small Web Renaissance, Finger, Gopher and Gemini. How they work and what makes them different from the modern Big Web.
Htmx Is a Erlang
htmx, a disciple of hypermedia , available only in hardcover do not look for alternatives , has been manifesting itself into existence recently ( recently: after 10 years of work 1 ) and has finally reached critical mass 2 .
QtWayland 6.6 Brings Robustness Through Compositor Handoffs
Every release has a killer feature. Qt 6.6 features the opposite - staying alive. This blog post describes work to make Qt clients more robust and seemlessly migrate between compositors, providing resistance against compositor crashes and more.
Escape analysis hates copy elision (2021)
Yesterday Lauri Vasama showed me this awesome Godbolt: struct S { static std::unique_ptr<S> make() noexcept; ~S(); static std::unique_ptr<S> factory() { std::unique_ptr<S> s = S::make(); return M(s); } }; void take_ownership(S*) noexcept; void test() { std::unique_ptr<S> p = S::factory()…
A Personal History of APL (1982)
October 1982 TR-03.214 A PERSONAL HISTORY OF APL by Michael S. Montalbano International Business Machines Corporation General Products Division Santa Teresa Laboratory San Jose, California A PERSONAL HISTORY OF APL Introduction I have several reasons for calling this talk a personal history. For one, I want to make it…
Training Deep Networks with Data Parallelism in Jax
Misha Laskin personal website. Includes a blog and projects focused on artifical intelligence.
Storing Data in Control Flow
A decision that arises over and over when designing concurrent programs is whether to represent program state in control flow or as data. This post is about what that decision means and how to approach it. Done well, taking program state stored in data and storing it instead in control flow can make programs much…
Exploring the design space of binary search trees
Open-source research project that explores the design space of binary search trees to implement persistent and concurrent linear list data structures.
Kalyn: A self-hosting compiler for x86-64
Over the course of my Spring 2020 semester at Harvey Mudd College , I developed a self-hosting compiler entirely from scratch. This article walks through many interesting parts of the project. It’s laid out so you can just read from beginning to end, but if you’re more interested in a particular topic, feel free to…
Breaking the limits of TLA+ model checking
Graphing TLA+ state spaces for fun and profit.
No Lodash
The copy-paste library, containing various Lodash replacement functions, a copy-paste framework, and more.
Programming is hard
Software is weird. In its basic form, software is this very abstract thing with seemingly little connection to the real world. Yet graphical applications running on a hardware device like a modern phone feel very real, even to people who have no appreciation of what happens within this “black box”. Some pieces of…
Horrible Code, Clean Performance
A short tale of how horrible code yields clean performance.
A software epiphany
Even though I don't respect podcasts as an information delivery system, I recently listened to a podcast that felt like having an epiphany.
Somehow AutoHotKey is kinda good now
img {border-style: groove; border-width: 1px;} I love Autohotkey so much that it keeps me on Windows. It’s the best GUI automation tool out there. Here’s a shortcut that opens my current browser tab in the Wayback Machine: #HotIf WinActive("ahk_exe firefox.exe") >!^s:: { Keywait("RControl") Keywait("RAlt")…