Git Submodules: Adding, Using, Removing, Updating (2009)
I've spent a little more than a month working with Git now. I can honestly say that while there are many things that I like about Git, there are just as many things that I personally find to be a pain in the butt. Submodules specifically have managed to be a thorn in my side…
On Cache Invalidation: Why Is It Hard? (2018)
Many people must have heard this quote (by Phil Karlton) many times: There are only two hard things in Computer Science: cache invalidation and naming things. Two days ago, Nick Tierney mentioned it …
Sed challenge: join cal -y months into a single column
This is a little sed challenge that ocurred to me somewhat recently, when I wondered how many weeks were between 2 dates. Of course, I just looked at the calendar and counted, but then I wondered what kind of sed script I’d need in the middle of a cal -y | ... | wc -l pipeline to get the same answer.
I got the GNU Modula-2 compiler working on OpenBSD
When it rains it pours. After making a splash with D , 1 I remembered that some time ago I began an attempt to bring the GNU Modula-2 compiler to OpenBSD . Because why not? Modula-2 is a language that exists and has compiler implementations. I guess my goal is to bring all the languages and compilers to OpenBSD. And…
NoiseCraft: Browser-Based Visual Programming Language for Sound and Music
NoiseCraft: a Browser-Based Visual Programming Language for Sound & Music
I want a better shell (2019)
I want a better shell.
DDD Is Overrated
Update: There’s a slightly extended version of this post over at the INNOQ company blog.
Knuth-Morris-Pratt string-searching algorithm: DFA-less version
You see, there are two memory accesses per one character of the input string (at average). Hence, the total number of all memory accesses can be len*2 at worst.
TLA+ Action Properties
There’s not a whole lot on TLA+ technique out there: all the resources are either introductions or case studies. Good for people starting out, bad for people past that. I think we need to write more intermediate-level stuff, what Ben Kuhn calls Blub studies. Here’s an attempt at that. Most TLA+ properties are…
GeoGuessing with Deep Learning
Applying photo geolocation estimation to the game of GeoGuessr.
Writing Your First Kernel Module (2019)
Kernel modules are code components that can be loaded and unloaded by the kernel when required. They are used to extend the functionality…
From NAND to Raytracer: Raytracing on the Hack Computer
I recently spent some time going through the amazing nand2tetris course, and assignment #9 is to implement something with the Jack programming language that runs on the Hack computer. My friend encouraged me to try writing a raytracer, which is an algorithm that generates physically realistic images by simulating…
Crazy fast build times, or when 10 seconds starts to make you nervous (2012)
Firstly this is not just my effort but my team and organisation. Secondly the usual rules apply, this is expert advise and what works for me will very probably cause your whole production stack to blow up and kill people. Lastly this is long so skip to the bit you care about or come along and chat at QCon London 2012
We memo all the things (2020)
On my team at Coinbase, we ask everyone to use the React performance trinity – memo, useMemo, and useCallback – all the time. For some reason, this is controversial. I’m guessing this has something to do with Twitter. This article explains why we do it anyway.
I Hate Git Submodules
Abildskov.io
SQL vs. NoSQL Is the Wrong Distinction
A misconception that I held for a really long time was that systems that use SQL (Structured Query Language) are by definition relational databases, and systems that don’t (e.g., MongoDB, Cassandra) are non-relational. It’s easy to understand whether a database uses SQL or not, but what does it mean when we say a…
Flowchart: How should I run containers on AWS?
As of Late 2021, which AWS service should I use to run my new containerized app in production?
Code in ARM Assembly: Registers Explained
Types of register explained, and which are available to pass arguments of different types. Call by value and call by reference distinguished.
LaTeX Finite Automata and State Diagrams with Tikz
This short guide collects some examples of drawing finite state machines using the Tikz LaTeX library.
Translating My Z3 Tutorial to Coq
A blog about life, programming, math, logic, and physics.
Annotated explanation of David Beazley's dataklasses
David Beazley on Twitter :
Beyond coupling and cohesion: strategies for un-fucking yourself
This post belongs in the ‘highly speculative’ category. It contains ideas that I’ve yet to flesh out and properly pin down. Reader beware!