Electrification of Melbourne Suburban Railways Plaque

Found this plaque while passing through Southern Cross station this morning.

Plaque about the Electrification of Melbourne Suburban Railways

I didn’t have time to read it, and the subject matter looks really interesting to me (Trains? Power Lines? What’s not to love? 😀). I also don’t know how long it’ll be up for, and I’ve been burned in the past of not capturing something when I had the chance.

So I’m posting photos of it here for posterity reasons. Enjoy.

Alternative Day Four Photo

I had an alternative idea for today’s photo challenge, which is “orange”. I was hoping to post a photo of something related to Melbourne’s busses.

You see, PTV has designated different colour for different modes of transport. Blue for metro trains, purple for regional trains, green for trams, and orange for busses. And from my experience using the service, they’re pretty consistent with adhering to this design language:

A bus in orange livery at a bus-stop with an orange sign and trim

Anyway, they’re doing train works along my rail line over the past few weeks and this morning I noticed this sign (forgive the lighting, it was before dawn):

A large orange sign that reads 'Buses replace trains' and then below an exclamation icon reads 'Plan ahead at ptv.vic.gov.au'

It’s not the first time I saw this sign, but I had orange on my mind and the fact that it mentioned busses got me thinking, “how cleaver, they’re maintaining the design language through and through, using an orange sign to reference the bus service that would be replacing the trains.” Or so I thought, until I saw this sign:

A large orange sign that reads 'Car space closures', along with details of when the car park will be closed and how many spaces would no longer be available

Ah, that blew that theory out of the water. And also the opportunity to use it as today’s photo. I mean, I could’ve still used it — it’s still orange after all — but it doesn’t have the neat adherence to the design language that I was hoping it did.

Mainboard Mayhem

Project update on Mainboard Mayhem, my Chip’s Challenge fan game. I didn’t get it finished in time for the release deadline, which was last weekend. I blame work for that. We’re going through a bit of a crunch at the moment, and there was a need to work on the weekend.

The good news is that there wasn’t much left to do, and after a few more evenings, I’m please to say that it’s done. The game is finish, and ready for release.

So here it is: Mainboard Mayhem: A Chip’s Challenge fan game (and yes, that’s its full title).

Screenshot of Mainboard Mayhem

At the moment it’s only available for MacOS. It should work on both Intel and Apple Silicon Macs, although I’ve only tested on my M2 Mac Mini running Ventura.

It’s good to finally see this project done. It’s been in development for about last ten years, and I spent half of that time wondering whether it was worth getting it finished it at all. Not committing to anything meant any work I did do on it was pretty aimless, and I always felt like I was wasting my time. Giving myself three weeks to either kill it, or release it helped a lot. I’ll start making deadlines for all the other unfinished projects I’m working on.

As to what that next project will be, I not sure at this stage. Part of me wants to wait until this crunch time ends, but I suspect I’ll get antsy before then and start work on something else. I’ll keep you posted one way or the other.

But for now, if you happen to give it a try, thank you and I hope you enjoy it.

The app icon of Mainboard Mayhem

Early Version of This Blog

I was looking for something in GitHub the other day when I found the repository for the first iteration of this blog. I was curious as to how it looked and I’d thought that I’d boot it up and post a few screenshots of it.1

It started life as a Hugo site. There a two reasons for that, with the first being that I didn’t have the patients to style a website from scratch, and Hugo came with some pretty nice templates. I chose the Vienna template, which seems to have fallen out date: many of the template variables no longer work with a modern version of Hugo. I’m also please to see that I did end up customising the header image — a photo taken in Macedon of the train line to Bendigo — although that’s pretty much all I customised.

Believe it or not, I feel a little nostelgic for it. Such simple innocence in trying to summon up the courage to write stuff on the internet. Although don’t let the article count fool you: I think there were a total of 10 posts, with half of those being unfinished drafts. I was still trying to work out whether I’d like to write mainly about software technology, or simply talk about my day. But one thing’s for sure, I was under the impression that “real” blogs required posts with a title and at-least 300 words of content. That’s probably why I only had 5 posts finished in 8 months.

