I've had a lot of ideas over the years. Lucky as I am to be a programmer, I've been able to realize many of them in the form of open-source projects. Looking back, I'm pleased with the conversion ratio, and I'm more sure than ever that the best is yet to come.
In the meantime, here is a summary and status for each of my current projects, ordered by some combination of popularity, age, and personal utility. While the most up-to-date information is on my GitHub repositories page, included here are details about the background and current state of each project.
Don't mind the odd names; you don't need to be a geologist to appreciate all this free software!
Hyperlink is now part of the Hyper project, but derives from Boltons and Twisted, which now depends on Hyperlink for its URL functionality. Hyperlink is tested against Python 2.7, 3.4, 3.5, 3.6, and PyPy.
Full documentation is available on Read the Docs.
Boltons is an expansive collection of 160+ Python types and functions I've badly missed from the Python standard library. It is also my most popular project, and certainly the most mature in terms of being documented, tested, and officially released.
Ashes is a small and scrutable HTML templating library with a practical, language-agnostic featureset. Ashes achieves this by implementing virtually all of the Dust templating language in a single, easily-embeddable Python file. It is tested on Python 2 and 3 and used in production by countless projects, including Clastic. Documentation is underway, and I usually refer people to the documentation of the complementary frontend implementation.
Clastic is a web site and service microframework built for high development productivity and low runtime overhead. By eschewing global state, Clastic is easy to reason about and run with all concurrency models. It also uses Werkzeug's web primitives, so it's well-documented and widely understood.
I created Clastic in response to several shortcomings I encountered with Django and Flask. I used it to build ETAVTA and some Hatnote projects, and gradually developers at PayPal started using it, too. Billions of requests later it continues to fulfill its primary goals without issue and unlike any other service framework. There are still several TODO items, but seeing as it works so well, development is occasional, at least until I get the time to write up a public release announcement.
SuPPort is PayPal's Python infrastructure minus all the PayPalisms. I founded PayPal's Python team in 2011 and open-sourced SuPPort in 2015. Over those 4 years, SuPPort's architecture evolved to achieve six nines reliability while serving billions of production-critical PayPal requests.
SuPPort's enterprise elements may make it heavyweight for many projects, but I still refer to and recommend it as a rich resource of codified networking and robustness knowledge. It combines and builds on several of the other projects listed on this page.
Lithoxyl is a full-featured instrumentation framework encompassing structured logging and statistical profiling.
Too often application instrumentation is forgotten completely or relegated to the afterthought of adding a few hasty logging statements. Lithoxyl aims to fix that by being lightweight and useful from the first stages of development through to deployment.
Lithoxyl started after discovering major inefficiencies in Python's built-in logging module, a hasty port of Java's Log4J. Rather than engineering a better implementation of an outdated design, Lithoxyl is an inherently more powerful system that is lower-overhead and higher-performance by nature.
Lithoxyl is used by several of my projects and documentation is underway.
Chert is the static site generation system designed to fit the workflow of modern digital written media. In addition to the standard Markdown/YAML syntax and RSS/Atom feeds, Chert supports automatic table of contents generation and structured list entry formats. Eat your heart out, Buzzfeed.
Unlike most othe projects on this page, I did not intend Chert to be particularly innovative or generally useful. That said, a lot of people showed interest, maybe it was the colophon?
Strata is a holistic configuration framework. Strata came into existence to fill the need of complex applications that accept inputs from a variety of sources and need to resolve that into a consistent, predictable configuration. For example, even basic applications read: command line arguments, configuration file, and environment variables. On top of that, there's almost always a default value for a particular field.
Strata solves this with "layers", each one providing variables from that domain. This way precedence is always clear. For instance, a developer can decide that command line arguments always override configuration file values, and when neither exists, there is a fallback default value. Once Strata performs the configuration load procedure, the resulting configuration object keeps track of which values came from where.
I'm still very much in love with the idea of Strata and would love to pick up work on it again. If you'd like to participate, please get in touch, otherwise it will have to wait for some other projects to process through the queue.
Cronfed is a tool for monitoring basic batch jobs, or any other cron-based scheduled commands. It achieves this by parsing a given mailbox and turning it into an RSS feed, which can then be monitored with your browser, feedreader or other RSS-compatible service (such as IFTTT).
I use it literally every day to monitor my Hatnote projects. Special thanks to Mark Williams for all his help on this.
ETAVTA is my answer to the Valley Transit Authority's (VTA) complicated light rail schedule and Google Maps' inaccurate estimates. It computes a full weeklong schedule for all trains and tells you the next five trains going north and south at any of the 62 VTA stations. It's pretty simple, and serves as the earliest example of how to use Clastic.
Hematite is a set of HTTP primitives for server and client use. It's tough creating a symmetrical abstraction that is practical, so while I use it in some projects, it's not production-ready yet.
Tectonic is a process management and IPC framework built on nothing but pure Python, pure POSIX, and pure potential. It's in very early phases, pending work queue clearance.
Developed for research into the Python software community, Picritic scans the Python Package Index (PyPI) and computes statistics ostensibly used to scrutinize package quality. Hence, Picritic is a Package Index Critic.
Originally created as platform for Python Does What?! (PDW), PythonDoesBlog is a one-of-a-kind blogging engine, specifically for blogs about Python.
Posts are written as Python modules. Text is ReStructuredText in docstrings, and the remainder of the code is highlighted. There was also special docstring handling to make sure that the module executed as expected before publishing.
PythonDoesBlog still works, and its partial results are still visible at pythondoeswhat.com, but as the PDW topics became more complex, we were writing cases that would crash the interpreter and do other bad things that PythonDoesBlog could never support.
I still enjoy scoffing at Python static site generators (including this one), "Oh, your blog post is rendered with Python? That's cool. My blog posts are Python."
These are projects close to my heart, projects I'm proud to have helped with.