Hi, I'm Jake.


  • Undergraduate at Georgetown University
  • From San Jose, California
  • Computer & Data Science, Design, and International Affairs
Introducing Punini Press

As a connoisseur of wordplay and an individual who has always enjoyed puns – all of them, good and bad, mediocre and terrible – sometimes I just have an idea that needs to be drawn out in Illustrator.

After creating a couple of terrible gems, I decided that they needed a place to live – a domain where I can direct people, force them to look for a second at the unfunny yet slightly witty jokes before they turn their eyes away in disgust at the mediocrity of it all. And maybe, just maybe, a few of them will appreciate my humor or design a bit.

So I made Punini Press, complete with a shiny new TLD. Enjoy at your own risk!

Read More

Raspberry Pi Zero W Morse Code IP Address Startup Script

Evidently I'm very into providing helpful scripts on here recently, and this one is no exception.

The Raspberry Pi Zero W has a miniHDMI port for a monitor, but if you lack such a cable and want to use it for a headless IOT product, you'll need its IP or hostname to ssh into it. My school network blocks addressing devices by hostname (ssh pi@raspberrypi.local fails to locate my pi on the network) and I can't access the router configuration to see the IP of a newly-connected device. I'm out of luck without a monitor to see its IP address once it connects to the network...but the Pi Zero does have one built-in user interface device – a single onboard LED.

So, without further ado, here's a bash script to signal the Pi Zero's IP in morse code every time you boot it up.

Read More

A Simple Apple FileVault Password Cracking Script

Security Disclaimer: The script described below will only work if you have the permission and knowledge of the owner of the files you are attempting to decrypt. You may not use any of this information for any purposes without good faith and the consent of the rightful owner of the files, and I am not responsible if you or anyone else does otherwise.

Files on computers, especially laptops, become extremely vulnerable to theft when physical access to the drives is available. If your laptop is stolen, that system password isn't going to help prevent a malicious actor from opening up your computer case, pulling out the drive, and going to town with all of your personal, unencrypted data. That's why whole-drive encryption programs like Apple's FileVault are so important and useful – that is, until you forget the password.

My father gave me a 4TB drive containing all of our family photos and videos since my birth, but he has no record nor recollection of the password that he "came up with 'just for [me]'" a year ago. But FileVault has a glaring vulnerability: there are no limits on password attempts, and a simple command using DiskUtility in the command line allows anyone to make hundreds of password attempts per minute:

Read More

SMSDoc at PennApps XIV

At PennApps this year – my first shot at the world's most most famous hacking tradition – my team (Ridoy Majumdar, Animesh Fatehpuria, and Saul Aryeh Kohn) and I designed and built a two-pronged service designed to bring free, accessible life-or-death healthcare information to the developing world, and to allow NGO's to track the spread of epidemics – before they even begin. We created SMSDoc, which allows people who have mobile phones (but not Internet access; most people in areas like Sub-Saharan Africa have SMS-only cell phones) to text in their symptoms, have a conversation with a NLP-enabled AI that, after 5-10 questions, can give them a fairly accurate diagnosis based on their symptoms, tell them how severe their ailment is, and direct them to their nearest hospital or health clinic.

The information on the user and their symptoms are stored in a database and show up in our webapp, live, on a heatmap of the world, so doctors and NGO's can track similar symptoms and outbreaks, spotting trends and working to solve them even before they spread to become huge epidemics.

Read More

Belloon – Bellarmine College Prep's High Altitude Balloon Project (with Code, Schematics, and PCB Layout)

The completed board! (after surface-mount soldering but before through-hole hand solder)

In my senior year at Bellarmine, with the STEM-Med Club, I endeavored to get funding for, create, and launch a high altitude balloon project. Although the balloon still hasn't launched and now I'm off to college, I designed and built a really neat ATMega-powered sensor/radio board that uses APRS to communicate with the ground and can measure atmospheric gas concentrations and their changes over time, assuming multiple launches.

Here are the specs:

  • 144.390MHz APRS RadioMetrix Radio for telemetry
  • GPS tracker (model TBD)
  • ATMega CPU (with Arduino bootloader) with SD card for data logging
  • Gas sensors (a sensor that can detect carbon-based gases and nitrous oxide, some of the worse pollutants in the atmosphere that also cause smog)
  • Humidity Sensor
  • Temperature Sensor

