index › projects

symlink ⁄ projects

internet relay chat

I've spent large amounts of time on IRC. I contribute to the IRCv3 Working Group, which aims to extend the 30-year-old protocol with modern features.

At the same time, I collect information about the past and present of IRC. I have a dedicated IRC documentation repository where I collect documentation about the software & the protocol – including the extension list and the family tree of IRC servers.

My writings page has a few articles documenting various bits and pieces I've written myself.

The nullroute mirrors project has an archive of various old IRC software and dead FTP sites.

I've written a few miscellaneous scripts for Irssi.

Also, some scripts for the Eggdrop bot: g_cap.tcl for authenticating to SASL-enabled networks, and g_ts6.tcl implementing the TS6 server-server protocol because why the hell not?

interesting hacks

I write a lot of miscellaneous scripts. The kinda useful ones are below. The somewhat useful ones are in my code.git repository – mostly limited to tools I carry around. The tools I don't carry around are in the hacks repo. And then there's ~/bin full of random junk.

dbus-name – list and monitor DBus service names

dh – do a D-H key exchange over IRC

dzenify – use dzen2 as a libnotify service

getpaste – view Zerobin posts on the command line

mpris – control MPRISv2-compatible music players

kc – juggle multiple Kerberos ccaches

pklist – dump a parsable list of Kerberos 5 tickets – useful in shell scripts

rwho – maintains a centralized list of user login sessions (kinda like who/finger)

ssh-publickeyd – an RFC 4819 subsystem for OpenSSH servers; used by SecureCRT's "Public Key Assistant" (requires

treeify – format any path-like input as a tree

lib/ – parse OpenSSH's authorized_keys files, with support for options and future key types

lib/ – parse S-expressions in Python (based on Rivest's original C code). This can parse the private keys stored by OTR.

All code released under the MIT Expat license, unless noted otherwise.