Posts Tagged Joey Marianer

Holiday Inn Express Geometry


On our road trip across the USA, Joey Marianer and I stayed at many Holiday Inn Express hotels. I noticed that (at least for the Eastern side of the country) they had a lot of geometrical decor. In particular, some intriguing wallpaper, which I will analyse in the second hald of the post.

But first, some other geometrical art. For instance, this art made of triangles, shown here with a copy of the book I read on the trip, Matt Parker’s ‘Love Triangle‘:

Matt Parker's book held up in front of a framed artwork made up entirely of triangles of different colours, with mostly coloured triangles toward the top right and more white triangles (separated only by light grey borders) toward the bottom.

This art featuring hexagons, and occasional quadrilateral half-hexagons:

A framed abstract artwork made of rings of coloured rings of hexagons each with a white hexagon in the middle. On the top half the hexagons are mostly yellow, and on the bottom half they're mostly grey, but in between there are some red and purple rings. Sometimes, where the rings meet, the hexagons are split in through the middle, with a different colour on each side. There are also occasional lone red or purple hexagons as part of yellow or grey rings.

And this art with triangles inside hexagons!

A framed abstract artwork made up mostly of grey hexagons, though there are some freestanding triangles and some parts that are yellow, blue, green, or orange. Most of the hexagons have triangles drawn inside them (also usually grey) and each triangle has a smaller triangle at each of its corners.

This door decorated in triangles, diamonds, and parallelograms:

A sliding door divided into triangles, diamonds, and parallelograms in various colours

This more abstract collection of overlapping quadrilaterals making the occasional triangle:

Various diamonds and rectangles in different translucent colours, overlapping to form other shapes where they intersect.

Then there are perhaps less-artistic tesselations which I might not have noticed if not for the other decor. For instance, this couch featuring two different kinds of triangle:

A couch patterned with rectangles that are each divided through the centre into either four or two triangles (with the two-triangle rectangles being in groups of four so they could be seen as an eight-triangle square), with most triangles being grey or off-white, but some in pink or green.

This floor which seems to have at least two different lengths of floorboard:

Floorboards, some of which reach all the way across the picture, others of which are only about a third of that width.

This bedspread tesselation of diamonds and parallelograms:

Shiny white fabric with matte white lines making a design of diamonds surrounded by parallelograms, such that it could be interpreted as a lot of square steps viewed from an angle.

Now, onto the wallpaper. This was present in many different Holliday Inn Express hotels. Here’s the photo I took:

Off-white wallpaper with line art of a complicated pattern of various sizes of rectangles, some of which are divided into two triangles, and some of which have diagonal lines going only part of the way across them.

Here it is after I unskewed, cropped, and lightened it in GraphicConverter:

This raises a lot of questions:

  1. What is the repeating unit here?
  2. Which wallpaper group is it?
  3. What’s with all those lines that don’t meet the other side? Would the pattern make any more sense if I completed them?
  4. Is there some kind of pattern to the way the rectangles, the rectangles divided into triangles, and the rectangles with unfinished lines in them are arranged?

Okay, to answer the first question, here I’ve cropped it to show enough of the repeating units to recreate the whole thing, and converted it to black and white so we’re not distracted by the lighting:

At this point I switched from GraphicConverter to OmniGraffle. Here I’ve drawn in the repeating tiles:

A black and white representation of the wallpaper, with purple and orange rectangles surrounding parts of it

There are two kinds of tile, which I’ve outlined in solid purple and dashed orange. Vertically, the two kinds of tile alternate. Each column of tiles is offset vertically by half a tile from the ones next to it, so if you follow across the wallpaper, you’ll be alternating between top and bottom halves of tiles, and they might all be the same kind of tile, or they might be alternating kinds of tile, depending on where you start.

It took me a while to realise (actually, I think Joey pointed it out), but the orange tile is in fact the same as the purple tile, just flipped horizontally. That means we have what’s called a glide symmetry, or glide reflection โ€” it’s like a reflection, but the reflection is moved along. The classic example of a glide symmetry is a trail of footprints โ€” the two feet are mirror images of each other, but since they were walking when they made the footprints, they are never exactly next to each other.

So that means we can answer the question about wallpaper groups. It’s a rectangular lattice with only glide symmetries, no rotations or reflections. That’s called pg, and you can see other examples of it on wikipedia.

Here’s a single tile of it, from which we can construct the whole wallpaper:

One of the outlined rectangles from the image above

It has 43 triangles (mostly in rectangles divided into two triangles, but there’s one divided into three triangles on the bottom left), 24 plain rectangles, and 5 rectangles that have a diagonal line going partway across them.

Okay, so onto question three. What’s with those lines that don’t quite reach the other side? Here, I completed them, and approximately measured the angles using the arc tool in OmniGraffle (I use OmniGraffle for a lot of things that aren’t graphs. For instance, this quark explainer, and the icon of my next app.)

The same tile shown above, but with each partial diagonal lines continued to meet the other side of its rectangle, and the angles drawn in as 41ยฐ, 43ยฐ, 56.6ยฐ, 64ยฐ, and 40ยฐ.

There. Is that enlightening? No. Is that satisfying? Also, no. Two of the lines pretty much reach the other corner, if you squint, and three of them don’t. But perhaps knowing that you can give up on making any sense of this will give some relief.

