• Writing Good Data Migration Scripts

    I’m waiting for a data migration to finish, so I’ve naturally got migration scripts on my mind. There’s an art to writing a good migration script. It may seem that simply throwing together a small Python script would be enough; and for the simpler cases, it very well might be. But it’s been my experience that running the script in prod is likely to be very different than doing test runs in dev. Continue reading →

  • I appreciate projects like Next.JS put a lot of effort into their guides, but they still need to provide a basic API reference. Knowing about request helpers is fine, but do they return strings or arrays? What if a query parameter’s not set? This is stuff I need to know. 🤷

  • Working in the project which is using TypeScript for the code, and Go for the deployment configuration. Wish it was the other way around, where Go is used for the code, and TypeScript… isn’t used at all. 😛

  • 👨‍💻 New post on Databases over at the Coding Bits blog: PostgreSQL BIGSERIAL “Type”

  • I haven’t gone all in with AI co-pilots or anything with my coding setup yet, but the latest version of GoLand comes with what is essentially a line completion feature that I actually find quite useful. I suspect there’s some ML in there as it seems to understand context and produce suggested line completions that are, more often than not, pretty much what I was going to type out by hand anyway. Many times I could implement most of a new function simply by typing Tab several times. Impressive work, JetBrains.

  • On Sharing Too Much About Too Little

    Manuel Moreale wrote an interesting post today about sharing stuff online: Life can be joyful and wonderful and marvellous. But it can also be a fucking nightmare. And yes, it’s important to celebrate the victories and to immortalise the glorious moment. But it’s also important to document the failures, the shitty moments, the dark places our minds find themselves stuck in. It’s all part of what makes us unique after all. Continue reading →

  • BASIC.HTM

    While poking through some old files this morning I came across probably the first bit of HTML I’ve ever written, way back on the 10th April 19961. I think I vaguely remember making these. We were in Castlemaine staying over at my grandparents house and Dad bought along his laptop for us kids to play with (complete with a passive-matrix LCD and 2 hours of battery life). It was the evening and I was mucking around with Netscape Navigator. Continue reading →

  • Indexing In UCL

    I’ve been thinking a little about how to support indexing in UCL, as in getting elements from a list or keyed values from a map. There already exists an index builtin that does this, but I’m wondering if this can be, or even should be, supported in the language itself. I’ve reserved . for this, and it’ll be relatively easy to make use of it to get map fields. But I do have some concerns with supporting list element dereferencing using square brackets. Continue reading →

  • 🔗 Goodbye to Apple’s Smart Keyboard Folio, the best iPad Pro accessory

    I’ve never considered hoarding accessories before, but I might start. The Smart Keyboard Folio is perfect for how I use the iPad: a great stand and decent enough keyboard that doesn’t get in the way when I just want to read.

  • Free idea for anyone interested in making a mockumentary: a band that specialises in “Musak,” the type of music you hear in lifts or dental offices. They’re trying to make it to the big leagues — a well known department store, like a Myer or Macies — and they’re up against other bands getting better gigs, the Musak industry “big-wigs,” and their own shortcomings. Sort of like “Spinal Tap” meets the doctors waiting room.

  • It’s ironic to think that part of my job is to make sure that the nice artwork that I see on our 500 and 404 error pages are never seen by anyone else.

  • Ah, hello, my “is this article helpful?” popup friend, the ugly cousin of all the “please rate this experience” solicitations everyone seems to get. Oh, and I see you’re the super helpful one that covers up the very text I’m trying to read.

    A HTML modal over prose with the prompt 'Is this article helpful?' with a 'Yes' and 'No' button
  • It’s always fascinating browsing the early methods and properties of the DOM. It feels a bit like an archeologist shifting through strata uncovering facts about some long lost civilisation. “Oh, they didn’t call them query parameters back then. Instead, they were known as search strings.”

  • One other skill I wish I had was good audio mastering skills. Been going through some more tapes last night and it would be so sweet to be able to remove the loud hiss some of them have. I know what I need to do in principal, but translating that into an FX chain in Logic Pro is where my gap lie.

  • Browsing some of the WeblogPoMo posts on Mastodon the past few days. A lot of great posts, plus some really talented web designers out there. Wish I had their artistic or web-design skills.

  • Of course I deployed something that broke other services because of dodgy permissions. So…

    Autogenerated description: A glass jar on a desk about half fill with gold coins with a hand above it dropping two gold coins into the top. The room should be lit with sunlight and there should be a paper label on the jar with the text 'Permission Bug Jar' written in black marker.
  • My second favourite word to write in a Jira ticket, after augment, is “decommission”. I’m basically using it as an euphemism for “rip this unused code out”. To have made a few tickets with this word today feels glorious. 😊

  • As Someone Who Works In Software

    As someone who works in software… I cringe every time I see society bend to the limitations of the software they use. It shouldn’t be this way; the software should serve the user, not the other way around. I appreciate a well designed API. Much of my job is using APIs built by others, and the good ones always feel natural to use, like water flowing through a creek. Conversely, a badly designed API makes me want to throw may laptop to the ground. Continue reading →

  • My favourite gym t-shirt. All the Aussies would get this reference.

    A black T-shirt is displayed with the text 'WE'RE GOIN TA BONNIE DOON' printed on the front in bold white letters, with the line Bonnie Doon Hotel below it on the right.

    This I got from an op-shop but I have been to the Bonnie Doon Hotel a few times. It’s actually pretty nice.

  • 📺 Taitset

    Discovered another YouTube channel about Victorian railways this evening. This one’s more about history and operations and less pure cab-rides. A lot of fascinating information about locations that I’m very familiar with.

  • It’s already May and I’m way behind on my reading goals for the year.

    Screenshot of the Micro.blog reading goals for 2024, showing 1 book read with a goal of reading 10. The single book cover is blank.

    The trouble is that the book that I want to read next is one I’ve read before, which doesn’t really count towards my goal. Well, I guess it could, since I haven’t listed it here. Maybe I’ll let myself this one pass.

  • On the train. Overhead announcement comes through from the control centre mentioning that a way to get service updates is to follow Metro on Twitter. Not X, Twitter. Even 1.5 years out.

    Such is the staying power of Twitter as a brand, compared to what it’s called now. I’d be curious to know if those not using X or are not interested in tech know about the rebrand at all. Everyone knew about Twitter, even if they never used it.

  • Tape Playback Site

    Thought I’d take a little break from UCL today. Mum found a collection of old cassette tapes of us when we were kids, making and recording songs and radio shows. I’ve been digitising them over the last few weeks, and today the first recorded cassette was ready to share with the family. I suppose I could’ve just given them raw MP3 files, but I wanted to record each cassette as two large files — one per side — so as to not loose much of the various crackles and clatters made when the tape recorder was stopped and started. Continue reading →

  • Interestingly, the best example of an app soliciting user feedback might be the Economist app. Just one alert modal with a simple question — “are you enjoying the Economist app?” — and a simple Yes/No answer. No star rating. No review prose. Just a simple thumbs up/thumbs down. Crude, but effective.

  • UCL: Brief Integration Update and Modules

    A brief update of where I am with UCL and integrating it into Dynamo-browse. I did managed to get it integrated, and it’s now serving as the interpreter of commands entered in during a session. It works… okay. I decided to avoid all the complexities I mentioned in the last post — all that about continuations, etc. — and simply kept the commands returning tea.Msg values. The original idea was to have the commands return usable values if they were invoked in a non-interactive manner. Continue reading →