TechWorks
I've built programming tools, small languages, and systems that make computation easier to see and/or think about. This page starts with the things I've made recently, then gathers the talks, papers, interviews, teaching, and older software I've been involved with.
Building now
- GridCalc is an RPN spreadsheet for iOS. The grid is both the calculation and its visible history.
- Klong for the Web puts Nils M Holm’s real Klong interpreter in an offline-capable browser notebook.
- Actor Agents and Programmable Phones record current experiments with capable, constrained software and personal tools built with AI assistance.
Earlier work
Languages and interfaces
I created the Scala framework Step, which became Scalatra. Later I co-created Boot with Micha Niskin and helped build Hoplon and Javelin. Those projects treated builds and web interfaces as programs instead of piles of configuration. Gherkin, JACL, and talks such as Programming with Values in Clojure came from the same interest in small languages and direct models.
Software in production
At RStudio I contributed to Shiny, shinyloadtest, shinycannon, httpuv, and shinydashboard. My public work from that period includes Make Shiny fast by doing as little work as possible, load-testing tools, integration testing, and connecting React components to Shiny applications.
Teaching and preservation
I have taught Clojure in workshops and courses, spoken about Common Lisp, Scala, Raspberry Pi, Git, testing, and functional programming, and written the foreword to Clojure for the Brave and True. I also originated fswatch, recovered NCSA Mosaic’s public source history, and restored early, cringey work such as ProblemScan.
The role-labeled software history is in Open Source. Copies and Downloads keeps papers, slides, recordings, transcripts, and source snapshots together by work. Selected early essays are in Recovered Technical Writing.
Complete chronology
| Date | Venue | Title | Format | Role | With |
|---|---|---|---|---|---|
| 2021-01-28 | SciCloj | Common Lisp for the Curious Clojurian | Meetup | Presenter | |
| 2020-12-23 | ClojureScript Podcast | S4 E19: Hoplon | Interview | Interviewee | Jacek Schae |
| 2020-04-28 | ELS | JACL: A Common Lisp for Developing Single-Page Web Applications | Presentation | Presenter | |
| 2020-04-27 | ELS | JACL: A Common Lisp for Developing Single-Page Web Applications | Academic Paper | Author | |
| 2020-01-31 | rstudio::conf | Integration Testing in Shiny Apps and Modules | Poster | Presenter | |
| 2019-12-11 | WWW | Just Lisp Things | Blog | Author | |
| 2019-11-19 | OCRUG | Integrating React.js and Shiny, code | Presentation | Presenter | |
| 2019-11-16 | OCRUG | OCRUG interview | Interview | Interviewee | |
| 2019-11-06 | BBSW | Software Engineering with Shiny | Presentation | Presenter | |
| 2019-01-24 | rstudio::conf | Integrating React.js and Shiny | Presentation | Presenter | |
| 2018-12-17 | Orange Combinator | Old School FP: A Common Lisp Experience Report | Meetup | Presenter | |
| 2018-09-06 | rstudio.com | Load testing Shiny | Webinar | Presenter | |
| 2018-02-02 | rstudio::conf | Make Shiny fast by doing as little work as possible, slides | Presentation | Presenter | |
| 2018-01-31 | rstudio::conf | Intermediate Shiny, materials | Workshop | Teaching assistant | |
| 2017-12-11 | RStudio blog | Shiny Server (Pro) 1.5.6 | Article | Author | |
| 2017-10-13 | WWW | Wondr: Thoughts on R programming | Blog | Author | |
| 2017-09-12 | RStudio blog | Shiny Server (Pro) 1.5.4 | Article | Author | |
| 2016-11-03 | The Cognicast | Episode 112 | Interview | Interviewee | Craig Andera, Micha Niskin |
| 2016-10-18 | The Cognicast | Episode 111 | Interview | Interviewee | Craig Andera, Micha Niskin |
| 2015-11-06 | Øredev | Programmable Builds with Boot | Presentation | Presenter | |
| 2015-11-04 | Øredev | Hoplon: A Simpler Way to Program the Web | Presentation | Presenter | |
| 2015-10-02 | ClojureBridge | ClojureBridge Durham | Workshop | Teaching assistant | Yoko Harada |
| 2015-10-01 | No Starch Press | Clojure for the Brave and True, foreword | Book | Foreword, technical editor | Daniel Higginbotham |
| 2015-04-20 | Clojure/West | Boot Can Build It, slides | Presentation | Presenter | Micha Niskin |
| 2014-03-24 | Clojure/West | Web Programming with Hoplon | Presentation | Presenter | Micha Niskin |
| 2014-03-18 | The Cognicast | Episode 52 | Interview | Interviewee | Craig Andera |
| 2014-02-27 | TriClojure | Hoplon | Presentation | Presenter | Micha Niskin |
| 2013-11-14 | Clojure/conj | Gherkin, a Lisp 1 in Bash 4, code | Lightning talk | Presenter | |
| 2013-03-18 | Clojure/West | FRP in ClojureScript with Javelin, slides | Presentation | Presenter | |
| 2013-01-10 | TriLUG | An Introduction to Raspberry Pi, slides, BerryCam | Presentation | Presenter | Pete Soper, Clinton Dreisbach, Peter Reintjes |
| 2012-11-16 | Clojure/conj | FRP in ClojureScript with Flapjax, code, demo | Lightning talk | Presenter | |
| 2012-10-06 | BarCamp Rochester 10 | Your Own Compiler in 20 Minutes, source | Presentation | Presenter | |
| 2012-07-19 | OSCON | Computing with Clojure, source | Workshop | Trainer | Clinton Dreisbach |
| 2012-07-13 | Pluralsight | Clojure Fundamentals - Part 1 | Course | Trainer | Craig Andera |
| 2012-03-16 | Clojure/West | Programming with Values in Clojure, slides | Presentation | Presenter | |
| 2011-11-12 | Clojure/conj | Uberlisp, a Lisp for Arduino, code | Lightning talk | Presenter | Jon Distad |
| 2011-08-25 | The Ruby Hoedown V | Functional Programming with Ruby | Presentation | Presenter | |
| 2009-12-11 | WWW | Managing Code and Quality with Git and Testing | Presentation | Presenter | Julio Capote |
| 2009-09-03 | Rochester Hackers | Scala, a Scalable Language | Presentation | Presenter | |
| 2005-01-14 | Linux.com | My workstation OS: NetBSD, local copy | Article | Author | |
| 2000-02-27 | Planet Source Code | ProblemScan v1.0, recovered Visual Basic source and submission archive | Source code | Author |