Ah, but what about the arrangements of the three kinds of rectangle? Surely there’s something interesting about that. I haven’t found it, but maybe you could. Here’s a single tile, with a purple rectangle pattern for the plain rectangles, a pink zigzag pattern for rectangles divided into triangles, and a green pattern of short lines for rectangles with maddening partial lines in them. I’m not sure how useful the redundant coding is here, but it can’t hurt.

I’m not sure why I didn’t colour the three-triangle rectangle near the bottom left in a different colour from the two-triangle rectangles. I made these a while ago. [Next day edit: This bothered me too much to ignore. See below for a version with a different colour for that rectangle.]

I can imagine the letter P and a dog standing on its hind legs in pink, but I don’t think there’s any kind of hidden message here. Just to be sure, here’s the colourised version extended to show more of the wallpaper:

Well now perhaps there are a bunch of dogs walking past each other doing the can-can. Do you see any interesting geometry or other mathematics that I missed in any of these images?

Next-day edit: Here’s a version with the three-triangle rectangle in checkered orange. I accidentally used a different shade of pink, but the shade of pink had no mathematical value, so it’ll do:

And here’s a larger section of wallpaper using that version:

When I took these photos, I thought they might make a good talk at the MathsJam Annual Gathering. We ended up deciding not to go this year (though we’ll probably join virtually) so I won’t be giving that talk. I have also made a new app which could be the focus of a MathsJam talk. I have submitted it to the App Store, so I hope it will be out very soon.

On the subject of apps, I got a job offer, though I haven’t started work yet. That means I’ve released a new version of Seddit, my text-to-speech-focused Reddit reader, where the only update is that it no longer says I’m looking for work on the ‘Support Seddit’ tab of the settings.

, , , ,

1 Comment

Seddit 1.5 supports multilingual Reddit listening. Also, Joey sang my half-baked PSOLA song!


A while ago I added the possibility to configure Seddit (my text-to-speech-focused hands-free Reddit client for macOS and iOS) with multiple voices so that each user’s content could be read in a different voice. Of course, iOS and macOS come with voices that speak a huge variety of different languages, so you could theoretically select, say, a Japanese voice, a French voice, and three English voices, and download Reddit posts and comments in all of those languages. However, until now, Seddit would randomly assign a voice to each user, without regard for the language that user had written in, so if you did that, you could end up with English posts pronounced as if they were French, Japanese character names read out in English, and so on.

In the latest version, if you select voices that speak multiple languages in the Voices tab of the Settings screen, when Seddit encounters a post or comment by a user it hasn’t chosen a voice for yet, it will detect which of those languages the post or comment is probably in, and choose a voice that knows how to pronounce that language.

Of course, this isn’t perfect โ€” it still always uses the same voice for each user, so if a user sometimes posts in French, and sometimes in English, or if they write in multiple languages within a single post because it’s a language-learning subreddit, then some of that is going to be spoken using an inappropriate voice. Also, if someone only writes in English but the first comment that Seddit encounters of theirs is an image meme and the text ‘c’est la vie!’ Seddit might determine that the user speaks French, and then hilariously mispronounce the rest of their posts. Note, if there is not enough text in the user’s first post for Seddit to even guess the language, it will not definitively choose a voice for that user until it encounters another post by them. I have yet to find either of these situations in practice, even while looking for them, so I hope it’s a rare issue.

The Voices tab on the new Settings screen in Seddit for iOS, showing some US English voices and a Canadian French voice selected.

Nonetheless, all of these situations are better than Seddit just randomly picking a voice for each user, regardless of which language they happen to be writing in. You should try it out, especially if you want to listen to Reddit content in various languages!

I also redesigned the Settings screen on iOS and iPadOS so it’s fullscreen and has a close button in the top right, as per Apple’s human interface guidelines, instead of a ‘Done’ button taking up a lot of space at the bottom and making the tabs look weird.

Note, while writing this post, I tested the regular ‘Start Speaking’ menu command on macOS and the ‘Speak’ command on iOS and found that it will sometimes switch to appropriate voices if I select multilingual text, even if my System Speech Language est rรฉglรฉ sur ใˆใ„่ชžใ€‚ Okay, it doesn’t work well for the French/English parts of that sentence. Maybe it’s only good with switching between languages if I switch scripts, e.g. ื‘ึทึผืจึฐื•ึธื–ึธืŸ ัƒั‚ะบะพะฝะพั ใ‚ซใƒขใƒŽใƒใ‚ท. Yep, that works, although if I select any other text along with ฯ€ฮปฮฑฯ„ฯฯ€ฮฟฯ…ฯ‚, it’ll read it as ‘Greek small letter pi’ etc. I guess Greek letters are used too often in English for the speech engine to assume we actually switched to Greek. There were certainly plenty of Greek letters in the Princeton Companion to Mathematics.

Anyhow, I’m thinking I could improve Seddit further by giving each user a voice in each language you’ve selected voices for, and detecting the language for each post/comment, or for each sentence. Though macOS doesn’t do that unless you switch scriptsโ€ฆ when I tried adding ‘J’imagine qu’il choisit une nouvelle langue pour chaque phrase.’ as a separate sentence and selected it along with a few English sentences, it read the whole thing in a French voice.

