Current Research Projects
I currently have four main research projects that I'm working on. These are by no means the only things I'm interested in (take a look at my past work to get an idea of the sorts of things I care about), just the ones that I'm trying to get off the ground now. More detail will be added later.
There is a list of possible student projects in these areas here (only available from within the gatech.edu domain). You can also check the web pages for my research group, the Pixi Lab, which are probably updated more regularly than these pages.
- Human-centered networking. Most research in networking has focused on "traditional" issues, such as bandwidth, scalability, latency, and so forth. What if we were to look at networking instead from a human-centered perspective? What traits would we care about then? Most likely, things like understandability, maintainability, evolvability, and so forth. This project is focused around understanding users' needs and practices, and creating a set of tools, infrastructures, and interaction techniques that provide a better match between these needs and practices and the capabilities of the underlying technology.
- Usable and useful security. Information security technologies are notoriously difficult to use and understand, with the common result being that users simply turn off security if it interferes with what they're trying to get done.. Too often, security technologies are approached with a mindset that complete security in itself is an end-goal. Instead, we should realize that security is only a property of a solution, not a solution in itself, and that this property trades off against others (such as convenience, expense, understandability, and so on). We need to rethink how we approach security research, first and foremost by realizing how matters of security are negotiated and traded off against other concerns; only by doing so can we better incorporating users' needs and practices, and develop new and more natural interaction techniques to give users better control over their security and privacy. Most of my current work on usable security is focused on vicarious living through our grassroots student design competition, the Tiger Teams contest, which I started and run.
- End-User Service Composition. Many visions of ubicomp are predicated on the ability of devices and services to be able to easily interconnect and interoperate with each other. And yet currently specialized applications have to be created to allow most rich interactions (bridging the semantics of different device types, for example). A key requirement for future ubicomp environments will be the ability for end-users to be able to self-assemble services and devices in their environment to accomplish some ends. I'm interested in looking at both interfaces for composition, as well as the underlying systems plumbing to allow it to happen.
- Open location-aware services. Despite the fact that location-aware services and tools have been a focus of much research, very few of us actually use any such services on a regular basis. This project is focused on a simple goal: create a platform on top of which anyone can develop and deploy a location-aware service, with similar ease to which they can now create web pages. Eventually this project aims to roll out a simple-to-use location-based service infrastructure across the Georgia Tech campus, and learn from widespread deployment and use of such a system.
Work While at PARC
My last major project before leaving PARC was Speakeasy (also called Obje), an infrastructure for ad hoc connectivity and interoperability in ubiquitous computing environments. Most network middleware systems (CORBA, Web Services, etc.) require clients and services to have specific knowledge of each other, explicitly coded into them. Speakeasy is a different approach to network communication, based on a small set of meta-interfaces that allow services to dynamically extend the behaviors of their clients. Clients and services can communicate with each other without having to have explicit knowledge of each others' interfaces.
The Speakeasy project resulted in (at last count) about ten publications in top-tier conferences and journals, 18 US and International patents either granted or pending, and played a key role in PARC's technology transfer efforts. Please contact PARC if you have inquiries about licensing.
Before that, I worked on Placeless Documents (and its antecedent Presto), which is—in a nutshell—a “radically extensible” document management system. That makes it sound far more boring than it actually is. A better description might be that it’s a system that manages information by overlaying a simple object system on it, allowing easier application development, metadata-based organization, and a unified view across multiple information sources. I’ve also worked on Flatland, a novel user interface for pen-based computing on large surfaces like whiteboards (sorry, no page yet). One of my main projects used to be time travel (sort of) and its applications to collaboration. I also worked on a number of other projects at PARC, including Bayou, a weakly-consistent replicated data store for applications with sporadic network connectivity.
While at PARC I was lucky enough to have some extraordinary interns. Roy Rodenstein (was at Georgia Tech, now at the MIT Media Lab) worked with me on some cool UI stuff that hasn’t been published yet. Takeo Igarashi (University of Tokyo) worked with me on Flatland, a nifty pen-based UI system. Michael Kaminsky (was at Berkeley, now at MIT) hacked the Microsoft Actimates Barney doll to make it do our evil bidding. Shahram Izadi (now at Microsoft Research Cambridge), Jason Hong (now on the faculty at CMU), and Julie Black (Google) all worked with me on Speakeasy. My last PARC intern was Steve Voida, whom I followed to Georgia Tech after leaving PARC. See, interns are great!
When I was in grad school I worked on a lot of different systems,
including Intermezzo, a toolkit for building context-aware collaborative
applications. I was the chief developer and architect of Mercator, a system that lets visually-impaired people work
with the X Window System. (See page from the late Jurassic, complete with software downloads for your SPARCstation, woot,
here and FAQ here.)
My work on that
system resulted in a number of extensions fo the X Window System to support
remote monitoring of client application state, and session initiation
(the RAP and ICE protocols, as well as client-side hooks in Xt to use these).
I built Montage, an early (pre-MIME) multimedia
mailer. I built a FORTRAN compiler for the Motorola DSP56001 signal processor.
One of my first projects involved a set of
hacksenhancements to the X Window System to support
punch-through video. There's a bunch of other stuff that I'll eventually
find time to write about.
At Sun I developed a C++ toolkit for rapid assembly of networked multimedia applications called MAK++. This toolkit was distributed with the Sun DIME video board, and was used by quite a few external folks (including researchers at PARC) for building multimedia apps on SPARCstations.
At Olivetti I worked on the VOX audio server, an early networked audio infrastructure.