<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="portfolio.xsl"?>
<!--
	TODO: add download links(where appropriate)
-->
<portfolio>

	<project>
		<name>Netflix / Facebook Integration</name>
		<description>
			Built the in-browser UI for <a href="http://www.netflix.com">Netflix's</a> social movie sharing on Facebook.
			I was responsible for all logged-in Facebook features within the Netflix site: signup, management, display
			of shared movies and social evidence.
			Written in Java 6, Struts 2 + Convention plugin, and jQuery, using the Facebook JS SDK.  Hosted on Apache/Tomcat on Amazon EC2.
		</description>
		<location></location>
		<public-location></public-location>
		<link>http://www.netflix.com/</link>
		<screenshots>
			<screenshot>NetflixFacebook1.png</screenshot>
			<screenshot>NetflixFacebook2.png</screenshot>
			<screenshot>NetflixFacebook3.png</screenshot>
		</screenshots>
	</project>

	<project>
		<name>Intuit BizSites</name>
		<description>
			Built as a replacement to Homestead's SiteBuilder and SiteBuilder Plus tools,
			<a href="http://bizsites.intuit.com">Intuit BizSites</a> is a next-generation online
			website-building tool for small businesses.  Senior member of the three-developer team that built 
			the entire product: signup, website management, ajax page creator, ajax style editor, page 
			rendering, mobile rendering, functional and unit testing, and hosting/deployment.
			Written in Java 6, Struts 2 + REST plugin, jQuery, Oracle, with testing via TestNG, HtmlUnit,
			and DBUnit.  Hosted on Apache/JBoss on Win2k8.
		</description>
		<location></location>
		<public-location></public-location>
		<link>http://bizsites.intuit.com/</link>
		<screenshots>
			<screenshot>BizSites1.png</screenshot>
			<screenshot>BizSites2.png</screenshot>
			<screenshot>BizSites3.png</screenshot>
		</screenshots>
	</project>

	<project>
		<name>SiteBuilder</name>
		<description>
			SiteBuilder is <a href="http://www.homestead.com">Homestead Technologies' 
			powerful website building tool</a>.
			It is a drag-and-drop web page builder built on top of an XML/XSL engine, 
			XHTML rendering engine, skinning &amp; localization engine, and custom widget 
			toolkit.  It has been the primary desktop application for Homestead customers 
			since 2002.  Written in Java 1.1.
		</description>
		<location></location>
		<public-location></public-location>
		<link>http://www.homestead.com/</link>
		<screenshots>
			<screenshot>SiteBuilder1.jpg</screenshot>
			<screenshot>SiteBuilder2.jpg</screenshot>
		</screenshots>
	</project>

	<project>
		<name>SiteBuilder Lite</name>
		<description>
			SiteBuilder Lite is <a href="http://www.homestead.com">Homestead Technologies' 
			easy-to-use website building tool</a>.
			It is a cross-browser, Ajax-based web page editor, built using a hybrid
			built-in designMode editing (for text) and custom DHTML editing of
			images and elements.  It is used by all new Homestead users as the 
			easiest way to get started building your website.  Written in Javascript/DHTML + Ajax.
		</description>
		<location></location>
		<public-location></public-location>
		<link>http://www.homestead.com/</link>
		<screenshots>
			<screenshot>SiteBuilderLite1.jpg</screenshot>
			<screenshot>SiteBuilderLite2.jpg</screenshot>
		</screenshots>
	</project>

	<project>
		<name>LolCat Builder</name>
		<description>
			LolCat Builder is an interface for creating dynamically
			captioned images.  It is designed to let people easily
			create LolCats (aka, Cat Macros).  It was originally written 
			as an R&amp;D testbed for investigating ASP.NET.
			Written in ASP.NET 2.0 and C#.
		</description>
		<location></location>
		<public-location></public-location>
		<link>http://kscakes.com/LolCats/</link>
		<screenshots>
			<screenshot>LolCats1.jpg</screenshot>
		</screenshots>
	</project>

	<project>
		<name>Gug's Puzzle Adventure</name>
		<description>
			A Game-Boy Advance puzzle game created by Matt Franklin, Ruth Williams
			Craig Olrich, and Gordon McNaughton.  We pitched this game to a variety of 
			publishers but it was rejected because "it doesn't have enough guns."
			(Direct quote.)  See Matt's page to download a playable copy of the game!
			Written in C with a Java level editor.
		</description>
		<location>C:\dev\GBA</location>
		<public-location></public-location>
		<link>http://www.animalocean.com/matt/</link>
		<screenshots>
			<screenshot>GBA1.jpg</screenshot>
			<screenshot>GBA2.jpg</screenshot>
			<!--<screenshot layout="landscape">GBA3.jpg</screenshot>-->
		</screenshots>
	</project>

	<project>
		<name>TimeComposite</name>
		<description>
			A painting program that allows you to paint forwards and backwards in time.
			It presents a stack of timelapse photos as a space in which you can 
			carve a time surface.  This is a technique has since become known
			as HDTR (High Dynamic Time Range) imaging.
			Written in C# using Microsoft DirectX for .NET.
		</description>
		<location>c:\dev\repository\general\trunk\directx\dxtimecomposite</location>
		<public-location>svn://tastyrobot.boldlygoingnowhere.org/general/trunk/directx/dxtimecomposite</public-location>
		<link></link>
		<screenshots>
			<screenshot>TimeComposite1.jpg</screenshot>
			<screenshot>TimeComposite2.jpg</screenshot>
		</screenshots>
	</project>

	<project>
		<name>GA Crypto Solver</name>
		<description>
			An automated program that solves cryptographic ciphers.  It uses genetic algorithms
			and frequency analysis to breed solutions, then compares the results to a 
			dictionary file to determine whether the result is correct.  It understands
			character replacement and Vigenere ciphers.  Written in Java 5.
		</description>
		<location>c:\dev\repository\general\trunk\frequency</location>
		<public-location>svn://tastyrobot.boldlygoingnowhere.org/general/trunk/frequency</public-location>
		<link>http://elonka.com/kryptos/</link>
		<screenshots>
			<screenshot layout="portrait">GASolver1.jpg</screenshot>
			<screenshot layout="portrait">GASolver2.jpg</screenshot>
		</screenshots>
	</project>

	<project>
		<name>PaperBox (a.k.a. Graphite)</name>
		<description>
			Han Andersen's TabletPC .NET application/playground.  It is designed 
			to be a freehand replacement for Visio.  PaperBox makes 
			extensive use of the .NET ink and handwriting recognition APIs, as 
			well as including some shape recognition of its own.  Written in C#.
		</description>
		<location>c:\dev\repository\general\trunk\graphite</location>
		<public-location>svn://tastyrobot.boldlygoingnowhere.org/general/trunk/graphite</public-location>
		<link>http://spaces.msn.com/incrementalmagic</link>
		<screenshots>
			<screenshot layout="landscape">Graphite1.jpg</screenshot>
			<screenshot layout="landscape">Graphite2.jpg</screenshot>
		</screenshots>
	</project>
	<project>
		<name>ColorHistory (edge detection)</name>
		<description>
			A bifurcating quadtree edge detector that works by looking for 
			changes in contrast between neighboring pixels.  Works on realtime 
			webcam video.  Written in C++ using Microsoft DirectShow.  
		</description>
		<location>c:\dev\repository\general\trunk\directx\colorhistory</location>
		<public-location>svn://tastyrobot.boldlygoingnowhere.org/general/trunk/directx/colorhistory</public-location>
		<link></link>
		<screenshots>
			<screenshot layout="landscape">EdgeDetection1.jpg</screenshot>
			<screenshot layout="landscape">EdgeDetection2.jpg</screenshot>
		</screenshots>
	</project>

	<project>
		<name>ColorHistory (webcam Pong)</name>
		<description>
			Players play Pong with green glowsticks and a webcam.
			Written in C++ using Microsoft DirectShow.
		</description>
		<location>c:\dev\repository\general\trunk\directx\colorhistory</location>
		<public-location>svn://tastyrobot.boldlygoingnowhere.org/general/trunk/directx/colorhistory</public-location>
		<link></link>
		<screenshots>
			<screenshot layout="landscape">PongPlugin1.jpg</screenshot>
			<screenshot layout="landscape">PongPlugin2.jpg</screenshot>
		</screenshots>
	</project>

	<project>
		<name>ColorHistory (webcam snow)</name>
		<description>
			Snow falls constantly from the top of the screen and settles on 
			edges in the video.  You can hold out your hand to catch flakes.
			Written in C++ using Microsoft DirectShow.
		</description>
		<location>c:\dev\repository\general\trunk\directx\colorhistory</location>
		<public-location>svn://tastyrobot.boldlygoingnowhere.org/general/trunk/directx/colorhistory</public-location>
		<link></link>
		<screenshots>
			<screenshot layout="landscape">SnowEffect1.jpg</screenshot>
			<screenshot layout="landscape">SnowEffect2.jpg</screenshot>
		</screenshots>
	</project>

	<project>
		<name>ColorHistory (Matrix effect)</name>
		<description>
			I know what you're thinking.  "Why oh why didn't I take the BLUE pill?"
			John created all the Matrix-esque glyphs.
			Written in C++ using Microsoft DirectShow.
		</description>
		<location>c:\dev\repository\general\trunk\directx\colorhistory</location>
		<public-location>svn://tastyrobot.boldlygoingnowhere.org/general/trunk/directx/colorhistory</public-location>
		<link></link>
		<screenshots>
			<screenshot layout="landscape">MatrixEffect1.jpg</screenshot>
			<screenshot layout="landscape">MatrixEffect2.jpg</screenshot>
		</screenshots>
	</project>

	<project>
		<name>ColorHistory (rotoscoping)</name>
		<description>
			Rotoscoping filter meant to emulate Scanner Darkly by averaging
			out areas of solid color and highlighting edges.  Ends up taking 
			nice, high-quality video and making it look highly compressed.
			Written in C++ using Microsoft DirectShow.
		</description>
		<location>c:\dev\repository\general\trunk\directx\colorhistory</location>
		<public-location>svn://tastyrobot.boldlygoingnowhere.org/general/trunk/directx/colorhistory</public-location>
		<link></link>
		<screenshots>
			<screenshot layout="landscape">RotoscopeEffect1.jpg</screenshot>
			<screenshot layout="landscape">RotoscopeEffect3.jpg</screenshot>
		</screenshots>
	</project>


	<project>
		<name>UserMap</name>
		<description>
			A 2D plot graph of Homestead users, broken down by zip code.
			Such is the population density of New York that you can zoom in on 
			Manhattan and see the outline of the island!  We also appear to
			be very popular in Florida.  Developed by Craig and myself.
			Written in Java 5.
		</description>
		<location>c:\Test\UserMap</location>
		<public-location>vss_heppkat_projectx, $/zFun/UserMap</public-location>
		<link></link>
		<screenshots>
			<screenshot>UserMap1.jpg</screenshot>
			<screenshot>UserMap2.jpg</screenshot>
		</screenshots>
	</project>

	<project>
		<name>UserMap (3D visualization)</name>
		<description>
			A 3D bar graph visualization of Homestead users, by zip code.
			Written in Java 5 + Java3D.
		</description>
		<location>c:\Test\UserMap</location>
		<public-location>vss_heppkat_projectx, $/zFun/UserMap</public-location>
		<link></link>
		<screenshots>
			<screenshot>UserMap3D1.jpg</screenshot>
			<screenshot>UserMap3D2.jpg</screenshot>
		</screenshots>
	</project>

	<project>
		<name>UserMap (satellite mapping)</name>
		<description>
			Using satellite data from GoogleMaps to get aerial views of users.
			We scraped a free geocoding service to get the lat/long of several
			thousand addresses.  Then we scraped GoogleMaps to get photos of 
			these addresses.  We did this as an example of what we could
			do if we were evil!  Of course we are NOT evil, the results are
			for entertainment only.  Written in Java 5.
		</description>
		<location>c:\Test\UserMap</location>
		<public-location>vss_heppkat_projectx, $/zFun/UserMap</public-location>
		<link></link>
		<screenshots>
			<screenshot>UserMapSatellite1.jpg</screenshot>
			<screenshot>UserMapSatellite2.jpg</screenshot>
		</screenshots>
	</project>

	<project>
		<name>UserMap (satellite map mosaic)</name>
		<description>
			Mosaic photos of Justin and Gavin, made up of satellite photos of users' addresses.
			A freeware mosaic program called AndreaMosaic was used to make the images.
		</description>
		<location>c:\Test\UserMap</location>
		<public-location>vss_heppkat_projectx, $/zFun/UserMap</public-location>
		<link>http://www.andreaplanet.com/andreamosaic/</link>
		<screenshots>
			<screenshot layout="landscape">UserMapMosaic1.jpg</screenshot>
			<screenshot layout="portrait">UserMapMosaic2.jpg</screenshot>
		</screenshots>
	</project>

	<project>
		<name>Polygon Grapher</name>
		<description>
			A shape recognition research tool.  It doesn't actually recognize
			shapes, but it does analyze and graph the angles of the shape.  The
			next step is to add a database of known shapes to compare against.
			Written in Java2 using JFreeChart.
		</description>
		<location>c:\Test\Chart</location>
		<public-location></public-location>
		<link>http://www.jfree.org/jfreechart/</link>
		<screenshots>
			<screenshot layout="portrait">ShapeRecognition1.jpg</screenshot>
			<screenshot layout="portrait">ShapeRecognition2.jpg</screenshot>
		</screenshots>
	</project>

	<project>
		<name>Packet Visualizer</name>
		<description>
			Network sniffer that visualizes passing packet data in a 3D world.
			Written in C++ using the CrystalSpace 3D engine.
		</description>
		<location>C:\dev\PacketViewer</location>
		<public-location></public-location>
		<link>http://www.crystalspace3d.org/</link>
		<screenshots>
			<screenshot>PacketVisualizer1.gif</screenshot>
			<screenshot>PacketVisualizer2.gif</screenshot>
			<screenshot>PacketVisualizer3.gif</screenshot>
		</screenshots>
	</project>

	<project>
		<name>ArtBots Servo Tracking</name>
		<description>
			A collaborative art/technology project run by Matt Franklin and Ruth Williams.
			The goal was to make a bed of decorated robotic flowers with an integrated webcam, 
			which could turn to follow people as they walked by, and open or close as
			they got near.  Craig Olrich and Geoff Clarke also contributed heavily.  
			Written in assembly for the PIC16F684 microcontroller.
		</description>
		<location>c:\dev\pic</location>
		<public-location></public-location>
		<link></link>
		<screenshots>
		</screenshots>
	</project>

	<!--
	<project>
		<name>QuickTime Parser</name>
		<description></description>
		<location>C:\dev\Quicktime\ParseQt</location>
		<public-location></public-location>
		<link></link>
		<screenshots>
		</screenshots>
	</project>
	-->
	
	<project>
		<name>Sketch (animated line art)</name>
		<description>
			Written before Tablet PCs came out, this app only understands
			polylines (not freehand ink).  After you draw a line, it is animated 
			to look something from a flip-book or a hand-drawn cartoon.
			Written in Java2.
		</description>
		<location>c:\dev\Sketch</location>
		<public-location></public-location>
		<link></link>
		<screenshots>
			<screenshot>Sketch1.jpg</screenshot>
			<screenshot>Sketch2.jpg</screenshot>
		</screenshots>
	</project>

	<!--
	<project>
		<name>PacketViewer</name>
		<description>
			Packet analysis tool.  Capable of parsing TCP, ICMP, and UDP traffic.
			Variants included an alarm that watched for ICMP pings, and a
			promiscuous-mode packet sniffer that recorded EverQuest chat text.
		</description>
		<location>c:\dev\PacketViewer</location>
		<public-location></public-location>
		<link></link>
		<screenshots>
		</screenshots>
	</project>

	<project>
		<name>PowerMate CPU Meter</name>
		<description>
			CPU usage meter that controls the blue LED in a PowerMate USB knob.
		</description>
		<location>C:\Test\PowerMate</location>
		<public-location></public-location>
		<link></link>
		<screenshots>
		</screenshots>
	</project>
	-->

	<project>
		<name>PhotoSite iPod Photo exporter</name>
		<description>
			An iPod Photo exporter for PhotoSite AlbumBuilder, written 
			using ImageMagick.  It exports images into suitable format for
			display on a television through an iPod Photo.  Photos are 
			resampled to an optimum size and captions are overlayed on top.
			Written in Java 1.1 with ImageMagick.
		</description>
		<location></location>
		<public-location></public-location>
		<link>http://www.photosite.com/</link>
		<link>http://www.imagemagick.org/</link>
		<screenshots>
			<screenshot>iPodPhotoExporter1.jpg</screenshot>
			<screenshot>iPodPhotoExporter2.jpg</screenshot>
		</screenshots>
	</project>

	<project>
		<name>Gousche 2.0</name>
		<description>
			A collaborative lunch-planning system that allows people to suggest 
			and vote on restaurant options.  It was named "Gousche" after a 
			Homestead developer who used to pick up lunch for us every day.  This
			was a team side project written by Ellis, Jon, Alex, Xia, and Rick.
			Written in ASP.NET and jQuery.
		</description>
		<location></location>
		<public-location></public-location>
		<link>http://hslabs:8001/Simple.aspx</link>
		<screenshots>
			<screenshot>Gousche1.jpg</screenshot>
			<screenshot>Gousche2.jpg</screenshot>
		</screenshots>
	</project>

	<project>
		<name>PAX 2009 nVidia Badge Tracker</name>
		<description>
			An online database used to track nVidia badge numbers at the 2009 Penny-Arcade Expo.
			Thrown together in a couple of hours in a hotel lobby, it eventually 
			stored nearly two thousand badge numbers over the course of a weekend.
			Written in Python and Django and hosted on Google App Engine.
		</description>
		<location></location>
		<public-location></public-location>
		<link>http://paxbadges.appspot.com/</link>
		<screenshots>
			<screenshot>PaxBadges1.png</screenshot>
		</screenshots>
	</project>


<!--
Other cool screenshots to have:
	- SiteBuilder Classic
	- FargoPropagator
	- EmailLabsManager
	- AlbumBuilder
	- RandomUserPhoto
	- LPX Repaint debugging
	- Ajax gallery search tool
	- Manga display
-->
	
</portfolio>

