The Time Machine

Sydney 2000 Olympics - IBM


The 2000 Olympics where held in a land "far far away". So far away in fact that the time difference is near intractable for people. The goal of this interactive application was to allow people to traverse the globe with their mouse and see what time differences are like throughout the world.


Originally the site had a Java applet which showed the current time in Sydney, and days left until the games, which lived in the upper right hand corner of each page. Having an applet on each page proved to be too costly to page performance, so we replaced the content in the corner with text, and a link to this applet which opened in a new window.

The applet allowed people to mouse over anywhere on the map and see what the current time was, along with the current time in their location and the time in Sydney.

IBM Community Tools

Internal messaging software prototype - IBM


Imagine being at a trade show and having a customer come up to you and ask a question that is completely out of your area of expertise. So far in fact that you're not even sure who to ask, or where to ask it. If you were in a large room of varied experts you'd just call out and hope that your request reached someone.

The idea behind the IBM Community Tools client was to prototype the idea of broadcast messaging -- sending messages out to large groups of people and letting them filter out messages that they are not interested in. By default, users of the tool would send messages to a specific channel, or to "everyone".

More information behind our experience with people using the broadcast messaging tools can be found in the ACM Queue article - Messaging to the Masses


The broadcast client was written as a plug-in to a larger framework, all written in Java using the SWT library from the Eclipse project for a native platform look and feel.

Organization Tools - Version 1

Faceted browsing tool for org charts


While working as a manager in a distributed organization of about 450 people we found a problem keeping all of our distribution lists up to date. This problem was compounded by needing various permutations of the list, say "all users in Raleigh and Tucson that are part time or supplemental"

To help solve this problem I wrote an application that requests a top level manager as input, and builds a org chart in real time. The org chart can be filtered by a faceted browsing control which allows the user to pare down the chart to only certain people.

The user can then create a distribution list, with a single click, which includes only the people intended.


The application was written in DHTML and Javascript. It uses Ajax calls to query the enterprise directory and recurse through the organization from the top level manager to include every employee.

The final org chart page is created through a GET request, so a user can bookmark the chart for a frequently used organization and still get the most up-to-date chart.

Image Resizing Tool

Intranet enterprise directory - IBM


There was a time when many of the photos in the IBM enterprise directory were often sized incorrectly and squeezed into an inappropriate aspect ratio.

Most of the people in the 400,000 person company didn't have access to or skills required for photo editing software. To help users crop their photos properly I created a tool that does few things, but does them well.

The user uploads photo and is presented with a cropping tool that is constrained to directory placeholder's aspect ratio, while also providing a real time preview.


The tool was implemented as a Java applet on the front end. The front end passed along the cropped image to the directory's back end for storage.


A reaction / memory game for the iPhone


Memoreact is a both a reaction and memory game. Each level of the game offers 15 seconds of touch screen action. You'll be presented with prompts of 1 or 2 touches to match. As you play the game you'll see your hit percentage in the upper left hand corner. If your hit percentage is 65% or greater you'll be allowed to move to the next level. As you level-up the speed with which the prompts appear gets progressively faster.

If your hit percentage is less than 65% you'll be given the chance to replay that round. If you're having trouble keeping pace, you can try remembering the plays for that round. When you replay a round, the same plays are shown in the same order.


The application was built using the iPhone SDK 3.1.2 and XCode. All graphics are drawn as vector paths on the device.

The application is available for download on the iTunes App Store.

Wyrdle Lab

Opening up an internet favorite


The online word cloud generator, Wordle has become an internet favorite for generating pictures of words. The layout algorithm for Wordle is however not shared outside of IBM.

Given Wordle's success in offering a tool for participtory visualization I've wanted to create an open implementation of a word cloud generator, with user generated and pluggable layout algorithms, additional manual tweaking of layout, and other visual display controls.


This on-going project is currently under construction. A demo version is available, but I am still working on some of the controls for manual manipulation of text and font size as well as further optimizing hit-testing and sample layout algorithms.

The platform is written in Adobe Flex and ActionScript.

If you're interested in contributing to this project, please contact me fjania [at] gmail [dot] com.

A Year in Twitter Trends

How does the twitterverse tell the story of a year

(See a live version)


After seeing that twitter collects trends based on words frequently used in tweets, I wondered what those trends would look like over time. I believe that a visualization which animates the trends over the period of a year will serve both as a platform for nostalgia and an opportunity to show how the concerns of people are twitter may be skewed from those of people who do not use the platform.

The current implementation animates the most popular trends for each 24 hour period in increments of 12 hours.

As I work on this more I'm looking to incorporate feed from news services, additional data visualization for frequent trends, an interactive component that allows the user to follow particular trends of interest, and additional forms of trend word visualization.


The application is written in Flex/Actionscript with all controls custom made. The layout engine is extensible and will be the basis for testing how different layout algorithms may convey meaning to the trends over time.

The data is collected directly from twitter using a daily cron script written in python, and another script written in python which arranges the data in a compact CSV format for the application to use.