Taking care of code … more and more code

(This is a shorter version of my talk for DeliveryConf, January 2020. Video of slides+audio; Slides as pdf) Good software is still alive. The other day, I asked my twelve year old daughter for recommendations of drawing programs. She told me about one (FireAlpaca?) “It’s free, and it updates pretty often.” She contrasted that with … Read moreTaking care of code … more and more code

How can we develop and operate increasingly useful software?

Most software gets harder to change as it ages. Making modern applications, it is not enough to write a system and put it out there. We need continual improvement and adaptation to the growing world. How can we develop and operate increasingly useful software? To answer this, I need a mental model of how software … Read moreHow can we develop and operate increasingly useful software?

Keynote: Collective Problem Solving in Music, Science, Art, and Software

(originally titled: “On the Origins of Opera and the Future of Programming”) Blog write-up Abstract There’s a story to tell, about musicians, artists, philosophers, scientists, and then programmers. There’s a truth inside it that leads to a new view of work, that sees beauty in the painful complexity that is software development. Starting from The … Read moreKeynote: Collective Problem Solving in Music, Science, Art, and Software

Every action has two results (Erlang edition)

Every action has two results: a set of side effects on the world, and the next version of ourselves. I learned this from Erlang, a purely functional yet stateful programming language. Erlang uses actor-based concurrency. The language is fully immutable, yet the programs are not: every time an actor receives a message, it can send … Read moreEvery action has two results (Erlang edition)