Oof, left the house without my wallet. Good thing I set up Google Pay on my phone or I wouldn’t have been able to pay for my coffee.

Project Updates

Well, it’s been three weeks since my last post here, and as hard as it was to write this update, not writing it would’ve been harder. So let’s just skip the preamble and go straight to the update.

Cyber Burger (That Pico-8 Game)

I’m terrible at being coy, I’ll just spill the beens. That game I’ve been working on is call Cyber Burger. It’s based on a DOS game I saw on YouTube, and it seemed like a fun project to try and work on, with some tweaks to the gameplay that I think would make it more forgiving.

In the weeks since my last update, I finished with the prototypes and started working on the game itself. The initial set of art is done and a very simple “Game A” mode has been implemented. In this mode, you are shown a burger you’ll need to make in your basket. You do so by shooting down the items flying across the screen and catching them in order. When you do, you get a “tip”, which basically amounts to points. If you make a mistake, you’re given a demerit. There are five rounds in total, and once the round is complete, you move on to the next one, with maybe slightly different items, or different item speeds, etc.

An example play session, with the new graphics.

I managed to make a HTML version of this which plays through round 1. I gave it to someone at work to play test and the results wereโ€ฆ well, they weren’t bad but it didn’t set the world on fire.

I think I’m okay with that, but I do need to keep working on it. I think one thing that would help is adding sound. And I think it might help me deliver this earlier if I abandoned Mode A and start working on Mode B, which is closer to an arcade style of game that would allow for continuous play. These two things, I’ll aim to work on this next week.

Oh, and I’ll need to fix the item spawner. Waiting ages for an item you need is no good.

If you’re interested in giving it a try, you can do so by following this link (it runs in the browser). Feel free to send any feedback you may have.

UCL

The other thing I’ve been spending some time on over the last week or so was UCL. I’ve been using that work tool which has this language quite often recently and I’ve been running against a number of bugs and areas where quality of life changes could be made. Just small things, such as allowing the foreach command to be called with a proc name instead of requiring a block, much like the map function. Those have been addressed.

But the biggest thing I’ve been worked on was building out the core library. I added the following functions:

  • The `seq` function, used for generating a sequence of integers. I like how I built this: it’s effectively a virtual list โ€” that can be indexed, iterated over, or calculated the length of โ€” but does not take up linear space.
  • Comparator functions, like `eq`, `ne`, `gt`, etc. plus settling on a type system much like Python, where values are strongly type (can’t compare ints to strings) but are also dynamic.
  • Arithmetic functions, like `add`, `sub`, etc. which operate on integers, and the `cat` function use to concatenate strings (these functions do try to cohere values to the correct type)
  • Logical functions, like `and`, `or`, and `not`.

Along with this, I’ve started working through the strings package, which would add the various string functions you see, like trimming whitespace, splitting, joining, etc. I’ve got trimming and converting to upper and lower case, and my goal for next week is to add splitting to and joining from string lists. Once that’s done I’ll probably put this on the back-burner again so I can finish off Cyber Burger or work on something else.

Just a reminder that there’s also a playground for this too, although I apologise for the lack of documentation. I’ll need to get onto that as well.

Finished reading: Hell Yeah Or No by Derek Sivers.

A good book. I resisted reading it for a while (Iโ€™m not sure I was ready to hear what it had to say) but I bought this Friday, hoping that it would help me work through an important decision, and I think it did. ๐Ÿ“š

My regular cafe no longer opens on Sunday. Most of the other cafes close to me open at 8:00. There’s one that opens at 7:00 but it takes a 30 minute walk to get there. I went to that one today, and despite the walk, I arrived home earlier than I would have if I waited for the other ones to open.

More DOS game nostalgia watching on YouTube over the last few days. This time on Commander Keen, an absolute favourite of mine growing up. For all the other Keen fans out there, this one’s for you.

A message written in Standard Galactic Alphabet in a style that attempts to resemble pixel art from the 90s. Message reads as follows: Might be that building something that would generate a message in SGA is super nerdy. And you would be right. But I needed something to post this evening.

And yes, making this is how I spent my evening. ๐Ÿ˜„

It’s a pint sort of evening today. Balter XPA. Cheers. ๐Ÿป

A frothy mug of beer sits on a wooden table in a cozy restaurant setting.

It might be that the first day where everything’s working smoothly, nothing’s on fire, and there’s nothing for me to fix would also be the first day that I’m out of a job. Even so, a day like that would be nice. ๐Ÿ˜ฎโ€๐Ÿ’จ

