🔗 Twitter suffers major outage in Australia and New Zealand

I was about to make a joke about Twitter not paying their PagerDuty bill. But then it occurred to me: you probably don’t even need PagerDuty if you can just hear about outages from the news.

Anyone who wants to start a public relations firm, here’s a free name for you: The Boast Office.

Back to work today, and first cab of the rank is a design task. I use to start writing notes of the design in Atlasssian Confluence, but today I think I’ll try writing my design notes in Obsidian first. Once I’m got something together, I’ll take these notes and D2 diagrams and use them to produce a proper write-up in Confluence to share with others.

It is a form of double handling, but the distinct roles of both tools might be helpful to me. There’s no expectation for a coherent and complete design from my Obsidian notes, and the low friction that comes from the Markdown editor is more conducive to the mode of thinking I’m in when I’m coming up with a design.

The Confluence editor is just too rigid for that. And don’t get me started on the point-and-click diagramming tools that are included in it. They’re much more suited towards preparing the finished artefact.

Anyway, we’ll see how this goes.

Until recently, I’ve been using Mastodon via the web-app on my phone. And credit to the Mastodon developers for making a pretty decent progressive web-app. But all this talk about Ivory has given me, an Android phone owner, a bit of FOMO so I though I’d look for a native client.

I first gave the official Mastodon client a try. And yeah, it works. The login flow was pretty seamless. But there were a few things about it that I didn’t like.

For one, there was no obvious way to look at posts on the local instance. This is something I occasionally do, just to see what’s happening on the instance. I probably only get value for this because my instance is social.lol, which is comparatively small and requires payment to join. For those on instances like mastodon.social, this may be less useful.

But aside from that, there are also some layout issues as well. One that annoyed me was that some posts took up a large amount of space for no apparent reason, almost like there should’ve been an image:

Screenshot of the official Mastodon client showing a post with a lot of excessive whitespace
I guess it assumes that the link references an image?

So the official client was out, and after asking for recommendations on the Hemispheric View Discord, I gave Tusky a try. And so far I really like it. It’s got a dedicated tab for posts on the local instance and the UI itself is pretty nice. It reminds me a little of the official Twitter app (make of that what you will).

So far I’ve only used it to browse the timeline. I haven’t had a deep enough look at the features like posting, replying, or muting, so I can’t say if it’s works in that respect. But I think I’ll stick with Tusky for the time being.

Looking for my 2023 word. The one at the top of the list is “travel”. I could pick this one as I do have a significant trip planned this year. But it kinda feels less like I’m picking it, and more like it’s being picked for me. I might look for another one.

On Posting Here Daily

I sometimes struggle with the idea of trying to post here at least once a day. While perusing my archive I find days where my posts are cringeworthy or just not good, and part of me wonders whether it’s better to wait for a post to meet a certain level of quality before publishing it.

I have also seen this argument from other bloggers as well. They post the rules they have that include things like “it should start a conversation” or it should be “distinctive”. I remember reading tweets from one who shuns the idea of posting on a schedule in favour of only publishing something that’s “good”. From looking at their site, there’s probably only a single new post every two years on average1.

But reflecting on it now, I don’t think this works for me. Maybe it could if I was a journalist or a professional writer, but for me and this blog, I don’t see how holding back could help.

For one thing, it will mean a lot less posts. Of course the response to this is that’s the whole point: “quality over quantity” after all. But I think if I did this, the post frequency will probably drop to the point where I’d be in danger of abandoning this blog together. I tried the minimum-level-of-quality approach when I first started this blog, and I think I got a total of 5 or 6 posts in the first 8 months. And they weren’t good posts anyway: the minimum level of quality I was shooting for was just getting something out there at all.

That’s the reason why I joined Micro.blog2: writing smaller things more often. If I were to abandon this, I’d just be falling into old habits.

And if that isn’t enough, there are plenty of anecdotes in how quantity leads to quality. You can spend a day, week or month trying to come up with the perfect blog post and not publishing anything at all, or publishing something that is mediocre at best. Publishing regularly forces you to practice: sure what you write today may not be considered “good”, but you’d be force to write it, publish it, and judge it with a critical eye. That can only force you to write better, even if the improvements are small like checking your spelling, or reading it once through before publishing. I can tell by personal experience that this practice has helped me.

And let’s not even discuss the feeling of being accountable from publishing frequently. You know how often I read the blog of that person I mentioned earlier? Never. Why would I if I know there won’t be any new content for a year? When they do post something, it’s usually tens of thousands of words that feels so heavy to read. I set it aside for “later”, which usually means never.