On the subject of interesting text-to-speech behaviour, and interesting behaviour in general, remember my half-written Lola parody about Pitch Synchronous Overlap and Add? Well, the lovely Joey Marianer had an appointment in town a while ago, and sneakily recorded the song in a parking building as a surprise, because I’m usually home so there’s little chance to record things at home without my hearing. I was duly surprised and delighted. Even the disclaimer about the missing bridge sounds like it scans as a bridge! Now you can also be surprised, delighted, and probably confused as to why this half-baked song was considered worth singing.

, , , , , , , , , ,

Leave a comment

James Webb Space Telescope (now actually sung) and Seddit 1.4


In my last post I gave lyrics to a parody of an Arrogant Worms song about the James Webb Space Telescope, and an update to my text-to-speech focussed Reddit client Seddit. I also said two things that turned out to be false:

  • Joey and I will probably sing this parody, but it will take more mixing and video editing than our usual songs.
  • This completes all the major features I have planned the app โ€” I have other ideas for improvement, but I donโ€™t think theyโ€™re essential. Iโ€™m hoping that the next update will be simply to remove the text saying Iโ€™m looking for a job.

Well, the other night Joey asked if I wanted to sing the song, and I said, “Okay! I should change into a more space-related shirt first” and then Joey produced two James Webb Space Telescope T-shirts out of nowhere, having secretly ordered them previously. So we changed into the shirts, and then we sang it, directly into a camera together, with no warmup or practice, and Joey trimmed the ends and put the video on YouTube. I had thought we’d sing our separate parts, get them perfect, then mix them, and make a video with some relevant educational images. Instead, here’s an imperfect but pretty good recording already!

I know where I made a mistake, but I’m not going to hang a lampshade on it so you’ll notice.

As for Seddit, well, not only did I not get the job I was hoping for when I wrote that, I also decided to update the app to use the new Liquid Glass design language that came out with iOS and macOS 26. I found and fixed a few other issues along the way. Here are the changes in Seddit 1.4:

  • Features
    • Added support for liquid glass appearance in iOS/macOS 26
    • Moved playback controls to a liquid glass overlay so you can see more content around the edges
  • Bug fixes
    • Made sure compliments purchased on the Support Seddit screen are always shown in the same order
    • Made the Voices Settings screen on macOS show which voices are Enhanced or Premium (I also filed bug FB20362911 with Apple about this, because thereโ€™s some system behaviour thatโ€™s inconsistent between iOS and macOS)
    • Fixed an issue introduced in Seddit 1.2 whereby posts whose comments are not all read would be shown as read instead of partly read

You can get the latest version for Mac, iPhone, or iPad on the relevant App Store.

On the subject of songs and liquid glass, check out this song by James Dempsey about liquid glass:

Thanks to Seattle Xcoders, I was lucky enough to have seen the live debut of this, and another performance of it, which I recorded but don’t have permission to share yet.

I haven’t actually had any legibility issues with liquid glass though โ€” and if I did, I know I could always turn on Reduce Transparency.

, , , , , , , , , , , ,

Leave a comment

So I leave my bags behind (Galilee Song parody, now actually sung!) and another new version of Seddit


Hey look, Joey Marianer sang the parody song lyrics from my last post! Check there for the lyrics and the aviation incidents referenced.

There are some more song parody lyrics, but first, a word from my sponsor: me. Just like last time, I’ve released a new version of Seddit, my text-to-speech-focussed Reddit client for macOS and iOS. This has a feature I’ve wanted to add for a while โ€” the possibility to select multiple voices, and read each user’s posts and comments in a different one. The variety makes it easier to keep paying attention when listening for a long time, and having each user consistently use the same voice should make it easier to follow conversations.

I made some other changes in this version too. Here’s a full list of them:

Features

  • Added the possibility to have each userโ€™s posts and comments spoken in a different voice
  • Added settings for whether to read out the subreddit name, and date and time for each post.
  • Added the option to load no comments โ€” this was for Joey, who wanted to try listening to short story subreddits while obeying the “don’t read the comments” rule of the internet.

Bug fixes

  • Fixed a bug whereby turning off the โ€˜Say โ€œLinkโ€ instead of reading out URLsโ€™ setting would not work
  • Fixed a bug where comments that werenโ€™t loaded would be read as โ€œcomment by unknown userโ€ Comments that arenโ€™t loaded due to the comment depth settings are also no longer displayed.
  • Fixed a potential crash when opening the app if posts had been deleted on another device

On the subject of text-to-speech, nine or ten years ago I read a book and a bunch of papers on speech synthesis in order to write a term paper for my Web Development for Linguistics degree. The term paper was longer than the text of my thesis, because my thesis also included source code for a web site and a Mac app. Anyway, from this book I learnt about PSOLA (Pitch Synchronous Overlap and Add) which is used to change the pitch and duration of sounds for text-to-speech, as one might do to change prosody, or create a robot choir.

Newer voices don’t use PSOLA so much, as (to put it simply) they have more samples of actual speech in different situations, so they don’t need to modify samples for the sake of prosody. Note, this is ‘newer voices’ as of a decade or two ago; I don’t know whether the latest crop of ML-based voices do things the same way. Anyway, I assume this is why the newer macOS voices don’t support the TUNE format I used for my robot choir.

