Will Donnelly

About Me

I'm a generalist Software and Electrical Engineer with experience ranging from circuit design/layout and microcontroller firmware, to backend servers and JavaScript frontends. Currently working as a Software Engineer at Google.

I have a GitHub but it's been dormant since I joined Google. I can be reached at wgd@willdonnelly.net.

Posts

25 October 2020 · Compact Representation of Church-Encoded Data
A discussion of the most efficient ways of encoding constant data in the Lambda Calculus, where "efficiency" is measured in bits-per-bit when terms are serialized to the Binary Lambda Calculus encoding.

14 August 2019 · PointerLock Input Relay
A useful bit of code that encapsulates some of the busywork of managing the PointerLock API and event listeners to collect mouse+keyboard input for HTML5 video game type uses.

27 August 2018 · Web Browser Language Shims
A short note on how to add custom script element types via a bit of JavaScript which will fetch and execute the code on page load.

8 July 2016 · On Decentralizing Cloud Storage
Barely coherent ramblings about how cloud storage of bulk data could be done in a decentralized marketplace.

2 October 2010 · Debugging an STM32 via SWD with Bus Pirate
A brief development log of pirate-swd, a weekend-project implementation of the Serial Wire protocol using Dangerous Prototypes Bus Pirate for hardware interfacing. It's come in handy a couple of times when I needed to program a microcontroller and the JTAG scan chain was busted.

14 March 2009 · Detecting Scheme Implementations at Runtime
For a while I toyed with writing a portable standard library for a handful of common implementations of R5RS Scheme. This obviously would require some way to determine what platform you're running on, so I came up with a moderately-clever solution which used unspecified corners of the R5RS specification to "fingerprint" the implementation it was running on.

14 October 2009 · Brian’s Purely Functional Brain
Brian's Brain is a fun little cellular automaton. I wrote an implementation in Haskell because that was the sort of thing I did in college.

4 September 2008 · A Scheme Syntax-Rules Primer
I wrote a basic guide-by-examples of Scheme syntax-rules macro patterns.