Project Templates



Rob's Awesome Python Template

This is the complete CookieCutter template for Python that can be used for any project.

Terraform Module Cookiecutter Project Logo
Terraform Module Cookiecutter

This CookieCutter Template generates Terraform Modules with all the best practices and tools.



tedivms-flask

This is my default Flask project template. It contains a complete docker environment, user management system, API system, Celery worker and tasks, and other important modules in addition to a Bootstrap based front end.

Favorites

TofuPy Project Logo
TofuPy

A Python library that makes it easy to build tools around OpenTofu and Terraform.



QuasiQueue

A MultiProcessing library for Python that makes it super easy to have long running MultiProcess jobs.



Paracelsus

Generate Entity Relationship Diagrams in Mermaid or Dot format for SQLAlchemy Databases.



Stash

This caching library supports multiple backends with a consistent frontend. It supports hierarchical keys, stampede and dogpile protection, automatic miss distribution, and more.



JShrink

This library minifies javascript using 100% pure PHP, allowing it to be integrated into applications with minimal work and maximum compatibility.

Applications

Nebula Project Logo
Nebula

Nebula provides a simplified dashboard that allows researchers to launch and manage their own servers on AWS.
It also provides SSH Key management, scheduled shutdowns, group controls, and a variety of other features.

GitConsensus Project Logo
GitConsensus

GitConsensus makes it possible to automate project governance on GitHub by using “reactions” as a voting mechanism to automatically merge (or close) pull requests.

GithubOrganizer Project Logo
GithubOrganizer

GithubOrganizer applies settings to teams, repositories, and issues- automatically protecting branches, applying labels, and assigning issues to projects.

BadThings Slack Bot Project Logo
BadThings Slack Bot

The Bad Things Daily Twitter account provides scenarios for tabletop disaster planning. This application sends random scenarios right to Slack.

League of Automated Nations Project Logo
League of Automated Nations

This web application is an alliance tracker for a programming game called Screeps. It maintains rankings as well as an interactive map showing which rooms are claimed by different players and alliances.



GitStars

A Github API aimed at Front End use. This API uses extensive caching and authenticated APIs to work around Github API Ratelimiting. It drives the Github Star Badges on my portfolio site.



ec2details

This service provides an API with metadata (including pricing) for every AWS EC2 instance type.
It processes the AWS Bulk API to multiple times a day to always provide the most up to date information.

Multi-Py

Multi-Py is a collection of python images with amd64, arm64, and arm v7 support.
python-celery Project Logo
python-celery

Multiarchitecture Docker Containers for Python with Celery

python-uvicorn Project Logo
python-uvicorn

Multiarchitecture Docker Containers for Python with Uvicorn

python-gunicorn Project Logo
python-gunicorn

Multiarchitecture Docker Containers for Python with Gunicorn

python-gunicorn-uvicorn Project Logo
python-gunicorn-uvicorn

Multiarchitecture Docker Containers for Python using Gunicorn and Uvicorn

python-oso Project Logo
python-oso

Multiarchitecture Docker Containers for Python with OSO

Python Development

These tools were specifically designed to make development with Python easier.


Python Lockfile Update

A Github Action that uses pip-tools to update a project's requirements.txt files using a Pull Request.

Digital Art

Game of Life Project Logo
Game of Life

A Conway's Game of Life implimentation with additional rules and variants that add colors, written in javascript using canvas.

Formations Project Logo
Formations

An experiment in digital movement.



Rob's Wall Clock

A hardware project building an internet enabled clock with a colorful variant of Conway's Game of Life as a background.

Good Guy Warren Project Logo
Good Guy Warren

An Elizabeth Warren Meme Collection. Memes are built using JS Canvas.

Libraries



github3apps.py

This library is a wrapper around the github3.py library, giving it the ability to build GitHub Applications.



Fetch

This library wraps the native PHP IMAP libraries around a modern object orientated interface.

CLIs

GitConsensus CLI Project Logo
GitConsensus CLI

A standalone python application and library for managing Github PRs using Reactions as a voting mechanism.



JSONSmash

A node cli shell that lets users browse large json objects like they would a filesystem.



SecretCLI

A simple CLI tool that makes reading and writing to the AWS Secrets Manager super easy.



URLParser

Another really simple tool, the URLParser takes in various URIs and returns back the piece you're looking for; such as the scheme, domain, or port.



DapperData

An opinionated file formatter for JSON and YAML that can be used to fix formatting or integrated into the test suite to ensure files are formatted appropriately.