At the time, I wrote an utterly silly partial parody of Lola, by The Kinks, about PSOLA. I thought maybe I’d finish it or maybe even make it less silly[why?], but I never did, and now I don’t remember enough about how PSOLA works to fully understand what I originally wrote. So here is that draft. It really doesn’t scan, but I hope it doesn’t scan in amusing ways:

I was trying to synthesise some prosody,
but my source and filter were mixed up just like granola
G-R-A-N-O-L-A, granola.

So I found a new way to make it sound rad
Itโ€™s called pitch-synchronous overlap and add, that is PSOLA
P-S-O-L-A PSOLA. Pso-pso-pso-P-SOLA.

Well I didnโ€™t want to sound like a smallpox blight
So I really took care with my to get my epochs right
for PSOLA. Pso-pso-pso-P-SOLA.

If youโ€™re not dumb then youโ€™ll soon understand
How I speak like a woman then sound like a man
Itโ€™s P-SOLA. Pso-pso-pso-P-SOLA. Pso-pso-pso-P-SOLA.

[It doesn’t look like I wrote anything for the bridge (is that a bridge?) of the song, so just pretend it keeps going roughly like before]

It was used to make synthesized speech sound natural
But now thereโ€™s some super-sized features that fill that role-uh
R-O-L-E hyphen U-H role-uh

So thatโ€™s my guess if youโ€™re wondering why r-
ecent voices donโ€™t sing in my robot choir:
No PSOLA.

, , , , , , , , ,

1 Comment

Sailing off into the sunset toward America


As mentioned previously, I have an idea for a music video I’d like to make about my move to the US. But before I make that, I wanted to publish some of the video I took on the trip, in a fairly raw and unedited way, just to get it out there. I already published hours of 4K video from the ship leaving Hamburg, leaving Southampton, and arriving in New York City, recorded with my Sony ZV1 camera on a tripod.

Well, it was time to put together whatever random video I took with my iPhone. And I was just going to stick it all in a video with fades between clips, but there really wasn’t much going on in terms of sound โ€” it needed music. And of course if there was going to be music, I’d better edit the footage a bit more to fit in with the music. So I ended up making something of an impromptu music video. Probably the coolest part (other than the music) is the sunset I recorded from the front of the ship one evening.

The song is ‘America’ by K’s Choice, as covered by my friend Joseph Camann when I requested it on his Patreon. Joseph is a multifaceted and multitalented individual who is also known as Chromatic Verse (mostly for visual art) CamannWordsmith (mostly for writing) and Joseph and the Bear Hat (for song covers.) It is unclear which parts the bear hat played in this cover.

I initially thought that the song ‘America’ would work better for the road trip across America than the trip across the pond, so I spent some time trying to find something else for this oneโ€ฆ but come on, ‘America’ has a line about the sun rising and falling, and most of the video is a sunset. How could I not? Also there’s the double bonus of publicising both my friend Joseph and also one of my favourite bands, K’s Choice.

A day or so after we got to NYC, we visited MoMath, and I recently realised that while I’d put up video of Joey Marianer riding a square-wheeled tricycle there, I had forgotten to edit the other video I took of Joey at MoMath. Here’s Joey changing some benches from a triangle shape to a square and back, set to one of the free jingles that comes with Final Cut Pro:

That’s it for now. Stay tuned for a video of whatever I recorded on my phone during our ensuing road trip across the US, which I will inevitably spend more than the expected amount of effort on!

, , , , , , , ,

Leave a comment

Lifetiler for iOS and iPadOS


TL; DR: Lifetiler now works on iOS and iPadOS as well as macOS, and is available on the App Store for macOS 15 and iOS 17 and above.

In November, I released Lifetiler for macOS, an app I wrote to keep track of which days Joey and I were together in-person โ€” like the contribution graph on GitHub, but with more information. It’s a SwiftUI multiplatform app, which means it could always, in theory, run on iPhone and iPad, but during the initial development I mostly only tested it on macOS, so I didn’t want to release the iOS version until I’d tested it more to make sure it adapted well to the iPhone and iPad worlds.

After releasing the macOS version, I got distracted by another app I wanted to write (so many apps, so little time!) Recently it occurred to me that if I should happen to get a job at a company that has rules about what its employees can do on the App Store, I should try to publish my apps before any such rules apply to me. And I knew it would be quicker to make an iOS version of Lifetiler than to finish the other app, so that’s what I should do first. So I did! Here’s how it looks on iPhone. You can see more screenshots of Lifetiler on macOS, iOS, and iPadOS on the relevant App Stores and on the Spondee Software page for Lifetiler.

  • Screenshot showing a list of date ranges, each with an emoji, and an edit panel with options to change the dates or emoji of a selected date range
  • Screenshot showing a grid mostly of purple squares, but with some ship, train, and country flag emoji.
  • Screenshot of 'Export as Image' sheet, with settings for Tiles per Row, Tiles per Column, Background Colour, Emoji Background Colour, and Image width and height
  • Screenshot showing a grid mostly of black squares, with the occasional run of five to seven blood drop emoji

