• I had my suspicions that today’s Microblogvember post would be difficult to write. Well, my suspicions turned out to be correct. #mbnov

  • The National Carillon, on the banks of Lake Burley Griffin. Music was being played on it this morning, although I didn’t recognise the tune. It wasn’t Tubular Bells, though.

    The National Carillon
  • Ugh, I just completely screwed up the test deployment of something just now. Missed a service that needed to be in place before rolling out a config change. The config change updates a DynamoDB table, and the stream of updates from that would be picked up by this service and pushed onto an SQS queue. Because the service wasn’t there, these events were completely missed.

    I don’t think there’s any way to replay the original events from DynamoDB, so I tried cleaning this up by rolling back the config change. I ended up making the whole situation worse, and it was pointless in the end as it would have completely invalidated the test anyway. Now I have to go to the tester and ask him to reset.

    Oof, is it clock-off time yet?

  • I prefer to have my phone in my pocket with the display facing my leg. But with the Pixel 6 Pro I had to switch it around because the display was always getting phantom taps. This would pause music and podcast playback, and it actually called 000 once. Not ideal. πŸ˜• #mbnov

  • It feels a lot like I’m rubbernecking but I just cannot look away from the slow moving trainwreck which is the Twitter takeover. Laying off people who know how things work; all the imposter Twitter Blue accounts with the blue checkmarks. Really something to behold.

  • Google Photos came up with this amusing suggestion today.

    Suggestion to rotate photos of birds

    Just to be clear: it was the birds that were rotated, not the camera. πŸ˜€

  • A few months ago I decided to try a different approach with working on personal projects. Instead of having many projects running in parallel β€” where I duck in and work on each at a time β€” I decided to cut back and focus on only one. I thought I’d struggle with this: that I would get bored with it and would want to move to something different. But I think I ended up getting more satisfaction out of seeing something finished and usable, something that I can actually share with others. It’s a little embarrassing sharing something that is half-baked.

    So I think I’ll stick to this mode of working. The question now is when to put the current project aside and try something different. I figured I’d work on something new while I was in Canberra, but I found this harder to do than I thought. The current project has just got a lot more inertia at the moment.

    Maybe I’ll try again in the summer.

  • State election coming up in a couple of weeks. My parents, who have recently signed up as paid members of the Labor party, has put up a yard sign for the Labor candidate, who is the current minster for their district. Best of luck to her re-election. #mbnov

  • One thing is certain: humans are fallible. They forget, or do not follow through sometimes. So if you find yourself at a crossing with someone else, don’t feel bad about pushing the button yourself. #mbnov

    Pedestrian crossing button
  • Half-implemented micro-services are the worst. It can really slow down your development velocity to the point where you feel like you’re walking through syrup. You’ve got several teams making changes to systems they’re responsible for. In theory these services are independent of each other, and the work is organised in such a way that they do not require any work on behalf of those using them. But unless you go all Amazon, and enforce impenetrable boundaries between the various systems, this never works out in practice.

    Eventually you find yourself needing to do some manual thing just to get your development environment stable again so you can get your stuff done. An hour or two goes by and when it comes time to start work on the thing you actually wanted to do, you’ve forgotten what it was or got distracted by Slack or something.

    Then you complain about it on your blog. πŸ˜›

  • The consensus seems to be that it’s preening time. #mbnov

    Two cockatiels preening on a leg
  • For today’s Microblogvember post, I would like to make a shout-out to the blog of Jodie Cook. I find pretty much every one of her posts’ insightful in some way, even if the subject matter does not directly apply to me. Worth a follow. #mbnov

  • Since finding out that echo was today’s Microblogvember word, Pink Floyd Echoes has been playing in my head all afternoon. It’s one of my favourite tracks from them. #mbnov

  • Oof, I would have though that after writing here for a couple of years, I’d find the Microblogvember challange easier. I guess experience is no excemption here. #mbnov

  • Hackathon today. Taking a little break and looking at admiration on how much we managed to achieve in a few hours, especially considering that I’m working remotely from the other two team members. #mbnov

  • On my way to the airport to catch a flight, while wondering that if I just went for a Nav rating when I had my recreational pilot license, and kept the hours up, I wouldn’t be too worried about keeping to a strict schedule. #mbnov

  • They’re running electric busses on the route I take for work. I’m traveling on one now. Not the same as travelling on a tram; rails are smoother than the bumpy roads. But acceleration feels smoother than diesel, and it’s so much quieter. Can recommend. πŸ‘

  • Cape Shank, Vic. Taken today. A feast for the eyes and ears (and maybe a tasting for the other senses as well). #mbnov

  • πŸ”— github.com/charmbracelet/vhs

    This little tool is awesome. It allows you to easily make GIFs of a command line session from a text-based DSL. I tried it on the full screen TUI app I’m working on and it worked flawlessly.

    Now wondering if I could use it for automated testing. πŸ€”

  • Pro-tip: add challenges.micro.blog to your feed reader to get the daily challenge word for Microblogvember delivered to you through the magic of RSS (I keep forgetting that you can do that).

  • Urge to buy a Nintendo Switch: 4/10

    It’s holding steady at the moment but it’s been rising slowly over the last couple of months. I figure it won’t be too long before it starts rising again. #mbnov

  • Day Trip: Macedon And Trentham

    I had the pleasure of taking the day off today and going for a few walks around Macedon and Trentham. Being someone that’s really into keeping with a routine, I try to do these walks at least once a year. It’s been somewhat delayed this year, due to work commitments, but with the public holiday tomorrow, I thought I was a perfect time to get outside and do them before summer rolls around. Continue reading β†’

  • Trying to build an old Android app that has fallen out of date. Doing this always brings up some weird errors.

    The version of Gradle being used was woefully out of date, so I starting upgrading it to the latest minor version used by the project (it was 3.1.0 to 3.2.x). This required changes to the distributionUrl in gradle-wrapper.properties. After making these changes, I was getting 502 errors when Android Studio was trying to get the binaries from jcenter.bintray.com. I feared that the version of Gradle I was hoping to use was so out of date the binaries may no longer be available: it wouldn’t be the first time Java binaries disappeared as various sites changed URLs or shutdown. Fortunately the problem was transitory, and I managed to get a 3.2.x version of Gradle downloaded.

    The various squiggly lines in the .gradle files disappeared, but I was still unable to build the app. Attempting to do so brought up the following error:

    Unsupported class file major version 55
    

    This was weird. The only version of Java I had installed was Java 11, and I confirmed that Gradle was using the specific install by checking it in Preferences β†’ Build, Execution, Deployment β†’ Build Tools β†’ Gradle. So I couldn’t see why there would be a major version conflict. Was Gradle using a bundled version of Java 8 somewhere to build the app?

    What I think resolved this, along with upgrading Gradle, the SDK and the build tools, was explicitly setting the source and target capability of the app to the same version of Java I was using. From within “build.gradle”, I added the following:

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
    

    Might be that the version of Gradle I was using was so old it defaulted to building Java 1.8 byte code if these weren’t specified.

    This error disappeared and the app was stating to build. But the next weird thing I was then getting was that the compiler was not seeing any of the Android SDK classes, like android.app.ListActivity. What seemed to work here was to upgrade Gradle all the way to the latest version (7.3.3), clearing the cache used by Android Studio, and making sure this line was added to the app module dependencies:

    implementation fileTree(dir: 'libs', include: ['*.jar'])
    

    This finally got the build working again, and I was able to run the app on my phone.

    I don’t know which of these actions solved the actual problem. It’s working now so I rather not investigate further. The good news is I didn’t need to change anything about the app itself. All the changes were around the manifest and Gradle build files. Those Android devs really do a great job maintaining backwards compatibility.

  • Opinionated Tips for New Micro Bloggers Coming From Twitter

    or, How I Use Micro.blog To all new-comers from Twitter, welcome to Micro.blog! No doubt you’ve received the welcome message from Jean with links on how Micro.blog is different from Twitter, but you’re probably still wondering how to get the most out of Micro.blog. And while I’m not claiming to have all the answers, I’ve put together a few tips for how I get value from writing here. First, the thing that took me a while to appreciate is that Micro. Continue reading β†’

  • Rail work beginning in earnest. A large work train carrying ballast and track sections has pulled in:

    Series of SSR locomotives

    They had to close the road and pedestrian level crossing. I thought it was because they were doing work on them, but it’s probably because they’re blocked by this train:

    Pedestrian level crossing blocked