• It’s going to be a lovely day today. Perfect day to just sit in an office and do work. ๐Ÿง‘โ€๐Ÿ’ป

  • Networking is hard. This remark applies to every form of networking you can think of.

  • This day in work spam: anyone care for some “world knowledge information”? ๐Ÿ˜

    A screenshot of an email spam, from joe.jonas, subject RE: External Camera Screen, sent on 19th July 2024. Message follows: Dear, Our External Camera Screen marked report is the latest data. Please let me know so you can check the information. Best, World Knowledge Information
  • Preparing the second room for a couple of house guests that’ll be coming next week. ๐Ÿฆœ

    A room contains a large empty metal cage, a rowing exercise machine, a small table with electronic equipment, all set on a brown mat and a protective floor covering.

    They get a little funny around mirrors so I’d had to cover the wardrobe with newspaper. Hope it holds.

    A room is set up with newspaper taped in front of half of the sliding-doors of a wardrobe with full-sized integrated mirrors. A large birdcage is positioned on the right side.
  • Continuing my exploration in Go GUI toolkits. Golang Weekly linked to one called Fyne, which I tried out this morning. Looks very promising. Missing a couple of things, but a lot is there and I really like how the API works. Managed to build a somewhat functional Boop clone as an experiment.

    A screenshot of the Boop-clone which shows a toolbar with a single button, and a text field with some example text. A screenshot of the Boop-clone which shows a list of actions overlayed over the text field. The two actions are Quote and Dequote, and the entry above the actions show the input 'qu'
  • ๐Ÿ”— Major Windows BSOD issue hits banks, airlines, and TV broadcasters

    Oof! I feel bad for all those Window sys-admins whoโ€™s weekend has just been ruined.

  • Maybe the key to a happy career in software engineering is: keep the number of systems you have admin access to as low as you can. ๐Ÿ˜›

  • Had a go at recreating the last song Anders Enger Jensen wrote for 8 Bit Keys, since it’s one that I like quite a bit. Here’s a YouTube link to the original. This one was done in Logic Pro, and has a little more of the typical synth leads than the more brassy sound Anders Enger Jensen used.

  • This week’s earworm: Warsaw in the Sun by Tangerine Dream. ๐ŸŽต

    Album cover of the Tangerine Dream Zeitgeist Concert, at the Royal Albert Hall London 2010

    Also, for the last few years, MacOS has been marking “earworm” as a spelling error, suggesting either “ear worm” or “ear-worm” as corrections. Yet, after doing a quick online search, it seems like “earworm” is a legitimate way to spell this word. I suppose those working on the Wikipedia page or the OED could’ve miss-spelt it also, but given MacOS’s track record with spelling, I’m more incline to believe them.

  • ๐Ÿ“บ Everybody’s Free (to Make Websites)

    One word: this!

    Edit: Kev Quirk shared a link to the post by Sarah Joy, who wrote the narration for this video.

  • Learnt lots of fascinating things about how servers are catalogued in data centres today.

    I learnt that when racks are advertised as “24U”, for example, that “U” refers to “unit”. Saying a device is a 2U means it takes up two units of vertical space. Something taking up “half a rack” means that it’s half the width of a unit, and there’s space to mount two of them across.

    I also learnt that when numbering rack units, you start from the bottom, give that unit the number 1, and literally/metaphorically go up from there.

    Finally, I learnt that the above is pretty much the only thing that’s standard about cataloguing server locations. There’s no standard for numbering devices going across the rack, and apart from floor numbers, room numbers, and maybe aisle and rack numbers โ€” assigned by the data centre itself โ€” you’re on your own to come up with your own standard for the rest.

    So there’s plenty of opportunities for those keen to set internal standards for the organisations they work in. ๐Ÿ˜„

  • Got asked to come up with a way of representing some data today. Before diving into a design, I thought of finding out whether a standard existed. I couldn’t find one, and when I asked those in the know, they confirmed that no such standard exists. That’s good news! No chance of an accidental 927.

  • I got spam via Product Hunt today. First time as well. Completely forget I had an account there, until someone thought it would be a good idea to follow me while shilling their AI company.

    Censored screenshot of a follower notification from Product Hunt
    Yeah, ****. You would like me to post an uncensored screenshot of your follow, complete with company name, on my blog. ๐Ÿ˜Ž
  • A bit more retro gaming this evening. Tonight, some Paganitzu, Part 1, or “Pagan” as I tended to call it, since that was the command to invoke it on the DOS prompt.

    A screenshot of the Wayback Machine, showing the first level of Panganitzu Pt. 1 running in DosBox running in a browser
  • I don’t use Ghost, but I did sign up for it once, so I’m still getting the newsletters. And the latest one has got some interesting stuff. I’m not planning to employ someone for my “writing business” but I did find the list of recommended links to be pretty good.

    I will admit that the only reason why I was reading it at all is because I’m procrastinating. I really should get back to writing this documentation. There’s just so much to write about, though. ๐Ÿ˜ฎโ€๐Ÿ’จ

  • One thing I’ll miss with hosting my own code is the ability to spin up a Codespace for a repository directly within GitHub. It won’t be difficult to setup a Code Server instance myself โ€” I can do it in Pikapods โ€” but keeping that separation between repositories was a nice feature. Ah well.

  • On the Easy Pit To Fall Into

    From Matt Bircherโ€™s latest post on Birchtree:

    One of the hard parts about sharing one’s opinions online like I do is that it’s very easy to fall into the trap of mostly complaining about things.

    This is something I also think about. While I havenโ€™t done anything scientific to know what my ratio of posting about things I like vs. things I donโ€™t, I feel like Iโ€™m getting the balance better. It might still be weighted too much on writing about the negatives, but I am trying to write more about things I think are good.

    Continue reading โ†’

  • ๐Ÿ”— Marquee Element Tester

    Test your browsers compatability of the Marquee element. No spoilers about whether it worked in mine. ๐Ÿ˜€

    Via Scripting Notes.

  • I knew it was a mistake to choose to eat breakfast outside. ๐ŸŒง๏ธ

  • I’ve got a large writing task to do at work, so I’m trying out iA Writer. And I probably shouldn’t have because I know how expensive it is, and yet I think I’m growing to like it. It’s actually a really nice Markdown editor.

    At first my developer brain resisted, saying “Ah, pish posh! Just use any old text editor you already have.” And if it was just a readme file or something, I’d probably turn to either Nova or GoLand1 to do this. But I already know that this task is going to involve a fair bit of writing, and I think the editor iA Writer uses would works better for this. It’s just feels better designed for prose: slightly larger font (although the default was way too large, and I had to reduce it), better line spacing, and handling line wraps in a nicer way than code editors.

    I’ve got other writing tasks I need to do, so maybe it’s worth it in the end.


    1. Obsidian would’ve been another option, but I’m hoping to keep this writing in a separate Git repository, away from my standard notes file. ↩︎

  • Vivaldi decided it had enough this week and crashed, about 15 minutes ago. Not yet, Vivaldi! We still have a few more hours left in the day.

    Vivaldi crashing also reminds me of working with someone back when Firefox used to restore your tabs only when it crashed. If you were to restart it gracefully, it’ll always begin with a clean slate: one tab, showing your configured home screen. So what this guy did was force quit Firefox at the end of every work day, before he shut his laptop down, so he can restore his tabs the next day. We were saying to him that when he leaves for another job, he should quit Firefox gracefully, thereby putting to rest all the tabs he had opened. I can’t remember if he actually did that when he left.

  • Oof! This week has been something else. ๐Ÿ˜ฎโ€๐Ÿ’จ One more day to go.

  • Bit of a breakthrough with a project I’m on at work today. Amazing how quickly you can go from having absolutely nothing working, to having it work for the first time, to everyone expecting it to work reliably from that point on. It took probably an hour for us to experience all three phases.

  • Backpacker on the tram. ๐Ÿถ

    A black schnauzer travelling in a backpack on a crowded tram. A Myki reader is to the right of the frame.
  • Dealing with a reporting task at the moment, and all the shortcuts I’ve made over the course of working on this system are coming back to bite me. But it’s easy to say that I wouldn’t have made them that if I were to do it all again. If faced with the same level of knowledge and time pressure as I had back then, I probably would take those shortcuts again. I guess the only think I can hope for is to recognise future shortcuts as what they are, and try to avoid them if I can.

  • A Tour Of My New Self-Hosted Code Setup

    While working on the draft for this post, a quote from Seinfield came to mind which I thought was a quite apt description of this little project:

    Breaking up is knocking over a Coke machine. You can’t do it in one push. You gotta rock it back and forth a few times and then it goes over.

    I’ve been thinking about “breaking up” with Github on and off for a while now. I know I’m not the only one: I’ve seen a few people online talk about leaving Github too. They have their own reasons for doing so: some because of AI, others are just not fans of Microsoft. For me, it was getting bitten by the indie-web bug and wanting to host my code on my own domain name. I have more than a hundred repositories in Github, and that single github.com/lmika namespace was getting quite crowded. Being able to organise all these repositories into groups, without fear of collisions or setting up new accounts, was the dream.

    Continue reading โ†’

  • Work offered us a veryโ€ฆ American style lunch today. First time I had bacon with my pancakes. Honestly, not as bad as I was expecting.

    A plate with pancakes, bacon, whipped cream, drissled with maple syrup, with a side of Ceaser salad and egg. Wooden knife and fork on the right.
  • ๐Ÿ‘จโ€๐Ÿ’ป New post on Moan-routine over at Coding Bits: Zerolog’s API Mistake

  • Zerologโ€™s API Mistake

    I’ll be honest, I was expecting a lot more moan-routine posts than I’ve written to date. Guess I’ve been in a positive mood. That is, until I started using Zerolog again this morning.

    Zerolog is a Go logging package that we use at work. It’s pretty successful, and all in all a good logger. But they made a fundamental mistake in their API which trips me up from time to time: they’re not consistent with their return types.

    Continue reading โ†’

  • Got a long post written that I wanted to publish today. But I need to add the audio narration to it, and my voice is just not working this evening. So I’m going to have to hold it for a bit longer. A shame, but if a day late means a better overall post, it might be worth it in the end.

  • The gym has discovered they have a heater, which is immensely welcomed, because wearing shorts and a T-shirt in weather that’s barely 16ยฐC is not fun (and this is the warmest it’s been in weeks). ๐Ÿฅถ

  • ๐Ÿ”— On the origins of DS_store

    An interesting tale on how .DS_Store โ€” a regular in Git ignore files everywhere โ€” got its name.

    Via @Burk within the Hemispheric Views Discord.

  • Woke up with this tune in my head this morning. Managed to record it before I forgot it, then I added some accompaniments. I’ve called it Prophet, after the synth. It’s a decent start but I’m not sure how to continue it from this point on.

  • Added the final pieces of my self-hosted Forgejo instance this morning: a MacOS runner, and daily backups. I think weโ€™re finally ready to start using it for current projects now.

  • ๐Ÿ”— txt.fyi

    Thank you to the anonymous person who runs this. Something happened which left me ropeable, and I needed a place to scream into the void. I did it there. It’s now lost to the either, along with (most) of my anger. Hopefully time will fix what’s left.

  • A Bit of 'Illuminating' Computer Humour

    Hereโ€™s some more computer-related humour to round out the week:

    How many software developers does it take to change a lightbulb? Just one.

    How many software developers does it take to change 2 lightbulbs? Just 10.

    How many software developers does it take to change 7 lightbulbs? One, but everyone within earshot will know about it.

    How many software developers does it take to change 32 lightbulbs? Just one, provided the space is there.

    Continue reading โ†’

  • Just bought Crystal Caves HD from GoG. This might be the best $4.00 I spend today. ๐Ÿ’Ž

    Also includes a freaking level editor, which is going to be awesome!

  • Mark the date. First successful CI/CD run of a Go project running on my own Forgejo instance, running in Hetzner. ๐Ÿ™Œ

    Sreenshot of a successful Forgejo Runner result page, indicating that a project was checked out and tested with Go.
  • Some day, I’ll be working on a task I’d be pressured to get finished right then and there, and no one will be messaging me while I’m doing it. Today was not that day. ๐Ÿ‘จโ€๐Ÿ’ป๐Ÿ“ณ

  • Last night, I setup a Linode server to try out Forgejo. The setup went smoothly, and I managed to get Forgejo up and running, but the setup is a little expensive: around ~$18.00 AUD for a 2 GB server with 50 GB storage. So I’m going to try out Hetzner. I should, in theory, be able to get two servers โ€” one for the frontend, and one as a CI/CD worker โ€” both with twice as much RAM, plus a 50 GB volume for around ~$17.00 AUD.

    The only downside is that the servers are further away: Falkenstein, Germany; rather than Sydney (I can’t be the only one that wishes the speed of light was faster). We’ll see how much the latency’s going to annoy me.