The second reason why I went with Hugo was that I’d have no excuse to tinker with a CMS. I’d figure that, given that I wasn’t using one, I’d be force to focus on the content. Well, that level of self-discipline didn’t last long. About in the middle of 2020, I started building a CMS for the blog using Buffalo. I was thinking of launching it with the name “72k” (72k.co), named after the milepost the header photo was taken at.

I got reasonably far with building this CMS but it still lacked a lot, like uploads and an RSS feed. It also involved a really annoying workflow: in order to publish something, you needed to choose a “post type” (whether it’s a long-form post; a link post; or a note), the “stream” the post will appear in, write a summary, and then “review” it. Once all that’s good, you’re free to publish it. This was in service of building this up into a popular, wizz-bang blog with a well-engineered navigation and category-specific feeds (I think that’s what “streams” were). Yeah, these grand plans got the better of me and really crippled the usability of the CMS2. I never launched it, opting instead to move to Micro.blog.

So that’s what this blog looked like, back in the day. I probably won’t look at these projects again. It’s only been four years and already bit-rot is settling in: it took me all morning trying to hack these into a state where I can open them in a browser. But it’s good to look back at what it was.

Still really happy I moved it over to Micro.blog.

  1. I don’t deny that part of this is procrastination of other things I should be finishing. [return]
  2. To be honest, I think part of this lengthy workflow was to satisfy the “resistance”: self-imposed roadblocks to stop me from publishing anything at all. [return]

On Tools and Automation

The thing about building tools to automate your work is that it’s hard to justify doing so when you’re in the thick of it. Easy to see all the time you save in the aggregate, but when you’re faced with the task in your day to day, you’re just as likely to say “I can build a tool which will let me do this task in a couple of seconds, but it’ll take me an hour to build it verses the 5 minutes it’ll take for me to just do the task.”

So you just “do the task.” And the next time you get that task, you face the same dilemma.

Of course the alternative is spending the hour to automate it, and then never running that tool again (or investing more time than you save keeping it up to date l).

I’m not sure what the best answer is. Maybe tracking times where you wish you had that tool you didn’t build somewhere? Then, when you’ve done it at least 3 times for the same thing, you have supporting evidence that it’s worth automating. Maybe include the time it took to do it manually as well, so you can compare it to how long it might take to build the automation.

Might be worth a try.

🔗 XML is the future - Bite code!

I wanted to write something about fads in the software development industry when the post about Amazon Prime Video moving away from micro-services back to monoliths was making the rounds. A lot of the motivation towards micro-services can be traced back to Amazon’s preaching about them being the best way to architect scalable software. Having a team from Amazon saying “micro-services didn’t work; we went back to a monolith and it was more scalable and cheaper to run” is, frankly, a bit like the Pope renouncing his Catholic faith.

I didn’t say anything at the time as doing so seemed like jumping on the fad wagon along with everyone else, but I have to agree with this article that this following along with the crowd is quite pervasive in the circuits I travel in. I did witness the tail end of the XML fad when I first started working. My first job had all the good stuff: XML for data and configuration; XSLT to render HTML and to ingest HL7, a non-XML format used in the medical industry, which we mapped to XML and passed through an XSLT to extract patient information (yes, we really did that!); XForms for customisable forms. We may have used XSD somewhere as well. Good thing we stopped short of SOAP.

The whole feeling that XML was the answer to any problem was quite pervasive, and with only a few evangelists, it was enough to drive the team in a particular direction. And I wish I could say that I was above it all, but that would be a lie. I drank the cool-aid like many others about the virtues of XML.

But here lies the seductive thing about these technology fads: they’re not without their merits. There were cases where XML was the answer, just like there are cases where micro-services are. The trap is assuming that just because it worked before, it would work again, 100% of the time in fact, even if the problem is different. After all, Amazon or whatever was using it, and they’re successful. And you do want to see this project succeed, right? Especially when we’re pouring all this money into it and your job is on the line, hmm?

