Hi!

Welcome to my 1994-style homepage.

Résumé

Software

Various bits of open-source software I've created or contributed to over the years.

prop
An ionospheric propagation prediction tool for HF radio, combining the IRI2016 physics-based model with realtime ionosonde data and Gaussian Process interpolation, employing a simple ray-tracing engine to predict usable frequencies. As far as I know, it's the only assimilative model of its type that is free and open-source. Hosted at prop.kc2g.com.
kc2g-flex-tools
A suite of tools for making the FlexRadio Flex-6000 series transceivers useful on Linux. Includes nDAX, an interface between the sent and received audio and PulseAudio; nCAT, an interface between the SmartSDR API and hamlib; and other utilities.
HAProxy
Authored the bounded-load consistent hashing feature (hash‑balance‑factor option used with hash‑type consistent), based on Consistent Hashing with Bounded Loads (Mirrokni et al. 2018).
CLI::Osprey
A Perl module for building nice OO command-line applications, with sub-commands, option processing, and automatic generation of help text and man pages. Inspired by MooX::Options and MooX::Cmd (which are themselves descendents of MooseX::Getopt and MooseX::App::Cmd), but unlike the above, it's pure-Perl which allows it to be used in easily-distributed "fatpack" apps.
Syntax::Keyword::RawQuote
A very small Perl module using the pluggable keyword API to create a "raw quote" operator, akin to Python r"" strings, C# triple-quoted strings, or Go backquoted strings.
Unicode::CaseFold
Adds Unicode case folding via the fc operator to perls that lack it. The fc operator is part of perl itself since version 5.16, but by using this module, it's made available in any perl from version 5.8 onwards. Contains both pure-perl and XS versions.
Borkbot
Yet another Perl IRC bot. Based on an old codebase called Sporksbot, but updated to be fully async (using Net::Async::IRC, Mojo::Pg, Mojo::UserAgent, etc.) and with a few other bells and whistles.

Talks and Papers

I've given a number of talks over the years, mostly at technical conferences, but occasionally scientific ones. Here are a few of them.

2022-07-21
Development of an Open-Source IRI-based Nowcasting Tool for Ionospheric Electron Density and HF Propagation - 44th COSPAR Aseembly, Athens, Greece.
2019-11-13
HAProxy Load Balancing at Vimeo - HAProxyConf, Amsterdam, Netherlands.
2018-08-17
Fatpack it! Full-featured Perl apps in a single file
2017-10-03
Load Balancing, Consistent Hashing, and Locality - Velocity NYC, New York, NY.
2017-04-18
Practical Load Balancing with Consistent Hashing - Google Algorithms Seminar, New York, NY.
2016-12-19
Improving Load Balancing With a New Consistent Hashing Algorithm - Vimeo Engineering Blog
2015-01-14
Marpa - FLOSS Weekly Episode 321 with Randal Schwartz and Gareth Greenaway.
2014-06-24
Parsing Made Easyish with Marpa - YAPC::NA 2014, Orlando, FL.
2013-10-04
StatsD and You - Easy Application Metrics - Pittsburgh Perl Workshop 2013, Pittsburgh, PA.
2013-06-05
StatsD and You - Easy Application Metrics - YAPC::NA 2013, Austin, TX.
2013-01-12
Parsing Made Easyish with Marpa - Perl Oasis 2013, Orlando, FL.
2012-09-26
Web::Simple: A Perl Web Nano-Framework - Shutterstock tech talk, New York, NY.
2012-06-14
Web::Simple: A Perl Web Nano-Framework - YAPC::NA 2012, Madison, WI.
2012-06-12
Arduino-based GPS-disciplined NTP server - YAPC::NA 2012 Hardware Hackathon, Madison, WI.
2007-06-27
Dynamic Website Translation with Catalyst and Petal - YAPC::NA 2007, Houston, TX.