Open-Source Projects

Links below are for projects I originally authored or contributed to heavily. The order is roughly reverse chronological by activity.

Newt DB
A hybrid database providing an object-oriented Python database and a documented-oriented database using PostgreSQL.
buildout
A framework for assembling applications, especially Python applications. This is similar in some ways to Java build tools, except that more emphasis is put on download and assembly than on building.
ZEO byteserver
A prototype fast implementation of ZEO using Rust.
ZEO
A client-server ZODB storage implementation.
ZODB
An ACID object-oriented database for Python.
transaction
Two-phase transaction manager for Python
BTrees
A persistent BTree implementation for ZODB.
Coordinating Independent Monitoring Agent Architecture (CIMAA)
A simple modular monitoring framework that builds on existing frameworks and services.
zkdeployment
A framework for deployment of networks of services to server clusters. Service networks are described by very high-level tree models.
generationalset
Sets that provide efficient synchronization between clients and servers, individually and in trees of sets.
zc.zk
High-level interface for registering and discovering services with ZooKeeper and for modeling service meta data stored in ZooKeeper nodes.
TwoTieredKanban

In progress: A two-tiered Kanban board that stored data in ZODB. This is an evolution of a two-tiered Kanban that used Asana as a back end.

A two-tiered Kanban board uses nested Kanban boards to model releases/features at a high-level and development at a lower level. It combines some of the best features of Scrum and Kanban.

zdaemon
A simple reliable process daemonizer.
bobo
A decoupled Web framework that's easy to learn and remember.
cloudformation
A small library for defining AWS CloudFormation stacks.
persona
In progress: WSGI middleware for authentication using Mozilla Persona
zc.resumelb
A decentralized dynamic content-aware load balancer for WSGI applications.
blobserver
A Scala caching server for ZODB BLOBs stored in Amazon S3
zope.security

A Python 4-part security architecture and framework.

The 4 parts of the architecture are authentication, authorization, protection and declaration.

The protection implementation used security proxies to provide highly robust protection that's similar to capability-based schemes.

zc.zodbwsgi
WSGI middleware for defining and managing ZODB databases and connections.
wsgirunner
A container for WSGI stacks defined using Paste Deployment
s3blobstorage
A ZODB storage implementation that gets blobs from the caching blob server rather than from a ZEO storage server.
zc.zservertracelog
A mechanism for collecting high-level events about web requests for performance monitoring and analysis. This is similar to but much more minimal that New Relic.
zc.recipe.deployment
Buildout plugins for deploying application on Unix-like systems.
zc.recipe.rhrc
Buildout plugin for deploying Red-Hat Linux run control scripts.
AsanaKanban
A two-tiered Kanban board that uses Asana as a back end.
zc.customdoctests
Doctest helpers for supporting non-Python languages like JavaScript and Shell scripts.
s3staticsync
A utility for synchronizing a tree of directories with S3. This was designed to be used with FTP servers.
docker-image-recipe
A zkdeployment plugin for managing applications deployed as Docker containers.
awsbillingmomnitor
A Nagios plugin that monitors AWS spending rates. This was needed because AWS cloudwatch only supports monitoring total expenses.
zkcron
A zkdeployment plugin for deploying cron jobs.
zc.dojo.NativeButton
A Dojo button widget implementation that foregoes the extra markup typical of Dojo widgets. It also illustrates the use of wsgidriver and htmlchecker for testing.
wsgidriver
A test fixture for running WSGI applications on client tests.
htmlchecker
A text fixture for comparing expected and actual generated HTML.
dojoform
A framework for generating possibly complex Dojo form user interfaces from high-level specifications expressed as JSON.
zc.zrs
Storage implementations that provide database replication for ZODB databases.
botokeyring
A helper for looking up AWS authentication credentials from a key ring. This was contributed to and is now part of boto.
syslogngzkdeployment
A zkdeployment plugin for deploying syslog-ng aggregated log file configurations.
persistent
An object persistence base class for ZODB.
zope.testing
A collection of test fixtures.
zope.interface
An interface implementation for Python, allowing the modeling of behavior independent of implementation.
zope.event
A (beautifully simple event bus for Python.
zc.recipe.filestorage
Buildout plugin for defining ZODB file storages.
zc.zodbrecipes
Buildout plugin for defining ZEO storage servers.
zc.metarecipe
Buildout framework for defining meta recipes, which are high-level recipes defined in terms of lower-level recipes.
zc.beforestorage
A ZODB storage implementation for providing a view of another storage at a point in time. This is most often used to provide an unchanging view of an otherwise changing storage for use as a demo-storage base.
zc.zlibstorage
A ZODB storage implementation that adds data compression.
zc.lockfile
A simple fcntl-based locking framework.
zc.zdaemonrecipe
A buildout plugin for deploying zdaemon deamonizers.
zc.ngi
An asynchronous network programming framework who's primary goal was to make networking applications much easier to test.
zc.monitor
A tiny embedded server providing a very simply plugin framework for service monitoring and control.
Zope 3
The Zope 3 project generated lots of individual packages, many of which I authored, contributed to, or supervised. I haven't listed all of them. Generally, all packaged in the zope namespave (zope.*) are Zope 3 projects.
Zope
A web-development platform/content-management system that utilized the ZODB to provide a rich through-the-web development environment.
Acquisition
An implementation of Environmental Acquisition ,which was an inheritance-like mechanism for sharing information in object hierarchies. This was implemented when Python had only reference-counting garbage collection, and so this relied on dynamically created access wrappers.
ExtensionClass
A meta-class implementation for Python before Python had user-customizable meta classes.
DocumentTemplate
One of the earliest templating languages for Python.