Terraform

terraform-mastodon-provider Project Logo
terraform-mastodon-provider

A Terraform provider for posting to Mastodon servers.

terraform-aws-nat Project Logo
terraform-aws-nat

This module launches a NAT Instance on AWS for cheap and efficient private subnet internet access.

terraform-aws-dev-vpn Project Logo
terraform-aws-dev-vpn

This module creates a user specific AWS VPN and drops an OpenVPN configuration file to the local system.

terraform-aws-lambda Project Logo
terraform-aws-lambda

This module provides a variety of ways to deploy Lambda functions on AWS.

terraform-general-cloudinit Project Logo
terraform-general-cloudinit

This module is a wrapper around the cloudinit resource that exposes cloud config settings directly.

Puppet

psad Project Logo
psad

This module controls the Port Scan Active Defense program, providing active response to block port scans.

rsnapshot Project Logo
rsnapshot

This advanced rsnapshot module makes backing up servers trivial. SSH keys and accounts are created, as are wrapper scripts around sudo to prevent opening the root account to ssh.

ghebackups Project Logo
ghebackups

This module turns a server into a Github Enterprise backup server. It creates the relevant accounts, adds cronjobs, and manages ssh options to ensure that backups occur.

hieratic Project Logo
hieratic

This module makes all of the native datatypes present in Puppet accessible directly using Hiera in order to make testing and prototyping faster.

inspiricd Project Logo
inspiricd

This module allows IRC networks and servers to be defined using inspircd.

iscsi Project Logo
iscsi

This module makes it possible to define iscsi connections in Puppet. This makes it easier to work with AWS Storage Gateways and other iscsi devices.

Misc



Jekyll Portfolio

The theme behind this very portfolio is available for you to use to build your own portfolio site with Jekyll and Github Pages.



Slack Proxy

This simple to deploy application allows developers to send notifications to slack without having to manage webhooks directly themselves.



NLM Scrubber Assist

The NLM Scrubber is a package released by the National Library of Medicine to remove PHI from medical documents. This project wraps that in a docker container and provides python and bash libraries.



HeadedHome

Using an IOT Button as a trigger, this Lambda function estimates my time of getting home from work based off of current public transit times and sends a text to both myself and my partner with that ETA.



syntaxhighlighter_yaml

This Wordpress Plugin adds YAML Syntax Highlighting.

Screeps

Screeps is an an open-source sandbox MMO RTS game for programmers, wherein the core mechanic is programming your units' AI.
Quorum Project Logo
Quorum

The Quorum project is an experiment that uses Screeps, GitConsensus, and the ScreepsAutoSpawner to see what happens when the community has to vote to accept new pull requests- and any vote that passes gets pulled. It initially started as being written primarily by me and overtime has gotten more community involvement.

ScreepsAutoSpawner Project Logo
ScreepsAutoSpawner

This program checks the Screeps world to see if the player is still alive, and if not it automatically respawns them into the world. This requires scanning the world to find appropriate locations, scoring them, and then placing the first spawn automatically in the selected room.

ScreepsDashboard Project Logo
ScreepsDashboard

This dashboard was created for the Quorum project and lets the public view all of the otherwise hidden Screeps player information. This application exposed wallet, memory, segment, and console data (which gets stored in ElasticSearch to allow querying of historic data).



python-screeps

This library was the first third party library for the Screeps API and has been responsible for spawning a large third party ecosystem.



screeps_console

This ncurses based terminal application provides a standalone console for the Screeps world.

screeps_notify Project Logo
screeps_notify

This bridges the Screeps world with the real world by allowing users to send notifications programmatically from in game to a number of providers, including Text Messages and Slack Notifications.

screeps-stats Project Logo
screeps-stats

Using a reverse engineered API this project takes data saved inside the game “Screeps”, transforms it and injects it into elasticsearch.

Spawn1 Project Logo
Spawn1

This is a mobile client for the Screeps game built using NativeScript. It has a built in messenger, profiles of different alliances, a websocket based console for interacting with the system, and other informational pages such as the wallet and market order pages.

screepsmod-konami Project Logo
screepsmod-konami

Konami is a Screeps Server mod that changes the world settings to allow AI to grow significantly faster. This makes development easier as longer term issues will show up in smaller amounts of time.

screeps-backup Project Logo
screeps-backup

This tool takes a backup of an existing account's memory and segments and provides the ability to restore from those backups.