matklad

Yet another programming blog by Alex Kladov aka matklad.
https://matklad.github.io/ (RSS)
visit blog
A Missing IDE Feature
14 Oct 2024 | original ↗

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:

Two Workflow Tips
8 Oct 2024 | original ↗

An article about a couple of relatively recent additions to my workflow which I wish I knew about years ago.

On Ousterhout's Dichotomy
6 Oct 2024 | original ↗

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.

The Watermelon Operator
24 Sept 2024 | original ↗

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...

What is io_uring?
23 Sept 2024 | original ↗

An attempt at concise explanation of what io_uring is.

Try to Fix It One Level Deeper
6 Sept 2024 | original ↗

I had a productive day today! I did many different and unrelated things, but they all had the same unifying theme:

The Fundamental Law Of Software Dependencies
3 Sept 2024 | original ↗

Canonical source code for software should include checksums of the content of all its dependencies.

STD Doesn't Have to Abstract OS IO
12 Aug 2024 | original ↗

A short note on what goes into a language's standard library, and what's left for third party libraries to implement!

Primitive Recursive Functions For A Working Programmer
1 Aug 2024 | original ↗

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...

How I Use Git Worktrees
25 Jul 2024 | original ↗

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...

Properly Testing Concurrent Data Structures
5 Jul 2024 | original ↗

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...

Regular, Recursive, Restricted
4 Jun 2024 | original ↗

A post/question about formal grammars, wherein I search for a good formalism for describing infix expressions.

Basic Things
22 Mar 2024 | original ↗

After working on the initial stages of several largish projects, I accumulated a list of things that share the following three properties:

Zig defer Patterns
21 Mar 2024 | original ↗

A short note about some unexpected usages of Zig's defer statement.

Kafka versus Nabokov
2 Mar 2024 | original ↗

Uplifting a lobste.rs comment to a stand-alone post.

Window: Live, Constant Time Grep
10 Feb 2024 | original ↗

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...

Write Less
12 Jan 2024 | original ↗

If we wish to count lines of code, we should not regard them as lines produced but as lines spent

Of Rats and Ratchets
3 Jan 2024 | original ↗

This is going to be related to software engineering, pinky promise!

O(1) Build File
31 Dec 2023 | original ↗

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.

Git Things
31 Dec 2023 | original ↗

A grab bag of less frequently talked about git adjacent points.

CI Dream
24 Dec 2023 | original ↗

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!

Retry Loop
21 Dec 2023 | original ↗

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.

↑ these items are from RSS. Visit the blog itself at https://matklad.github.io/ to find other articles and to appreciate the author's digital home.