Long Form Posts

    Truthful Travel Talk

    Itā€™s time to be honest: I think overseas travel is wasted on me.

    We were driving down from Antibes to Genova today. It was a nice trip, complete with picturesque towns passing us by as we drove along the motorway. My friend was oohing and ahhing at each one: remaking about how nice it would be to see them, stay in them for a while. He was also remarking on what we would do when we arrived at our destination. There was just this air of enthusiasm about the whole thing.

    I didnā€™t feel that enthausiasm. We heard some news that another friend of ours had their luggage stolen, and I just couldnā€™t stop thinking about it. I spent a fair bit of last night going through possible ways on how I could avoid it happening to me, and how I would handle it if it did, and just the whole hassle of dealing with that possibility.

    This, mixed with the inevitable task of finding my barring in an unfamiliar place, stressing about how I would interact with the locals in their non-native language, the ongoing recovery from Covid-19, and a bit of home-sickness, and you can probably guess that Iā€™m just not feeling the vibe of adventure at the moment.

    And yeah, I might have done this to myself, particularly since I havenā€™t had much to do with this part of the trip.Happy to ā€œgo with the flowā€ of what others are doing. And people might ask me ā€œoh, wouldnā€™t it be good to see this?ā€ or ā€œwouldnā€™t it be fun to experience that?ā€ Yeah, maybe? I might get some enjoyment out of it, but Iā€™m not sure if itā€™ll offset the stress I feel with the logistics of it all.

    So thatā€™s where I am at the moment. Itā€™s got to the point where Iā€™m contemplating coming home early. It would actually simplify my itinerary quite a bit, and I wonā€™t be leaving my friends in the lurch: it would be a portion of the trip where I would be travelling by myself. Even with a week less, thatā€™s still about 4 weeks in total, which I think itā€™s plenty, or at least plenty for me.

    Update 30 June: Apart from taking a slightly earlier flight home, I ended up staying the the full 5 weeks. And in retrospect, I’m really glad I did. I figured that I would regret not visiting the places I’ve would’ve cut out if I were to go home early; and after visiting them, I know now that I would’ve missed out on some of the most memorable parts of the trip.

    I think what sparked this post was a mixture of anxiety of travelling alone and little bit of home sickness. But nothing beats anxiety like working through the problem (if you can call travelling solo a “problem”). And as for home sickness: well, I’m not sure there’s much I can do about that apart from remembering that home will always be there.

    Where Have I Been

    Inspired by Manton and Maique, I thought Iā€™d document the places Iā€™ve visited as well. Iā€™d had to refer to this list a few times in the past so having a record like this is helpful.

    Transfers are not included here. In order for a place to be listed here, Iā€™ve have had to have landed there. Also, I’ve excluded Victoria, Australia, as this is where I live.

    • šŸ‡¦šŸ‡ŗAustralia (home)
      • New South Wales
      • South Australia
      • ACT
    • šŸ‡§šŸ‡·Brazil
    • šŸ‡ØšŸ‡°Cook Islands
    • šŸ‡«šŸ‡ÆFiji
    • šŸ‡«šŸ‡·France
    • šŸ‡®šŸ‡¹Italy
    • šŸ‡®šŸ‡©Indonesia
    • šŸ‡ÆšŸ‡µJapan
    • šŸ‡°šŸ‡®Kiribati
    • šŸ‡³šŸ‡æNew Zealand
    • šŸ‡³šŸ‡ŗNiue
    • šŸ‡µšŸ‡¬Papua New Guinea
    • šŸ‡¼šŸ‡øSamoa
    • šŸ‡øšŸ‡¬Singapore
    • šŸ‡øšŸ‡§Solomon Islands
    • šŸ‡ŖšŸ‡øSpain
    • šŸ‡ØšŸ‡­Switzerland
    • šŸ‡¹šŸ‡“Tonga
    • šŸ‡¹šŸ‡»Tuvalu
    • šŸ‡¦šŸ‡ŖUnited Arab Emirates
    • šŸ‡¬šŸ‡§United Kingdom
      • Devon, England
    • šŸ‡ŗšŸ‡øUnited States of America
      • District of Columbia
      • Maryland
      • Nevada
    • šŸ‡»šŸ‡ŗVanuatu
    • šŸ‡»šŸ‡³Vietnam
    Last Updated 12 Nov 2023
    • 12 Nov 2023: Added Singapore and Indonesia
    • 28 May 2023: First version. Note: Iā€™m writing this while on an overseas trip, so Iā€™ll also be including the countries that Iā€™ll be visiting over the next few weeks.

    Full Width Notes In Obsidian

    More custom styling of Obsidian today. This snippet turns off fixed-width display of notes, so that they can span the entire window. Useful if you’re dealing with a bunch of wide tables, as I am right now.

    body {
        --file-line-width: 100%;
    }
    
    div.cm-sizer {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    

    I wish I could say credit goes to ChatGPT, but the answer it gave wasn’t completely correct (although it was close). The way I got this was by enabling the developer tools ā€” which you can do from the View menu ā€” and just going through the HTML DOM to find the relevant CSS class. I guess this means that this’ll break the minute Obsidian decides to change their class names, but I guess we’ll cross that bridge when we come to it.

    F5 To Run

    While going through my archive about a month ago, I found all my old Basic programs I wrote when I was going through school. I had a lot of fun working on them back in the day, and I though it would be nice to preserve them in some way. Maybe even make them runnable in the browser, much like what the Wayback Machine did with the more well-known DOS programs.

    So I set about doing just that, and today the site is live: F5 To Run.

    And yeah, it’s likely that I’m the only one interested in this. No matter. I’m glad they’re off my dying portable drive and preserved on the web in some fashion.

    Twitter, Public Alerts, And Federated Protocols

    So apparently Twitter’s leadership team has discovered the value it has for public alerts:

    Of all the changes Elon Musk has made to Twitter, blocking emergency and public transit services from tweeting automated alerts might have been his least popular. User backlash roared, as National Weather Service accounts got suspended. Then, one of the country’s largest public transit services, Metropolitan Transportation Authority (MTA), had so much trouble tweeting, it decided to quit posting updates to Twitter.

    It always seemed a little off that these organisations were using Twitter for this. Not everyone is on Twitter, and those that were had to agree to the terms of a private company which could, at any time, doā€¦ well, what it’s doing now. Should public alerts for weather and transportation really rely on such private entities?

    I can see why these companies were used back in the late 2000’s, when they first came onto the scene. They had apps with push-based notification with a good (enough) user experience. They were also investing in the backend, setting up services that can scale. So organisations palming off dissemination of these alerts to Twitter made sense.

    But I don’t think it makes sense anymore. With ActivityPub and (in theory) whatever BlueSky is cooking up, you now have open, federated protocols, and a bunch of apps people are building which use them. You also have public clouds which provide an easier way to scale a service. With these two now available, it seems clear to me that these organisations should deploy their own service for sending out these alerts using any or all of these open protocols.

    Then, the public can come to them on their terms. Those using Mastodon or BlueSky can get the alerts in their app of choice. Those that aren’t interested in either can still use any mobile apps these’s organisations have released, and these protocols can be used there as well. One can imagine a very simple ActivityPub “receiver” app, stripped of all the social features apart from receiving notifications, that can be used for organisations that don’t or can’t release a mobile app. Plus, having a service that they run themselves could also make it possible to setup more esoteric notification channels, like web push-notifications through the browser.

    And yeah, it’ll cost money and will require some operational expertise. But I’d argue that serving the public in this way is their perdure, and the reason why tax dollars go in their direction.

    So now’s a great time for these organisations to step away from relying on these private companies for disseminating alerts and embrace the new federated protocols coming onto the scene. Who knows, maybe they’ll also embrace RSS. That would be nice.

    Content Warning: About A Spider

    This spider was hanging around my garage door opening button for a few weeks now. I didn’t think much of it until today, when I noticed that it was actually a redback. Not the largest redback I’ve seen, but one located pretty close to a button I push quite frequently.

    Photo of said redback (it's small, but the photo is a close-up)
    Photo of a redback spider beside a garage door opener, with another spider on the left.
    If you look closely you can see a bit of the classic red stripe on the spider's abdomen.

    I don’t know about other Australians, but I’ve got a “kill on sight”1 policy with redbacks, so it had to go.


    1. Of course I say that, but I’ve seen redbacks on shed doors that I haven’t done anything about. Though I wouldn’t call them harmless, there were out of the way enough for me to disregard them. ↩︎

    About Those Checkmarks

    This posts going to be about Twitter. Yes, I know; another one out there. It’s also going to be a bit speculative in nature, so feel free to skip it if you like.

    I’ve been reading the coverage over the “retirement” of the legacy verification system, both in the news and on the socials. And what I find interesting about this whole affair is all the new Twitter Blue subscribers complaining about people that had the checkmark choosing not to sign up.

    Their displeasure comes through in their tweets on why they think these people choose not to subscribe. Many tout money (these people are too stingy) or logistics (write it off as a business expense). But they don’t give a reason as to why they care. Surely money or logistics is their problem to sort through. Why should you be unhappy that they chose not to join Twitter Blue? I haven’t seen any tweets answering this question.

    I’m not surprised by that. I wonder if the reason is that many of those that have acquired a checkmark saw the those with a verified Twitter handle as being part of the in-group; members of an elite club that you cannot get a membership for1. Naturally they wanted to be part of this in-group, and when this new Twitter Blue subscription offer rolled out, they saw an easy opportunity to gain entry.

    But the thing about status symbols is that they’re only valuable if the in-group chooses to keep them. When all these formally verified people refuse to sign up to Twitter Blue, and their checkmarks were removed from their handle, so too did the checkmark loose it’s value as an indicator of worth. The checkmark no longer a signals status.

    Even worse is this in-group has changed their position to one where not having the checkmark is the sign of status. Suddenly, those that have signed up to Twitter Blue found that their attempts to buy their way in was for naught. And that’s what I think they’re angry about. Their new checkmark doesn’t impart status anymore, since those that had it don’t want it. Now it’s just an indicator that you’ve paid $8 a month, with maybe a hint that you found the symbol important in the first place.

    That’s also probably why Musk saw it fit to “pay” for Twitter Blue for accounts with more than a million followers, trying to prop up any remaining status this indicator once had. This raises more questions though. Surely he would have seen that allowing anyone to verify their account would dilute the intrinsic status that came with it. I guess he thought that those with the checkmark felt it important enough to keep it, and it will retain its value as a status indicator.

    Anyway, this could be all pretty obvious to a first year psychology student, but I found it all very revealing. It’s certainly interesting seeing this play out over the last couple of days.


    1. I know that’s not the point of this verification status, but it does seem like many saw it as an “I’m an important person” signal. ↩︎

    Day One and Project Jurassic

    So, Day One is in danger of being sherlocked by rumorā€™s of Appleā€™s upcoming journaling app:

    Mayne echoes the sentiment of several app developers who have been frustrated when Apple launched in-house competitors to the apps they have introduced to the ecosystem, often copying features those apps innovated and adding functionality that only Apple can offer, per the iPhone’s privacy and security policies and APIs.

    Iā€™m a user of Day One and I have my doubts that Appleā€™s app would be a drop-in replacement for my journaling needs. And I think the reasons why Day One works for me ā€” and could be made to work better ā€” are also opportunities for Auttomatic to differentiate Day One from project Jurassic.

    The first is access to user’s data. If Appleā€™s going to leverage the data it has access to on the phone, then Auttomatic should go the other way, making it dead easy for services outside Apples ecosystem to add stuff to peopleā€™s journal. Have a blog? Post photos to Flickr? Track movies in Letterboxd? Wouldnā€™t it be nice to get this into your Day One journal, safe and secure? A public API that these services can use to add posts to user’s journal would go a long way here. These services can offer an export option straight from the app, and Day One can be the private collection of all things a user does on the web, sort of like a private blog.

    And yes, I know thereā€™s that IFTTT integration, but I found it to be pretty crummy (all the post formatting was stripped and images were not uploaded). And it would be a pretty ordinary user experience to have these services say to their users “hey, if you want the stuff you track here in your journal, you have to create an account at this other service.” I guess all these services could publish this information as RSS feeds, and I would settle for that, if the IFTTT integration is actually working.

    But arguments about IFTTT aside, the point is that Day One should fully embrace other services getting user’s data into their journal, and the best way to do this is with a public API. I know it won’t work for all their journals (one’s encrypted E2E should remain so) but the user’s should have that option, and services should be empowered to allow this.

    And letā€™s not forget the largest trump card Automattic has over Apple: an Android app and web app. I haven’t used the web app but I use the Android app all the time. I can’t imagine Apple releasing an Android version of their journalling app, particularly if they’re gearing it towards health and leveraging all the private data people have on their iPhones. Automattic should keep working on both the Android and web app, so that users not completely in Apple’s ecosystem can keep journals.

    So I don’t think Auttomatic has much to fear about project Jurassic. But they can’t rest on their laurels. They should embrace the platforms outside of Apple and iOS to really differentiate Day One, and keep it a favourite of mine for journaling.

    Nerd Counterflex

    You know that Washington Post article that has the list of websites Google used to train Bard? I been seeing people post screenshots of their sites in the training set on their blogs and Mastodon. This morning I read a post from Chris Coyier about it:

    My largest corpus of writing to date is on the web at css-tricks.com (along with many other writers), so naturally, Iā€™m interested in seeing if it was used. (Plus, Iā€™ve been seeing people post their rank as a weird nerd flex, so Iā€™m following suit.)

    Iā€™d suggest reading it. The post is more than just him flexing his ranking in the training set.

    Well, I got curious to see if any of my writing was there. Hereā€™s the result:

    Screenshot of Washington Post article with Bard training set with ā€˜no resultsā€™ showing up for lmika.org

    I guess you can call this a form of a nerd counterflex?

    None of my other sites were there either. There was ā€œlmika.comā€, but thatā€™s not me. Maybe having that was good enough for Google.

    So yeah, you wonā€™t be seeing Bard sharing any of myā€¦ ā€œinsightfulā€ thoughts about code reviews anytime soon. šŸ˜„

    First Posts Of The Day

    It’s bit strange how the first post of the day can always feel like the hardest to get out. Every one after it is so much easier to write.

    I wonder if it’s because when faced with an empty text-box, there are these grand plans about what I’m going to write, as if everyone reading this is hanging on my every word: it’ll be my masterpiece of wit, inspiration, and insightfulness that will spread far and wide and blow the minds of everrryyywoonnneee1. Then I write something, and naturally it falls far short of these expectations: mundane, unimportant, already said before2.

    Then I say to myself, “ah well, at least it’s written down.” And with that, the expected level of quality for anything else that day has been set.

    So, this is today’s first post. More might come, probably along the same level of importance as this one. At least until the tomorrow, when the cycle starts again.


    1. Another possibility is that I feel I need to write something at the same level of quality of those that I read. That’s probably not a bad feeling to have; but, at least for me, it can get in the way of writing anything at all that day. ↩︎

    2. And lets not forget the bad spelling and grammar I failed to catch. ↩︎

    Reheating Chicken Schnitzel in a Microwave

    Some tips for heating up chicken schnitzel that you had for dinner in a 1.1 kW microwave for lunch the next day. This is something I occasionally do, and today I found a process that works that Iā€™d like to document for the future.

    First, donā€™t use the high setting on the microwave. A minute at high will heat the schnitzel up, but would also harden the crumbling, making it rubbery and unpleasent to eat. Even worst is using a plate instead of a container. That would ruin the meat even more and make a mess of your microwave.

    Instead, put the schnitzel in a microwave-safe container and heat it up twice, one minute each time, at medium. This will heat it up without making it rubbery. If still not warm enough, do it a third time for about 30 seconds (this I havenā€™t tried, but it seems like a good approach to getting the meat slightly warm while giving you time to make sure itā€™s still nice to eat).

    Photos Of Churchill Island

    Yesterday, my parents and I went to Churchill Island for afternoon tea and a walk around the homestead. Here are a few photos of that outing. Apologies that some of them are not great ā€” they were taken in a bit of a hurry.

    Hiding Your Attachment Folder In Obsidian's Outline

    A useful little CSS snippet for anyone using Obsidian that wants to hide their attachment folder from their outline.

    .nav-folder.mod-root>.nav-folder-children .nav-folder>.nav-folder-title[data-path^="Attachments"],
    .nav-folder.mod-root>.nav-folder-children .nav-folder>.nav-folder-title[data-path^="Attachments"] + .nav-folder-children {
            display: none;
    }
    

    To use:

    • Go to the directory $VAULT/.obsidian/snippets where $VAULT is the directory of you vault. If the snippets directory doesn’t exist, create it.
    • Copy the CSS snippet into a new CSS file.
    • Open you vault settings and go to Appearance.
    • Scroll to the bottom to where you see CSS snippets.
    • Click the reload button. You should see the CSS file you’ve just created appear in the list. Turn it on to apply it.

    This’ll work if you’ve configured Obsidian to store attachments in a folder called “Attachments” located at the root of your vault, like I do. But I suspect the data-path attribute holds the folder’s path so you could use whatever CSS attribute selector you need based on how you’ve configured attachments. For example, [data-path*="/Files"] selector will probably work if you’ve configured attachments to be in folders called “Files” that sits alongside your notes (I haven’t tested this so YMMV).

    Source: Scribbles_some_words on this Reddit response

    To Wordpress Or Not To Wordpress

    I’m facing a bit of a dilemma.

    I’ve been asked to setup a new website for someone who wants to stand up a new business. In therory this is something that I can do quite easily. I know HTML and CSS. I’ve made a living building backends for web-apps. I do have an undeveloped eye for design, but I like to think I have an idea of the principal of good website usability; and as long as I’m not too ambitious, and aim for a minimal usable site, I can probably put together a simple static website.

    The only problem is that this may not work for the person that I’m building a site for. This is someone that has no experience with putting together websites, and if I were to go down the static HTML road, I’d probably be on the hook to make changes going forward.

    So the alternative is to use a CRM like Wordpress. That way, once I hand ownership of the site to the client, he could either contract someone else to maintain it going forward or even learn to do it himself.

    Only problem with that is that my experience with Wordpress is quite minimal. I can get around the dashboard no problem, but when it comes to designing or customising themes or (sigh) using the Block editor, I’m just as much as a novice as he is. And I’m not sure to what degree I can leverage my HTML and CSS skills to style the site. I may be able to change a few things but I’d have to do so within the confines of the block templating system.

    So, what to do?

    Maybe the best way forward is to get a sense of how often this person would need the site changed. That’s by far the biggest variable here. I only know what he wants at a very superficial sense at this moment. I don’t believe it’ll need any sort of blog or product catalogue; just a simple landing page with contact details.

    In that case, I’m wondering if a static site with just plain HTML and CSS would be enough. That’ll be easy enough to put together. It can probably scale with some basic dynamic aspects as well, maybe powered with a simple backend that can regenerate the site. Maybe something like Carrd could work here as well.

    But the danger is that he’ll be locked into using a static site. Any changes would require someone who’s versed in HTML and CSS. Even worse would be a static site with a bit of backend “sprinkled in”. Then he’d be locked into using me. Not sure I like that for his sake or for mine. You read about those developers in The Daily WTF who’ve put together a custom backend for a “simple website” that has grown unwieldily and become a huge mess that someone who inherits it needs to cleanup or take responsibility for. The prospect of being such a developer is not a great one.

    Which is why I’m looking at Wordpress, and wondering the pain of learning how to work with it is worth it. I guess it’s offsetting the potential future pain (and embarrassment) of transitioning a static site to a proper CRM later.

    So, Leon, which pain is worse?

    Quotes Around Names In Error Messages

    I saw this error a few minutes ago:

    failed to process input: RUNTIME ERROR: function has no parameter stack
    

    This threw me for a minute as I was trying to work out which parameter stack went missing, what I did to cause it to go missing, and what the heck a parameter stack actually is anyway.

    But it had nothing to do with any sort of stack. The error message was showing up because a function call was expecting a parameter with name “stack” which was missing from the function definition.

    This is why I always like putting quotes around names in logs or error messages. It removes any ambiguity about what the message is referring to. If the message was:

    failed to process input: RUNTIME ERROR: function has no parameter "stack"
    

    then you’re more likely to infer that the thing missing was a parameter with the name stack.

    Consider doing this in the error messages you write.

    Web Search Works With Blogs Too

    Here’s one more reason to write (or syndicate) to your blog instead of post directly to social media: you can use web search engines to find what you need.

    I hear a lot of people complain about the crappy search in Twitter or the lack of search in Mastodon, but this won’t be a problem if you post to your site and let public search engines crawl it. They’re incentivised to make sure their search is good, so you’re more likely to get better results more quickly.

    Honestly, it works. I used it today to find a post from a fellow Micro.blogger that I wanted to reread. A site:<url> query with a few keywords. Found it in 5 seconds. I can’t imagine how long it would’ve taken if I had to track it down in Mastodon.

    Obviously this won’t work for posts from others, unless they too write to their blog. But it’s probably still worth doing for others that enjoy your work. And who knows? It might be useful to yourself one day. I know it has been for me.

    Less Consuming, More Creating

    Mike Crittenden posted a good quote from a random Hacker News commenter:

    Less consuming, more creating.
    Doesnā€™t matter what it is, doesnā€™t matter if itā€™s bad.

    This quote actually sums up this blog quite nicely. The first line explains why it came to exist. The second line describes how it continues to exist.

    Happy 1,000th post.

    Ballarat Beer Festival 2023

    My friends and I returned to Ballarat today for the Beer Festival. It was another stunning day for it: sunny, mild, not too hot. Much like last year I took an earlier train to walk around Ballarat a little. Not much to report here: very little has changed. But I never see Ballarat so it’s good to walk around a little. My friends were on the train behind mine and I caught up with them when I boarded at Ballarat. We then made our way to Wendouree park for the festival.

    We were given a plastic pot when we entered and brewers typically offered either a tasting size, a half pot, or a full pot of a particular drink. Half pots are usually the best value for money: you get a decent amount to enjoy but you pace yourself and avoid reaching your limit before you tasted everything you wanted to. I made that mistake last year: buying too many full-sized pot servings. I went half pots this year.

    I also made the mistake of not making notes of the beers I tried last year. I made sure to record them this year. Given the occasion, I decided to go for drinks that I wouldn’t normally go for. In other words: lots of sours today. I’m not a sour drinker and I think I eventually reached my enjoyment limit of them today. But that’s fine: I guess it’s good finding my limits this way.

    Here’s a quick rundown of the drinks I tried:

    • Fox Friday “Feeling Peachy” Fruited Sour: This was less sour and more on the bitter sweet side. The peach flavour came through strong, which took the edge off and made it quite refreshing. Made for a nice starter.
    • Dollar Bill “Australian Wild Ale”: This was a regular ale and a little more bitter than I was expecting (although that could’ve been because of the peach sour). It felt like a heavy sort of ale. Maybe a little too heavy for me. Not sure it’ll be something I go for again.
    • Mountain Culture “MS DOS” West Coast IPA: Nothing too remarkable about this. Just an IPA. But a decent IPA. Will definitely have again.
    • Wild Life Citrus Sour: I can’t quite remember the make up of this sour. I think it was lemon and blood-orange. Definitely something and blood-orange, as the blood-orange taste really came through. I didn’t think much of this but that’s probably because I reached my limit for sours at this point. This brewery was also advertising a “pineapple sour,” which would’ve been amazing, but sadly they weren’t pouring it when we arrived. Might have affected how I thought about the blood-orange drink: feeling that it was playing second fiddle to the pineapple one.
    • Prancing Pony “10 Year” Beer: This was one my friend got but he offered me a taste of it. It was a pilsner IPA but more on the pilsner side. It’s probably one I can see myself drinking if it wasn’t for it’s alcoholic content. It was quite high: 7.5%, or 3 standard drinks in a 500 ml can. That’s just a little too high for me. The can was quite something though.
    • Molly Rose “Strawberry Sublime”: This was a low alcholoic strawberry and lime gose. A bit of a mix of sweet and sour. It was nice, but it really wasn’t doing it for me, and frankly I’m not really sure why I went for it at this point in the day.

    The event was back in Wendouree park, and was pretty much like last year. Which is good: they did a good job last year.

    But there were a few small changes this year. For one, more tables were placed under the trees, which was a good move. There were more tables in the sun last year, which never had anyone on it for long as people preferred the ones in the shade. I think there were fewer brewers this year too. It might have been because of the layout change but it felt a little smaller this year, and some brewers from last year didn’t make an appearance.

    Also, no finska this year.

    But all in all, it was a good day. Good excuse to get on a regional train out to the country for a change.

    Ignoring Bard to Speak to Paulie

    So this happened today.

    Our team was testing the integration between two systems. The first system ā€” let’s call it Bard ā€” can be configured to make API calls directly to Stripe, or be configured to use the second system ā€” let’s call it Paulie ā€” to call Stripe on it’s behalf. Bard has a REST API that is used by the HTML front-end to handle user requests. Paulie is designed to be completely isolated from the front-end and has a simple gRPC API that Bard calls. Whether or not it Bard calls Paulie at all is determined by the value of an SSM parameter.

    The test was setup with Bard configured to bypass Paulie and make calls directly to Stripe. The way we were to verify this was to tail the logs of both Bard and Paulie, make a REST-API call, and confirm that logs showed up in Bard but not Paulie.

    I got called by those running the test to help, as they were seeing something unusual: when the test was performed, logs were showing up in Paulie. The system was configured for Bard to ignore Paulie and go directly to Stripe, and yet Paulie was being spoken to.

    So we started going through the motions. We checked to make sure we had the correct version of Bard deployed, checked the SSM parameter, traced through the code, restarted Bard a couple of times to make sure it was configured correctly. And after every check we tried the test again, to nothing changing: logs will still coming through from Paulie.

    We were at it for about 15 minutes. I was staring to go through the more esoteric explanations for why this was happening, like whether we were using SSM parameters incorrectly and we may have been using an old configuration or something. Then as I was going through the traces one last time before giving up, I noticed something: there were no traces from Bard. This REST-API it had did all sorts of things like contact the database before going to Paulie or Stripe so I was expecting something like that to show up. Yet there was no evidence of any of that happening.

    I then asked how this was actually being tested. And you can probably guess what the response was. Turns out the person running the test wasn’t using Bard’s REST-API at all, and was making gRPC calls directly to Paulie.

    Well, naturally, if you called Paulie directly without calling Bard, it doesn’t matter what Bard is configured to do. šŸ¤Ŗ

    Now, I don’t write this because I’m angry or annoyed. In fact, I came away from this feeling very zen about the whole thing. Mistakes like this happen all the time, it’s fine.

    But it’s a perfect opportunity remind myself that working on tech can sometimes give you tunnel vision, and that sometimes the explanation isn’t technical at all. Sometimes the answer is much simpler than you think.

    New Stuff Setup Weekend

    A bunch of new stuff I’ve bought has arrived recently and this is the weekend I finally get around to setting it up.

    New Furniture

    The largest one is a new couch. I’ve been sitting on a second-hand two seater that my parents gave me when I’ve moved out. It did the job but it was getting quite old and saggy, and I’ve been finding myself wanting to have something larger that I can lie across. So about six months ago, I bought a new couch. It was meant to come last December, but got delayed thanks to Covid-19 supply chain issues. But it finally arrived this Saturday.

    But before it can be delivered, I had to prepare the way, as they said. I did that on Friday, moving the old couch around to make space for the new one and also taking the opportunity to clean up a little.

    An empty space where the new couch will go, with the old couch to the right, beside the bookcase
    Preparing the way for the new couch. The old couch is temporarily beside the book shelf.

    The placement of the old couch is a little awkward, but it will only be for about a week and a half before it leaves my house.

    Delivery time was between 10 and 12 on Saturday morning, and it was near the end of the delivery window when the movers eventually arrived. There was some concerns about getting the couch through the door but they managed to do so by standing it up on its side and sliding it through.

    The new couch placed in the living room. The couch is a maroone reclying three seater
    The new couch.

    The delivery went smoothly, but I wouldn’t call it a great “first launch” experience. Apparently it’s policy not to take all the packing material, which means it’s something I have to deal with. It’s not a huge problem, and it’s not the first time I had to get rid of waste over several weeks, but it did take the shine out of enjoying a new piece of furniture.

    A pile of packing material waste in the living room
    All the waste I need to sort and throw out.
    A wooden board propped up against a wall
    Most of the waste is plastic and cardboard, but there's also this wooden board. I'll probably keep this. Might be useful in the future.

    But that aside, it’s great having a new couch. One interesting thing about the long time gap from purchase and arrival is that I forget how it felt trying it out in the store. It’s firmer than I remember and the height of the seats are a little short. It’s feels like a whole new experience from scratch. But I expect I’ll get use to it over time. And it’s not like I didn’t realise these properties when I actually tried it out during the shopping phase.

    All in all, I’m really happy with it.

    New Electronic Devices

    Today (Sunday) was all out electronic devices, starting with a new M2 Mac mini.

    A M2 Mac mini in its box
    The new M2 Mac Mini

    This will replace my 2018 Intel Mac mini, which will become a home server. This is actually the first Apple Silicon computer I own. I’ve been using a M1 MacBook Pro for work for a year and a half, and I’m reasonably confident that the M1 chips will handle the type of things I’d like to run.

    Going through the setup was pretty seamless. I tend to start all new machines from scratch, meaning I don’t migrate anything over. Since the old Mac mini will be still around, I’ll move projects and documents over to the new Mac over time.

    The one thing that didn’t work out as well as I expected was my USB audio interface. I’ve been using a Roland Quad-Capture as my audio interface and while I was getting ready to move to the M2 chip, I did a search to see whether Roland had drivers that worked with Apple Silicon. At the time I thought they did, but when I tried installing them they didn’t work at all. Another look today confirmed that there was no driver support the M2 chip.

    This was a bit of a setback. I think next time I make sure to actually do a search for “thing M2 support” instead of just browse the driver download page and infer support for something when it doesn’t explicitly say “does not support M1 Macs”. It would also be helpful to remember that MacOS 10.X does not equal MacOS X. šŸ¤¦

    Anyway I’ve got another audio interface on the way. It’s another Roland product, since I think something designed for music production means the device will be able to handle low latency audio. I also need something with MIDI since I do occasionally use it for music production. This new one uses the built-in MacOS audio drivers so hopefully I don’t need to worry about driver support going forward.

    Apart from that, I’m still in the process of setting the Mac up. It always feels a little strange moving to a brand new machine. It’s like moving house or going to a holiday let: everything its new to you, you need to find out where things are, and none of your old things are there. But it’s also a good opportunity to form a few new habits. For example, I may try using Safari as my browser instead of Vivaldi, and start using Mac-Assed Mac Apps like NetNewsWire in lead of web-apps. I might be a little more judicious about keeping my Download folder cleen as well. I saw a cronjob that will remove things in that folder after a week. I’ll give this a try and see if a clean Downloads folder works for me.

    The last bit of kit is a new Smart Keyboard Folio case for my iPad.

    An iPad Smart Keyboard Folio in its box
    The new Smart Keyboard Folio

    I finally bit the bullet and replaced my old keyboard folio with a new one. The keyboard was completely non functional in the end and the lining was starting to peel off, so it was probably time for a replacement anyway.

    An old Smart Keyboard Folio, with the top lining starting to peel off
    The "retired" Smart Keyboard Folio. Notice the lining above the keyboard starting to peel off.

    I’ve only tried the new one for a few minutes as I was looking up passwords and setup instructions for the new Mac. So far it’s working well. The only concern I have is that I’ll have to go through this again in three years time.

    So that’s all the new stuff I got setup this weekend. Most of the setup will continue over the next few weeks, especially the new Mac, but I’m happy I got the most of it done.

ā† Newer Posts Older Posts ā†’