One thing I absolutely must do in 2025 is get out more: attend meetups, join a club, anything to get me around other people. I generally hate these sort of things, but I think it would be good for me. If I start with one social gathering a month, I think that’s manageable.
Learnt a valuable lesson today, which I will share with you via another King DerpCats most wondrous meme gen’rat’r.

🔗 How to Write Docs People Read
Some interesting ideas on documentation from Allen Pike. I know for myself I tend to turn towards how-tos when I need to reference something. I’d be curious to know how this could work with technical documentation, which is usually dry and out of date.
I somtimes wish I could remember why I subscribed to half the RSS feeds I have subscribed to. Did I hear about these site from a podcast or see it in a blog? (most likely). Why did I subscribe at all? Maybe if Feedbin remembered the top post when the subscription was created it could jog my memory.
2024 Year In Review
It’s a few minutes to 12:00 PM on the 1st January 2025 when I published this. Thanks to time-zones, that means it’s just about to turn 12:00 AM one hour to the west of Greenwich, meaning that it’s still 2024 in much to the west of the prime meridian. So I’m technically still within the window of time where I could say I got a year in review post out for 2024.
Turns out it’s not the first time I’ve used this excuse. Looking at other posts I’ve published on the 1st of January, I’ve done this twice before. And I guess this pattern of posting a year in review on the first of the next year makes some sense: it’s usually a quiet day, with nothing open, and I’m usually a little tired and listless1.
That means there’s usually a large block of time available to me, and despite what I wrote yesterday, it is a good practice to do some reflecting, however brief it may be.
So I’d figured I’d might as well drag iA Writer out and scribble out a brief review of the year that was.
Online Presence
I made a point of wanting to cut down the number of domains I acquire in my year in review for 2023. This is still an ongoing progress, but year-on-year, I’m down 2 domains on net, which is an improvement. 2024 saw the acquisition of 7 new domains, of which 2 I’m using for something, and 1 I plan to keep around:
Domains | 2024 | 2023 |
---|---|---|
Registered | 23 | 25 |
With auto-renew turned on | 17 | 16 |
Currently used for something | 15 | 13 |
Not currently for something but worth keeping | 2 | 3 |
Want to remove but stuck with it because it’s been shared by others | 0 | 1 |
I’m still trying to keep this blog alive by posting regularly here. I’ve must’ve felt more comfortable with doing so as it’s been a record breaking year, with 840 posts, beating the previous record by 594 posts. The initial fear of falling out the practice has subsided to one where I find joy in posting here. That’s probably why the post count is so much higher.
Of course the quality of a blog doesn’t correlate with one’s ability to “post the most”, and I do feel like there have been times where I felt a little blasé about what I write here. I do want to be better here, or at least be a little more conscious about it. But not at the expense of turning this into solely a soapbox/marking/punditry site: there’s plenty of those out there already. So you’ll probably continue to see the cringey, irrelevant, lame, and potentially disposable posts here. I’ll just try to make sure that it’s balanced out with posts that are actually good.
Some notable posts of the year:
- Detecting A Point In a Convex Polygon: the subject matter is a little dry, but one thing that’s notable about this one was the interactive elements. This took a few weeks to get right and I’m quite happy with how they turned out.
- Goland Debugger Not Working? Try Upgrading All The Things: notable as it seems to be the post that got the most traffic from Google.
- BASIC.HTM: notable as it was the first post of mine that appeared on Hacker News.
- A Tour Of My New Self-Hosted Code Setup: longest post to date, with probably the longest bit of spoken audio I’ve published on this site. Getting my hands dirty with editing the narration was an interesting experience.
- Micro-fiction: Get A Horse: notable in that this was my first post that was a work of fiction.
One other thing about blogs: I still have that wandering eye for other blogging CMSs. I did start three other blogs, of which two I shut-down and rolled into this one. That just leaves one new blog created this year that I’m planning to keep separate, mainly because I feel the subject matter warrants a dedicated site.
Projects
2024 didn’t feel like a big project year, probably because most of the projects I’ve started I kept to myself. But I did manage to release a couple this year:
- Sidebar For Tiny Theme: This came with the additions for recommendations to Micro.blog, and the addition of sidebars listing those recommendations in a couple of the themes. I use Tiny Theme, which didn’t have a way to do this, so what started as a blog-post eventually became a Micro.blog plugin. It’s been good seeing this adopted by other bloggers.
- Cyber Burger: A Pico-8 game, which I hoped would’ve only taken a few weeks to build. Overall it took 3 months, largely because I spent large stretches of time not working on it. But I’m glad I actually got this finished and released.
The other things I’ve worked on that I built mainly for myself:
- UCL: A tool-command language, similar to TCL, that I’ve built for work. The state of this is smack-bang in the middle of “sort-of-usable” and I’ll need to spend some effort cleaning this up and documenting this if I ever want this to see wide release. I’m not sure that I want that though. at least not yet.
- Blogging Tools: A set of tools that help me post here. What started as something to assist with making photo galleries has grown to a suite of tools dealing with images, audio and video. Really useful for my needs.
- Tape Playback Site: A private site for browsing old cassette tapes that have been digitised. I still have a pile of tapes I need to digitise though (are you getting a sense that I find it hard to finish things? 😀).
- Nano-Journal: My version of Kev Quirk’s web-based journalling app. After adding Git synchronisation and attachment support, I’ve use this now for all my journalling. It doesn’t do everything that Day One does (off-line support’s a big one) but it does enough.
Finally, some of the projects that have been abandoned:
- Photo Bucket: My third attempt at making something to publish image galleries online. I think the need for this has been made somewhat redundant with Blogging Tools.
- I also started two interactive fiction stories in Evergreen that I haven’t finished yet. One is close, and I probably should get it done. The other is about halfway finished and probably won’t see the light of day.
Books And Media
Given that I exceeded my reading goal for 2023, I thought I could push myself a bit more for 2024 and go for finishing 10 books. Sadly, I was nowhere near meeting it. I only got to finishing 4 this year:
(not pictured: Twenty Bits I Learned about Making Websites)
I think I probably started more books than I’ve finished. Not that I have to finish every book I’ve started, but I think my problem is one of focus. The books I have started could be interesting, and I have plans to finish some of them. I just need to spend more time reading.
I’m not a movie person but I did manage to watch a few this year. Here are the ones I’ve posted reviews for:
There was a period of time where I felt burnt out by scripted TV shows, favouring YouTube over much else. I eventually got back into watching a few “high production value” shows, some of which I enjoyed:
- House of the Dragon: Season 1
- House of the Dragon: Season 2
- Andor
- Reacher: Season 2
And some that I enjoyed far less:
Onwards To 2025
I know it’s cliché to look back on the last year and feel pretty crappy about it. And yeah, not every day of your life is going to be great. They’ve been some rotten days in 2024 that I haven’t included in this review (I have written about them so check out the archive if your curious).
So, was 2024 a good year? Well, I’ll start by saying that it hasn’t been wholly a remarkable year. There’s no one event that I can point to and say “this is what made 2024 great.” Maybe this past year was like that to others, but such events didn’t happen to me2. And recency bias has made it difficult for me to say there were more good days then bad (the last few months have been rough).
But I wouldn’t say 2024 was a bad year. Certainly a busy one, with a lot going on. But on balance, I’d say it’s been one of the better ones.
So that’s it, year in review for 2024 done. Have a happy new year and onwards to a great 2025.
-
I don’t do much on New Years Eve, electing to go to bed early. Yet, I usually get awaken at midnight for various reasons: fireworks, messages from people wising me a Happy New Year. Last night was no exception. ↩︎
-
Well, that’s not entirely true. Becoming an uncle was an example of such an event. But again, such personal news, is currently outside the scope of this post. ↩︎
Fixed the UI of Alto Player, plus addressed some long standing issues I’ve been having.
One was displaying the album covers for playlists instead of the generic “missing album” image. It’s technically possible to set an album cover on a playlist, but I never built the UI to do this in the web-app. So the app now uses the album cover of the first track in the playlist if one isn’t specified. Another was getting automated release builds working in GitHub, as per these instructions
But the biggest improvement was finally getting around to storing the position of the album list, so that going back up the navigation stack wouldn’t reposition the list to the top. I tried this a way back, but couldn’t get it working, probably because I was testing RecyclerView.scrollToPositionWithOffset
by passing last constant numbers, like 100, only to find the list not actually scrolling. It turns out that this method actually takes the index of the item to position at the top, not a pixel offsets. So the view wouldn’t scroll if you happen to have a list with less than 100 items. It only started working after I tried smaller numbers, like 5.
So all in all, a good day.
Only took two hours to uplift Alto Player from Android SDK version 30 to 35. Fought an upgrade to Gradle (because of-course), skirted around a migration from ExoPlayer to Media 3, and battled a NullPointerException due to my inability to properly my own navigation args. All in all, not bad.
I didn’t have a word chosen for 2024, but I think I’ve got one for 2025: discipline. As in, being a more disciplined in what I set out to do. Not to let my focus waver or go into doing something half-arsed. I feel that I’ve been lacking this recently.
Oh no, what a shame. For reasons beyond my control (but entirely my fault) I may not have enough time today to write a year in review post. Of all the rotten luck. 😉
I find them really painful to write, despite how useful the exercise can be. Maybe I’ll get to it early next year.
I guess there’s nothing in life that can’t be improved by adding RGBs to it. 😄