The balloon itself would also have had a GoPro Hero mounted on it for some sweet footage. More on the PCB Design process after the break.

Read More

Theodend: A High-Efficiency, Small Corpus Size Machine Translator

Us is riht micel ðæt we rodera weard, wereda wuldorcining, wordum herigen, modum lufien.
He is mægna sped, heafod ealra heahgesceafta, frea ælmihtig.
Næs him fruma æfre, or geworden, ne nu ende cymþ ecean drihtnes, ac he bið a rice ofer heofenstolas.

Right is it that we praise the King of heaven, the Lord of hosts, and love Him with all our hearts.
For He is great in power, the Source of all created things, the Lord Almighty.
Never hath He known beginning, neither cometh an end of His eternal glory.

 — Old English Book of Genesis

The problem I've encountered as I've gained an interest in Old English is that there is an extremely limited literary base and there are not very many people studying it. As a result, the best kind of "translator" one can find online for Old English, or Anglo-Saxon, is an online dictionary—which, while helpful, cannot translate complete sentences in the wondrous fashion of Google Translate and friends.

I wanted to change that by designing an accessible algorithm for statistical machine translation and make it easier to translate dying, extinct, or just defunct languages with limited written text available, and I wrote a pretty cool paper on my process, below.

Read More

Cardboard for iOS at MHacks V
That's me, testing Cardboard with my iPhone.

MHacks V was really, really awesome. Kinda cold, being January in Ann Arbor, Michigan, and all, but awesome nonetheless. At the beginning of MHacks, during the expo, Google handed out some Cardboard units, their awesome and inexpensive VR solution. I put in my old Nexus 4 smartphone, which I'd brought along in stead of my preferred iOS devices in case I felt like Androiding something. Many of the confused bystanders waiting patiently in the hardware line after kickoff remember how enthused I was with the awesomeness of Cardboard—I wouldn't put it down, and looked like an idiot standing with a cell phone in a cardboard box attached to my face, pacing around slowly with my arms out and making occasional "woah" and "ooh, ah!" noises...for a solid half hour.

But Google hadn't thought to make any Cardboard app or developer library for iOS devices, so my teammates, with their iPhones, were unable to share in the awesomeness of Cardboard! We fixed that by writing a Cardboard-compatible Virtual Reality framework for iOS, from scratch.

Read More

Codini: The Magical Coding Documentation Assistant!

You're programming on your laptop, your iPad sitting useless in your bag. You write a line of Python, or Javascript. What was the name of that function again? Ugh, I'll just switch windows and pull up the documentation in my web browser.

So much wasted effort. Until we made Codini at CodeDay Silicon Valley (which won best overall hack). Codini is a Sublime Text plugin that gives you IDE-like code completion and instant documentation access on any external device. For example, set your iPad up next to your laptop, open Sublime to start Codini, which will give you a local IP to access, navigate your iPad to macpie.net/codini and enter the given IP of your development machine. Instantly, Codini's attractive interface provides you with snappy documentation and code completion possibilities for every word you type!

It's like magic. The full features of Codini:

Read More

Objective-C for the Absolute Beginner

We were all once beginners struggling, perhaps wandering aimlessly like I always have, around a new platform in a vain effort to make something work—even something as basic as a UITableView object on the iOS platform, part of Apple's Objective-C libraries.

Fear no more, and follow me on a wonderful adventure into the world of learning how to develop a basic iOS application for the iPhone or iPad. However, this guide assumes you do have some very limited knowledge of the syntax of C or related programming languages.

Read More

πDough, The Newspaper-Fetching Robot

Google CAPE (Computing and Programming experience) was über awesome and a very valuable experience. Google took me and another couple dozen 8th-graders (soon to be high school freshmen) to their campus for three weeks filled with programming, building, discussing the future of technology with industry experts, and touring awesome places like IDEO and Stanford's D-School.

At the end of all of it, after more than a little time spent at home on my project, I ended up with a robot that more or less retrieves the newspaper for its user. I called it πDough (like Fido, because it's a dog, get it?!) and it's built with the chassis of an RC car and an Arduino with an IR LED and an IR-sensitive photoresistor for sensing distance to obstacles and the paper it seeks. It runs in a random pattern, covering the driveway like a Roomba vacuum until it finds what it's looking for, at which point it engages its lifter, a sophisticated rig composed of a coathanger bent into a scooper and a set of servos.

Read More