-
Napier And Havalock North
9th Oct 2026
Left Feilding today and headed to the Hawke Bay. The first stop is Napier for two nights.
The Scott Base B & B at Feildings was lovely. Hosted by Brenda, it was a very comfortable stay amongst a lovely part of the world. Very fine breakfast too. I can definitely recommend it.
I tried to find the caravan park we stayed at Napier the last time I visited, about 20 years ago. Its location relative to the town centre is completely lost to me, and the two caravan parks I checked did not ring any bells. Maybe it’s no longer there. I guess a lot can change in 20 years.
Continue reading → -
Pækākāriki and Upper Hutt
One last day in Wellington. Continue reading →
-
📗 Vibelog
Tools Made In the Past Week
Loved the Lex On Tech post about the apps people vibe-coded to solve their own needs. Building for an audience of one has been a train I’ve been on for a long while, before the concept of AI coding agents came about. Their presence now has just made it easier, and made it feel less spending time of these things was time wasted.
This is a roundabout excuse to write about the tools I asked agents to build for me over the last week. They were:
Continue reading → -
Johnsonville, the Skyline Walkway, and the Inevitable
A second day in Wellington. Continue reading →
-
A Day In Wellington
Visiting the botanical gardens and the summit of Mt. Victoria. Continue reading →
-
Dev Notes: Select Locks In PostgreSQL
Locking In PostgreSQL and a shared outbox pattern. Continue reading →
-
The Compartmentaliser's Survival Guide To Obsidian Bases
My pattern for setting up Obsidian Bases for distinct topics. Continue reading →
-
📗 Vibelog
Porting Old Delphi Games To The Browser
This is pretty nice. I had some old Delphi games made more than 20 years ago that I wanted to get running again. They’re not very good games, but they were ones I spent a lot of time on in the past, and I wanted to make sure they were preserved in some way. In the past I would try to get them running in an emulator, with limited success. My ultimate goal is to get them running in the browser so they would survive any more platform changes.
Continue reading → -
New Web Tool: Queued Pastes
A small utility to queue up a block of text that is to be copied one line at a time. Continue reading →
-
The 90's Intro And Bumpers of the ABC Education Segment
Revisiting the intro and bumpers of the ABC Education segment that was broadcasted on weekday mornings. Continue reading →
-
📗 Vibelog
UCL Build
A bit of fun using Astra to make a Make-clone that uses UCL as the receipt syntax. Continue reading →
-
On Autosave In Desktop Apps
What Obsidian has that Preview doesn’t. Continue reading →
-
📘 Devlog
Dequoter - Plugins
Trying out, and documenting some details of, UCL plugins in Dequoter. Continue reading →
-
📘 Devlog
UCL - Bytes Slices
Adding support for byte slices to UCL to deal with hashing algorithms and encoding things to Base64. Continue reading →
-
📗 Vibelog
MD Treatment - Trying Out Pi and Kimi k3
I’m moving markdown files from an Obsidian vault to a private Hugo site, and I needed something that did text transformations. And these were text transformations that would’ve been… well, not difficult to automate, but annoying to automate. The transformations themselves would be easy, it’s just knowing where to apply them. Context is important, and I was not confident that a simple pattern matcher would’ve picked up or applied the transformations correctly.
Continue reading → -
Working Around One-Shot GPUParticles2D Emitter Slowdown
A technique for preventing the awkward slowdown when a one-shot GPUParticles2D emitter is fired for the first time in Godot. Continue reading →
-
Creating Keyboard Split Tracks In Logic Pro
Creating a MIDI track where the left plays one software instrument and the right plays another. Continue reading →
-
On Doomerism
Some thoughts about Terrence Edan’s post against doomerism. Continue reading →
-
ChatGPT Briefings Via RSS
Using Hugo and ChatGPT Work/Codex to produce scheduled briefings that are available in an RSS reader. Continue reading →
-
Native Apps Are Not The Problem
On long review times, review governance, and side-loading. Continue reading →
-
SSH Cheatsheet
Various techniques for working with SSH. Continue reading →
-
Blog Design Update
Significant design updates have been made to the blog, including a new search page, an improved archives layout, and the reintroduction of backlinks and paging features. Continue reading →
-
Musings Of Faking a REST-API Client in Server-Side Rendered Templates
Proponents of server-side rendering question whether a well-defined API can also work effectively with server-side templates, suggesting an approach where Go handlers serve both needs without requiring actual server round-trips. Continue reading →
-
📗 Vibelog
Well Read - A Fable Moment
Asking Fable to make some changes to my RSS reader, as well as getting Fable to look at a problem Opus couldn’t solve. Continue reading →
-
More Kvetching About Stripe's Documentation
Stripe’s documentation lacks clarity on the basic concepts and calculations related to invoicing, leaving users confused about how key fields like
amount_dueandending_balanceare determined. Continue reading → -
📗 Vibelog
Weatherpatch - UI Improvement
A few weeks ago, I vibe-coded a web-app called Weatherpatch. This is an app that is designed to receive email newsletters and produce them as an RSS feeds: basically what Feedbin does, but without needing to use Feedbin. The app was vibe-coded with Opus, and while functional, it is hardly an example of good design (unless you’re a fan of Cubism). To wit:
Yeah, Opus just threw the feed management controls all over the place. And I tolerated it for a time. I was more interested in having something functional, rather than pretty. But the thing about a bad UI is that it makes using the app feel bad. Sure I’m not in there managing feeds, but I would like to go in there are copy-paste the email address when setting a new one up.
Continue reading → -
Thinking About Progressive Timestamp Input Fields
The author reflects on a flexible timestamp input feature they developed, recognizing its limited applicability and the challenge of making it user-friendly while contemplating its potential value in user-focused systems. Continue reading →
-
📗 Vibelog
Show As Table - A DSL In a Hurry
I was asked to make a couple of diagrams for the purpose of showcasing a database design. These diagrams were mainly used to show the relationship between entities, so I chose to use TLDraw for this. But there was a need to add some example rows, which TLDraw does not make easy. Furthermore, there was a bit of a push to get this done quickly, as these were to be shown to various stakeholders the next day.
Continue reading → -
📗 Vibelog
Blogging Tools - Some Post Authoring Work
Requesting some work from Claude to add post scheduling to Billing Tools. Continue reading →
-
Blogger Archetype Quiz: My Written-in Answers
Blogger reflects on their personal preferences and habits related to blogging and outdoor activities while questioning their archetype. Continue reading →
-
SSH Invalid Private Key Format Errors
Troubleshooting SSH issues with a private key revealed that an outdated client and a missing trailing newline caused connection problems in a CI/CD workflow. Continue reading →
-
On Group DMs In Slack
Group DMs in Slack can lead to disorganized conversations that would be better suited for temporary channels that allow users to engage more selectively. Continue reading →
-
📘 Devlog
Godot Game - Meta Elements
Work has begun on the game’s meta elements, focusing on essential mechanics like menu screens, despite the unexciting and obligatory nature of the tasks involved. Also some details on how to define custom classes in GDScript. Continue reading →
-
Wrap Cobra Commands In Functions
Using Cobra for CLI apps is more efficient and organized when each command is wrapped in its own function, improving clarity and maintainability compared to the documented approach. Continue reading →
-
On the Character of Objects
Some random musing about the difference between an object with character, and one that just has damage. Continue reading →
-
📦 Release
Dequoter 0.1.9
Initial release of Dequoter: a simple Boop-like text processor for MacOS. Continue reading →
-
Could Swift's Guard Statement Work in Go?
Exploring the idea of a
guardstatement in Go reveals significant challenges and limitations compared to its implementation in Swift. Spoilers: it probably wouldn’t work. Continue reading → -
📘 Devlog
Imagen
A personal playground with image generation models (not related to Google’s Imagen model). Continue reading →
-
📘 Devlog
Other Project Updates
A few updates of some other projects I worked on recently.
Webtools saw some love as I needed some tooling made to make the icon easy to include in the Well Read Flutter project itself. Android expects the logo of a specific size, so I “commissioned” an Android Icon Resizer, which will take one or more PNG files, resize them to what Android expects, and prepare them in a ZIP that could be extracted at the route of the
Continue reading →res/mipmapdirectory. It will also produce a small preview of the icon, rendering it in a circle so you can see how it looks on the device. It’s background savvy, layering the icon over the PNG with “background” in the filename. -
📘 Devlog
gRPC Client - A Vibe-coded Client for Testing REST/gRPC Endpoints
My current craving of vibe-coding various tools I need to do my job continues, with an attempt to build a REST/gRPC test client.
This is motivated by my distaste with all the other clients I’ve tried. There’ve been a few, and I’ve been unhappy with each one. For one thing, they seem more heavyweight than my needs. I don’t know if this is just how they’re implemented, or it’s because the realm of HTTP request testing is complicated (It’s probably a bit of both).
Continue reading →