Oh, so those flashes of blue light was not arcing from the overhead catenary. โ›ˆ๏ธ

Had to deal with an API written in JavaScript where a field could have zero or more string items. Two or more items, the field is an array. If it’s one item, the field is set to a single string. Zero items, the field is not set at all.

๐Ÿคฆโ€โ™‚๏ธ

I don’t blame the language, I blame the API designer.

Helped my barista arrange some stock that tipped over in her display fridge, and she didn’t charge for my coffee. I absolutely appreciate the sentiment and free coffee. I also like you to stay in business, so please let me pay in the future.

Some follow-up from my post about 1Password this morning. Turns out it’s not 1Password picking the wrong suggested password, it’s Vivaldi. Not sure why at this stage. I may have chosen not to save the password for the subdomain and it was picking up something else. Or it’s just broken. ๐Ÿคท May need to investigate further (or not).

I also realised that there’s no such thing as an Android 1Password extension for Vivaldi, or if there is I’m not using it. 1Password does have something which uses the accessibility settings to pre-fill passwords in “supported browsers.” Not sure Vivaldi is such a supported browser because when I turned on that feature, nothing happened (it did show up when I tried Chrome).

Also, shout-out to yatal who suggested clicking on the extended options for the domain, and selecting “Only fill on this exact domain”. Found this option on 1Password for 8.10.40 and managed to turn it on for all the subdomains that I have.

Screenshot of 1Password showing the auto-fill behaviour for the URL, with the option 'Only fill on this exact domain' selected

As to how I can get it working on Android? Not sure at this stage. Maybe I need an updated version of the Android app.

I wish 1Password’s browser extensions recognised subdomains better. I have around 6 services hanging off a single apex domain, each with a different password, and whenever I visit the login page for one of them, 1Password always suggests the Linkding one. It’s not like it doesn’t know the site URLs.

Since bringing home the ukulele, all I’ve been wanting to play on it is tracks from Mike Oldfield’s The Voyager. Here’s a test recording of my attempt at playing She Moves Through the Fair, which I think is actually an Irish folk song. Also wanted to hear how well my webcam mic performs with music.

I’ve been listening to Marco talk about his user’s response to the Overcast rewrite with interest. I have no comment to make about the rewrite itself โ€” I don’t use Overcast since I don’t use an iPhone โ€” but listening to Marco on the latest episode of Under The Radar come to realisation that Overcast is now at a stage where he cannot only consider it his own is admirable. To have created something that has grown to be bigger than yourself, where the best thing you can do for it is to say “I may have started this, but this is no longer mine”, is a testament to how large and successful Overcast has been. If only we all could say we had that chance to do likewise in our own careers.

Bought my blog-roll up to date to my RSS subscriptions. Itโ€™s clear that itโ€™s been a while since I last updated it. Theyโ€™ve been a couple of removals but quite a lot of additions, many of them blogs that Iโ€™ve been reading for months.

First day of spring means the first day of swooping season. Chalk one noisy miner up for me on the swoop-o-meter please. ๐Ÿ‘ทโ€โ™‚๏ธ

Speaking of musical instruments: new toy acquired. My parents were cleaning out some clutter and found this ukulele. I always imagined them to be little more than small guitars, so I was quite surprised when I saw how they were tuned, with the outer strings being higher than the inner ones.

Auto-generated description: A small, wooden ukulele with four strings is lying on a textured, light blue surface.

Hot take: bagpipes actually sound pretty good.

Sock photo of bagpipe players on a British town with the caption โ€˜#pipe_those_bagsโ€™ near the bottom.

Finished reading: Magician by Raymond E. Feist. Itโ€™s been a while since I read this, but itโ€™s an absolute favourite. ๐Ÿ“š

While listening to the interview with Ben Thompson on How I Write, a thought just occurred to me: I was never interested in learning about writing online until I started writing online.

I may have had a passing fancy in the topic before I started writing here. I was a reader of Stratechery back then, among many other blogs, so if this interview cropped up back then, I probably still have listened. But I doubt I would’ve been as engaged in the topic, let alone been interested in seeking more about it. It’s certainly wasn’t something I found myself seeking out at the time.

Now, I lap this stuff up whenever I see it. The subject on talking about keeping a blog, publishing a newsletter, or working on the web is catnip to me, and if I find someone discussing the topic, I’m immediately attracted to them.

I guess there’s a lesson here about how being is downstream from doing. The only question that remains is whether what I write here can be considered writing? ๐Ÿค”