Slightly unusual genre --- with this article, I want to try to enact a change in the world. I believe that there is a missing IDE feature which is:
An article about a couple of relatively recent additions to my workflow which I wish I knew about years ago.
Why are there so many programming languages? One of the driving reasons for this is that some languages tend to produce fast code, but are a bit of a pain to use (C++), while others are a breeze to write, but run somewhat slow (Python). Depending on the ratio of CPUs to programmers, one or the other might be relatively more important.
In these two most excellent articles, https://without.boats/blog/let-futures-be-futures and https://without.boats/blog/futures-unordered, withoutboats introduces the concepts of multi-task and intra-task concurrency. I want to revisit this distinction --- while I agree that there are different classes of patterns of concurrency here, I am not...
I had a productive day today! I did many different and unrelated things, but they all had the same unifying theme:
Canonical source code for software should include checksums of the content of all its dependencies.
A short note on what goes into a language's standard library, and what's left for third party libraries to implement!
Programmers on the internet often use Turing-completeness terminology. Typically, not being Turing-complete is extolled as a virtue or even a requirement in specific domains. I claim that most such discussions are misinformed --- that not being Turing complete doesn't actually mean what folks want it to mean, and is instead a stand-in for a bunch...
There are a bunch of posts on the internet about using git worktree command. As far as I can tell, most of them are primarily about using worktrees as a replacement of, or a supplement to git branches. Instead of switching branches, you just change directories. This is also how I originally had useed worktrees, but that didn't stick, and I...
There's a fascinating Rust library, loom, which can be used to thoroughly test lock-free data structures. I always wanted to learn how it works. I still do! But recently I accidentally implemented a small toy which, I think, contains some of the loom's ideas, and it seems worthwhile to write about that. The goal here isn't to teach you what you...
A post/question about formal grammars, wherein I search for a good formalism for describing infix expressions.
After working on the initial stages of several largish projects, I accumulated a list of things that share the following three properties:
A short note about some unexpected usages of Zig's defer statement.
In this post, I describe the design of window --- a small grep-like utility I implemented in 500 lines of Rust. The utility itself is likely not that interesting --- I bet some greybeared can implement an equivalent in 5 lines of bash. But the design principles behind it might be interesting --- this small utility manages to combine core ideas of...
If we wish to count lines of code, we should not regard them as lines produced but as lines spent
This is going to be related to software engineering, pinky promise!
Rule of thumb: the size of build or CI configuration should be mostly independent of the project size. In other words, adding, say, a new test should not require adding a new line to the build file to build the test, and a new line to .yml to run it on CI.
This is more of an android dream (that one with a unicorn) than a coherent post, but please indulge me. It's a short one at least!
A post about writing a retry loop. Not a smart post about avoiding thundering heards and resonance. A simpleton kind of post about wrangling ifs and fors together to minimize bugs.