Phil Mercurio's Home Page

I am a computer programmer with over 30 years of experience in human-computer interfaces, scientific and information visualization, and programming languages.

I'm currently the UI Architect at SQLstream, where I have been working on web applications such as the SQL end-user programming environment StreamLab, its visualization component s-Dashboard, and the Google Maps-based interface to s-Transport.

Over the past ten years I have been working, at least part-time, on a sabbatical research project: an experimental visual programming language and environment called Thyrd. Thyrd is implemented using Poet, an object-oriented extension to Tcl/Tk I've been working on sporadically since 1997. Both Thyrd and Poet have been released as open source. The best presentation on Thyrd so far is the talk I gave at the Emerging Languages Camp at OSCON 2010.

I was a Sr. Systems Architect for the Automated Molecular Imaging Group at The Scripps Research Institute half-time for two years, with the other half of my time spent working on Thyrd. Before that, I was the IT Director for the Neurosciences Institute for 11 years. Prior to that I was one of the founding members of the scientific visualization lab at the San Diego Supercomputer Center. Way back in the 1980's I ported Dungeon Master to the Amiga for FTL Games. I also worked in two labs at UCSD: the Quantitative Morphology Lab with Robert B. Livingston and the Cognitive Science Lab with Donald Norman. My complete curriculum vitae can be found here.

Throughout my career I have also served as a teacher, most recently for UCSD Extension. A page about the courses I've written and taught is here. The full course notes for each of the courses are provided.

My research interests include visual and end-user programming, scientific visualization, and biologically-inspired computing (evolutionary programming, artificial life, agent-based systems, neural networks, etc.). I'm inspired by systems like Self, Squeak, Boxer, and, strangely enough, Befunge.

Most of my recent work has been on web applications written in JavaScript. One of my favorite programming languages for actually getting work done is Tcl/Tk. I've also been doing a lot if work in Java, Ruby, PHP, and Objective-C in recent years, and haven't forgotten too much of C/C++. Lately I've been studying functional languages, like Erlang and Scala.