It turned out quite a few things needed to change for the app to work well on iOS, so it wasn’t as quick as I’d hoped. Also, my 2017 iPad Pro only runs iOS 17, not 18, so I had to make sure it would work on the slightly older OS.

Along the way I added the ability to save the background colours used in an image export, and made some improvements to the VoiceOver and Dark Mode interfaces, as well as the performance (I have James Dempsey’s Instruments course to thank for that, although my slowish iPad also helped.) These changes also affect the macOS version, so I’ve released version 1.1 for macOS as well. The iOS version is also 1.1, for consistency, although it’s the first version of it I’ve released. Hey, if all Apple’s OSes can jump to v26 simultaneously, I may as well.

But app updates are nothing without life updates, so here’s an updated Lifetiler chart of Joey’s and my relationship, as created by Lifetiler on my iPhone 12 Pro. Check out all those ๐Ÿก emoji at the end where we live together! I suspect some date ranges were slightly altered as I was testing the app on various platforms, but it’s close enough. Currently the only divisors of the number of days we’ve known each other are 17 and 179, so I went for a square-ish image with some empty space at the end. It is possible to change the start and end dates in the Document Settings to avoid empty space, but I wanted this one to have the actual number of days we’ve known each other.

In case you’re wondering, we’ve been together in-person for 533 of the 3043 days we’ve known each other, in 17 contiguous stretches โ€” so since we didn’t start dating until the second time we met, this is technically our 16th date. This is getting serious! Anyway, go check out the app! You get both the macOS and iOS versions in the same purchase.

Oh, one more thing: I’ve also made some small updates to my iOS-only apps NastyWriter and NiceWriter, just to update their contextual menus to be more in line with the current iOS.

, , , , , , ,

1 Comment

Captain Quark and Juratron Park, JoCo Cruise and other news


Last year on JoCo Cruise, Aimee Mann sang a song called The Ballad of Captain Quark โ€” the song title having been suggested by ChatGPT as a typical Jonathan Coulton song title:

This year, one of the theme days on the cruise was Captain Day, so obviously I had to dress as Captain Quark. I got a custom captain’s hat and some ‘Quark’s Bar‘ pyjama pants, and wore them with a ‘one quark, two quark, red quark, blue quark’ T-shirt I got in 2003 from online funny T-shirt pioneer Gary Freed, and a CMS hoodie I got from CERN last year.

Of course, this outfit on its own would make very little sense to most people, so I made some postcard-sized cards with the lyrics (as far as I can make them out) of the song on them. Here’s a pdf of that.

Of course, the song on its own would make very little sense to most people, so I wrote and illustrated an explanation of quarks, with particular reference to things mentioned in the song, for the other side of the cards. Here’s a pdf of that. This is my first real foray into science communication; how did I do?

I made it in OmniGraffle, because that seems to be my default these days. I didn’t have room to explain as much about colour confinement as I would have liked, and colour confinement is pretty neat (as is this animation of it.) Since Captain Day happened to be on the same day as the Open Mic, Joey Marianer sang part of The Ballad of Captain Quark, and then I followed up with what would be on the sequel postcard โ€”ย my poem Juratron Park (which is available on my album!), and an explanation of that:

I recorded the rest of the open mic tooโ€ฆ if you performed there, let me know if it’s okay to publish video of you, and what links or other information you want me to put in the video description.

On the subject of video, I uploaded my video from the Queen Mary 2 leaving Southampton, which I mentioned in my last post, and I’m now busy watching, writing descriptions for, and uploading my videos from the 2025 JoCo Cruise.

On the subject of JoCo Cruise, the 2026 cruise is already sold out, with a long waitlist, but there is currently a possibility to add a second cruise the week immediately after that one, from March 28 to April 4 2026, leaving from San Diego. If you would like to be on that, and you haven’t already booked for the existing JoCo Cruise 2026, you can make a fully-refundable deposit. Deposits may be placed until Monday, April 7th at 8 pm EDT, and my understanding is the number of deposits they get by then will determine whether this second cruise becomes a reality. If it does, people already booked on the original cruise will have the opportunity to switch to the second one or book both.

On the 2024 cruise, Joey and I met someone wearing an ‘๐ŸŒˆI’ve got anxietyโœจ’ T-shirt, and Joey pretty much immediately wrote a barbershop tag about it (which we then sang two parts of to the shirt-wearer.) Joey has since found a workable way to record all the parts and put them together, so here it is, along with the shirt design:

Please feel free to replace the anxious voices in your head with this. Just sing at them when they try to tell you bad things. Earworms vs. Brainweasels: Fight!

Now for some updates on things mentioned in my last post. Joey and I have now finished watching Star Trek: Deep Space Nine, watched this chat between Wil Wheaton and Cirroc Lofton, and started watching Star Trek: Voyager, interspersed with episode recaps from The Delta Flyers podcast.

I’m still looking for a job, and working on the app I mentioned in my last post. Currently I’m learning about CloudKit, concurrency in SwiftData, and strict concurrency checking in Swift 6. I’ll be attending Deep Dish Swift in less than a month to learn about all sorts of other things.

That’s all from me; please enjoy CERN’s April Fools joke for this year.

, , , , , , , , ,

1 Comment

Because ‘Star Trek: The Next Generation’ isn’t going to rewatch itself


