Code

I’m a long-time user of the R programming language and delight in writing very, very fast code (I promise this isn’t a contradiction in terms). I also write a lot of C++, Python and Rust.

All my code lives on GitHub; open source highlights include:

  • urltools, the standard R package for URL decoding, encoding, value extraction and manipulation. urltools arose out of my frustration with the speed and reliability of base R’s URL functions, and is based almost entirely on C++ with an R wrapper, allowing it to both conveniently slot into R programmers’ workflows and clock in at between 60 and 700 times faster than pre-existing R functionality.

  • rgeolocate, an integration with the MaxMind C API and various online sources of IP geolocation data, rgeolocate was created in collaboration with Drew Schmidt and features contributions from David Robinson. It provides fast and platform-independent IP geolocation from within the R programming language, allowing you to retrieve everything from an IP’s country of origin to its timezone.

  • reconstructr, which provides speedy session reconstruction algorithms in a tidy format.

Other contributions include a human names parser, the standard implementation of Google’s Open Location Code standard, and a multitude of API clients including those for MediaWiki, Wikidata and the Wikimedia pageviews API.