Projects

In alphabetical order


Aligner

Repo: dzwarg/aligner
Date: 2009
Tags: Python GTK

Summary

Aligner is a Python & PyGTK app that displays a directory full of images, and provides simple controls for shifting images one by one.

More...

Description

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

Repo: dzwarg/bounce
Date: 2009
Tags: Python pygame

Summary

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...

Description

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.

Caféduino

Repo: dzwarg/cafeduino
Date: 2010
Tags: Arduino C cosm

Summary

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...

Description

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.

Summary

A simple web map with custom Mapbox styles for biking access.

Summary

A demo presentation about how to use D3, with live coding examples in the presentation.

Summary

A two-part application that displays near-realtime results for the 2012 US Presidential election.

More...

Description

The application comprises two major moving pieces:

  1. A polling celery periodic task that pulls data off of the elections.nytimes.com website.
  2. A visualization webapp that displays the results via d3.js

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.

Summary

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...

Description

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.)

Summary

Presentation to the February Meetup for @AvidGeo.

More...

Description

Discussion about what Free and Open Source Software is, and ways to get involved. I discussed some of my own personal history about how I got involved with the PostGIS Raster project.

Summary

Application and video submissions to the Hubway Data Visualization Challenge, run during the Fall of 2012 by Hubway and the MAPC.

More...

Description

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:

  • d3 visualizations: Using d3, I had a web app look at cross sections of the rider populations in three different ways. Each of the visualization cross sections linked to the other sections, so you could traverse the visualization modes seamlessly.
  • graphserver visualizations: Using graphserver, I used the routing engine in graphserver to composite trips for segments of time together, and visualize where people were traveling, based on their starting point and ending point. This final result was compiled into a movie. The final compilation is on youtube.

Summary

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...

Description

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.

Summary

Simulacrum is a Java application that displays feeds from photoblogs as a slideshow.

More...

Description

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.

Summary

SpamLibs takes spam email messages, and uses them for Mad Libs™.

More...

Description

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

Repo: dzwarg/timelapse
Date: 2008
Tags: Python PIL NumPy

Summary

Timelapse takes a series of images and cross-correlates them to get them into alignment.

More...

Description

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

Repo: dzwarg/ThumbNailer
Date: 2002
Tags: Java JAI

Summary

Thumbnailer is a Java application that takes a directory of image files and makes uniformly-sized thumbnail images from them.

More...

Description

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

Repo: dzwarg/vocab
Date: 2005
Tags: Java Swing XML

Summary

Vocab is a simple Java application that reads a vocabulary XML file and allows storing of vocabulary words.

More...

Description

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.

Summary

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...

Description

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.