lurking fun

Devlog - 2025

about

shit i’ve worked on and want to share

check the devlog archive for more… in the future

kdl-ing

September 24, 2025

KDL (pronounced “cuddle”) is a document language. In terms of data model, think XML. A KDL file contains a heirarchy of nodes, and each node can have arguments and attributes.

a-node arg1 attribute=#null {
  child-node (i8)127
}

My interest in KDL is for encoding GUI layouts. Anyway, that’s why I’ve been writing KDL parser in zig. It’s not ready to use, but you can check out the code here.

side of bqn

September 01, 2025

BQN (prounounced “bacon” if it allows for puns) is a neat little array programming language. It’s embeddable and allows for very compact code, in part because it makes use of unicode symbols for many builtin functions. Here’s a sample.

ParseKey   ← { (⊑(𝕩⊐'='))↑𝕩 }
ParseValue ← { ⊑(𝕩⊐'=')<(≠𝕩) ? (+⟜1⊑𝕩⊐'=')⊸↓ 𝕩 ; "" }
ParseArg   ← { 𝕊 i‿s: "--" ≡ 2↑ s ? (ParseKey 2↓s)‿(ParseValue s)‿i # Long flag
             ; 𝕊 i‿s: "-"  ≡ 1↑ s ? (1↓s)‿(2↓s)‿i                   # Short flag
             ; 𝕊 i‿s:               ""‿s‿i                          # Positional argument
             }

Parse          ⇐ { len←≠𝕩 ⋄ len‿3 ⥊ > ParseArg¨ (↕len) ⋈¨ 𝕩 }
IndexOf        ⇐ { ⊑(⥊⊏⎉1 𝕨)⊐<𝕩 }
Contains       ⇐ { (𝕨 IndexOf 𝕩) < ≠𝕨  }
NameOf         ← { ⊑⟜𝕨 ⋈⟜0 𝕩 }
ValueOf        ⇐ { ⊑⟜𝕨 ⟨𝕨 IndexOf 𝕩, 1⟩ }
NumericValueOf ⇐ { •ParseFloat 𝕨 ValueOf 𝕩 }
IsFlag         ⇐ { 𝕨 0⊸≠∘≠∘NameOf 𝕩 }

If you’ve never used BQN before you’ve probably noticed one of BQN’s biggest weaknesses—you need to learn how to read it first. Despite that, I’m pretty enamored with BQN. I want to embed it in to zig to use for math-heavy code.

lizard wizard

August 21, 2025

a while ago i wanted to make a wizard program that could be used to install a game from a disk. i targeted win32, but my real goal was linux (through wine). of course, since i wrote it in zig, the name had to be lizard wizard.

Screenshot of an installation wizard. The header reads “First Page”, the subheader reads “This is the first page.”, and the main content area reads “Lizard Wizard is a zig template for making a Win32 wizard application. It is based on the Wizard-2020 example.”.

why am i posting about it now? well, i just made a bunch of changes and now it is more of a library. it wraps win32 so using it isn’t shit. i’m gonna call it lizard. and it will have a wizard widget ☺

in the future i’ll probably use it as a base for any win32 stuff i end up doing.

hello zine

August 20, 2025

i wanted a new name, but all my stuff has my old name on it. so i’m making a new blog with zine so i have something to put on the new domain with my new name.

i’d like to be called lurkie, or lurk for short. if you need to talk about me, use they/them.