|node.js/express.js, angular.js, mongodb, PHP, MySQL, jQuery/UI||2006 - Present|
Galapag.us (pronounced "galapagus") is my eventual ITP thesis project that I've been working on since 2006 or so. It is a play to build a reputation and identity ecosystem where all the data you generate in your life can be remixed together to create more appropriate and accurate representations of what makes you trustworthy, successful, attractive, loyal, etc.
The goal is to give people a space where they own their data and where they can make up their own formulae to evaluate and experiment with their lives better. The result is that people can more easily obtain credit or gain trust when more factors in their lives are considered -- and thus it can also be aggregated to family, local, state, federal, and worldwide levels of reputation.
|toxiclibs.js, HTML5 canvas, angular.js, Processing, ToxicLibs VerletPhysics2D||Fall 2011|
Genetic Crossings was my Processing final project in Intro to Computational Media class. I created a made-up universe with individuals who have offspring and who gain the traits of their parents, but who are also affected by race, nation-state, and pollution/city characteristics.
I continued the project for my Nature of Code class, adding in ToxicLibs' Verlet Physics 2D library to connect with conjoined springs the people, nations, and religions according to the strength of their relationships or influence.
|django, mysql, jQuery, Grunt, Compass, Bower||Fall 2013|
|PHP, MySQL, jQuery/UI||Fall 2011|
AdjectApproval was a project I whipped up over Christmas break in 2011. You know when you forget the name of someone while you're telling a story, so you have to describe the person to the listener in such a way that the listener can figure out who it is?
The idea was to prompt a user with a list of adjectives or descriptors and have him guess which person it referred to. The user could also be prompted with someone's name and then have to give the descriptors that he thought would most quickly identify the unknown person to a stranger.
Gotta Take This
|Android, PhoneGap, Ruby/Sinatra, Asterisk||Spring 2012|
Gotta Take This was a quick app I made for my Redial midterm. Say you're trapped in a conversation and the other person won't let you get a word in edgewise or craft any kind of getaway. Pop open your phone absent-mindedly to check the time or your email or whatever, then surreptitiously tap the Gotta Take This life preserver icon.
A few minutes later, after you've put your phone away, you'll receive a call (written by a ruby script requested through Sinatra by your tap, generating a callfile on an Ubuntu box), which, upon being answered, plays a long voice message that gives you plenty of cover to escape the situation.
|node.js, MongoDB, jQuery/UI, Asterisk, FlowRoute, Twilio, socket.io, Rackspace||Spring 2012|
I built Hermes in my NYU-ITP Redial class, which was a class intended to familiarize us with telephony, the open-source Asterisk server, and ways to build interfaces using the phone keypad.
Hermes is an ordering system for use at bars and restaurants where customers can dial in to a screen (on a table, a TV, or any surface) with any phone, using its keypad as a remote to order drinks or food, play trivia, socialize with other tables, check the news, or whatever. Instead of having touchscreens, which I don't enjoy using in public, or when everyone's hands are covered with food and beer, you can use your own phone, maintaining the personal feel that people love about their phones.
A user phones in to FlowRoute, forwarding the call to my Rackspace Asterisk server, which uses a dialplan to pass to a Ruby AGI script that my node.js Express server communicates with for keypad presses and socket.io for updating the external screen's front-end. When a customer closes his tab, a Twilio SMS is sent to confirm, and an email is sent to the restaurant/bar's private account.
Also includes an admin dashboard for CRUD operations for menu options.
Props to Professor Kairalla for githubbing his socket.io-Asterisk AGI code.
|node.js, MongoDB, jQuery/UI||Spring 2012|
|Ruby, Sinatra, Heroku, YAML, PostgreSQL, jQuery/UI||Fall 2011|
probablyGonna was made for my ITP web class, coded in Ruby/Sinatra for deployment to Heroku. It is intended as a way to create general plans to do something in the future. Going to lunch on the floor right now? Put out a pG request set for right now. Anyone can tag along. Want to go dancing in Adams Morgan this Saturday? Set up the invite, then anyone knows they can show up if they want.
This model works better than FourSquare, where you usually check in after you've been somewhere a while, or better than Google Calendar, where you have to plan a specific place at a specific time, which is not relevant to 1) when or how people meet up or 2) where people want to end up at the end of the night.
|PHP, MySQL, PhoneGap, Android, jQuery/UI/Mobile||Spring 2012|
StreetEyes is a collaboration between Phil Groman and me for our mobile web class. We decided to build a mobile app where someone could find someone else on a map and ask him or her to report what he sees from a location nearby.
The primary attraction to this for me was being able to zero in on a mobile user on a map and ask him to take photos or stream video from an accident or protest near his location, and then curate the results on a single incident page.
Oftentimes during a crisis, it's not clear who the best source of information will be. It often is not the government, or local companies, but maybe some random person who happened to be directly involved and who has a mobile phone ready to upload data to the internet.
We designed our app for PhoneGap and Android 2.2, and are currently building it out, along with a web interface. It is a work in progress.
|Arduino, PHP, MySQL, jQuery/UI||Fall 2011|
Wheredipuddit was my final project for my physical computing class at ITP. The idea was that you would "check in" objects into tupperware boxes by scanning their RFID against the boxes. Then you could find the object by going to a web inventory and pinging the object, causing the box it was in to light up, making it easy to find stuff you've put away.
The boxes could also scan in via QR code or any other method that would hit a specific URL. I also made it so you could "check in" emotions into a box, so you could make one tupperware container jealous while another would be in love.
This project also used Arduino, DiamondBacks (wifi built on an Arduino board), digital RGB LED strips, and RFID readers. The documentation is pretty lengthy!
|Ruby, Sinatra, YAML, PostgreSQL, Heroku, PHP, MySQL, jQuery/UI||Fall 2010|
My comparison script is available on Github. It allows you to compare and vote on two random items from a long list of items.
The idea is that by comparing two random items instead of just voting on the best/favorite/whatever, you get a better sense of the relative strengths of items in a list. Instead of everyone piling on and liking the top pick, people will have to qualify between two lesser-favorite choices.
I made the comparison script original in PHP and MySQL for comparing Halloween candies, but then for my web class at ITP, I translated the script into a favorite sexual position script using Ruby/Sinatra, and YAML and PostgreSQL to deploy to Heroku.
|PHP, MySQL, XML||Spring 2009|
I made a site using PHP to check Twitter and other APIs for DC-related tweets. I broke down the search queries by neighborhood (Adams Morgan, Chinatown, Dupont Circle, Georgetown, etc.) and then did keyword counting to see which words were used most for different neighborhoods.
|PHP, MySQL, jQuery/UI||2006|
Wuntsah was a plan for a free download package of pages that let you submit a photo of yourself daily, monthly, whatever, with the goal of you having regular photos and descriptions of how you felt and what you were doing during that time, so you could see how you change over time at set time periods.