Also glad I caught this feature before buying this cable for my nightstand.
I hear people say that Bluesky is like early Twitter. Part of me feels that that can’t be possible in this day and age. Twitter came about in a world that didn’t have Twitter, so the strategies used by those to gain vitality or grief people had to be learned. Those strategies today are refined to the point where they could be employed on any new Twitter-like social network with an algorithmic timeline.
I wasn’t one of those early Twitter users so I can’t know what it was like back then. These feelings I have come about by occasionally dipping into Bluesky’s Discover feed with my guard up, only to pull out a few minutes later when I reach my limit of seeing late-Twitter-like posts. I can’t say it’s a place where I’d like to spend my time. If early Twitter was like that, then I can understand why it took me until 2019 to sign up.
Home Screen Of 2024
It’s just turned 3:00 in the afternoon, and I was alternating between the couch and the computer desk, racking my brain on what to do. With no ongoing projects — a few ideas have been bouncing around, yet none has grabbed me so far, and I had nothing else in a state where I could just slip on some music or a podcast and work on — and seeing a few others make similar posts on their blogs, I’d figured I talk about my home screens.

I realised that I haven’t actually done this before, mainly because my home screens change very slowly (the background hardly ever). Dramatic changes usually come about when I’m setting up a new phone.
And yet, I do want to talk a little about the apps I have at the moment, and I did want to make sure I had a record of how the home screens looked. And seeing that I needed to keep myself occupied doing something, now is as good a time as any.
Screen One