The blogs I do read regularly? The ones that post daily, or weekly, or even a few times a month, with updates that range from a few sentences to several paragraphs in length. And the quality of the writing or the topic really doesn’t matter to me. It was good just to get an update on what they’re thinking.

And if this piece hasn’t convinced me yet, I’ll end it this way. If you want to keep a record of your days, or improve the clarity of your thinking, you’ll need to write. There aren’t many ways around that. And if you want to improve you’re writing, you need to practice. And to keep you honest, you need accountability, even if it’s just being accountable to yourself, and the best way to be accountable is to write in public.

So that’s why I’m sticking with writing daily. If that’s not enough of a reason to maintain this goal, I don’t know what is.


  1. No, it’s not hypercritical.co↩︎

  2. Well that, and the social aspect. ↩︎

First post of 2023. If current trends are to be maintained, I better get posting right away. 😉

Graph of posts on lmika.org per year, trending at an exponential rate

Happy new year.

2022 Year In Review

I’ll be honest: these year in review posts feel like going to the dentist. I generally hate doing them, but I know that it can be good exercise to reflect on the past year. I think one thing in my favour is that I’ve actually kept my blogging — and to a lesser extent, my journalling — up to date so I’ve actually got something that I can refer back to.

So here’s a brief summary of how my year went.

Career

I’m a little bit disappointed on this front. It feels like I’m in a bit of a rut, and lately things have been a little boring. I have been promoted to a squad lead, which I guess is some form of progression. But just like other times I’ve been asked to lead a team, it’s not something I feel I’m good at or like doing. And yet, I really cannot see any progression here other than leading bigger teams (apart from changing jobs).

That said, a few good things have happened. The project I was working on went live earlier in the year, and while it was a stressful couple of weeks (around Easter time as well), it was generally well received and no major issues came up. Plus, I got to learn a lot about Stripe, which has been on my goals list for a while.

Family And Friends

Sadly, there’ve been a couple of deaths this year. My grandfather passed away in March, after suffering from a spate of aliments like stomach cancer and emphysema. This was obviously quite sad, but I take solace in the feeling that he’s finally found some peace and relief from his suffering. The second was in February, when a friend of the family that my Mum was very close to passed away. Neither of these felt like they came too soon, which is some consolidation, but it was not a great start to the year.

Oh, and in December, after 2 years and 9 months since March 2020, I got Covid-19 for the first time. I just glad that I was up to date with my vaccination: I couldn’t imagine how worse it could have been if I wasn’t.

Projects

One new project this year that I actually managed to release: Dynamo-Browse. I’m actually quite happy that this tool exists. It’s been on my wish-list for a couple of years and the moment came around to finally bite the bullet and work on it. I’m also quite please that I put some effort into the finish of it, so that I wouldn’t be completely embarrassed to share it with others.

For a while I was working on another project called Broadtail which downloaded YouTube videos and made them available in my Plex server. This was before I got YouTube premium, and as soon as I did, this project fell to the wayside. It’s still around and I’ve modified it to download WWDC videos, so I may dust it off come next June.

There were various other things here or there that aren’t really worth any comment. Again, I’m wondering if I’m focusing on too much and only half-finishing things.

Travel

Wow, after a few years of not travelling at all (this is not just because of the pandemic), there was a fair bit of it this year.

If there was one destination that was top of list this year, it was Canberra. We went once as a family during Easter to see my sister’s house, and her new cockatiels. I’ve returned to Canberra three other times this year to look after them while she was overseas for work. The whole work from home revolution has made this possible, and I’m glad I was able to do this.

The other location of note was travelling to Las Vegas to attend AWS re:Invent, and although I became ill during the trip, and was generally overwhelmed by the size of the conference, it was still good to be able to travel overseas again. Good thing I got my passport renewed.

By the end of the year, the amount of travelling I was doing was exhausting. 2023 is shaping up to be a big travel year as well, and I’m a little concerned it may be too much for me. I guess we’ll see this time next year.

Apps

Not much on this front.

This was the year I really got into Obsidian. I started the year trying to carry around a paper notebook, and although I used it a few times to write notes, it was a little uncomfortable in my pocket. Later in the year, I gave Obsidian another try and since they’ve now got mobile apps, it’s become my go-to place for all my notes.

Another good app discovered this year was Numi. This has been very useful during sprint planning sessions, when I need to calculate velocity and projected capacity. If there is one feature I wish I could add to this, it’s the ability to turn off iCloud syncing. I don’t like seeing my work stuff showing up on my personal desktop.

Writing And Online Presence

I think this is the first year where I end up with less domains than I started with. There were a bunch that I bought in 2020 and 2021 which I never used for anything, and they were just sitting there, taunting me. It’s good to see them expire out.

