Jim's Depository

20 years of rewriting the same code
swift category
Use MaxMind’s free GeoLite2 data without adding a C dependency: swift-mmdb delivers cross-platform IP geolocation in roughly 150 µs per lookup with a 9 MB database footprint.
femtoblogger category
Swift 6’s concurrency checks, Hummingbird 2’s rough edges, SQLite access with Lighter, and static-stdlib Debian packaging all get a field report from rebuilding a small production blog.
swift category
A version-gated `#warning` turns today’s `@unchecked Sendable` escape hatch into a future maintenance task, helping teams revisit compiler quirks when a major Swift release may finally make them obsolete.
miscellaneous category
A developer’s long-COVID update closes a promising OS experiment while preserving its core ideas: asynchronous user-space messaging, tiny kernels, and cache-friendly service decomposition.
coding category
When ICU headers and shared libraries drift out of sync, version-suffixed symbols can turn a routine link into an opaque failure. Learn how Swift’s bundled headers can override Debian’s ICU development files and how reinstalling `libicu-dev` restores compatibility.
os category
A pragmatic workaround turns macOS into a viable x86_64 OS-development workstation: pair Homebrew’s cdrtools and SDL-enabled QEMU with GRUB files harvested from a Linux-built ISO, avoiding QEMU’s multiboot limitation and GRUB cross-compilation pain.
embedded category
A print-friendly SVG and PDF replace the color-dependent original with a high-contrast reference that survives monochrome laser printers—useful when wiring Pico projects at the bench.
femtoblogger category
A visual refresh brings Google Scanned and verified-user badges into CSS, reducing image requests while exposing the trade-off between leaner assets and accessible alt text.
femtoblogger category
Blue checkmarks now distinguish post authors, giving contributors a clearer, more recognizable presence across Femtoblogger.
coding category
An nginx pattern using `Upgrade-Insecure-Requests`, `307` redirects, and `Vary` lets capable browsers move to TLS without stranding long-lived embedded clients that still need plain HTTP.
more articles