I visited these all last year in a single trip to the UK and it was incredible. I can recommend it to anyone who has spent some time thinking about the history of computing.
I'd like to call out the work from Nada Amin in this area:
Dafny and verification-aware programming, including proof by induction to verify properties of programs (for example, that an optimizer preserves semantics). Dafny Sketcher (https://github.com/namin/dafny-sketcher)
Multi-stage programming, a principled approach to writing programs that write programs, and its incarnation in multi-stage relational programming for faster synthesis of programs with holes—with the theoretical insight that a staged interpreter is a compiler, and a staged relational interpreter for a functional language can turn functions into relations running backwards for synthesis.
multi-stage miniKanren (https://github.com/namin/staged-miniKanren)
> Anything more complex than a few lines, you can just copy it from lib\ folder of the CD-ROM. There's a component for everything. You want to left-pad a string?
My understanding was that you were there at the keynote where Steve Jobs launched the iPad. From what we've heard Steve came up to you after the event and asked you what you thought (implicitly acknowledging your work on the Dynabook).
Subsequent interviews suggested you thought that the iOS range of products "were the first computers good enough to criticise".
My question is: what has to happen next for the iPad to start achieving what you wanted to do with the Dynabook?
> The problem with writing my own Markdown parser in Clojure is that Markdown is not a well-specified language. There is no "official" grammar, just an informal "Here's how it works" description and a really ugly reference implementation in Perl. http://briancarper.net/blog/415/