• I wonder if there’s a way to replace MacOS’s pretty ordinary spellcheck suggestions with a straight up web-search for “define <miss-spelt word>” and getting the first result. Doing this using DuckDuckGo seems to yield the word I was trying to spell almost every time.

  • My Impressions of GitHub Codespaces

    The GitHub Universe 2021 conference started a few days ago and one of the features touted in the day one keynote was GitHub Codespaces. This is a development environment that is accessible from within your web browser. It’s based on VSCode, which is a popular and well-designed IDE that is already written in JavaScript1, and also provides access to a Linux shell running in the cloud, allowing you to do various things like build and test your code.

    Continue reading β†’

  • Alto Catalogue Update

    I’ve really tied myself up in knots here. I’m spending some time working on Alto Catalogue, trying to streamline the process of uploading individual tracks into a new album. This is a workflow that is absolutely not user friendly at the moment, and the only way I’ve gotten tracks into the catalogue is to run a hacked-together tool to upload the tracks from the command line. The reason why I’m addressing this now is that it’s slightly embarrassing to have this open-source project without having a nice way of doing something that, by all accounts, is quite fundamental (a good hint for when you’re facing this is when it comes time to write the end-user documentation: if you can’t explain how to do something in a way that doesn’t include the word “hack”, “complicated”, or “unsupported”, then something is missing).

    Continue reading β†’

  • Today is starting out reasonably quietly. All the big development work is done and the only tasks left are the little annoying things, the “bottom of the backlog barrel” if you will. Still, won’t be long before the next major feature comes our way.

  • A Tool That (Almost) Solved My Step Function Woes

    I reached the end of my tether at work today on the task I was working on. The nature of the task involved crafting an AWS Step Function with several steps. Each step on the critical path contained some error handling, and several of them contained some cleanup logic, that had to be called by a bunch of other steps. This cleanup sequence is relatively complicated, and I’ve raised a number of PR’s to my colleagues which have come back with requests for change.

    Continue reading β†’

  • Thinking over the NaNoWriMo short story I’m working on, there seems to be a lot scenes with characters just sitting around and talking. It’s in danger of turning into a Star Wars prequel. πŸ˜„

  • Really enjoying Succession season 3 at the moment, but I’m afraid I’m one of those viewers that gets a little lost in all the business jargon. Fortunately, the Succession podcast really helps here, breaking down what actually happened in the episode.

  • Thought I’d give omg.lol a try this morning. My profile page. Looks a lot nicer than what I could come up with.

  • For the last month, I was having trouble installing software on my work laptop because I thought I lost admin privileges. But it turns out it was just because I was using my username in the password prompt, instead of my full name.

    Why, Apple? Why did you not take my username?

  • Feeds In Broadtail

    My quest to watch YouTube without using YouTube got a little closer recently with the addition of feeds in Broadtail. This uses the YouTube RSS feed endpoint to list videos recently added to a channel or playlist.

    Feed listing, in all it's 90's web style glory.

    There are a bunch of channels that I watch regularly but I’m very hesitant to subscribe to them within YouTube itself (sorry YouTubers, but I choose not to smash that bell icon). I’m generally quite hesitant to give any signal to YouTube about my watching habits, feeding their machine learning models even more information about myself. But I do want to know when new videos are available, so that I can get them into Plex once they’re released. There is where feeds come in handy.

    Continue reading β†’

  • It’s a bit strange how the stopwatch on the NaNoWriMo site doesn’t automatically fill in start and end times. It knows when I start the stopwatch. It knows when I stop the stopwatch. And yet, I still need to enter these times myself.

  • Some days I wonder why I ever considered being a software developer. πŸ˜’

  • It’s said that it’s a good idea not to blog while your angry. I think that’s good advice. After all, there’s already a lot of anger out there and no-one needs any more.

    But I need to vent somewhere. So watch out journal!

  • YAML and Accidental Programming Language Design

    I’m not a huge fan of YAML in general, but I do see it being useful for situations when a structured configuration language is needed. Something for which JSON would normally be used, but where human readability and maintainability is important.

    What I don’t like is seeing YAML being used as a way to define a sequence of actions. I complained about Step Functions, but just as annoying is the various CI/CD services that use YAML as the means of defining the build sequence. Encoding a sequence of actions β€” complete with branches, loops, callouts, and error handling β€” using a language geared towards configuration is clunky at best, and I’m always curious as to why vendors choose to use it when a language more fit for purpose would be nicer to work with. (This rant is going to be about YAML but using JSON in these situations is just as bad, if not worse. At least YAML has comments).

    Continue reading β†’

  • I’ve manage to get the first 1,000 words out of my NaNoWriMo-adjacent goal of a 10,000 word short story. I’m sure they’re pretty crappy words at the moment, but at least they’re on the page.

  • I really like to support independent software developers, but $150.00 for a file diffing tool is a bit much. The tool does a lot, like diffing images, but I don’t need any of that. If they release a text-only diff/merge version for like $30-50, I’d buy it in a heartbeat.

  • Some Screenshots Of Broadtail

    I spent some time this morning doing some styling work on Broadtail, my silly little YouTube video download manager I’m working on.

    Now, I think it’s fair to say that I’m not a designer. And these designs look a little dated, but, surprisingly, this is sort of the design I’m going for: centered pages, borders, etc. A bit of a retro, tasteless style that may be ugly, but still usable(-ish).

    Continue reading β†’

  • I had the opportunity to go out for breakfast this morning. I was originally going to get it as takeaway, but it was such a lovely morning (if not a bit cold) and with some tables available outside, I figured “what the hell”. It’s nice to be able to do stuff like this again.

  • Well, it took almost a full 4 months, but I’ve finally got a solar system installed on my house. It’s not functional yet β€” it needs to go through inspection β€” but hopefully in a few weeks it should be active and generating power.

  • I was perusing my archives the other day and I’ve noticed that it’s been two years to the day since my first ever blog post. Also of note was just how infrequently I was posting back then β€” only 7 posts in 9 months. I’m glad blogging has developed into more of a habit now.

  • The popups for the admin password in MacOS needs a third button with the label “I wish I had the admin password, and believe me when I say that if I did, I would enter it; but I don’t, so please stop asking me.”

  • On a bit of a writing streak: 50 consecutive days of at least one blog post or journal entry.

    P.S. I wonder if writing an entry about this streak, just to keep the streak going, is a form of cheating.

  • More work on the project I mentioned yesterday, codenamed Broadtail. Most of the work was around the management of download jobs. I’m using a job management library I’ve built for another project and integrated it here so that the video downloads could be observable from the web frontend. The library works quite well, but at the moment, the jobs are not kept on any sort of disk storage. They are kept in memory until they’re manually cleared, but I’m hoping to only keep the active jobs in memory, and store historical jobs onto disk. So most of today’s session was spent on making that possible, along with some screens to list and view job details.

  • It’s good to see that Dave Winer is keeping a blog on Drummer change notes. I’m having some trouble publishing a post this morning, possibly due to timezones, and seeing a post acknowledging the problem makes me feel better. A good example of narrating one’s work.

  • Start of Yet Another Project Because I Can't Help Myself

    One of the reasons why I stopped work on Lorikeet was that I was inspired by those on Micro.blog to setup a Plex server for my YouTube watching needs. A few years ago, I actually bought an old Intel Nuc for that reason, but I never got around to setting it up. I managed to do so last Wednesday and so far it’s working pretty well.

    The next thing I’d like to do is setup RSS subscriptions for certain YouTube channels and automatically download the videos when they are publish. I plan to use “youtube-dl” for the actual video downloading part, but I’m hoping to build something that would poll the RSS feeds and trigger the download when new videos are published. I’m hoping that this service would have a web-based frontend so I don’t have to login via SSH to monitor progress, etc.

    Continue reading β†’