/ Projects


A month or two ago I was sitting at my desk when my phone began ringing; a close friend was calling me. We exchanged pleasantries, and when I questioned why I'd been called I discovered to my surprise that I had in fact made the call. I hadn't of course, and after some questioning the next day, I found out that a mutual friend had pranked us, using an online service that connects two people, making each think they were called by the other, and records the result.

I took this in good spirits. After all, it was just a harmless prank! No reason to be angry or resentful. Until I thought a little more, and realized that one harmless prank would of course merit another.

Then my thoughts turned dark, and I smiled that someone had thought it a good idea to prank a CS major with far too much time on his hands and almost manic devotion to interests.

By chance, several weeks earlier I had discovered that almost all modern carriers have an SMS gateway service, which allows emails to be received as text messages. In other words, if you send an email to a specific address--for Verizon, for instance, it's of the format number@vtext.com--it will be received by that number as an SMS. I also did a little research and found out how to configure SSMTP on a Linux box to send email from a Gmail account. So I registered a nice little throwaway account and set to work. At first it was simple to just pipe facts that I'd made up through the mail command, but at some point automation takes over every industry of this earth, and I wanted to be able to exact revenge without the need to even be by my computer.

In the meantime, though, I was happy to exact revenge manually, and by the end of two weeks I managed to severely confound my friend and even induce a fair amount of paranoia! A small victory for pettiness. This was, specifically, my favorite kind of annoyance. I view it as such: imagine that I am poking somebody with a stick. It is annoying them, understandably. In order to annoy them, I have to be near them. If they decide that they no longer wish to tolerate being annoyed, they can choose to begin chasing me, at which point I am forced to stop annoying them and run to ensure the possibility of future annoyances. However, the SMS idea requires no human intervention post-startup. The target can chase me as much as they like and they will continue being annoyed. If I am not sufficiently adept at escaping pursuit, given an adequate power supply, network connection, and ignoring hardware degradation, my body could be found in pieces all over the world, and the target would still be suffering annoyances.

I'd say I need to find another hobby, but let's face it, I've tried finding other hobbies. They aren't as good.

So at HACK(RPI); in the fall I started working on FactBlaster, which I'm uncomfortably happy calling my homebrewed alternative to services like CatFacts. It's a simple program which, at its core, runs a shell command to pipe the chosen fact to the chosen address. But since then, I've added features like scheduled deliveries and (if Festival TTS is installed) synthesizing a spoken fact. Currently I'm working on switching over my own crummy data storage to JSON for facts and people; in addition, I'm adding runtime options to delete and add users and/or facts.

It's a stupid project, really, but I'm glad I'm working on it, because it has implications far beyond forcing someone to block a number out of frustration. I'm looking into automating alerts from a computer or server to text me when something happens or something goes wrong, and it opens up paths into home automation (replies to the texts are delivered as emails to the sender's account). I could potentially control my home through text message conversations, all without having to use paid services that interface with SMS. I'm excited to develop the concept further--and I won't lie, I'm excited to give people a tool to annoy others.

Check out FactBlaster on the Projects page! More to come soon.