Open Source
I have written, maintained, revived, and contributed to open-source software
since the late 1990s. The role matters. Starting a project, maintaining it,
recovering its history, and sending one useful patch are all worthwhile, but
they are different kinds of work.
Software I started or helped start
- fswatch — Original author. I
wrote the first macOS/FSEvents implementation in 2009. Enrico M. Crisostomo
and I merged it with his portable
fsw in 2014, when he took over
maintenance. The official history
records the handoff.
- Step and Scalatra — Creator of Step; early Scalatra
contributor. Step was the small Scala web framework I started. It became
Scalatra as other developers joined and the project found its lasting name.
- Boot — Co-creator with Micha Niskin.
Programmable build tooling for Clojure.
- Hoplon — Co-author and major
contributor. A Clojure and ClojureScript environment for programming web
interfaces.
- Javelin — Co-author and major
contributor. Spreadsheet-like dataflow programming for ClojureScript.
- Gherkin — Author. A functional
programming language and interpreter written in GNU Bash 4.
- storage-atom — Author.
ClojureScript atoms backed by browser local and session storage.
- Intension — Author. Datalog
queries over nested Clojure maps and vectors.
- Enduro — Author. Durable Clojure
atoms backed by append-only storage.
Step and Scalatra
I started Step in 2010 as a compact web
framework for Scala. The project was renamed Scalatra within its first week.
I remained part of the early development, and the surviving history credits
me as the person who started it. Today’s Scalatra is
the work of the maintainers and contributors who carried it forward.
Older software recovered or revived
ProblemScan
I wrote ProblemScan v1.0 in Visual Basic in February 2000 and submitted it to
Planet Source Code. It scans a selected file for strings associated with
NetBus, Sub7, and Back Orifice servers. It is early work, kept as history
rather than current security advice.
NCSA Mosaic
In 2010 I recovered the public NCSA Mosaic source and republished its history
on GitHub. I did not write Mosaic. GitHub covered the restored repository,
and contemporary reports appeared in Wired
and bit-tech.
Contributions to established projects
- Clojure: language and build fixes,
including work on
into-array, unchecked math, n-ary bit functions, and
math inlining.
- Leiningen: build-tool fixes
and improvements.
- Scittle: documentation.
- ring-undertow-adapter:
adapter improvements.
- j: a contribution to the Common Lisp
implementation.
- JD4X: a small contribution to the Java
desktop project; its surviving homepage lists me among its credited
contributors.
Professional open source
I made this work while employed by RStudio.
- Shiny: testing infrastructure, mock
sessions,
testServer, and related application work.
- shinyloadtest: load-test
recording, analysis, and tooling.
- shinycannon: Shiny
load-generation tooling.
- httpuv: HTTP and WebSocket server
work.
- shinydashboard: dashboard
improvements.
Related talks, papers, and interviews are collected in
TechWorks, and selected early essays are in
Recovered Technical Writing.