Software, Scripts, and Configuration Files

This page only includes software I have written or contributed to in a personal capacity. For software related to my research and teaching, please see the Community Data Science Gitea (see the sidebar for details) and my academic page for additional links and resources.

Most of my free software contributions go into large projects like Debian and Ubuntu. The list below has links to some of the smaller things I've created. These are mostly configuration files, command-line utilities, and one-off projects I've published over the years. Almost everything lives in one of the three places listed in the sidebar.

Configs and Scripts

  • mako_dotfiles — my personal configuration files (e.g., sway, waybar, gammastep, mutt/neomutt, emacs, zsh, vim, tmux, notmuch, offlineimap, mbsync, procmail, foot, and git, among others). I've been building and tweaking some of these for more than 20 years. The README documents my mail setup in some detail and explains the public/private branch arrangement I use to keep credentials and other private content out of the public branch.
  • mako_scripts — a collection of unrelated scripts, many of which I use daily.
  • calendar_tools — command-line tools (many AI-powered) for managing and adding things to calendars and filling out those availability polls (e.g., when2meet, whenisgood, etc.).
  • mediawiki_client_tools — a set of command-line tools for working with MediaWiki installations as a client over the API.
  • sway_display_management_scripts — Python scripts for managing external displays under sway and Wayland. Includes disp and send_workspaces_to_displays, both referenced from my sway configuration.
  • attachcheck — a small sendmail wrapper that detects when an outgoing email mentions an attachment in the body but doesn't actually include one, and warns you before the message is sent.
  • org-mutt — my fork of Stefano Zacchiroli's org-mutt, a set of tools that connect mutt/neomutt to Emacs org-mode.
  • publish-nextcloud — a small helper for publishing files to a Nextcloud instance.
  • urldefense_decoder — decoders for Proofpoint and similar mangled-URL wrappers that get added to links in email passing through some institutional mail systems. I use it as a mutt display_filter.
  • gmail-maildir-counter — a small Python and R utility for counting messages in a Gmail-derived Maildir tree. I published it so that folks could replicate the analysis in my popular blog post Google has most of my email because it has all of yours.
  • acawiki-csl — a Zotero CSL style sheet for exporting citations directly into AcaWiki templates.

TeX Templates

  • cdsc_tex — a collection of LaTeX templates and helper scripts that I use for papers, letters, and other documents.
  • beamer-mako — my LaTeX Beamer template and supporting scripts for slides. It produces fully tagged, accessible PDFs.
  • uw_tex_letterhead — LaTeX templates for UW letterhead and envelopes.
  • mit-stationery-latex — LaTeX templates for MIT letterhead and envelopes (not updated since I left MIT in 2013).

Scuttle

Older projects

Older projects that I am no longer actively maintaining. I would happily transfer any of the software here to anyone interested in picking it up:

  • backwash — a system for queueing offline edits and sending them back to Wikipedia when a connection is available.
  • Selectricity and RubyVote — an election-methods library in Ruby and a set of web, phone, and XML-RPC interfaces over it that make a wide range of voting systems usable in everyday situations.
  • YouRule — a small web application that generates custom on-screen rulers. Originally written for the OLPC XO-1.
  • Iron Blogger — tooling for the original Iron Blogger group-accountability project for bloggers.
  • Extension:EditImage — a MediaWiki extension that supports simple in-browser image editing.
  • kuro5hin_to_wordpress — a script to import Kuro5hin diaries into a WordPress blog.
  • PyBlosxom Hacks and Plugins — a collection of plugins and patches I wrote for PyBlosxom, the weblog system I used for copyrighteous for many years before switching to WordPress.
  • aub — an ancient Perl 4 program (originally written by somebody else) that Assembles Usenet Binaries.
  • CALF (the Collaboratively Administered Lister and Filer) — a Perl web application for collaboratively administering and organizing data, originally used by the now-defunct DemocracyGroups.org project.