This screen contains two widgets — the date and weather widget at the top, and the calendar widget on the right — plus a small collection of apps placed deliberately where they are. The apps I have here are not necessarily the most used (although two of them are) but I like having easy access to them for various reasons.
Aside from the widgets, the apps I have on this screen — from left to right, top to bottom — are as follows:
- Micropub Checkin: A silly little Flutter app I used for adding check-ins to lmika.day. The apps in a bit of a neglected state, but I still use it as I get value from tracking places I’ve been.
- Strata: The note’s app from Micro.blog. This is where I write my short-term notes. I use Google Keep for shopping lists, but everything else goes here.
- Alto: A music app I wrote, and the main music app I listen to.
- Pocket Casts: The podcast player app I use. Apart from the web-browser, this and Alto are two of the most used apps I have on my phone.
- VSReader: Another silly little Flutter app. This is a test build for an RSS reader I was working on a couple of months ago. It’s been a while since I’ve opened this, and I probably should just kill it given that I haven’t made any recent changes to it.
- Google Wallet: Google’s digital wallet (well, at least their current iteration of their digital wallet). I use it mainly for my train ticket but I do have my credit card in there, just in case I walk out without my “real” wallet.
The items in the dock are as follows:
- Phone: My family and I still use the phone quite frequently so this app has remained in the dock since I set the phone up.
- Messages: This is Android’s messaging app. Much like the phone, I communicate with family mostly via SMS, and now RCS, messages.
- Play Store: I rarely go to the Play Store, so there’s no real need for this icon to be here. But I haven’t got around to removing it yet.
- Vivaldi: My web browser of choice.
- The right most icon changes based on the last used app, which I’m not a huge fan of, as it occasionally changes just as I go to tap it and I launch the wrong app by mistake.
Screen Two

