For years, one of the nicest maps on the web looked hand-painted: Stamen’s Watercolor tiles, OpenStreetMap rendered with paper texture, soft washes and frayed edges. WaterColorMap is my attempt to rebuild that look in Go, from raw OpenStreetMap data. It is a work in progress. The tiles come out and fit together, but there is no map yet that you could simply visit. This is where it stands, painted over Hanover, the city all its tests are run against.
Continue reading “WaterColorMap: painting Hanover from OpenStreetMap, a work in progress”Blog
Fast Fourier transforms at awkward lengths
Every FFT library is fast at 1024. The interesting question is what happens at 1009.
algo-fft — the FFT library in my algo-* suite — is at v0.7.3. This post is a full measurement of where it stands: against FFTW3, against the other Go FFT libraries, at powers of two and at the lengths that are actually awkward, with and without its assembly.
Go, TypeScript, and a living portfolio
Thirteen posts ago this series started with a bit-crusher written in Object Pascal. Time to close the loop with a look at the stack I actually work in today — Go on the backend, TypeScript and React on the frontend — and at the place where all current work is visible at once.
Continue reading “Go, TypeScript, and a living portfolio”Audio on Linux, in Go
The VST years were a Windows story. My current audio experiments live somewhere else entirely: on Linux, inside the PipeWire graph, written in Go — and the parallels to the old days are almost comically direct.
Continue reading “Audio on Linux, in Go”gll-tools: measurement, modernized
The measurement thread from the retrospective never ended — it moved to Go. gll-tools is a Go library and a set of CLI tools for reading EASE GLL (Generic Loudspeaker Library) data, the format the pro-audio world uses to describe loudspeaker directivity and behavior.
Continue reading “gll-tools: measurement, modernized”2D graphics in Go: agg_go and matplotlib-go
Alongside audio, 2D graphics has been the second constant in my work — from the Graphics32 team years and AggPasMod to today. The modern chapter of that thread is written in Go: agg_go and matplotlib-go.
Continue reading “2D graphics in Go: agg_go and matplotlib-go”go-dws: a Pascal thread, continued in Go
Of all my current projects, go-dws is the most personal: a reimplementation of DWScript — the object-oriented Object Pascal scripting engine — in Go. It is the continuation of a Pascal thread I have followed for decades, by other means.
Continue reading “go-dws: a Pascal thread, continued in Go”algo-*: a DSP suite in Go
Fast forward to today. Most of my current code is written in Go, and the largest chunk of it is a family of DSP libraries under the algo-* umbrella — the direct descendant of everything the retrospective posts described, rebuilt on a modern stack.
Continue reading “algo-*: a DSP suite in Go”The open source years
Threading through every previous post in this series is one phrase: “taken from my open source project”. Time to give the open source work its own chapter — because for about a decade, most of what I wrote ended up public, first on SourceForge, later on GitHub.
Continue reading “The open source years”Web apps, the Pascal way
At some point the browser became too capable to ignore. My path to the web was an unusual one though: instead of leaving Pascal behind, I compiled it — via Smart Mobile Studio and DWScript — straight into JavaScript. The results are on the Web-Apps page.
Continue reading “Web apps, the Pascal way”