Hi, I’m Tim! I’m known online as “Blob”, because I chose the username blob8108 aged twelve.
My interests include parsing, compilers, and the future of programming languages.
I like trains.
Some things I’ve made
tosh is a text-based Scratch project editor. It implements a new text-based programming language, entirely compatible with Scratch, and uses advanced parsing techniques to do away with most parentheses. Read the guide to get started, or read about its development.
scratchblocks is a tool for making screenshots of Scratch programs. The Raspberry Pi Foundation use it to write Code Club projects, and they supported my work to update it to support Scratch 3.0. It’s also used on the Scratch Forums and the Scratch Wiki.
Kurt was my first open-source project: a Python library for importing and exporting Scratch projects. I wrote it so I could generate Scratch projects by writing Python code, but a PhD student from UCSB used it for static analysis of Scratch projects, which means that I have one citation to my name! I gave a talk on Kurt at the 2013 Scratch conference in Barcelona.
I used to help maintain Nearley, a parser for node.js using the Earley algorithm. I rewrote the core algorithm to make it many times faster.
For my final-year dissertation, I implemented a tracing just-in-time compiler for a toy interpreted programming language I wrote.