I don't know what they want from it, how they can be satisfied with the petty round of grant money, publication, and prizes. Whereas I have always known, deep down. I spent endless hours in the stacks, looking hopelessly for the one book that would show me the way forward, that would unlock Dimension Zeta. I wanted things I saw only dimly - fluids that glowed, and electricity that arced and danced like a living thing. I wanted science inside of me, changing me, my body as a generator, as a reactor, a crucible. Transformation, transcendence. And so, of course, they called me mad.
Highlights:
- Reflections on a decade of coding - what has and hasn't worked for me.
- Internal consistency - why most streaming systems can produce unboundedly wrong outputs.
- Against SQL - SQL is inexpressive, incompressible, non-porous and under-specified, and this creates drag on everything downstream.
- The shape of data - taking notation seriously.
- Have you tried rubbing a database on it? A conference about databases and things that are not databases yet.
- Pain we forgot - teaching everyone to code is not enough.
Programming language experiments:
- droplet
- eve
- imp v0
- imp v1
- imp v2
- imp v3 / preimp
- Draft: The program is the database is the interface.
- Dev teasers in 0022, 0025, 0026, 0027.
- Abandoned to work on TigerBeetle.
- zest
Streaming/incremental systems:
- An opinionated map of incremental and streaming systems
- Internal consistency - why most streaming systems can produce unboundedly wrong outputs.
- Why query planning is hard
- Thoughts on benchmarking
- dida - differential dataflow for mere mortals
- Why isn't differential dataflow more popular?
- How dida works
- Roughly works, but definitely not production-ready. Likely to be replaced by something simpler (eg).
Databases:
- The missing tier for query compilers.
- A shallow survey of OLAP and HTAP query engines
- Against SQL - SQL is inexpressive, incompressible, non-porous and under-specified, and this creates drag on everything downstream.
- How Materialize and other databases optimize SQL subqueries
- SELECT wat FROM sql
Interfaces:
- focus - a low-latency text editor which I use for all my writing and coding
- reltron - an interface for exploring relational databases, in collaboration with Kevin Lynagh
- monolog - monolog is to logging as spreadsheets are to accounting?
- unnamed - experimenting with VR game mechanics on the HTC Vive
Programming languages:
- Columnar kernels in go
- Better operator precedence
- How safe is zig?
- Memory-mapped IO registers in zig
- Open multiple dispatch in zig
- Assorted thoughts on zig (and rust)
- blobs - a library for zero-copy deserialization in Julia
- Julia as a platform for language development
- Staged interpreters in rust
- Three months of rust
- strucjure - combining pattern matching, parsing and visitors
- Parallelizing the core.logic solver
Distributed systems:
- Causal ordering
- msc thesis - tweaking the timing model of a gossip algorithm to collapse the size of the state space and allow model checking fairness properties
Practices:
Community:
- Have you tried rubbing a database on it? A conference about databases and things that are not databases yet.
Rambling:
- Business things:
- Unexplanations - untangling bad answers to good questions.
- What is a database?
- Small tech
- Frugality is non-linear
- Scaling down
- Imperative thinking and the making of sandwiches
- Pain we forgot - why teaching everyone to code is not enough.
- Local state is harmful
Cogsci:
- Quick and dirty review of Psychology of Programming Interest Group 1989-2015
- Contrast codes are an implementation detail
- Psychology vs the graphics pipeline
- Decision points and utility
Misc:
- It's ok to be afraid
- Canada's Express Entry program
- Looking for debugger
- Looking for more debugger
- texsearch - a search index for the >8m LaTeX equations in the Springer corpus
- scampy - conversations between scammers and a very stupid chat bot