Phil Mercurio's Home Page

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

I'm currently the architect of StreamLab, a live programming environment for SQL, and its visualization component, s-Dashboard. These products were developed by SQLstream, which was acquired by Guavus in 2018.

In the 2000's I worked 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.