Markov Messages

I was talking to a friend from college about automatically generating flavortext and death messages for a game, to keep it unique. We were talking through markov chains (here's a great resource to read up on them), and he mentioned the possibility of using your iMessage chat database from your phone.

Read More

Reading WSJ Articles

The Wall Street Journal has a bunch of super insightful articles. However, nearly all of the articles are behind a paywall. You used to be able to just google the URL, and click the top link but that’s since stopped working. This worked based on the custom referer: Google was an approved referer to bypass the paywall. There are, however, other approved referers even though Google is no longer. I know the 'Drudge Report' works, though there may be others. The easiest way I’ve found to automatically do this is to add the ‘Referer Control’ extension for Chrome, or similar solutions for other browsers.

Read More

Automatically Changing Wallpaper

A few days ago, I stumbled upon some Firewatch wallpapers for the different times of day, and wanted to have the wallpaper on my mac automatically switch through them. However, all of the solutions I found for this were overly complex, or just plain didn't work on macOS Sierra. So, here's my solution that doesn't require installing anything and is pretty easy to set up.

Read More

OnceMore

OnceMore is another Cydia tweak that I developed, and probably the one that I use and benefit from the most. It's incredibly simple: it just adds a 'Restart' button when a timer goes off. While this is a pretty minor quality of life improvement, I do a ton of things that I try and do in a set time. Whether it be workout reps, a constrained nap, or a timer for doing laundry, there are countless times when I wish I could just easily click a button and the timer would reset without having to go in, turn off the current one, and set up a new one. Additionally, if the time isn't a set minute, I would have to retrigger it with Siri.

Read More

AlphabetSources

Every so often I go through the [Request] posts on /r/jailbreak over on Reddit to see if there are any that either are interesting, or could be easily done as a minor quality of life tweak. 'AlphabetSources' falls under the second one. Someone made a post asking for an alphabetical view to the repo sources in Cydia.

Read More

Classy

I have a love/hate relationship with Dartmouth. While I love the school, most of the tech infrastructure is horribly outdated, and mainly serves as something to be worked around, rather than a useful tool. Finding classes is just like this. You can search by department, and by time period, though you'll have to continuously go back and start a new search from scratch. The results are also poorly formatted, and miss out on providing valuable information, like median, a class description, and prereqs (all things you'd have to search separately for).

Read More

SurfShield

In September, me and a few friends entered HackDartmouth III, a Dartmouth-based hackathon. I'd signed up for the one the year before, but me and my roommate slept through it, so this was the first one that I'd be doing at Dartmouth (I did one junior year of high school). We were undecided as to which project to pursue: a game similar to Sardines, a project that I worked on previously (that you can read about here), or something that more closely suited the APIs that were offered by sponsors, and the possible prizes associated with them.

Read More

Class-Dumping with Cycript

I keep forgetting how to do this, so I thought that I would just write it down somewhere. First, you'll need the classdump-dyld tweak package, which you can get from Cydia on the BigBoss repo (it's by Elias Limneos, who hosts the only reason I do tweak dev), and you'll also need cycript. Then, you'll need the application you want to dump running. In this case, I'm going to be doing it for Spotify.

Read More

Victor - Talking Back

I got it into my head that I wanted to be able to programmatically make my phone speak whatever I wanted it to. Effectively Siri, but unprompted, and without care for silent, or low volume. On a normal phone, this would be impossible. But on a jailbroken phone, there was probably a way to do it. I first started up by making an Activator event that could be passed a string, and would say it. It did this using the AVSpeechSynthesizer class, and using the com.apple.ttsbundle.Samantha-premium voice (which is Siri's default voice). I wanted to be able to use the voice that I normally use for Siri/Victor, which is a British man, but while it seemed to be in the system, and it was clearly being used for actual Siri, I couldn't figure out a way to trigger it through AVSpeechSynthesizer (the voice's name is Arthur).

Read More

Victor - Echo Dot

For Christmas, in addition to the WeMo switch I also got the Amazon Echo Dot. It's a great device, but it was a little bit complicated to work into my AI setup. Ideally, I would change it's wake word to 'Victor', and be able to add in custom actions, like 'Victor, play [movie] on Netflix'. I quickly learned, however, that this is impossible. So it was time to hack together a solution. I changed the wake word to 'Echo' to avoid having another AI name (Alexa) introduced into the house. Then, I set up a custom skill through Amazon who was triggered by 'Victor'. Commands through Echo to Victor would be handled by a custom Lambda function through AWS, and then pushed into the same 'tasks' pipeline as command sent through Siri from my phone. Instead, it would be triggered like 'Echo, tell Victor to play [movie] on Netflix'.

Read More