A while ago I made GroupMe Analysis, which is a bot that you can add to your group, and then see interesting facts about it, including number of comments, likes, and a person-by-person breakdown. However, I couldn't find any tool to download an entire GroupMe that wasn't just making a CSV file or something boring like that. So I wrote a Python file that will take in an access token from GroupMe and download an entire conversation, attachments and all, for permanent offline viewing.
Read More
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
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
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
Back about a year ago, I made a blog post about DartDine, my final project for my Human-Computer Interaction class. It was an idea to remake the Dartmouth nutrition website which at the time (and I think still does) have an absolutely atrocious mobile interface. As part of it, I wanted to properly connect it to the API behind the site. This is that API.
Read More
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
I just released my most recent tweak, Mercury, which you can check out on my Cydia repo or just look at the source on GitHub. It's an iOS version of Message Indicator for macOS that I released back in May. I've been sitting on it for over a year, and finally carved out a weekend to flesh it out a bit for release.
Read More
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
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
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