-
Seems like Substack is not giving up on their Twitter clone. I only just discovered that if you tap on a post’s author, it goes to their Notes page. Not sure what I was expecting (maybe an About page, but would that make sense given their target market?) but I wasn’t expecting this.
-
Thanks for my new found fondness of buying mainstream music instead of streaming it, I needed a way to get these albums into Alto Catalogue. There exists a feature for fetching and importing tracks from a Zip referenced by a URL. This works great for albums bought in Bandcamp, but less so for any tracks I may have on my local machine.
I’ve managed to get Alto Catalogue building again after updating Webpack and a few NPM packages, so in theory, I could add an Upload Zip file action. But there’s more to this than simply accepting and unpacking a Zip file. I have to read the metadata, maybe even preview the tracks that will be imported, just in case I’m importing something I rather not (I did see this once, where zipping a bunch of tracks in the Finder introduced duplicates). This already exists for Zip files that are downloadable online.
I had a though about what my options are, until I remembered that I had a Gokapi instance running in Pikapods. So I tried using that to temporarily host the Zip file with a publicly available URL that could be read by Alto Catalouge.
The only problem is my internet upload speed is sooooo sloooooow. The Gokapi instance is hosted in Europe, and I suspect the instance itself is a little underpowered. So uploading 100 MB Zip files would take a fair bit of time: maybe 15-30 minutes. When I tried doing this via the web frontend, the connection timed out.
Fortunately, Gokapi has an API and one of the methods allows you to upload a file in “chunks,” which Gokapi will assemble back into the original file. Even better is that this chunking can be uploaded in parallel.
So I built a CLI tool which made of this chunking API to upload the Zip files. Once the upload is complete, the tool will display the hot-link URL, which I can copy-and-paste into Alto Catalogue.
The whole process isn’t fast (again, slow upload speeds). But it works, and I can use this tool to queue a bunch of uploads and let it do its thing while I’m doing something else. I really like tools that do this, where you’re not forced to babysitting them through the process.
There are a few limitations with it. It doesn’t allow for an awful lot of customisations on the lifecycle of the uploaded file. And the tool stalled out once when my computer went to sleep, and I had to start the upload from scratch. I could probably add something to track the chunks that were successful, allowing one to continue a stalled upload. If this happens frequently, I may look more into adding this.
But even so, this could be a useful addition to my use of Gokapi for transferring temporary files. If you think this might be useful to you, you can find the tool here.
-
Bit surprised to see this appear in my washing machine after washing some new clothes I bought this week.
-
I’ve started buying music via Qobuz, which offers DRM-free MP3 and FLACS of mainstream albums. So far it’s been really good, although I wish they offered a way to download an album as a Zip file, rather than require you to do so track by track (they have a download manager but, come on: it’s 2025).
-
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. Continue reading →
-
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.scrollToPositionWithOffsetby 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. Continue reading →
-
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.
-
Feliz Navidad, from our local graffiti artists. 🎄