March 2018 Paper: The simple essence of automatic differentiation (Differentiable functional programming made easy) February 2017 Paper: Compiling to categories February 2017 Paper: Generic parallel functional programming June 2016 Joined Target, working in data sciences and optimization, continuing to explore elegant and principled techniques from math and programming language theory for building fast, correct, and beautiful software. January 2015 Sadly, Tabula closed down. October 2011 I'm working at Tabula and having a great time. I'm helping with chip specification and working out how to compile Haskell to hardware. May 2009 Paper: Push-pull functional reactive programming March 2009 Paper: Beautiful differentiation March 2009 Paper: Denotational design with type class morphisms January 2008 New technical blog November 2007 Google tech talk: Tangible Functional Programming: a modern marriage of usability and composability October 2007 The paper Functional Reactive Animation, co-authored with Paul Hudak, was awarded as the most influential paper of ICFP '97. July 2007 My paper Tangible Functional Programming was accepted and will appear in ICFP 2007. Paper slightly updated. April 2007 I've moved from the Seattle area to San Andreas, CA
Here is my CV as a PDF (updated January, 2018).
See my software repositories on GitHub and Hackage.
Most of my research is aimed at supporting the creation of interactive synthetic media content, including computer animation, human-computer interaction, images, 2D and 3D geometry, and programmable shaders. In all cases, I aim to preserve or improve on the flexibility and performance of mainstream programming approaches, while greatly simplifying the creation process.
Synthetic media programs are almost always implemented in sequential, imperative (often object-oriented) languages. My research explores use of declarative languages, resulting in much simpler and more reusable and composable programs. These languages are also more amenable to execution on parallel architectures such as modern graphics processors, because declarative languages abstract away from order of execution, removing the accidental sequentiality found in imperative programs. Even on sequential machines, declarative formulations have much simpler mathematical semantics, which facilitates automatic optimization. They also tend to be spatially and temporally continuous (resolution-independent), allowing them to adapt naturally to machines with different speeds and display resolutions.
After exploring explicit programming of synthetic media content for several years, I'm now also keenly interested in supporting artists. The goal of my new research agenda is to give artists access to the expressive power of computers and programming languages, while retaining an artist's working style. I mean "artist" in a broad sense, in contrast to the verbal and sequential style of an engineer. (I don't mean to suggest that people fit neatly into these two categories.) My ideal audience includes graphic designers, musicians, and children -- really, the playful and curious in all of us.
Some past projects:
Since April of 2003, I have been learning and practicing nonviolent communication (NVC), also called "compassionate communication". NVC is a consciousness and small set of inner and outer practices designed to nurture compassion in ourselves and others by how we speak and listen. Together with my partner Holly, I do training, mediation, and empathic listening for groups, couples, and individuals. Our working partnership is called Awakening Compassion.
My interest is in living and sharing the consciousness of NVC, rather than a particular process or model, i.e., the "sacred place" rather than the "raft". (See this dialog.) For this reason, I have chosen internal rather than external certification and have seeded two community-open web sites aimed at evolving NVC practice into deeper alignment with NVC consciousness.
I have four children: Jake (30), Becky (28), Friday (26), and Patrick (23). I also have two grandchildren: Audrey (7) and Eliza (8 months). (Ages are as of January 2013.) My parents are on the web, too.
Here are some of my favorite quotations.
|I first saw this spiky ball high up on a rotating post in a used car lot somewhere in Florida. Here are a bigger version (256x256, 24 bit, 30f/s AVI, 866 KB), and a really big version (512x512, 2.15MB). Turn on the auto-repeat property in the AVI viewer to keep it running.|
|Here's a lovely fractal
I happened upon.
Click on it for more info.
See the web site of Fr. Magnus Wenninger, OSB, containing pictures of many beautiful polyhedra he has constructed by hand. I had the honor of meeting Fr. Wenninger during the Mosaic 2000 conference in Seattle. Here is a polyhedron he made while there.
If my conal-dot-net email breaks, please resend to first.last-at-gmail-dot-com.
You can also catch me via GoogleTalk (first.last), Skype (first_last), or #haskell IRC (first).
I am on Twitter, FaceBook, and LinkedIn.My last name really, really does end in two "t"s. Honest.
Visitor Count: since November 20, 1998.