In alphabetical order
Aligner is a Python & PyGTK app that displays a directory full of images, and provides simple controls for shifting images one by one.
More...Aligner was born out of the need to automatically align a large sequence of images that were nearly aligned, but demonstrated poor coherence when compiled into a timelapse sequence. The original image sequence that Aligner tackled was a time lapse series of webcam photographs taken during the construction of the Comcast Tower in Center City Philadelphia.
The webcam photos were taken at one hour intervals over the course of about a year. During this time, the webcam was shifted, rotated, wiggled, flexed, and bumped. In order to make the image sequence somewhat viewable, the images needed to be shifted, or wrapped, to fix the position of the building across all frames in the compiled film.
An automated method was used to autocorrelate the images with each other, and that was only moderately successful, because the images changed immensely over the course of a day, depending on the weather, the illumination, which angle the camera was positioned, etc. Therefore, a finer tool was needed to hone the sequence into position.
Bounce is a Python application written with pygame for the OpenMoko open source phone. It uses the built-in accelerometers in the phone to move the image of a ball around the screen.
More...Bounce was my first experiment with the pygame library for graphics & sounds, accelerometers, and touch interfaces. Originally intended to be a 3D accelerometer game where the user tries to bounce a ball inside a box, I was unable to reduce the latency of even 2D bouncing graphics + sound effects.
The better game is MokoMaze on the OpenMoko, anyway.
An Arduino-assisted coffee pot that reported it's status to cosm.com, what used to be pachube.com. This was a combination hardware and software project, installed at Azavea Headquarters in Philadelphia, PA.
More...Everybody hates the experience of walking up to a coffee pot, not knowing if the pot is full or not, and discovering that your worst fear is realized, and that the pot is indeed empty. These experiences were becoming common around the office, so I thought that I would apply a hardware solution to the caffeine problem.
The software in this repository is an arduino sketch that was running on an arduino + ethernet shield. The sketch continuously measured the pressure on two different piezo sensors, and calculated the full/empty ratio based on this measurement. On regular intervals, the sketch would publish the state of the coffee maker on pachube.com
The hardware for this project has been decommissioned, but sketches for the hardware are still present in the repository.
A simple web map with custom Mapbox styles for biking access.
A demo presentation about how to use D3, with live coding examples in the presentation.
A two-part application that displays near-realtime results for the 2012 US Presidential election.
More...The application comprises two major moving pieces:
The polling task repeatedly reads the json data from an endpoint that was clearly designed to power the 'big-board' -- the main page displaying the results of the presidential election. This endpoint did not have any authentication or authorization scheme associated, so it was easy enough to hit it repeatedly to get live information off the nytimes.com site.
GuestList is a project that I wrote to help my family manage the list of guests for a special family event, with many hosts and many guests.
More...GuestList was designed with the amateur computer user in mind, and allows tracking of guest invite response, as well as tracking of which documents were sent to whom.
GuestList was also my first attempt at a struts Java application when I was working in the .NET world. I had experience deploying web applications on Tomcat, and the JSP, Java Server Faces, and Struts patterns were learned in the process. (Most likely, terribly.)
Application and video submissions to the Hubway Data Visualization Challenge, run during the Fall of 2012 by Hubway and the MAPC.
More...The Hubway Visualization Challenge was a contest run in Boston during the Fall of 2012 to visualize 500,000+ bike trips on the Hubway system. My entry into the contest was twofold:
Red ALERT: Ultra Intense is a project by myself and a few of my colleagues during the 24 hour period from noon on October 24th - noon on October 25th.
More...Red ALERT: Ultra Intense is meant to demonstrate an alternative use case for a REST based API. The application is completely written in JavaScript, and uses d3 for animations and transitions, and the 'audio' component from the 'Pong' chrome experiment. The point is not to have a point, and to have fun with an otherwise non-game related API.
Simulacrum is a Java application that displays feeds from photoblogs as a slideshow.
More...Simulacrum is a different type of feed viewer, that reads RSS feeds, and displays images from the RSS feeds in a slideshow. These feeds may be in RSS 0.91, RSS 2.0, or Atom format, and may display all images in a feed or the most recent.
SpamLibs takes spam email messages, and uses them for Mad Libs™.
More...The application runs the body of the spam email through a natural language processor to determine the types of words in the message (noun, adjective, verb). The application then randomly removes many of the original words, and prompts users to fill in the missing types of speech. After a user has submitted the form, the application takes the user submitted vocabulary and combines it with the original spam email, often to hilarious effect!
Mad Libs™ is Copyright © 2010 Pengiun Group(USA), and is in no way related to Spamlibs.
Timelapse takes a series of images and cross-correlates them to get them into alignment.
More...Timelapse is a simply python script that will take a series of images as input, and output a series of well-aligned images, as well as an output log file of the offsets for each image.
Timelapse was originally written to support the alignment of the images taken of the construction of the Comcast Tower in Downtown Philadelphia. The video is located on [YouTube](https://www.youtube.com/watch?v=Uq7YDdfziqQ).
Thumbnailer is a Java application that takes a directory of image files and makes uniformly-sized thumbnail images from them.
More...ThumbNailer was written when I was learning JAI, and before any popular digital image processing programs had auto-rescaling functionality. Nowadays, this feature is included in nearly every photo management application.
Vocab is a simple Java application that reads a vocabulary XML file and allows storing of vocabulary words.
More...Vocab was originally designed to accumulate words that I would receive in "Word of the Day" emails. I wanted some way to keep track of the words that I was supposedly learning, so I wrote this program.
In addition to merely saving words and their definitions, the application can also play back a set number of words and randomize the definitions, to simulate a multiple-choice vocabulary quiz. As the quiz progresses, the progress is displayed in the status bar.
vTour is an application that enables users to discover photographs geographically, and from 3 major photo-sharing APIs. These photo searches can be saved and filtered by tag or date.
More...vTour is a method of searching for geotagged photographs on 3 major photo sharing APIs:
A user can search by photos by selecting a place on the map, which brings up all photos that are geolocated within a certain distance of that place. The app performs a bounding-box search, since not all APIs support radius searching.
This app uses the python app FeatureServer to save search results, which in turn saves features into a PostGIS database.