Projects
-
Google Keyboard Shortcuts
Navigate search results with VIM keys!
Leveraging a feature exposed through the Google Labs Experimental search, this Firefox search plug-in allows users to easily navigate Google search results with VIM-style keyboard shortcuts.
Google Search Keyboard Shortcuts on asciipr0n.net
Install and try it now!- firefox
- plugin
- search
- vim
-
Roslin
A course management system for instructors and students.
Drawing upon my experience as a graduate-student instructor, I identified some key pain points in setting up a web page to manage and facilitate student labs. Gathering a team of developers, designers, and a project manager, I helped create Roslin.
The objective for our project was to develop a simple, on-demand CMS for instructors and students at the university level. Unlike the existing products on the market that boast a wide array of features, Roslin focused on a small set of carefully selected core components. Reducing the number of features also enabled us to concentrate on providing a consistently positive user experience. We felt that a clean user interface with modern interaction patterns would help differentiate us from the dated look and feel of our competitors. We also made an effort to include fun and engaging features in order to encourage users to frequently visit and use Roslin.
- agile
- mysql
- ruby
- ruby on rails
- swing
- usability
- user interface
- user interview
- user testing
-
wikiMemex
An ode to Vannevar Bush.
wikiMemex was an experimental prototype of Vannevar Bush's theoretical memex (memory extender). Through his article "As We May Think" (The Atlantic Monthly, July 1945), Bush introduced the American public to ideas such as online encyclopedias and hypertext linking before the introduction of Wikipedia or HTML.
Installed as a Greasemonkey extension, wikiMemex gathered users' document.location as they browsed Wikipedia. These were posted to an endpoint on my server where they were saved as a list of nodes on a path. Nightly, a script calling GraphViz would transform the paths into a node-edge graph, where nodes represented Wikipedia articles and edges represented clicked links between articles. The result was a visual representation of a user's Wikipedia browsing history.
"Deadwood" to "ASCII art" in 10 moves.
- firefox
- graphviz
- greasemonkey
- hypertext
- memex
- php
- vannevar bush
- wikipedia
-
hallMonitor
A natural language processing experiment in codifying community norms.
In April of 2005, debate erupted on the the UC Berkeley iSchool mailing lists over what was considered appropriate and inappropirate for the "fun@sims" mailing list. Some students claimed that only postings related to "fun" real-world events were appropriate, while others insisted on posting on "funny" topics as well. In response, the "noise@sims" mailing list was created for anything that was not a "fun" event.
However, each year, with new incoming students, there is a period of off-topic posting from students who had not yet learned the established norms. In the spring of 2006, Joanne Wong, a fellow student, and I decided to try to solve this problem programmatically.
hallMonitor served as a social and technical experiment using a naive Bayes classifier with natural-language feature extraction to both learn the norms and then attempt to sort incoming emails into the appropriate mailing list.
- naive bayes
- classifier
- computer-mediated communication
- mailing list
- mbox
- natural language processing
- nltk
- python
-
tak.tc
A prototype mobile device interface to Amazon.
tak.tc (pronounced "tac-tic") was an early experiment in accessing web services through a mobile device. In fact the domain name was chosen to be quickly and easily entered on a T9 keypad.
Designed as a website accessible to WAP-enabled mobile devices, tak.tc allowed users to enter ISBN numbers for books and retrieve Amazon.com prices and user reviews. Saved items could then be later retrieved in a full HTML website and purchase transactions completed though Amazon.
Created before widespread penetration of mobile devices with QWERTY input, large screens, and 3G connectivity, tak.tc was designed to be used within the contraints of input via a T9 keypad, feedback through small screen sizes, and slow GPRS connectivity. Developing markup for WAP-enabled phones also provided unique challenges due to the lack of standards-compliant browsers on earlier model mobile devices.
- amazon
- api
- mobile
- ruby on rails
- web service
- wap
-
LightsOn
An exercise in user-centered design.
LightsOn was a project to develop a new user interface for a fine-grained lighting control system for building and facilities managers as well as building occupants. Working in a team of four, we assessed user needs, conducted interviews with potential users, developed personas, conducted paper prototype testing, and iterated an interactive prototype.
- php
- paper prototype
- usability
- user interface
- user interview
- user testing