It’s also the year when I fell into a bit of a writing streak. This was a good one to have happened, and it drove me to write at least one blog post or journal entry every day. I like to continue this, and maybe refine it further by attempting to write at-least one blog post per day here.

One thing that didn’t work for me was banking posts: writing posts days earlier in anticipation of days where I couldn’t think of anything to say. I got the idea from Seth Godin, and I tried it for a bit, but the Drafts section just piled up with half-finished posts that eventually grew too stale to publish. I guess the need to publish things as soon as I’ve started work on them is something I’ve learnt about myself.

I’ve also settled on a CMS for my side-project work journal and have started a check-in blog. Both of them are hosted on Micro.blog and although I’m still working on the writing workflow, it seems to be working well for me so far.

The not-using-Twitter streak has continued, and given the current direction of the platform, it’s very unlikely that I will return. I have started browsing around Mastodon a lot more, especially since Adam has launched social.lol. Mastodon felt like a bit of a ghost-town at first, but things are improving after many of those I used to follow on Twitter started posting there. I’m trying to avoid making the same mistake that drove me away from Twitter, so I continue to be very careful about who I follow and will not hesitate to hide boost from those that make me anxious. I’m also adhering to the idea of POSSE so most of my writing will continue to originate here.

Books And Media

I’m combining them in a single section because I really did not get a lot of reading done. I’d like to say that I’d like to change this, but I’m honestly not sure if I would be serious. Anyway, here are some moments:

A lot of reading about creativity and self improvement this year. This includes The Dip by Seth Goden, and Ignore Everybody: and 39 Other Keys to Creativity by Hugh MacLeod. Both of these I discovered after reading Indie Microblogging by Manton Reece.

The books that I’ve started reading, but didn’t finished, were The Kaiju Preservation Society by John Scalzi, Build: An Unorthodox Guide to Making Things Worth by Tony Fadell, and 4000 Weeks by Oliver Burkeman. There’s a bit of irony in not finishing the last one.

Things I’ve watched this year:

  • Severance: I didn’t watch this when this first came out but I eventually got to it and enjoyed this quite a lot. It was good to finally get all the Lumon references.
  • The Orville: I was expecting this to be a bit more satirical than it actually was, but in the end I found it to be quite a good watch. I haven’t got around to S3 yet.
  • Hamilton: I finally got to see this in person. I’ve watched the Broadway performance before, and I was familiar with the soundtrack, so I wasn’t going into it cold. But it’s a much different experience watching this on the real stage.

I also made my podcast debut by being a guest on Martin’s Feld excellent podcast series Really Specific Stories. Honestly, if you’re interested in tech podcasts at all, you should absolutely be listening to this show. And I’m not just saying that because I was a guest. Feel free to skip the episode I was on, but make sure you listen to all the others.

The 2022 Word

The word for 2022 was finisher. The general goal was to stop splitting my focus and start following through on things all the way to the end. As I mentioned when I was talking about Dynamo-Browse, I think I’m improving on that front. It will be something that I’ll need to work on going forward, but the improvements are there.

So overall, a pretty decent year. Probably one of the more eventful ones than the last few, but I’m pretty happy with this one.

Don’t like becoming a “regular” at cafes. It’s nice while you’re going there, but you ineviably move on and start going someplace else. But your new place closes for New Year’s Eve, and since the old one is the only one open, you go back for your coffee. It always feels awkward.

It’s been a while since I’ve used Pinboard to track a link. I found myself using other things for this. temporary links go to Obsidian, podcast episodes I like to listen to again I’ve got something bespoke for now, and links of note go here. I found this system works quite well.

Only slept three or so hours last night, and yet it feels like I got a lot done today. Funny how that can occur. Maybe it’s the feeling that if I were to stop, I’d might want to nap or something. And waking from a nap without feeling awful is just something I can’t do.

Check this one off the bingo card: responding to PagerDuty alert during the Christmas break to do routine production support work. 🧑‍💻

Poking Around The Attic Of Old Coding Projects

I guess I’m in a bit of a reflective mood these pass few days because I spent the morning digging up an old project that was lying dormant for several years. It’s effectively a clone of Chips Challenge, the old strategy game that came with the Microsoft Entertainment Pack. I was a fan of the game when I was a kid, even though I didn’t get through all the levels, and I’ve tried multiple times to make a clone of it.

