hoytech::timer (2020-03-31)

Timer library for C++ with a flexible API.

LMDB++ (2019-11-26)

Lightning talk for C++ Toronto meetup about the C++17 bindings I'm maintaining for LMDB.

Measuring Small Capacitances (2018-04-19)

Discusses some advantages and disadvantages of a few different methods for measuring small-value capacitance and inductance, with a special focus on the resonance method. We measure a capacitor from first principles using nothing but a frequency counter, some passive components, and high-school algebra.

PID Control (2016-09-29)

An introduction to process control theory and description of the PID algorithm (Proportional, Integral, Derivative), along with a demo of an in-browser simulation I developed.

Update::Immutable (2016-09-29)

The reasons for and design of my perl module Update::Immutable and the companion javascript module update-immutable.

FM Demodulation with RTL-SDR (2015-09-29)

A walk-through of a simple FM demodulator I built for RTL-SDR: source code.

Session::Token (2015-09-29)

Secure, efficient, simple random token generation: Session::Token.

"Native" GUIs with perl and HTML (2015-08-26)

This talk is about making desktop apps with perl and valence.

HackRF: First Impressions (2015-07-29)

I just got a really cool device called the HackRF One and I talked about it at Toronto Perl Mongers.

Truncating Unicode (2015-04-29)

Suppose you need to truncate an arbitrary-length unicode string to fit into a fixed byte-length field.

Getting the most out of regular expressions (2014-07-30)

Perl's regular expression engine is one of the most advanced around. This talk will discuss some well-known and less-well-known modules that can help you take full advantage of regexps.

Blocking Operations, Exceptions, and Logging in Asynchronous Servers (2014-06-24)

This talk is about lessons learned while designing, building, and operating asynchronous servers. Instead of focusing on the concepts of async programming and the benefits it provides in terms of performance and determinism, we'll discuss the problems that inevitably come up.

Qstructs (2014-05-29)

Qstruct is a specification and perl module that implements a schema-based binary serialisation protocol.

Introduction to Digital Modulation (2013-11-17)

Some topics on digital modulation including CW, keying envelope shaping, minimum-shift keying, FSK, RTTY, PSK-31, varicode, QAM.

The 3.5 Billion Year Software Project (2013-06-15)

Worked on some hairy code-bases before? Want to learn about the hairiest of them all?

Vmtouch: Introduction to Virtual Memory (2012-12-04)

This is a somewhat out-of-date talk where I describe the high-level model of virtual memory and introduce vmtouch.

Introduction to Sorting Networks (2012-09-19)

Sorting networks are sorting algorithms where all steps are planned out ahead of time. They have applications in software performance, security, and hardware design.