Thus, teams are using micro-services, Kubernetes, 50 different middleware and sidecar containers, and pages and pages of configuration to build a service where the total amount of data can be loaded into an SQLite3 database1. And so it goes.

So we’ll see what would come of it all. I hope there is a move away from micro-services back to simpler forms of software designs; one where the architecture can fit entirely in one’s head. Of course, just as this article says, they’ll probably be an overcorrection, and a whole set of new problems arise when micro-services are ditched in favour of monoliths. I only hope that, should teams decide to do this, they do so with both eyes open and avoid the pitfalls these fads can lay for them.

  1. Ok, this is a bit of an exaggeration, but not by much. [return]

Code First, Tests After

Still doing the code first, tests after at work and I’m really starting to see the benefits from it. Test driven development is fine, but most of our recent issues — excess logging or errors that are false positives — have nothing to do with buggy business logic. It’s true that you can catch these in unit tests (although I find them to be the worst possible tests to write) but I think you gain a lot more just from launching the application and seeing it run.

Now granted, it’s not always possible to do this with micro-services. There’s always some dependency you need, and setting all these up is a bit of a pain. That’s probably why I deferred all my manual testing to the end, when I’ve pushed my changes to get them reviewed and deployed it to the environment. Do a quick cursory test from the frontend just to make sure it hasn’t broken anything, then move on to the next task.

I think this way of working was a mistake. This is something frontend developments get right: you need to run your software while you’re working on it. It’s so important to see not just how well it works, but how it feels to work1: what goes to the log, how fast it performs, etc. You don’t get this feeling from just depending on unit tests.

Plus, there’s always a nice buzz to see the thing you’re working on run for the first time. That magic seems to decay the further you are from where it’s running. It just becomes another cog in the system. And maybe that’s what it’s destined to be, but it doesn’t need to be this way while you’re working on it.

  1. I don’t know of a better way to say this other than “how it feels to work”. I suppose I could use boring words like “tight iteration loop” but there are too many boring words on the blog already. [return]

On The Reddit Strike

Ben Thompson has been writing about the Reddit strike in his daily updates. I like this excerpt from the one he wrote yesterday:

Reddit is miffed that Google and OpenAI are taking its data, but Huffman and team didn’t create that data: Reddit’s users did, under the watchful eyes of Reddit’s unpaid mod workforce. In other words, my strong suspicion is that what undergirds everything that is happening this week is widespread angst and irritation that everything that was supposed to be special about the web, particularly the bit where it gives everyone a voice, has turned out to be nothing more than grist to be fought over by millionaires and billionaires.

That, though, takes me back to Bier’s tweet; the crazy thing about the Internet is that said grist is in fact worth fighting over.

It’s easy for me to say this, as I’m not a user of Reddit, but I have full sympathy for the striking moderators.

You spend much of your free time volunteering to keep a community on a site, producing value for it’s users and owner, with the expectation that the site would recognise your efforts and reciprocate by serving your needs with, say, an API. I can understand how enraging that would feel when they turn around and “alter the deal” while expecting the mods to continue as if nothing has changed.

So good on the moderators showing that they too have leverage.

And as to OpenAI using the API to train its model: well yeah I can understand the CEO of Reddit feeling shitty about that, but I would’ve hope he would have the ingenuity to solve that while maintaining the needs of those that actually provide value to the site. Either he doesn’t which, given that he’s one of the founders, I find hard to believe; or he just doesn’t want to.

Truthful Travel Talk

It’s time to be honest: I think overseas travel is wasted on me.

We were driving down from Antibes to Genova today. It was a nice trip, complete with picturesque towns passing us by as we drove along the motorway. My friend was oohing and ahhing at each one: remaking about how nice it would be to see them, stay in them for a while. He was also remarking on what we would do when we arrived at our destination. There was just this air of enthusiasm about the whole thing.

I didn’t feel that enthausiasm. We heard some news that another friend of ours had their luggage stolen, and I just couldn’t stop thinking about it. I spent a fair bit of last night going through possible ways on how I could avoid it happening to me, and how I would handle it if it did, and just the whole hassle of dealing with that possibility.