Back in 2014 I recorded Hank Green talking about ‘picking the right addiction’ after a performance of his song ‘The Man Who Throws The Tetris Piece’. He said (with a few bits edited out so it makes more sense in text):

I’ve spent a fair amount of time addicted to Tetris, growing up. And now I spend about the same amount of time addicted to Flappy Bird โ€” I’m not saying I’ve grown up at all. I think that there’s no way to escape addiction, in some way. Everybody’s going to be addicted to something, at some point, or all the time โ€” we always have an addiction, whether it’s playing music, or creating, or heroin, or Flappy Bird, we have to have these things that we repeatedly go to in order to be happy, productive people. Because you can’t be on all the time; you have to have something your brain is ready to go to. And I feel like a lot of the responsibility of being a functional adult is picking the right addiction. Being addicted to creating is fantastic โ€” like if you have that moment where otherwise you just like, sort of fall to Flappy Bird, you’re like, “Well I’m not doing anything โ†’ Flappy Bird” “I’m not doing anything โ†’ Watch TV”. If you can occasionally go “I’m not doing anything โ†’ Make something”, that’s wonderful. And that’s the thing that I would encourage. And of course, not 100% of the time, because Star Trek: The Next Generation isn’t going to rewatch itself.

Soon after, I wrote song lyrics inspired by this, to the same tune as The Man Who Throws the Tetris Piece.

Well, I do try to fall to creating thingsโ€ฆ before I moved in with Joey I was often either writing code or poetry or editing videos during my spare time. Now that I’m here, I do a lot of that (interspersed with applying for jobs, and unpacking my 37 boxes of stuff, which arrived about three weeks ago) during the work day, and we do things together during our spare time (I think Joey is a good addiction to pick though.) That’s usually either listening to podcasts, watching TV, or doing cryptic crosswords or other puzzles. So I’m watching a lot more TV than I used to, and yet, still had time to update two apps and release a new one. ๐Ÿค” Maybe the key to productivity is not having a job (but I do plan to contribute financially to this household eventually. I know you’re reading this, Joey!)

Anyway, after seeing the great Luke Ski premiere his song about Star Trek: Lower Decks at FuMPFest, we started watching Lower Decks together. We got to about episode 9 before we realised that I just didn’t remember enough Star Trek to get enough of the jokes. When I was a kid, if I happened to turn the TV on and see Star Trek (usually The Original Series, but sometimes The Next Generation) was on, I’d watch it, but I don’t ever remember knowing when it would be on and making a point to watch it. I’m not sure I had that much control over the TV. So, I watched some of Star Trek: The Next Generation, at least 30 years ago, but the only characters I really remembered were Data, Geordi La Forge, and Jean-Luc Picard.

I’ve been going on JoCo Cruise since it started in 2011, and Wil Wheaton has been on most of them, but I had no memory of his character Wesley Crusher. I read his book of episode recaps, Memories of the Future, because it was a freebie with the cruise, but I didn’t remember the episodes, or many of the characters in them. A year or so after the cruise started, I spotted a dress in a regular clothing store in Geneva that seemed vaguely Star-Trek-esque, googled a bit to confirm it, bought an official combadge prop to put on it and some boots to wear with it, and wore it on the cruise and at a few other events. I certainly felt like Star Trek was a familiar part of my life, but didn’t remember many specifics about it.

Soโ€ฆ in mid-October, Joey and I decided to (re?)watch Star Trek: The Next Generation, and read Wil’s recap of each episode after we watched it. It was really fun, and the only things that seemed familiar were parts I’d either read about in Wil’s book, or knew from songs, memes, YouTube clips, and general cultural osmosis. I had a few vague things in my head that I thought I remembered from watching it before, but never actually found them in the show.

That is, until the final double episode, ‘All Good Thingsโ€ฆ’! I recognised that one from the very first scene, and remembered enough to predict roughly what was going to happen. I suspect some specific friends showed it to me when I visited them in either France or Amsterdam as an adult. But I vaguely remember not knowing who some of the characters were when I watched it previously.

During the two months or so when Star Trek: The Next Generation was our go-to, Joey would often sing Blake Hodgett’s Star Trek: The Next Generation Episode Guide and also a song in Hebrew written by a comedy group called Hipopotam and set to the TNG theme tune. I mentioned these on social media and a friend who was learning Hebrew asked about the latter song. Since it doesn’t otherwise exist on the internet, Joey sang it and figured out some MIDI instrumentation, and I made a bilingual lyric video for it, which is below:

So you see, rewatching Star Trek: The Next Generation can also result in making something! I had to restart Final Cut Pro several times while making this, because sometimes it would seem to get confused by all the titles (some parts have six separate title elements) and not let me edit or preview them properly.

I also made another small thing. In the episode “Journey’s End”, Wesley Crusher (who by this point has the voice I recognise as Wil Wheaton’s!) said “Maybe I am sick of following rules and regulations! Maybe I’m sick of living up to everyone else’s expectations! Did you ever think of that?!” and I thought this had some good rhyme and rhythm to it, so here’s a poem I made from it:

Maybe I am sick of following rules and regulations!
Maybe I am sick of living up to expectations!
Maybe itโ€™s not starships where Iโ€™ll fly until I splat.
Maybe other planes, though, did you ever think of that?!

