-
We are destroying software telling new programmers: “Don’t reinvent the wheel!”. But, reinventing the wheel is how you learn how things work, and is the first step to make new, different wheels.
Wheels are not the same. If I need a wheel for a wheelbarrow, I don’t want to use a wheel for a tractor just because it exists. The same is true for software. If all I want to do is minify some JS without all the transpiling crap that comes from using React or Typescript, why not eschew Webpack for my own handwritten build scripts?
Via: Simon Willison
-
I thought the need to use these isolators — which, when opened, will shut off power in the overhead line flowing from north to south — was the reason why the train replacement busses are where they are. Turns out I was wrong, as these isolators are still closed. Must be some other reason.
-
So many people on bikes today. Have not seen this many cyclists in the park for a while. Guess the cool weather has brought people outside. 🚲
-
Moving all my project posts onto a separate blog… again. I tried writing them here, but I still feel like they belong elsewhere, where I have a bit more control over the layout and the design. Spent the morning configuring the theme, which was going to be orange but I had to change it to red as the orange didn’t provide a nice contrast for reading (you had to darken it almost to brown). I’m not sure if I’ll move the old posts over to it yet. Maybe the one’s on UCL.
Update on 14/2: No, changed my mind again. See this post.
-
UCL: Some Updates
Made a few minor changes to UCL. Well, actually, I made one large change. I’ve renamed the
foreachbuiltin tofor.I was originally planning to have a
Continue reading →forloop that worked much like other languages: you have a variable, a start value, and an end value, and you’d just iterate over the loop until you reach the end. I don’t know how this would’ve looked, but I imagined something like this: -
Enjoyed this week’s P&B with Lou Plummer. I enjoy reading linkage.lol and I know people I work with who also follow’s Lou’s work. His blog recommendations look interesting too.
-
Released a new plugin for Micro.blog: Sidebar for the Bayou theme (yes, another sidebar plugin). Thanks again to @Mtt for making changes to the theme to support adding the sidebar. Can be installed from the plugin directory (please ensure you have Bayou version 1.1.3 or later).
-
What a cruel irony it is that the instinctive response to an itchy eye is to rub it, which doesn’t provide relief and only prolongs the irritation. The only way out is to ignore instinct and practice self control. There’s a metaphor here somewhere I’m sure.
-
About My New Cooler's Programming Feature
There’s lots to like about my new cooler, but the programming feature is not one of them. My old unit had a very simple timer with two modes: turn cooler on after N hours, or turn cooler off after N hours. Anything else requires manual intervention.
The old control panel (turns out I did have a photo, albeit an old one). Set the mode: cool/vent (fan), the power setting, then tap Timer Select to choose between turn on or off after N hours. I really liked this simple setup. Many times in summer, when the days are warm but not hot, and the nights are cool, it was nice to turn the cooler’s fan on and set the timer to turn it off after 2 to 3 hours, maybe longer if the days were a bit warmer1. The cooler will simply pull cool air from outside and circulate it around the room. This was enough for me to get to sleep, at which point the cooler would shut itself off in the middle of the night.
Continue reading → -
Recent earworm: Samplextra, by Lee Rosevere. 🎵
-
I don’t understand YouTubers who start their videos with a hype bumper. Just get to the frickin’ interview. You got my attention already.
-
Keep forgetting to give my keep-cup a proper clean when I get home. Now today’s morning coffee taste like yesterday afternoon’s lemon and ginger tea.
-
I had a Ventolin inhaler expire on me, a first in my life. It was a little smokey yesterday so I used it, and sprayed… something into my lungs, resulting in a coughing fit. I still feel the effects a bit today. Hope I didn’t cause too much damage.
-
🔗 Animating Rick and Morty One Pixel at a Time
Using OpenGL Shading Language, which is apparently supported by browsers, to produce an animation of Rick from Rick and Morty. I’ve yet to go into this post in any great detail, but it certainly looks very interesting.
Via: Simon Willison
-
My unread items in Feedbin are starting to pile up again, largely because I’m “keeping them for later.” Need to decide when later is now. May as well have later be now now. 🧐
-
May have gotten to the bottom of a problem that was stumping people at work. The cause, yet to be verified, looks to be a change in the integer value of a gRPC enum value. Suspect that it may have been a manual change to generated code (yeah, try to avoid doing that if you can help it).
One possible reason it got missed is that we’ve configured our SCM to hide generated files in merge requests.
-
It’s a shame online integrations assumes that everyone’s using GitHub. I can understand why they build their products that way, and I knew that I’d loose much of those integration niceties when I moved to my own setup. Still, it would be nice to see more integrations work with any Git-based SCM.
-
Trying out Bayou theme by @Mtt on a test blog. Lots to like about it, especially the idea of having the latest micro-post appear in the form of a status message. Very unique.
-
New AC installed and doing the best it can on this slightly humid day, although it’s performing better than the old unit. I forgot to take a photo of the old panel, so here’s a photo of the new one (the lower one is for the heater).
-
Already making daily note archives for 2025.
-
Was not expecting the 10 mm of rain we had last night. Not sure anyone was, not even the Bureau. Put a dampener on my plans. I thought I was being super smart washing my towels in the evening and hanging them on the line to dry overnight so I could use the line for other washing today. Ah well. 🤷
-
Idea for UCL: Methods
I’m toying with the idea of adding methods to UCL. This will be similar to the methods that exist in Lua, in that they’re essentially functions that pass in the receiver as the first argument, although methods would only be definable by the native layer for the first version.
Much like Lua though, methods would be invokable using the
:“pair” operator.strs:to-upper "Hello" --> HELLOThe idea is to make some of these methods on the types themselves, allowing their use on literals and the result of pipelines, as well as variables:
Continue reading → -
My latest YouTube binge has been Drew Gooden, and his videos on YouTube and Instagram influencers and trends: an area of online culture I know nothing about. I’m kinda glad that I stayed well away from that area of the internet. Seems like more drama than I can handle. 📺
-
Getting a new cooler installed tomorrow. The one I have, which I think is as old as the house, is on it’s last legs. It struggles to cool the house, only managing to keep the inside temperature steady if I turn it on early enough, and leaks profusely. I shutter to think what my next water bill will be.
The new unit’s going to be another evaporative cooler. Everyone I talk to tells me I’m crazy, and I should just go with reverse cycle. And I will agree that it’s a bit of a gamble. But it’s worth trying, given the quote I was given and the fact that I don’t have to do any major modifications to the house. If it doesn’t pan out, there’s nothing stopping me from getting reverse cycle later.
I did pick the worse time to do it though: we’re going through a heatwave that won’t break until Tuesday. At least it’ll give me an opportunity to do a fair before/after comparison.
-
No trains today.
-
Can one have a project with a relational database that is deployed early and often, and not have thousands of SQL migration scripts? Seems like it’s difficult to have both. Maybe there’s some way to “roll up” old migration scripts into one nice SQL schema. I guess running them all on a new database and exporting the schema will do that. 🤔
-
🧑💻 New post on TIL Computer: Local Values In Fiber
-
Love how the database methods for the project I’m working on are consistently inconsistent. “InsertPost”, “NewSite”, “AddUser” — only some of the names I’ve chosen so far. Could I, maybe, “infuse” a target? Or maybe even “interpose” a page? How about “stuff in” some styles? Where’s my thesaurus? 🙃
It’s a little better for getting things from the database. In this project I’ve settled on “GetThis” or “GetThat”. I have used a mixture of “Find”, “Fetch”, and “Select” on other projects.
-
Being able to “simply hook up an interactive debugger” is a capability I wish we still had in this brave new world of micro-services and Kubernetes.
-
Generates an RSS feed of all the toots you bookmark. I’ve been using it these past couple of weeks and it’s been fantastic. Mastodon bookmarks are front and centre now, thanks to them being in my feed reader.
Via Robb Knight
Hmm, that’s interesting. I can’t access the RSS feeds this generates using Curl or EchoFeed. Works fine in Feedbin. Is it being blocked by the user agent or something? 🤔
-
UCL: Iterators
Still working on UCL in my spare time, mainly filling out the standard library a little, like adding utility functions for lists and CSV files. Largest change made recently was the adding iterators to the mix of core types. These worked a lot like the streams of old, where you had a potentially unbounded source of values that could only be consumed one at a time. The difference with streams is that there is not magic to this: iterators work like any other type, so they could be stored in variables, passed around methods, etc (streams could only be consumed via pipes).
Continue reading → -
A service I’m partly responsible for at work has had a number of core issues that have been plaguing us for more than a year now. We’ve been making fixes round the edge, but have left much of the core intact, lest it ties us up in a large refactor. Today I got the green light to start addressing these core issues directly. I feel so happy: I get to put away my scalpel and finally take out my sledgehammer.
-
It’s finally happened: the local pigeons have discovered bagels and coffee.
-
Had a go at integrating Keycloak in a personal project. Got to the point where it kinda-sorta worked, but I’m not sure what I’m trying to prove by continuing. That I can integrate an auth service? Well yeah, but it’s a lot of work, and probably not worth it for a project where I’d be the sole user.
-
New ground stickers telling people not to ride on the path. We’ll see how well these work, since the sign has been such a “success”. Maybe the police emblem will help. 😏
-
Okay, I think I know why I stopped playing Wordle.
-
I never imagined that my software development job would someday involve reading legalisation on Indonesian tax law.
-
Galah’s letting anyone who cares to know that it’s on this pole, it’s their pole, and don’t you forget that.
-
Trying out DeepSeek’s chat model. Started with a pretty tame session, but it was something I needed from ChatGTP a week ago. DeepSeek seems to do pretty well here: I like how terse the answers are. I’d be curious to try out the API too.
-
Hitchhiker. One of two today.