This, mixed with the inevitable task of finding my barring in an unfamiliar place, stressing about how I would interact with the locals in their non-native language, the ongoing recovery from Covid-19, and a bit of home-sickness, and you can probably guess that I’m just not feeling the vibe of adventure at the moment.

And yeah, I might have done this to myself, particularly since I haven’t had much to do with this part of the trip.Happy to “go with the flow” of what others are doing. And people might ask me “oh, wouldn’t it be good to see this?” or “wouldn’t it be fun to experience that?” Yeah, maybe? I might get some enjoyment out of it, but I’m not sure if it’ll offset the stress I feel with the logistics of it all.

So that’s where I am at the moment. It’s got to the point where I’m contemplating coming home early. It would actually simplify my itinerary quite a bit, and I won’t be leaving my friends in the lurch: it would be a portion of the trip where I would be travelling by myself. Even with a week less, that’s still about 4 weeks in total, which I think it’s plenty, or at least plenty for me.

Update 30 June: Apart from taking a slightly earlier flight home, I ended up staying the the full 5 weeks. And in retrospect, I’m really glad I did. I figured that I would regret not visiting the places I’ve would’ve cut out if I were to go home early; and after visiting them, I know now that I would’ve missed out on some of the most memorable parts of the trip.

I think what sparked this post was a mixture of anxiety of travelling alone and little bit of home sickness. But nothing beats anxiety like working through the problem (if you can call travelling solo a “problem”). And as for home sickness: well, I’m not sure there’s much I can do about that apart from remembering that home will always be there.

Where Have I Been

Inspired by Manton and Maique, I thought I’d document the places I’ve visited as well. I’d had to refer to this list a few times in the past so having a record like this is helpful.

Transfers are not included here. In order for a place to be listed here, I’ve have had to have landed there. Also, I’ve excluded Victoria, Australia, as this is where I live.

  • 🇦🇺Australia (home)
    • New South Wales
    • South Australia
    • ACT
  • 🇧🇷Brazil
  • 🇨🇰Cook Islands
  • 🇫🇯Fiji
  • 🇫🇷France
  • 🇮🇹Italy
  • 🇯🇵Japan
  • 🇰🇮Kiribati
  • 🇳🇿New Zealand
  • 🇳🇺Niue
  • 🇵🇬Papua New Guinea
  • 🇼🇸Samoa
  • 🇸🇧Solomon Islands
  • 🇪🇸Spain
  • 🇨🇭Switzerland
  • 🇹🇴Tonga
  • 🇹🇻Tuvalu
  • 🇦🇪United Arab Emirates
  • 🇬🇧United Kingdom
    • Devon, England
  • 🇺🇸United States of America
    • District of Columbia
    • Maryland
    • Nevada
  • 🇻🇺Vanuatu
  • 🇻🇳Vietnam

Last updated 28 May 2023. Note: I’m writing this while on an overseas trip, so I’ll also be including the countries that I’ll be visiting over the next few weeks.

Full Width Notes In Obsidian

More custom styling of Obsidian today. This snippet turns off fixed-width display of notes, so that they can span the entire window. Useful if you’re dealing with a bunch of wide tables, as I am right now.

