Originally from North-East England. Studied Physics and Philosophy at
Oxford. Became a software engineer and moved to Switzerland. I
now live in Tokyo and work for Tsuru Capital. I'm a Haskeller who
also writes Rust.
- Aikido: I'm Aikikai 1k. I practise at Azabu Dojo.
- Go: I'm a 9k at the Nihon Ki-in. I also play on OGS.
- Eisa: I perform ōdaiko and shishi-mai with Shōryū
- Sanshin: I'm learning (slowly) to play the sanshin.
- Choir: I sing with Tokyo Embassy Choir and the Tokyo Chamber
- Scottish dance: I'm a member of the RSCDS Tokai branch and JSS.
- Cooking: My recipe book.
- Misc: Skiing, hiking, camping, SCUBA diving.
A server which streams files to clients as they're appended to.
It's like tail -f in server form. You just start it in some directory, and the
contents of that directory become available for streaming. The protocol is so
simple that clients don't require a special library to use it. It has high
throughput, low latency, and scales to lots of clients.
Repay is a simple tool which computes the most efficient way for everyone to
repay their debts. You feed it a list of historical transactions, and it spits
out a minimal list of transactions which will make everyone square.
Repay implements two algorithms for building a repayment plan: an "exact mode",
which is guaranteed to give an optimal plan, but which is O(3^n) in the number
of people involved; and an "approximate mode" which scales better but may
return a non-optimal plan.
- An MR importer which imports MRs from gitlab into your local
repo in the form of a git-series. It lets you see the history of the
MR; this means that when you return to an MR which you reviewed earlier, you
can see exactly what has changed since you last looked at it with
git range-diff. It also makes merging accepted MRs easier, by pre-filling the
series description with trailers such as "Reviewed-by".
- A tool which shows the number of lines which were changed or
removed since a given commit, grouped by their former blamee.
- A work-in-progress tool for enforcing code review requirements.
- A bunch of other stuff for working with git repos.
- A library for reading pcap-ng files. It's zero-copy, and has a nice
- A mutex where waiting threads can specify a priority, so that
high-priority threads get woken up first.
- A panic-monitor which allows threads to block until any other thread
- An easy-to-use benchmarking library.
- An spmc channel which lets the sender know when the workers are
- A bitset represented by a u64.
- Maybe some other things?