Whooping cough immunisation booked. Apparently the local chemist does it, which means no need to make a doctors appointment, which is great (the GP is a bit of a hike away). π
Unboxed my new vacuum cleaner. First, love how all the packaging material is cardboard and paper: only thing I needed to throw in the bin was a bit of tape. Second, love how this comes with a stand. I was actually wondering where I was going to stow this (it won’t be the living room π).
Been listening to The Truman Show soundtrack after watching it again on Friday. One of my absolute favourite soundtracks. So good. π΅
Amazing what you overhear in cafes. Guy a few metres from me is talking about the bridge repairs heβll be starting next week. Talk of floating barges up the Yarra, getting jacks and permits, deploying buoys. Facinating to hear.
Loading a bunch of data from my laptop to a database in the US just brings into sharp relief that as fast as the speed of light is, it would be nice if it was faster. Guess I shouldn’t hold my breath. π
I’ve never seen a “confirm cancel” box that seemed to have the right sort of copy. Here’s one from Google that feels like they missed the mark:
I wonder if it’s better to avoid arbitrary verbs, and use copy involving Yes or No:
I enjoyed reading Kev Quirk’s post about building a simple journal. I’m still using Day One, but I am still thinking of moving off it. So I was inspired to build a prototype similar to Kev’s, just to see if something similar works for me. Built using Go instead of PHP, but it also uses Simple CSS.
Big day today at work. Can’t say too much about it unfortunately, which is a shame. But one thing I did learn: there is a right and wrong way to plug in a fiber optic cable. Don’t get the orientation wrong. And don’t forget to plug it in all the way.
Reminded again why I enjoy the commute to South Melbourne more than Port Melbourne, despite being the same length: all-changeβ events at Flinders St. no longer affect me.
βThe irony is that I do have to go to Port Melbourne today, although not until the afternoon.
Got a large blog post written up lamenting my decisions about the project I’m working on (in short, I choose complexity when I had something simple that worked). Might leave it unpublished, as we ended the day at a good spot and I don’t feel half as bad as I did this morning.
My Home Computer Naming Scheme
I enjoyed Manton’s post about the naming scheme he uses for Micro.blog servers. I see these names pop up in the logs when I go to rebuild my blog, each with a Wikipedia link explaining the origins of the name (that’s a really nice touch).
Having a server or desktop naming scheme is one of those fun little things to do when working with computers. Growing up we named our home desktops after major characters of Lord of the Rings, such as Bilbo, or Frodo, but I never devised a scheme for myself when I started buying my own computers. I may have kept it up if we were doing likewise at work, but when AWS came onto the scene, the prevailing train of thought was to treat your servers like cattle rather than pets. Granted, it is probably the correct approach, especially when the lifecycle of a particular EC2 instance could be as short as a few minutes.
But a few years ago, after buying a new desktop and setting up the old one to be a home server, and finding that I need a way to name them, I figured now was the time for a naming scheme. Being a fan of A Game of Thrones, both the book and the TV series, I’ve came up with one based on the major houses of Westeros.
So, to date, here are the names I’ve chosen:
- Stark β the M2 Mac Mini that I use as my desktop
- Tully β the Intel Mac Mini that I use as my home server
- Crow β a very old laptop that I occasionally use when I travel (this one is a reference to the Night’s Watch)
I think at one point I had an Intel Nuc that was called Ghost, a reference to John Snow’s dire wolf, but I haven’t used that in a while so I may be misremembering things. I also don’t have a name for my work laptop: it’s simply called “work laptop.”
Coding Bits, the blog I keep to write down things I learnt while working with software, has now reached 17 posts. So, like Workpad, the time has come for a proper domain and an avatar. I’ve decided to rename it TIL Computer. I’ve also moved it to Pika, as I was interested in trying it out.
Agree with John on ATP #600 that a Google style “permission summary” is a better way to regularly confirm app permissions on MacOS. Maybe the issue I had/have with their proposed weekly permission confirmations is that Apple’s designers lacked the imagination to do something better than throw up a bunch of confirmation pop-ups for each app. A single, well designed “summary” disclosure of app permissions, shown once a month, is something that I can definitely tolerate, maybe even support.
Project Seed - A Pico-8 Prototype
Oof, another long stretch between updates. This has not been a productive winter.
Much of the project I’ve been writing about here are, shall we say, “on ice”. UCL is still being used for the project it’s been built for, but there’s been no further work done on it recently. I think we can safely say Photo Bucket is dead, at least for now. Blogging Tool and that interactive fiction project is still ongoing, but both are running on a slow burn. I was hoping to get the fiction thing done by the end of winter, but it’s likely that timeline will slip. Maybe some time in spring.
What have I been doing in the meantime? Watching YouTube videos on old DOS games, actually. Hardly an activity worth writing about here. But it did get me wanting to try working on a game again. And I did get an idea for one while watching videos of someone going through a collection of shovelware titles.
This project is designated the codename “Project Seed”. I’m going to be a little cagey about the details, at least for now. But I will say that I’m planning to use Pico-8 for this. I bought a license for Pico-8 about 2 years ago (oof, did not expect it to have been that long ago) and I watched a few videos on how to use it, but I didn’t have a good idea for a project then. It is a fascinating bit of software, and I know it’s quite popular amongst hobbyists. One thing I like about it is that the games made with it are not expected to have great art. As someone who can’t draw to save himself, this works in my favour. So don’t expect anything resembling Celeste from me! πΒ Pico-8 also targets HTML5, which works for me.
Anyway, I have this idea, and I thought about starting a prototype to see how it feels. I downloaded Pico-8, spun up a new project, and started drawing some of the graphics. I’ve got the bare minimum so far: a user-controlled paddle, called the “basket”; a laser bullet, and a thing that needs to be shot.
Next was coding up the Lua code. Using the Pico-8 builtin editor was fine for a bit, but I eventually switch to Nova just for the screen size. I am still trying to adhere to the whole retro-style approach to Pico-8. The code I write is still bound to the 8192 token limit, and I’m trying to avoid using too much virtual memory, capping elements to only a handful. But, yeah, using Nova to write the logic is so much better.
Anyway, the first milestone was allowing the player to move the basket around and shoot laser bullets. Then it was to get one of the shootable items moving across the field. The idea is that the player will need to fire the laser to hit the shootable item. When it’s hit, it begins to fall, and the player needs to catch it in the basket.
This took about an hour or so, and already the glimpse of the core game mechanics are starting to show through. They’re just ridiculously primitive at this stage. I mean, the item really shouldn’t fall through the basket like that. But given that it’s a prototype, I’m okay with this so far.
Next experiment was spawning multiple items onto the field. This got off to an interesting start:
But adding a bit of randomness to the Y position and the spawn delay managed to make things a little more natural again:
One thing I’m considering is whether to add some randomness to the item X velocity, and even have items move from right to left. But this will do for now.
At this stage, items were just being added to an array, which grew without bounds, and were not being released when they left the screen. Obviously not a good use of memory (even though this is running on an M2 Mac Mini and not retro hardware from the 1980’s, but that’s hardly the point of this exercise). Furthermore, the player is only able to shoot one bullet at a time, and those bullets weren’t being released either. So I set about resolving this, trying to do so in the spirit of a Pico-8 game. I’ve setup a fixed Lua array, which will grow up to a max size, and added a simple allocator which will search for an empty slot to put the next item in.
function next_slot(tbl,n)
if \#tbl < n then
return \#tbl+1
else
for i = 1,n do
if tbl[i] == nil then
return i
end
end
end
return nil
end
This makes releasing items really easy: just set that slot to nil
. It
does mean that I can’t use ipairs
to iterate over items, though.
Instead I have to use the following construct:
for i,item in pairs(items) do
if item then
-- Do thing with item
end
end
It’s here that I wished Lua had a continue
statement.
I used this for both the item and bullets: there can now be up to 8 items and 4 bullets on the screen at a time. After making those changes, the prototype started to play a little better:
So, a good start. But there are definitely things need to be fixed. The basket needs to be wider, for one. It’s fine for the prototype, and I’m okay with it the collision being pretty lenient, but it’s too narrow to make it fun.
But the biggest issue is that the collision logic sucks. Bullets are flying through the items, and items are falling through the basket. I’m using a point-in-rectangle approach to collision detection, with a few probing points for each item, but they obviously need to be adjusted.
So collision is what I’m hoping to work on next. More on this when I get around to it.
While weβre talking about suburban sounds, chalk me up as someone who doesnβt like the sound of a reversing Tesla. I mean, I guess my response is not to like it: more like to get out of its reversing way. In that case, maybe sounding unpleasent is simply part of its job. π€·
Gonna train nerd here for a minute: Itβs a shame that the Comeng train horn has been changed to sound like that of the XβTrapolis. Hearing that old A major chord was a staple of growing up in the suburbs. Now it all sounds like someone blowing a loud, detuned trumpet in a cathedral.
Love how all these cooking and home reno shows are cut. The actual building or cooking scenes are all in fast motion, yet there’s ample time to show all the shopping and browsing scenes in real-time. π
Trying out the stoot Micro.blog plugin by Mandaris. Click through to see a test post:
This is a test post.
I've never been to Mars but I hear it's rather swell.
Works like a charm, and looks pretty good. Excellent work, @mandaris.
This morning’s tiding.
π Collective Nouns for Groups of Various Birds
Many of the ones I expected, but there are some interesting ones I’ve never heard of: a dole of doves, a kit of pigeons, a pandemonium of parrots.