I won’t explain the last line, because it’s a spoiler (that I already knew about from Wil’s book.)

Some things that I did or noticed while watching Star Trek: The Next Generation for what seemed to be the first time:

  • I’d say, ‘Hey, I know that guy!’ whenever I saw Wil Wheaton in the credits. I don’t know him, really, but we’ve interacted a few times on the cruise, I’ve read or seen him read things he’s written, and I’ve listened to his podcast and some books he’s narrated. When we started watching the show, I knew him better than I knew his character.
  • The lines on the top of the front of the uniforms in the first season make it look like they’re all wearing capes.
  • I understand what Wil meant about those sweaters. Wow.
  • My dress, black with red along the top and down one side, is closest to either a Starfleet cadet uniform or a Deep Space Nine uniform. I haven’t seen Deep Space Nine (aside from maybe the pilot when it was on TV) but there was a crossover episode during The Next Generation. This means I do have the correct combadge for it, contrary to what somebody told me once.
  • Spot (Data’s cat) changed sex at least once, probably twice but I wasn’t as sure about it the first time.
  • If I ever do linguistic field work, I would want to do it in a cool jacket like the one Picard started wearing in “Darmok”.
  • Brent Spiner (who plays Data) sometimes plays four or five different characters (two with the same costume and makeup) in one episode and they barely even look alike. Meanwhile I can’t tell the difference between one brown-haired clean-shaven white male Hollywood actor (probably named Chris) and another. I can’t usually tell which parts of a TV performance come from the actors, but I’m fairly sure Mr. Spiner is good at acting.

In other news:

  • I edited and uploaded my 1.5 hours of 4K video from the Queen Mary 2 as it did some fancy manoeuvring and then sailed out of Hamburg. I still have several other videos to make, as listed in a previous post.
  • According to my YouTube year in review, in 2024 I uploaded 258 videos, and got 161.1K views, 125 new subscribers, 1005 likes, 131 comments, and 1036 shares. Compare this with 2023, when I uploaded 261 videos, got 216.6k views, 156 new subscribers, 2022 likes, 135 comments, and 1600 shares โ€” quite similar in most stats, but twice as many comments somehow? What this mostly means is, I sure upload a lot, and that one video sure gets a lot of attention. The new videos are mostly concert footage, so don’t take as much effort as it sounds, though I do spend a fair bit of my free time on them for a few months after the JoCo Cruise.
  • I’ve joined Bluesky, as that seems to be where a lot of the fun microblogging is going on these days. I should probably change it to use this domain but I haven’t got around to it yet. Posts from this blog will be automatically shared there, on mathstodon, and I think (I’m not sure, as I set it up after my last post) my facebook fan page. I’m not sure if I’ll keep posting them on X, as it can’t be done automatically and it’s getting to be a bit of a pain to keep up with โ€” I get too many notifications from people I’ve never followed, no matter how many times I attempt to turn that off.
  • On December 24th, Joey and I would have been together in person for a total of 365 days! I might post on the day with an updated Lifetiler graphic, but given how long it’s taken me to write all this, maybe I won’t.
  • I should probably release an iOS version of Lifetiler, but instead I dove headlong into an app that a friend wanted, and then, just when I had a reasonable proof of concept, dove tailshort out of it again to do Advent of Code and LeetCode exercises.

I’ve heard people complain that job interviews are all LeetCode these days and everyone has memorised LeetCode, but I had not encountered that and didn’t really know what it was until now. But I had a few initial job interviews, and was explicitly told that LeetCode would be a good way to prepare for the next round, so I tried it and actually found it quite fun. I’ve mentioned before that I prefer coding in an interview rather than making yet another JSON-to-TableView app as a take-home exercise.

This is also my first time doing Advent of Code. I planned to do it in Python because it’s probably about time I learnt that language, but then I did the first day’s puzzles in a spreadsheet and the next four days’ in Swift. Maybe I’ll switch to Python at some point, but it’ll be more difficult as I progress through the harder puzzles.

LeetCode and Advent of Code have different kinds of challenge that are interesting for different reasons. LeetCode stays at roughly the same level of difficulty (there are I think three different levels, but that’s about it), cares about how efficiently your code runs, and will tell you the right output when your code gets it wrong. And once you get it right, you can read about ways to do it better. On the other hand, Advent of Code puzzles get gradually harder each day, don’t care about efficiency (you run the code on your own machine and just enter an answer) but also won’t tell you the answer, so you just have to keep reasoning about your code until you figure out what could be wrong with it. They also have a backstory as to why you’re solving a given problem, rather than just an abstract requirement.

Do you see why I don’t blog very often? It’s because every time I do, the post ends up being very long and taking most of my day, which is because I don’t blog very often. I think it’s time to end this one!

, , , , , , , , , ,

1 Comment

Lifetiler for macOS: it’s like a temperature quilt for your life


TL; DR: I wrote a macOS app called Lifetiler that can be used to chart your life with an emoji or colour for each day, and you can download it here.

If you’ve been following me for a while, you know I was in a long-distance relationship with Joey Marianer for several years. We met on JoCo Cruise, communicated a lot on FaceTime, and visited each other a few times a year when possible. Eventually we got married, and two and a half years later we moved in together.

