Alex Kladov

  1. Minimal Viable Zig Error Contexts

    Out of the box, Zig provides minimal and sufficient facilities for error handling --- strongly-typed error codes. Error reporting is left to the user. Idiomatic solution is to pass a Diagnostics out parameter (sink) to materialize human-readable strings as needed.

    Published

  2. 256 Lines or Less: Test Case Minimization

    Property Based Testing and fuzzing are a deep and science-intensive topic. There are enough advanced techniques there for a couple of PhDs, a PBT daemon, and a client-server architecture. But I have this weird parlor-trick PBT library, implementable in a couple of hundred lines of code in one sitting…

    Published

  3. Consensus Board Game

    I have an early adulthood trauma from struggling to understand consensus amidst a myriad of poor explanations. I am overcompensating for that by adding my own attempts to the fray. Today, I want to draw a series of pictures which could be helpful. You can see this post as a set of missing illustrations…

    Published

  4. JJ LSP Follow Up

    In Majjit LSP, I described an idea of implementing Magit style UX for jj once and for all, leveraging LSP protocol. I've learned today that the upcoming 3.18 version of LSP has a feature to make this massively less hacky: Text Document Content Request

    Published

  5. Against Query Based Compilers

    Query based compilers are all the rage these days, so it feels only appropriate to chart some treacherous shoals in those waters.

    Published

  6. Wrapping Code Comments

    I was today years old when I realized that:

    Published

  7. Diagnostics Factory

    In Error Codes For Control Flow, I explained that Zig's strongly-typed error codes solve the handling half of error management, leaving reporting to the users. Today, I want to describe my personal default approach to the reporting problem, that is, showing the user a useful error message.

    Published

  8. Justifying text-wrap: pretty

    Something truly monumental happened in the world of software development in 2025. Safari shipped a reasonable implementation of text-wrap: pretty: https://webkit.org/blog/16547/better-typography-with-text-wrap-pretty/. We are getting closer and closer to the cutting-edge XV-century technology. Beautiful…

    Published

  9. Programming Aphorisms

    A meta programming post --- looking at my thought process when coding and trying to pin down what is programming knowledge. Turns out, a significant fraction of that is just reducing new problems to a vocabulary of known tricks. This is a personal, descriptive post, not a prescriptive post for you.

    Published

  10. CI In a Box

    I wrote box, a thin wrapper around ssh for running commands on remote machines. I want a box-shaped interface for CI:

    Published