A partial list of software I've developed.
Miscellaneous C++ classes and programs, this library has been used in nearly all of my projects of the last 20 years. Dwm::IO is the main thrust of the package. It also includes a simple unit testing framework, a FreeBSD package manifest utility, a replacement for 'what' named "dwmwhat", some networking classes, and a "mcping" program for pinging hosts with ICMP or TCP.
A C++ DNS resolver library. Originally developed in the year 2000 as just 'Dns', I recently revived and refactored to make it easier to add new resource record types and added EDNS support and TCP fallback. Today it's an alpha-quality release, but there's a decent set of unit tests and I'll get to the remaining to-dos soonish.
Library documentation can be found here.
A small suite of tools implementing RDAP, with a secure caching server that keeps country codes per IPv4 prefix. The server automatically updates entries more than 90 days old, and can be bootstrapped from ipdeny.com or GeoLite2 data. Secured using libDwmAuth. Used by mcblock, this package is targetted at IDS/IPS applications that wish to map IPv4 addresses to country codes.
Library documentation can be found here. Manpages for the server are at dwmrdapd(8) and dwmrdapd.conf(5). Bootstrap programs for the server data include geolite2db(1) and ipdeny2db(1). A simple client of the server, dwmrdapc(1), is included in the package.
Automated pf (packet filter) table manipulation and TCP connection termination in real time. Applies per-country, per-table policy. This has relieved me of many hours of system administration work per month; those attempting to break in via ssh, IMAP/TLS and http are thwarted quickly, and unlike most other solutions, I have control over the prefix width and duration of blocking via policy configuration so my pf tables don't explode in size. Client/server using libDwmAuth, which allows all of my machines to contribute to the security of my home network.
A C++ library providing a simplified interface for authentication and encryption. Uses ECDH for initial key exchange, 2048-bit RSA keys and signatures for authentication, and AES128 for encryption. Used by dwmrdap, mcblock and mcpigdo.
A garage door opener based on a Raspberry Pi running FreeBSD, a custom hardware HAT I designed, magnetic switches, rotary encoders, pushbuttons and LEDs. Secured with libDwmAuth, uses multicast for status, and has a secure web page (using Wt and C++) to check the status and open/close my garage doors. I developed a FreeBSD device driver to handle the rotary encoders. It's been running since August 21, 2016 with no issues (and zero downtime thanks to being powered via PoE from a switch that is on UPS).
There are some personal blog entries on the project at mcpigdo blog entries. There's a snapshot of the HAT layout at layout1_0.png and random hardware photos in my gallery here. There are manpages for mcpigdod(8), mcpigdoc(1) and mcpigdowatch(1). Documentation for the tiny client library is here.
There is also a Qt application for the desktop, and an iOS app. The Qt application and the web application look very similar, as seen in the video of both on my desktop below. I have since fixed the day/night scene handling to the Qt application.
My replacement for the obsoleted gallery3 software. All C++, this was my first 'big' project using Wt. Supports drag and drop upload, drag-and-drop organizing, photo captioning, automatic photo orientation and manual photo rotation. Visible at rfdm.com. A video below shows the creation of a new album and drag-and-drop upload of 5 photos from Aperture. Since the server is on my local LAN, it's very fast. Much faster and more reliable than gallery3 uploads, and the drag-and-drop can accept URI sources (so you can drag and drop a photo from a browser window, for example).