Page - 2
EDNS Client-Subnet and Geographic DNS
DNS is a complex beast, so it's little surprise when I learn something new. Today I learned a bit more about the internals of how DNS works at various privacy-centric providers. It all started a few weeks ago when someone I follow on Mastodon (I'm ve ... read more →
Date Insanity with JavaScript
Earlier today, a friend sent me a joke about boycotting <some big evil tech company> for three days: Feb 29, 30, and 31. I thought this was pretty funny. But then, darker thoughts started to form. I've recently had the misfortune of doing far t ... read more →
Reverse Engineering Better MapKit Tile Overlays
Despite nearly 15 years of developing iOS apps on a daily basis, it’s occasionally jarring to go back to some of the older APIs. Today's blog is about MapKit, which isn't quite as old as CoreGraphics, but dates back to iOS 3.0! It was a bit slimmer b ... read more →
Databases as an Alternative to Application Logging
In my work, I've been doing a lot of ETL pipeline design recently for our geocoding system. The system processes on the order of a billion records per job, and failures are part of the process. We want to log these. Most applications start by dumping ... read more →
The rust-toolchain.toml file
This isn't so much a TIL as a quick PSA. If you're a Rust developer and need to ensure specific things about your toolchain, the rust-toolchain.toml file is a real gem! I don't quite remember how, but I accidentally discovered this file a year or two ... read more →
Conserving Memory while Streaming from DuckDB
In the weeks since my previous post on Working with Arrow and DuckDB in Rust, I've found a few gripes that I'd like to address. Memory usage of query_arrow and stream_arrow In the previous post, I used the query_arrow API. It's pretty straightforward ... read more →
How (and why) to work with Arrow and DuckDB in Rust
My day job involves wrangling a lot of data very fast. I've heard a lot of people raving about several technologies like DuckDB, (Geo)Parquet, and Apache Arrow recently. But despite being an "early adopter," it took me quite a while to figu ... read more →
Quadrupling the Performance of a Data Pipeline
Over the past two weeks, I've been focused on optimizing some data pipelines. I inherited some old ones which seemed especially slow, and I finally hit a limit where an overhaul made sense. The pipelines process and generate data on the order of hund ... read more →
Searching for TIGER Features
Today I had a rather peculiar need to search through features from TIGER matching specific attributes. These files are not CSV or JSON, but rather ESRI Shapefiles. Shapefiles are a binary format which have long outlived their welcome according to man ... read more →
Learning a Language the Lazy Way
I've lived in South Korea for quite some time, and during my stay here I've become reasonably fluent in the language. People often ask how long it took to become fluent and if I have any tips for their language learning aspirations. This post is abou ... read more →