The earliest successful clone I can think of was back when I was using Delphi, which I think was my teens. It’s since been lost but I do recall having a version that work and was reasonably true to the original game as possible. It wasn’t a particularly accurate clone: I do recall some pretty significant bugs, and the code itself was pretty awful. But it was nice to be able to do things like design my own levels (I wasn’t as internet savvy back then and I didn’t go looking for level editors for the Microsoft’s release of Chips Challenge). Eventually I stopped working on it, and after a few updates to the family computer, plus a lack of backups or source control, there came a time where I lost it completely.

Years later, I made another attempt at building a clone. I was dabbling in .Net at the time and I think I was working on it as an excuse to learn C#. I think I got the basics of the game and associated level editor working but I didn’t get much further than that. Either I got bored and stopped working on it.

I started the latest clone nine years ago. I can’t remember the original motivation. I was just getting into Go at the time and I think it was both to learn how to build something non-trivial in the language, and to determine how good Go was for building games. Although this is probably just a rationalisation: I’m sure the real reason was to work on something fun on the side.

Screenshot of CCLM, the latest clone
Screenshot of CCLM, the latest clone.

Over the first five years of its life or so, I worked on it on and off, adding new game elements (tiles, sprites, etc.) and capabilities like level scripts. One thing I am particularly proud of was building a mini-language for selecting game elements using something akin to CSS selectors. Want to select all wall tiles? Use the selector SOLD. How about configuring a water tile to only allow gliders and the player but only if they have the flipper? Set the Immune attribute of the water tile to GLID,PLYR:holding(flippers). This was particularly powerful when working on tile and sprite definitions.

Text editor showing tile definitions with sample selectors
A sample of how some of the tiles are defined, including usage of the selectors.

I didn’t put as much effort into content however. As of today, there are only 18 or so unique levels, and about half of them are ones that I consider good. I certainly put little effort into the graphics. Many of the tile images were just taken from the original tile-set and any additional graphics were basically inspirations from that. This blatant copyright violation is probably why this project won’t see the light of day.

Screenshot of the level editor
The level editor, and one of the rare times when it's not crashing.

I’m impressed on how Go maintains its backwards capability: moving from 1.13 to 1.19 was just a matter of changing the version number in the .mod file. I haven’t updating any of the libraries, and I’m sure the only reason why it still builds is because I haven’t dared to try.

I’ll probably shouldn’t spend a lot of time on this. But it was fun to revisit this for a while.

One final thing: I might write more about projects I’ve long since abandoned or have worked on and haven’t released, mainly for posterity reasons but also because I like reflecting on them later. You never know what you’d wish you documented until you’ve lost the chance to do so.

Spent the day restyling the Dynamo-Browse website. The Terminal theme was fun, but over time I found the site to be difficult to navigate. And if you consider that Dynamo-Browse is not the most intuitive tool out there, an easy to navigate user manual was probably important. So I replaced that theme with Hugo-Book, which I think is a much cleaner layout. After making the change, and doing a few small style fixes, I found it to be a significant improvement.

I also tried my hand at designing a logo for Dynamo-Browse. The blue box that came with the Terminal theme was fine for a placeholder, but it felt like it was time for a proper logo now.

I wanted something which gave the indication of a tool that worked on DynamoDB tables while also leaning into it’s TUI characteristics. My first idea was a logo that looked like the DynamoDB icon in ASCII art. So after attempting to design something that looks like it in Affinity Designer, and passing it through an online tool which generated ASCII images from PNG, this was the result:

First attempt at the Dynamo-Browse logo

I tried adjusting the colours of final image, and doing a few things in Acorn to thicken the ASCII characters themselves, but there was no getting around the fact that the logo just didn’t look good. The ASCII characters were too thin and too much of the background was bleeding through.

Other attempts at the Dynamo-Browse logo

So after a break, I went back to the drawing board. I remembered that there were actually Unicode block characters which could produce filled-in rectangles of various heights, and I wondered if using them would be a nice play on the DynamoDB logo. Also, since the Dynamo-Browse screen consists of three panels, with only the top one having the accent colour, I thought having a similar colour banding would make a nice reference. So I came up with this design:

Final design of the Dynamo-Browse logo

And I must say, I like it. It does look a little closer to low-res pixel art than ASCII art, but what it’s trying to allude to is clear. It looks good in both light mode and dark mode, and it also makes for a nice favicon.

That’s all the updates for the moment. I didn’t get around to updating the screenshots, which are in dark-mode to blend nicely with the dark Terminal theme. They actually look okay on a light background, so I can probably hold-off on this until the UI is changed in some way.

The unwanted.

Spent the day updating some Day One entries of my recent trip to the US. Some days effectively had scrawls of an update I wrote while I was over there, so I had something to work on while I was filling in the gaps. The question was should I maintain the present tense of the post?