On 7 August 2022, I had several hours to spare in an airport business lounge after Joey had left, so I started writing an app called Lifetiler to chart how many days we’d been together in-person. As I write this on 12 November 2024, we’ve been together in-person for 323 days of the 2811 days we’ve known each other, in 15 contiguous stretches. That makes this our 14th date, since we didn’t start dating until the second time we met. We’re on track to have been together in-person for 365 days on December 24.

Screenshot of a window showing a document called 'Joey Lifetile'. On the left is a list of date ranges next to emoji, with the heading '323 of 2811 days, in 15 contiguous stretches'. On the right is a grid of symbols, mostly grey squares but with some stretches of US, Austrian, and Canary Island flags. On the corner of one of the Austrian flags is a ๐Ÿ’ emoji.

But I digress. I don’t need to keep track in the app any more, because we live together! But I’ve continued working on the app to make it usable for people who aren’t me, and now it’s on the App Store. For now it’s $2.99 in the US store, because that’s <3, which makes a heart. โค๏ธ Whether the price stays that low depends on how soon I get a day job.

In the app you can date ranges with colors or emoji indicating what happened on those days. You can then export a chart as an image or a series of emoji. You can choose how many days to show per row or column, and the app will suggest numbers that will give you a full rectangle without gaps at the end. Here is an image chart of Joey’s and my first 256 days together in-person:

a 49x56 grid, with some pale pink squares with mostly country flag or cruise ship emoji in them, separated by plain grey squares. The last few squares have the ๐Ÿก emoji.

Here I’ve chosen a white background for the image overall, and a pale pink background around each emoji. Dates where we weren’t together (i.e. dates which aren’t included in any date ranges) are dark grey squares.

In an text (emoji) export, colours will be converted to the closest square emoji. I’m not going to paste the emoji version of the Joey document inline because it’s quite large, but here it is as a file:

It’s also possible to show the same document in a ‘simplified’ mode, with the same colour or emoji for all days that are within date ranges โ€” so in our case, I used a heart for every day we were together. In this chart I used light grey background for the whole thing, no background for individual emoji, and blue squares for the days we weren’t together:

a 49x56 grid, mostly of dark blue squares, but with some runs of pink heart emoji.

You could use Lifetiler to chart long-distance relationships, where youโ€™ve traveled, daily progress towards goals, the timeline of a novel youโ€™re writing, a roster, your moods, symptoms, or anything you can reduce to an emoji or colour per day. It’s a document-based app, so you can have separate documents for whatever you want to chart. I’d be quite interested in knowing what you use it for! If you’re unsure what the most important thing to show on a given day is, you can have overlapping date ranges, so there’d be more than one emoji or colour on a given day, then choose which one you want shown in an emoji or image export.

I developed Lifetiler as a multi-platform SwiftUI app, which means I can easily make an iOS version which will open the same documents. That’s one of the next things on my to-do list, but since I’ve personally been using the app mainly on macOS, I would like to do substantial testing on iOS before I release it.

Here’s that App Store link again so you don’t have to go looking for it now that you know what the app does. Enjoy!

, , , , , , ,

2 Comments

This is when the [poster] wall comes down


Here’s a video in which I take down my posters in my apartment in Vienna, in order to pack them up to move to the USA. It includes improvised song parodies and silly jokes from Joey Marianer and myself.

I took this video partly to have a record of my poster wall (though I also have a photo of it which I sometimes use as a Zoom background) and partly because if I get permission to do so, I’ll make a music video of Sam Bettens’ song ‘Go’ documenting the entire move, and a sped-up version of this video will be used for the lyric ‘this is when the wall comes down’. For now I’ve just used that one clip of the song, since I suppose it’s short enough to be fair use. Other songs referenced in the video are:

My posters are still in a crate on a truck somewhere between Montrรฉal and here, so my home office currently only has a map of the route we took on the Queen Mary 2, and a Dogcow print, which I had wanted for a while but wasn’t prepared to pay the shipping and import fees for while I was living in Austria.

Aside from the music video, I have several other videos about moving here that I still need to edit, including:

So watch this space! (I’m adding links as I upload the videos mentioned) Or subscribe to my YouTube channel and watch that space instead.

I’ll also put more photos from the trip on Flickr, so that’s another space you can watch. For now I’ve only put up panoramas from our pre-move trip to Fรผgen, our view of New York from the Queen Mary 2, and our road trip from NYC to Seattle.

In other news, Joey and I once again went to the MathsJam Annual Gathering in the UK. We didn’t give any talks, participate in the bake-off, enter a competition in the competition competition, or write any new parody songs for the MathsJam Jam this time. I won one of the competition competition competitions by writing the joke ‘What do you get if a Platonic solid loses a duel with its dual’ for the pre-determined punchline ‘the phantom of the solid’, but even that was just based on a poem I wrote (and performed) previously. We did, however, participate in Taskmathster as one of the Saturday evening activities, then two days later in London, we did the Taskmaster Live Experience. Both were a lot of fun!

Also, I have just released a new Mac app! It’s the one I made to create charts of days Joey and I have spent together while living apart (as seen in my previous post about moving to the USA). I’ll post more about it later today, but I think it needs its own post.

, , , , , , , ,

2 Comments