Victor - Belkin WeMo Switches

For Christmas, one of the gifts that I got was a Belkin WeMo Switch. It was only $30 on sale, and while it had middling reviews (like many of the WiFi-switches), it could be controlled through cURL commands, which made it very easy to hook into Victor. So I set it up, plugged in my light, and spent like 20 minutes trying to set it up with the app, which kept losing the connection. I can't really say it was easy to setup, but it's worked since fine, and it is indeed very easy to programmatically control.

Read More

Victor - Part 2

But of course, that isn't the end. Not even close. In the beginning of fall term of junior year, my computer was once again right next to the TV, and my levels of laziness had reached an all time high. I once again started to think of ways that I could control Spotify, Netflix, and my movies from the comfort of the futon (note: it was approximately three feet away from the computer). I pulled out the Kinect again, but remembered the problems that it had last time. I couldn't talk to it if I wasn't there, the speech recognition API didn't allow for a lot of commands, and it relied on something that was frankly, poorly supported and had next to no online documentation. So it was time for a change.

Read More

Victor - Part 1

I started this blog when I first got to Dartmouth. I'm now over a term into my junior year, and I still haven't mentioned one of my largest ongoing projects, and by far the one that I get the most enjoyment out of: Victor. It was around the summer of my freshman year when I first started messing around with the Kinect v2 SDK, and had the idea to build out an AI that could see the room, hear commands, and serve as a sort of custom built Siri. This idea for an AI would (eventually) be fleshed out into Victor.

Read More

Dartmouth Banner Possible Exploit

When you're requesting pages (such as transcripts, DASH, etc.) through Dartmouth Banner, you slowly accumulate cookies. But only one of them is actually used to verify who you are: the SESSID one. It's a base64 encoding of what appears to be 6 random alphanumerics, followed by your PIDM, the Banner specific code that was the root of the previous exploit. It locks you out if you try and use an old SESSID, and forces you to log in again.

Read More

Dartmouth ID Magnetic Stripe

It's been a while since I've played with the Dartmouth ID's, but my brother got me a Magnetic Reader-Writer for Christmas, so I've been having a blast messing around with it. I wrote a bit about the magnetic stripe over 2 years ago, but most of that was conjecture from one VERY out of date article I found online. So, let's take a look at what's on it now!

Read More

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