A grab-bag of apps I frequently use. Some of them probably should be on the first screen, but since real-estate is at a bit of a premium I just keep them here, and swipe over when I need them.
From left to right, top to bottom, the apps on this screen is as follows:
- PTV: The Victorian public transport app. I usually use it to know the arrival time of the tram I take going home. Also useful for trip planning.
- Plex: I generally don’t watch things on my phone, but before I got my Nvidia Shield, I used this Plex app to Chromecast shows to the TV. It was never great at it though, as it sometimes disconnected from the Chromecast session while the video was running, leaving me with no means of stopping it until I unplugged the Chromecast.
- Kindle: Kept here as I occasionally use it to read books if I’ve read through my RSS feeds.
- ChatGPT: I don’t use ChatGPT on my phone that often, but it does occasionally come in useful when a web-search proves fruitless.
- FastMail: My email provider of choice. Given how often I use it, this is arguably one of those apps that should be on the first screen.
- Pager Duty: The twenty-four hours on-call paging software I had to use for work. I’m no longer on the on-call roster so it’s probably something I can remove.
- WhatsApp: What I use for messaging friends. I don’t like the fact that I have a Meta app on my phone, but that’s what my friends chose to use so I’m stuck with it (it’s also better than Viber, which is what we used before).
- WireGuard: Personal VPN, although I’m currently not using WireGuard for anything right now. I like to keep it mainly because I like the logo.
- Discord: I’m a member of a few Discord servers, but I use the mobile client mainly to check into the Hemispheric Views Discord.
- Notion: Where I store my “long term” notes, at least for now.
- Tusky: Mastodon client.
- Splitwise: Group expense management and splitting app. This was useful during our European trip last year, where each of us would take in turn to pay for the group.
- SunSmart: Used to track the current and forecasted UV index. Useful around this time of year if I’m planning to be outside for an extended period of time.
- Micro.blog: The Micro.blog app, although I occasionally use the web version too.
- 1Password: My password manager of choice.
- Realestate.com: Used to browse real-estate, out of curiosity more than anything else.
- Spotify: My “secondary” music app. I don’t use it for anything that I regularly listen to, but it’s occasionally useful for those once-off tracks.
- Google Authenticator: Where I keep my 2FA codes.
- Day One: Before I moved to a web-based journalling app, I used this Day One client for writing journal entries. It wasn’t perfect: there was always syncing delays to/from the Apple platform instances of Day One. But it was fine.
- Slack: Used mainly for work.
- Camera: I’m not sure why I have this here, since I almost always use the double power-button tap to bring up the camera. I guess I moved it here from screen one and never removed it.
Screen Three

This is a screen I hardly ever used, as it’s mainly reserved for apps that are useful while travelling. The Booking.com app and Emirates apps I can probably remove: I was using them mainly to track flights and accomodation during my European trip last year.
The only one worth keeping is Airalo, which allows you to buy and setup data SIMs that work overseas. This has been really useful to me during my last couple of trips, and I hope to keep using it for trips in the future. It doesn’t offer a lot of data, but any data is better than zero data, as my friends — who continued asking to use my data when we’re out of WiFi range — can attest.
Strange dream last night. Dreamt I was invited to go to Google’s campus in Sydney to discuss some performance issues in Go. Some manager gathered all the Go devs in a large conference room and ask them, in an aggressive tone, what was behind the slow performance. The phrase “gate latch” was thrown about, and then I woke up.
Sighted an echidna today. It wasn’t a close encounter; I was about seven or eight metres away. Probably why it wasn’t too fazed to have its picture taken.

I’m a bit behind ATP, only now just listening to episode 618, and all the suggested names for John’s app. Here’s my suggestion: Hypercleanable.
Also considered: Hypercopiable, and Hyperdeclonable.
Enjoy. 😄
More fun today working on Blogging Tools. Finished a feature for uploading larger videos to object storage so they can be added to a post using the standard video tag, as opposed to an embedded video player. If you see the screencast below, that means it’s working.
Dear AWS,
Deprecate functions in your SDK if you must, but please post a link to the method I should use in its stead. Or tell me it’s no longer supported. Otherwise, I have no recourse but to either search mountains of documentation, or take my chances with what is deprecated.
Sincerely,
lmika
Released version 1.2.0 of Sidebar for Tiny Theme. In this version, the sidebar can now be configured to appear on pages other than just the home page. Options include showing it on the pages of posts, or pages other than posts. With both on, the sidebar will now appear on all pages of the site.

Effectively secure.