If I do, then it will seem like I wrote this really detailed entry while I was living the day. And it may make for interesting reading, but it feels dishonest to me (even though it would just be me reading it). I could change it to past tense, which will make it sound more genuine to what it actually is: an entry updated weeks after the actual day. But it may clash with the tense of many of the other entries that were also written on the day.

On the other hand, there were entries written the past tense already, so that window broke ages ago. So I decided to go with past tense.

I was about to write something disparaging about threads again (this time about Mastodon threads), and while I personally can’t stand the reading experience, I guess that’s how some prefer to write long-form.

I still prefer to read them as blog posts. Maybe that’s an opportunity for a CMS or blogging tool; one that recreates the experience of writing a thread, and will actually make one when syndicated to Mastodon, but will also publish it as a blog post at the same time.

(Ten minutes later…) Actually, it might be better for this to be something that the Mastodon client offers, since that’s where people are writing threads anyway. Maybe the way it could work is that you can link a blog that supports micropub, and whenever someone writes a thread, the client can offer a way to automatically publish it to your blog. Boom! You’re blogging without blogging.

Wishing you all a merry Christmas, a safe and restful holiday, and a happy and prosperous New Year.

Christmas tree with lights on and a fair few bird ordainments

2022 Song Of The Year

For the past twelve years or so, I’ve been invited to play the organ at the children’s Christmas Eve mass at a local(ish) primary school. During the collection, while people are getting wallets or purses out, I usually play some soft, nondescript music on a muted organ with only a few soft pipes opened. It doesn’t matter what I play during this time so I usually take this opportunity to play a song that I felt was a favourite of mine throughout the year. I unofficially consider this my song of the year.

For a song to be considered, it needs to meet these criteria:

  1. It must be a song that I’ve discovered during the year. A song that I’ve been listening to before Christmas Day the previous cannot be considered. This forces me to keep discovering new music, instead of falling into the rut of listening to the same thing over and over again. This doesn’t mean it needs to be released during the year. In fact, many of the songs I grow to like have been released decades ago.
  2. It must be a song that’s found it’s way into my general rotation. I need to have listened to it more than a few times, which generally means I need to like it enough to listen to it regularly.
  3. It must be a song that I can play softly on an organ. I can usually slow things down so this doesn’t mean that fast songs or songs with vocals are out of the running. But it needs to sounds good slowed down on a muted organ, which doesn’t apply to all songs I listen to.

This Year’s Nominees and Winner

Here are this years nominees. You will be surprised to know that not all of them are from Mike Oldfield (well, one isn’t at least… which is not all of them 😉).

  • The Tunic Soundtrack by Lifeformed × Janice Kwan. This was an early discovery and is now positively associated with Canberra, a place I’ve been to more than a few times this year. Favourite tracks are To Far Shores, Ocean Glaze and Mirror Moon.
  • Hergest Ridge by Mike Oldfield. Discovered after watching this video on progressive rock albums. I linked to the 2010 one but I must note that I prefer the original 1974 release, so if you can find a version of that, listen to that one.
  • Voyager by Mike Oldfield. I’ve been listening to a few tracks of this before 2022, but this year I actually started liking the rest of the album.

And the winner for this year is: Part One, from Hergest Ridge by Mike Oldfield. 👏

Hergest Ridge 1974 album cover. Copyright owned by Virgin records

Well, I should say the first 10 minutes of Part One. Things seem to turn a bit near the end in the original 1974 release, where it becomes a bit of a rock song, then immediately turns on a dime back into the traditional progressive soft stuff with tubular bells (or maybe that’s just the version I’m listening on). But even so, Bravo! You have won the coveted privilege of being peformed on a small pipe organ in a Melbourne suburban church.

Honourable Mentions

These are the songs that I consider worthy of the title, but didn’t meet all the criteria (usually point 3). For this year, they are:

  • PPPPPP by Magnus Pålsson. The soundtrack to VVVVVV. An enjoyable listen, especially if you like the type of soundtracks play on the audio chips of retro 80’s hardware.
  • Retro Grooves Vol. 2 and Vol. 3 by Anders Enger Jensen. Much like Voyager, I’ve been listening to DiscoVision before 2022 but I started poking through the back catalogue of these two albums and they’ve been really good.

Past Winners

This might be the first year I’ve written about this little tradition but it isn’t the first year I’ve selected a song. The past winners, with the associated years if I could remember them, are:

Reading The Verge article about Twitter adding view counts to tweets (HT Daring Fireball), and hearing from the Twitter dev that most tweets get zero views, reminds me of this Slate article about Twitter users who posted once then abandoned the service.