Dog-a-Day Backend

When I first created Dog-a-Day, it ran off of a PHP script that had the images for the days in an array. I then decided to move it into a MySQL database, where I would insert URLs and dates. That quickly became too much of a hassle, and I created a simple form that would take in a URL, and automatically calculate the next date, and insert it into the database. I realized that duplicates might be an issue if I wasn't paying close enough attention, so I implemented perceptual hashing, to try and find similar images. But this was all built on top of previous functionality, and was bad enough to consistently make it harder and harder to add images. So I decided it was time to rebuild it.

Read More

ShiftCycle Update

I posted about ShiftCycle before, so read quickly about it if you missed that blog post. One of the ShiftCycle users messaged me a while ago asking to be able to reorganize the order of changes, which required a rewrite of how the tweak stored permissions.

Read More

Facebook Deep Linking Options

For some reason, the deep-linking URLs aren't publicized anywhere by Facebook. In case you're looking for them, or in any other app, here's the process to follow. First figure out what the protocol is (for Facebook it's fb://, for Twitter it's twitter://, etc.). Then, download a cracked version of the app. You can either find this online, or decrypt it yourself using Clutch or a similar thing on a jailbroken iPhone.

Read More

Dart Dine

Dart Dine was the culmination project for CS89, Human Computer Interaction. Our goal was to revamp the Dartmouth meal site, which is located at http://nutrition.dartmouth.edu:8088. Our goal was to make a mobile app that would solve all of the UX/UI problems that the current site had, especially when accessing it on mobile, and also combine all dining information into a useful format.

Read More

Sudoku Solver: Online

A while ago I wrote a Sudoku solver in Python that could programmatically step through the solution, solve the whole thing, or show what options were available for each location. It ended up being a good distraction while I was on a plane with no internet. However, I was on yet another long plane ride and decided to see what I could do to improve on it.

Read More

Colorize

A while ago I was designing a website, and wanted a good color blue. However, I'm incredibly indecisive when it comes to choosing color palettes. I envisioned some site that would allow me to type in 'blue', and it would give me the ideal blue color. This idea was fleshed out into Colorize. It takes in a search criteria, and then averages the colors returned in the first page of Google Image results to return a single hex color.

Read More

GamePlan

For my CS52 final project, our group worked on a web application called "GamePlan". It aims to solve the problem of connecting disparate groups of friends. You can create/join any group that you want (for example, work colleagues, a group of your friends, friends from high school, etc.), and then you can create posts to as many groups as you want. Each member will see the posts that they belong to, and if it's something that they're interested in, they can join the group to be placed into a chat with the other people who have joined.

Read More

GroupmeAnalysis

A while ago, I wanted to look at some statistics for one of the GroupMe's that I was in. I looked around, and found GroupMe had an open REST API. I wrote a quick script to scrape all the data using my account, and I compiled it into some basic information: who had the most comments, who had the most likes, etc.

Read More

Movie Display

I store a lot of movies on one of my external hard drives, from DVDs in my home that I've ripped for use while at college. However, it can be hard to visualize all of the movies and find the one I want. I approached this problem a while ago, by writing a Python script that built a static index.html file after running through all of the folders in the Movies directory. However, this was written when I had a Windows laptop, and didn't work on Mac. Additionally, it was built using freecovers.net's API for movie cover art, which had gone down a while ago and was no longer sufficient.

Read More