Hello! I am a computer programmer living in San Francisco. I have two
and a steady job.
froc, a library for functional reactive programming in OCaml (2008-2010)
Based on Acar’s self-adjusting computation; works with ocamljs for FRP web programming. See Sudoku in ocamljs, part 3: functional reactive programming for an example, and How froc works for an overview of the implementation. This probably still works in current OCaml versions, but see react or Incremental for actively-maintained alternatives.
Ambassador to the Computers, mostly OCaml blog (2008-2011)
Most of this is no longer interesting even to OCaml people. But this mini-series on implementing logic programming in Scala is fun (parts 1, 2, and 3); and Mixing monadic and direct-style code with delimited continuations is sort of a mind-bender.
Camlp4 is a cool code preprocessor with an extensible parser. I spent a bunch of time trying to figure out how it worked by reading the code and experimenting, which was fun!
A badly-written college paper. But I think all the time about technology that empowers people and technology that oppresses them. See also: Authoritarian and Democratic Technics (Lewis Mumford, 1964) and Tools for Conviviality (Ivan Illich, 1975).
Talks and Papers
Leverage vs. Autonomy in a Large Software System, Strange Loop (2018)
Describes Strato, an internal platform-as-a-service built at Twitter, and some of the technical and organizational pressures that motivated its development.
Describes the design and implementation of a simple Scala-like language used in Strato (an internal platform-as-a-service built at Twitter), with a somewhat interesting type system.
An Applicative Functor for Composing RPC Services, Scala By the Bay (2014)
Stitch, a Library for Composing RPC Services, Twitter University (2014)
Describes Stitch, a Scala library for concurrent composition similar to Haxl. Stitch was built at Twitter, and Strato (see above) is based on it. (These are the pretty much the same talk; the second one went better.)
A Consistent Semantics of Self-Adjusting Computation, Journal of Functional Programming (2013)
Better AJAX UIs with Functional Reactive Programming, Jane St. Capital and Twitter (2010)
Overview of froc, a system for functional reactive programming in OCaml. The slides are a froc program: you can interact with UI elements, and use arrow keys to navigate.
A Natural Platform for Artificial Intelligence, SIGBOVIK (2010)
A goof, but serious.
Fun with Twelf, Bay Area Functional Programmers (2008)
Introduction to Twelf, a dependently-typed logic programming system useful for writing proofs about programming languages.
Compacting, Composting Garbage Collection, SIGBOVIK (2007)
Combining SAT Methods with Non-Clausal Decision Heuristics, Pragmatics of Decision Procedures (2004)
A good example of Emery Berger’s “eyeball statistics” (see Performance Matters) although I did not know it at the time.