body {
    --file-line-width: 100%;

div.cm-sizer {
    margin-left: 0 !important;
    margin-right: 0 !important;

I wish I could say credit goes to ChatGPT, but the answer it gave wasn’t completely correct (although it was close). The way I got this was by enabling the developer tools — which you can do from the View menu — and just going through the HTML DOM to find the relevant CSS class. I guess this means that this’ll break the minute Obsidian decides to change their class names, but I guess we’ll cross that bridge when we come to it.

F5 To Run

While going through my archive about a month ago, I found all my old Basic programs I wrote when I was going through school. I had a lot of fun working on them back in the day, and I though it would be nice to preserve them in some way. Maybe even make them runnable in the browser, much like what the Wayback Machine did with the more well-known DOS programs.

So I set about doing just that, and today the site is live: F5 To Run.

And yeah, it’s likely that I’m the only one interested in this. No matter. I’m glad they’re off my dying portable drive and preserved on the web in some fashion.

Twitter, Public Alerts, And Federated Protocols

So apparently Twitter’s leadership team has discovered the value it has for public alerts:

Of all the changes Elon Musk has made to Twitter, blocking emergency and public transit services from tweeting automated alerts might have been his least popular. User backlash roared, as National Weather Service accounts got suspended. Then, one of the country’s largest public transit services, Metropolitan Transportation Authority (MTA), had so much trouble tweeting, it decided to quit posting updates to Twitter.

It always seemed a little off that these organisations were using Twitter for this. Not everyone is on Twitter, and those that were had to agree to the terms of a private company which could, at any time, do… well, what it’s doing now. Should public alerts for weather and transportation really rely on such private entities?

I can see why these companies were used back in the late 2000’s, when they first came onto the scene. They had apps with push-based notification with a good (enough) user experience. They were also investing in the backend, setting up services that can scale. So organisations palming off dissemination of these alerts to Twitter made sense.

But I don’t think it makes sense anymore. With ActivityPub and (in theory) whatever BlueSky is cooking up, you now have open, federated protocols, and a bunch of apps people are building which use them. You also have public clouds which provide an easier way to scale a service. With these two now available, it seems clear to me that these organisations should deploy their own service for sending out these alerts using any or all of these open protocols.

Then, the public can come to them on their terms. Those using Mastodon or BlueSky can get the alerts in their app of choice. Those that aren’t interested in either can still use any mobile apps these’s organisations have released, and these protocols can be used there as well. One can imagine a very simple ActivityPub “receiver” app, stripped of all the social features apart from receiving notifications, that can be used for organisations that don’t or can’t release a mobile app. Plus, having a service that they run themselves could also make it possible to setup more esoteric notification channels, like web push-notifications through the browser.

And yeah, it’ll cost money and will require some operational expertise. But I’d argue that serving the public in this way is their perdure, and the reason why tax dollars go in their direction.

So now’s a great time for these organisations to step away from relying on these private companies for disseminating alerts and embrace the new federated protocols coming onto the scene. Who knows, maybe they’ll also embrace RSS. That would be nice.

Content Warning: About A Spider

This spider was hanging around my garage door opening button for a few weeks now. I didn’t think much of it until today, when I noticed that it was actually a redback. Not the largest redback I’ve seen, but one located pretty close to a button I push quite frequently.

Photo of said redback (it’s small, but the photo is a close-up)
Photo of a redback spider beside a garage door opener, with another spider on the left.
If you look closely you can see a bit of the classic red stripe on the spider’s abdomen.

I don’t know about other Australians, but I’ve got a “kill on sight”1 policy with redbacks, so it had to go.

  1. Of course I say that, but I’ve seen redbacks on shed doors that I haven’t done anything about. Though I wouldn’t call them harmless, there were out of the way enough for me to disregard them. [return]

About Those Checkmarks

This posts going to be about Twitter. Yes, I know; another one out there. It’s also going to be a bit speculative in nature, so feel free to skip it if you like.

I’ve been reading the coverage over the “retirement” of the legacy verification system, both in the news and on the socials. And what I find interesting about this whole affair is all the new Twitter Blue subscribers complaining about people that had the checkmark choosing not to sign up.

Their displeasure comes through in their tweets on why they think these people choose not to subscribe. Many tout money (these people are too stingy) or logistics (write it off as a business expense). But they don’t give a reason as to why they care. Surely money or logistics is their problem to sort through. Why should you be unhappy that they chose not to join Twitter Blue? I haven’t seen any tweets answering this question.

I’m not surprised by that. I wonder if the reason is that many of those that have acquired a checkmark saw the those with a verified Twitter handle as being part of the in-group; members of an elite club that you cannot get a membership for1. Naturally they wanted to be part of this in-group, and when this new Twitter Blue subscription offer rolled out, they saw an easy opportunity to gain entry.

But the thing about status symbols is that they’re only valuable if the in-group chooses to keep them. When all these formally verified people refuse to sign up to Twitter Blue, and their checkmarks were removed from their handle, so too did the checkmark loose it’s value as an indicator of worth. The checkmark no longer a signals status.

Even worse is this in-group has changed their position to one where not having the checkmark is the sign of status. Suddenly, those that have signed up to Twitter Blue found that their attempts to buy their way in was for naught. And that’s what I think they’re angry about. Their new checkmark doesn’t impart status anymore, since those that had it don’t want it. Now it’s just an indicator that you’ve paid $8 a month, with maybe a hint that you found the symbol important in the first place.

That’s also probably why Musk saw it fit to “pay” for Twitter Blue for accounts with more than a million followers, trying to prop up any remaining status this indicator once had. This raises more questions though. Surely he would have seen that allowing anyone to verify their account would dilute the intrinsic status that came with it. I guess he thought that those with the checkmark felt it important enough to keep it, and it will retain its value as a status indicator.

Anyway, this could be all pretty obvious to a first year psychology student, but I found it all very revealing. It’s certainly interesting seeing this play out over the last couple of days.

  1. I know that’s not the point of this verification status, but it does seem like many saw it as an “I’m an important person” signal. [return]

Day One and Project Jurassic

So, Day One is in danger of being sherlocked by rumor’s of Apple’s upcoming journaling app:

Mayne echoes the sentiment of several app developers who have been frustrated when Apple launched in-house competitors to the apps they have introduced to the ecosystem, often copying features those apps innovated and adding functionality that only Apple can offer, per the iPhone’s privacy and security policies and APIs.

I’m a user of Day One and I have my doubts that Apple’s app would be a drop-in replacement for my journaling needs. And I think the reasons why Day One works for me — and could be made to work better — are also opportunities for Auttomatic to differentiate Day One from project Jurassic.

The first is access to user’s data. If Apple’s going to leverage the data it has access to on the phone, then Auttomatic should go the other way, making it dead easy for services outside Apples ecosystem to add stuff to people’s journal. Have a blog? Post photos to Flickr? Track movies in Letterboxd? Wouldn’t it be nice to get this into your Day One journal, safe and secure? A public API that these services can use to add posts to user’s journal would go a long way here. These services can offer an export option straight from the app, and Day One can be the private collection of all things a user does on the web, sort of like a private blog.

And yes, I know there’s that IFTTT integration, but I found it to be pretty crummy (all the post formatting was stripped and images were not uploaded). And it would be a pretty ordinary user experience to have these services say to their users “hey, if you want the stuff you track here in your journal, you have to create an account at this other service.” I guess all these services could publish this information as RSS feeds, and I would settle for that, if the IFTTT integration is actually working.

But arguments about IFTTT aside, the point is that Day One should fully embrace other services getting user’s data into their journal, and the best way to do this is with a public API. I know it won’t work for all their journals (one’s encrypted E2E should remain so) but the user’s should have that option, and services should be empowered to allow this.

And let’s not forget the largest trump card Automattic has over Apple: an Android app and web app. I haven’t used the web app but I use the Android app all the time. I can’t imagine Apple releasing an Android version of their journalling app, particularly if they’re gearing it towards health and leveraging all the private data people have on their iPhones. Automattic should keep working on both the Android and web app, so that users not completely in Apple’s ecosystem can keep journals.

So I don’t think Auttomatic has much to fear about project Jurassic. But they can’t rest on their laurels. They should embrace the platforms outside of Apple and iOS to really differentiate Day One, and keep it a favourite of mine for journaling.

Nerd Counterflex

You know that Washington Post article that has the list of websites Google used to train Bard? I been seeing people post screenshots of their sites in the training set on their blogs and Mastodon. This morning I read a post from Chris Coyier about it:

My largest corpus of writing to date is on the web at css-tricks.com (along with many other writers), so naturally, I’m interested in seeing if it was used. (Plus, I’ve been seeing people post their rank as a weird nerd flex, so I’m following suit.)

I’d suggest reading it. The post is more than just him flexing his ranking in the training set.

Well, I got curious to see if any of my writing was there. Here’s the result:

Screenshot of Washington Post article with Bard training set with ‘no results’ showing up for lmika.org

I guess you can call this a form of a nerd counterflex?

None of my other sites were there either. There was “lmika.com”, but that’s not me. Maybe having that was good enough for Google.

So yeah, you won’t be seeing Bard sharing any of my… “insightful” thoughts about code reviews anytime soon. 😄

First Posts Of The Day

It’s bit strange how the first post of the day can always feel like the hardest to get out. Every one after it is so much easier to write.

I wonder if it’s because when faced with an empty text-box, there are these grand plans about what I’m going to write, as if everyone reading this is hanging on my every word: it’ll be my masterpiece of wit, inspiration, and insightfulness that will spread far and wide and blow the minds of everrryyywoonnneee1. Then I write something, and naturally it falls far short of these expectations: mundane, unimportant, already said before2.

Then I say to myself, “ah well, at least it’s written down.” And with that, the expected level of quality for anything else that day has been set.

So, this is today’s first post. More might come, probably along the same level of importance as this one. At least until the tomorrow, when the cycle starts again.

  1. Another possibility is that I feel I need to write something at the same level of quality of those that I read. That’s probably not a bad feeling to have; but, at least for me, it can get in the way of writing anything at all that day. [return]
  2. And lets not forget the bad spelling and grammar I failed to catch. [return]

Reheating Chicken Schnitzel in a Microwave

Some tips for heating up chicken schnitzel that you had for dinner in a 1.1 kW microwave for lunch the next day. This is something I occasionally do, and today I found a process that works that I’d like to document for the future.

First, don’t use the high setting on the microwave. A minute at high will heat the schnitzel up, but would also harden the crumbling, making it rubbery and unpleasent to eat. Even worst is using a plate instead of a container. That would ruin the meat even more and make a mess of your microwave.

Instead, put the schnitzel in a microwave-safe container and heat it up twice, one minute each time, at medium. This will heat it up without making it rubbery. If still not warm enough, do it a third time for about 30 seconds (this I haven’t tried, but it seems like a good approach to getting the meat slightly warm while giving you time to make sure it’s still nice to eat).

Photos Of Churchill Island

Yesterday, my parents and I went to Churchill Island for afternoon tea and a walk around the homestead. Here are a few photos of that outing. Apologies that some of them are not great — they were taken in a bit of a hurry.

Hiding Your Attachment Folder In Obsidian's Outline

A useful little CSS snippet for anyone using Obsidian that wants to hide their attachment folder from their outline.

.nav-folder.mod-root>.nav-folder-children .nav-folder>.nav-folder-title[data-path^="Attachments"],
.nav-folder.mod-root>.nav-folder-children .nav-folder>.nav-folder-title[data-path^="Attachments"] + .nav-folder-children {
        display: none;

To use:

  • Go to the directory $VAULT/.obsidian/snippets where $VAULT is the directory of you vault. If the snippets directory doesn’t exist, create it.
  • Copy the CSS snippet into a new CSS file.
  • Open you vault settings and go to Appearance.
  • Scroll to the bottom to where you see CSS snippets.
  • Click the reload button. You should see the CSS file you’ve just created appear in the list. Turn it on to apply it.

This’ll work if you’ve configured Obsidian to store attachments in a folder called “Attachments” located at the root of your vault, like I do. But I suspect the data-path attribute holds the folder’s path so you could use whatever CSS attribute selector you need based on how you’ve configured attachments. For example, [data-path*="/Files"] selector will probably work if you’ve configured attachments to be in folders called “Files” that sits alongside your notes (I haven’t tested this so YMMV).

Source: Scribbles_some_words on this Reddit response

To Wordpress Or Not To Wordpress

I’m facing a bit of a dilemma.

I’ve been asked to setup a new website for someone who wants to stand up a new business. In therory this is something that I can do quite easily. I know HTML and CSS. I’ve made a living building backends for web-apps. I do have an undeveloped eye for design, but I like to think I have an idea of the principal of good website usability; and as long as I’m not too ambitious, and aim for a minimal usable site, I can probably put together a simple static website.

The only problem is that this may not work for the person that I’m building a site for. This is someone that has no experience with putting together websites, and if I were to go down the static HTML road, I’d probably be on the hook to make changes going forward.

So the alternative is to use a CRM like Wordpress. That way, once I hand ownership of the site to the client, he could either contract someone else to maintain it going forward or even learn to do it himself.

Only problem with that is that my experience with Wordpress is quite minimal. I can get around the dashboard no problem, but when it comes to designing or customising themes or (sigh) using the Block editor, I’m just as much as a novice as he is. And I’m not sure to what degree I can leverage my HTML and CSS skills to style the site. I may be able to change a few things but I’d have to do so within the confines of the block templating system.

So, what to do?

Maybe the best way forward is to get a sense of how often this person would need the site changed. That’s by far the biggest variable here. I only know what he wants at a very superficial sense at this moment. I don’t believe it’ll need any sort of blog or product catalogue; just a simple landing page with contact details.

In that case, I’m wondering if a static site with just plain HTML and CSS would be enough. That’ll be easy enough to put together. It can probably scale with some basic dynamic aspects as well, maybe powered with a simple backend that can regenerate the site. Maybe something like Carrd could work here as well.

But the danger is that he’ll be locked into using a static site. Any changes would require someone who’s versed in HTML and CSS. Even worse would be a static site with a bit of backend “sprinkled in”. Then he’d be locked into using me. Not sure I like that for his sake or for mine. You read about those developers in The Daily WTF who’ve put together a custom backend for a “simple website” that has grown unwieldily and become a huge mess that someone who inherits it needs to cleanup or take responsibility for. The prospect of being such a developer is not a great one.

Which is why I’m looking at Wordpress, and wondering the pain of learning how to work with it is worth it. I guess it’s offsetting the potential future pain (and embarrassment) of transitioning a static site to a proper CRM later.

So, Leon, which pain is worse?

Quotes Around Names In Error Messages

I saw this error a few minutes ago:

failed to process input: RUNTIME ERROR: function has no parameter stack

This threw me for a minute as I was trying to work out which parameter stack went missing, what I did to cause it to go missing, and what the heck a parameter stack actually is anyway.

But it had nothing to do with any sort of stack. The error message was showing up because a function call was expecting a parameter with name “stack” which was missing from the function definition.

This is why I always like putting quotes around names in logs or error messages. It removes any ambiguity about what the message is referring to. If the message was:

failed to process input: RUNTIME ERROR: function has no parameter "stack"

then you’re more likely to infer that the thing missing was a parameter with the name stack.

Consider doing this in the error messages you write.

Web Search Works With Blogs Too

Here’s one more reason to write (or syndicate) to your blog instead of post directly to social media: you can use web search engines to find what you need.

I hear a lot of people complain about the crappy search in Twitter or the lack of search in Mastodon, but this won’t be a problem if you post to your site and let public search engines crawl it. They’re incentivised to make sure their search is good, so you’re more likely to get better results more quickly.

Honestly, it works. I used it today to find a post from a fellow Micro.blogger that I wanted to reread. A site:<url> query with a few keywords. Found it in 5 seconds. I can’t imagine how long it would’ve taken if I had to track it down in Mastodon.

Obviously this won’t work for posts from others, unless they too write to their blog. But it’s probably still worth doing for others that enjoy your work. And who knows? It might be useful to yourself one day. I know it has been for me.

Less Consuming, More Creating

Mike Crittenden posted a good quote from a random Hacker News commenter:

Less consuming, more creating.
Doesn’t matter what it is, doesn’t matter if it’s bad.

This quote actually sums up this blog quite nicely. The first line explains why it came to exist. The second line describes how it continues to exist.

Happy 1,000th post.