RSSAmplifier

Blog

Chris Arderne

A blog for adventurous trip reports, explorations of data and code, and sometimes even things from my day job. Use the links above to learn more, see my work and get in touch.

rdrn.meRSS feed ↗10 posts

Latest posts

An open source story

A fun thing happened over the last few years. I contributed in a small way to part of the open source geospatial ecosystem. First, some background on geo Zarr is a format for storing large multidimensional arrays on cloud storage (like S3). It plays well with xarray and NumPy, and lets you efficiently query small slices of multi-TB datasets. For many people and workflows, it’s the spiritual…

The Parable of the Journey

Two carpenters were going on a journey to build a temple. As they left their homes, lo, a spirit appeared in the road and offered them a ride. The first man harkened to the spirit, and was delivered quickly to Jerusalem. But the second man did not, for he shied not from an arduous journey. He toiled against bandits and biting winds, shared his bread, and learned much from the scribes and the…

I made an app for my cycling club

And you should too!? I’m a member of Oxford’s Friendliest Cycling Club , also apparently the “ Club of the Year ” of 2023. About a year ago the club had a small administrative crisis around the club ride organisation process. From what I understand (quite little), most clubs are smaller and homogeneous-er. They have set ride times, everyone shows up, they split up and go for rides. The Condors are…

The Babysense baby monitor sucks

At the time of writing, the New York Times slash “Wirecutter” recommend the Babysense MaxView monitor as their Top Pick. Many other review sites do the same. I’m just pissing a small voice into the SEO winds to say that it actually sucks. The battery barely lasts a few hours, even with the video off. The build quality is super flimsy. It’s huge and bulky. The screen will burn out your eyeballs if…

Sports in 2024/2025

I’ve been into trail running and mountainy stuff for a long time. I did my first big trail running event in 2013 (the Hout Bay Trail Challenge ) and have spent most of the years since then loving running and hiking in the mountains. Because I mostly spent time in places with amazing mountains, I never had a Garmin or used Strava - it just seemed like something that would detract from the pure…

Neovim config for 2025

I wrote about setting up a “modern” Neovim config about 2.5 years ago . In that post, I put a ton of effort into figuring out all the then-new Neovim features, Treesitter, LSP, and converted my config to Lua. And now, everything has changed again and that post is completely irrelevant. Great. But thankfully since Neovim 0.11 it’s all much easier, half the plugins aren’t needed any more, and the…

A boring latency investigation

I built a toy Next.js app as an excuse to play around with some stuff (like React 19 forms ). I had a form that would create a new object and then redirect to it. Mostly submit-to-loaded was <200ms, but occasionally it would spike to over one second, which is very much loading spinner territory. It seemed to mostly happen after not using the app for a few minutes. So I decided to investigate a…

Progressive Forms with React 19

So, React 19 is here! And Server Components and Forms are now the blessed way. It’s like old-school backend-first web-dev all over again but with two great advantages: Full-stack type-safety You can inject client-side interactivity when needed In the beginning , the only way with React was single-page-apps (SPAs) with mountains of clunky state and AJAX. Things improved and Routers were invented,…

September 2024

I don’t normally share much personal stuff on this blog because… well the internet is a gross place and an airgap feels healthy. But we became parents around two months ago, so that’s pretty important context for what’s been going on here. I left my job at Translucent , am enjoying (slash surviving) a few months of paternity leave, and starting a new job (more on that another time) in November.…

UPID is as UPID does

Context I developed a new type of universally-unique ID, and it was pretty fun. I was inspired to do so when I read this blog post a month or two ago, and it mentioned Stripe’s pretty prefixed IDs . They look like this: cus_MJA953cFzEuO1z └─┘ └────────────┘ └─ prefix └─ random I’ve used Stripe’s API before and thought these IDs were great. Any time I dumped out some JSON I didn’t have to wonder…