I plan to graduate in summer 2006, pending completion of my thesis research on F(EML) (see below). I recently accepted a job offer in industry; I am planning to move south in the fall.
My thesis research concerns F(EML), an incarnation of the Diamond module system. F(EML) combines extensible classes and functions, multiple dispatch, modular typechecking, and code reuse via parameterized modules.
We have designed and formalized F(EML), and implemented a prototype interpreter. We are currently completing the soundness proof for the type system and working towards a more extensive evaluation of the language's expressiveness. Our first paper on F(EML) will appear in the forthcoming ECOOP 2006 conference; a manuscript is available upon request.
A preliminary presentation of this work also appeared in the informal FOOL/WOOD 2006 workshop; presentation slides: PowerPoint, PDF (note: the PDF version has some font issues; I am working on preparing a fixed version).
In 2002-2003, we collaborated with researchers at Intel Research Seattle to develop HydroJ, a language that supports distributed messaging using semi-structured data. Our hope is that the flexibility of this communication substrate will be more robust in the face of evolution than traditional communication mechanisms.
society & technology
I am a member of the society and technology ("soctech") interest group at UW-CSE. We're interested in promoting greater understanding of social impacts of technology, both within UW-CSE and in the UW community at large. Computer scientists have distinct knowledge and values, relative to lawyers, political scientists, or information and communication scholars. Therefore, UW-CSE should collaborate with other departments to grapple effectively with this subject: we must export our values and understanding to the rest of the academy, and we must import the values and understanding of other disciplines in turn.
I have served as an instructor for the following course:
I have played a major role in planning the following seminars:
I have been a teaching assistant for the following courses:
I am trying to accumulate a list of useful readings for graduate students (or advanced undergraduates) in programming systems.
In the course of preparing papers and talks, I often create quick incidental hacks that, although trivial, are useful enough that I wish to share them. Here is a (very small) subset of this code:
A. Oliveira has a list of known conferences and journals of (very) dubious reputation.
My .emacs file is full of warm gooey parenthesized goodness.
If you use Linux, you should definitely install the Bitstream Vera fonts which were donated to GNOME. Programmers may also find the Anonymous monospace font useful. Finally, fans of Lawrence Lessig's talks (like this one) may want to download P22 Typewriter.
If you use LaTeX and you're a computer scientist, you need to learn how to use the listings package.
x2x is the coolest X11 hack I have ever seen.
Desktop wallpaper based on photographs that I've taken.