Continuing my proud tradition of completely forgetting to write about anything I've done on here until the end of the year, here we are once again at the end of 2022. Looking back, I'm actually impressed by how I actually did do a few things this year (I understand these are low standards). It's just that none of them actually made it onto this site yet, so I guess I'll just round them up here.
First, I made a Jeopardy game. It was meant to be played with my friends; you enter clues and responses into a csv template and then designate a host. It works pretty well until I actually got people to play it. Audio doesn't work on iOS because Apple doesn't support having more than one audio stream in their browser, and for some reason if the host is on iOS, Final Jeopardy seems to break with high consistency. I have no idea why and without my own iPhone, I can't do any serious testing. That's probably why I've been dragging my feet on posting the link into the navigation bar. Still, the game is here for reference. Perhaps I'll rewrite part of it in some other tech stack (Svelte?) in the future to see if that makes it more resilient.
On the topic of future plans, I've been telling myself that at some point, I'm going to write a standardized library for the multiplayer games I put up on my site. The number of times I've opened up the code on the Node server that powers the backend of these games and copied / pasted the same chunk just to start another game has led me to believe that it's time to do some proper software engineering on this process. I'll see if I get some time in the next few days.
Another thing I made this year was another website, Coaster Seat Guru, which is basically just Seat Guru but for roller coasters. This came from an idea someone posted on reddit, which I'd been mulling for a while anyways, so I just decided to do it. The site is written in React using Next.js, and is entirely open source here. I'm running it off Azure using the free monthly credits I get from work. It doesn't have a ton of users but I thought it was a fun exercise to create. I'd never used Azure Functions and Cosmos outside of work before so that was fun.
The final major accomplishment was that we finally kicked sweetspace out the door, at least on Android. The iOS build got rejected, and we suspect it's because Apple's internal systems must be blocking the UDP punchthrough we were using. I have managed to write up a websocket based fallback, but we're having some trouble getting it to work with the advertising library on iOS, so we haven't resubmitted yet. Still, the game is officially released on Android, after way too many years (we started this spring 2020!). I'm just happy to be able to say that we finished it, or as finished as it can be until we finally release iOS as well.
So that was the year. Fairly productive, despite the fact that nothing I did was reflected on this site. Hopefully next year some of these things will show up here - Jeopardy is low hanging fruit, and I guess I should add Coaster Seat Guru to the Projects page as well. After that, frankly, I have no idea.
Happy new year.
Posted By: Michael Xing