Renaming Desktops on Mac

I've had a task since February of 2017 in Asana to see if I could figure out how to rename desktops. Desktops are what appear when you press "F3" at the top, which have the default names "Desktop 1", "Desktop 2", etc. I knew it was possible because there was an app called "TotalSpaces" that does this (among many other things). However, I wasn't a huge fan of how it accomplished it, and it also costs $20. I knew that I would have to go the SIMBL route (just like for my modifications Messages with Message Indicator), but my attempts to find the right class to hook into repetitively failed. Luckily, I finally stumbled onto a pretty convoluted method of doing it, and built it in a day or so!

Read More

Catan Map Generator

I've played a fair amount of Settlers of Catan in my day, and I find that a lot of the skill in the game comes from the initial placements. Almost two years ago, I built a rough setup that randomized tiles and numbers. My plan was to screenshot the boards, and make posts on Reddit to discuss the best positions to start a discussion and improve my skills. Then, I made a post on Reddit.

Read More

Minor Anchor Tweak - Scrolling Fix

For some reason, my version of Anchor completely bugs out when you start increasing the size of the text input beyond a certain point. This was making it really hard to write longer articles, so I tracked down the fix.

Read More

Guessing Harry Potter

I was working on a project in extracting typing from hand movement in 3D space, and needed an API for generating sentences. I found a few ones online, but most of them weren't high enough quality sentences, or weren't free. So I decided to make my own, sourcing it from random book files. Then, as a proof of concept, I figured I'd make a short game out of it. The game that I settled on pulls a random quote from one of the 7 Harry Potter books, and you have to decide which book it belongs to.

Read More

The Mathematics Behind "Ride the Bus"

When I got to college a friend introduced me to a drinking game called "Ride the Bus." The rules for the full game are here, but I was interested in the final section. For that section, there are four questions. For the first card, is it red or black? For the second card, is it higher or lower than the first card? For the third card, is it in between (inclusive) or outside of the first two cards? And for the fourth card, what suit is it? You continue pulling cards until you get all four in a row right. If you get any one wrong you drink, and start over.

Read More

Cleaning out Google Groups

Google Groups are one of the products that has languished in 2014 in terms of its feature set and visual design. This means that many useful abilities like mass-deleting topics and exporting Google Groups aren't implemented. For exportation, some people have come up with clever workarounds by crawling the website. In the past I've used gggd, a fantastic Python command-line script to download full groups that I highly recommend. However, I couldn't find anything to mass delete topics...so I made one.

Read More

TimerCL - A command line tool for timers on iOS

As many of my posts on this blog reference, my phone is jailbroken. Activator, a popular tweak allows you to link activating events (such as unlocking your phone, entering a wifi network, or pressing a sequence of buttons) to various listeners (such as setting the brightness, adjusting the volume, sending a text, or triggering Siri). However, I couldn't figure out a way of silently creating a timer. So I created TimerCL.

Read More

Life at Dartmouth - Data Analysis

I realize that this blog isn't the standard one, where someone would write about how they were feeling, or reblog pictures of cute dogs (that's what I have Instagram for!). So despite the fact that this post is nearly entirely data driven and still relied on CS, it's slightly out of the norm in that it's a look at how I interact with the Dartmouth campus.

Read More