Skip to content
Avatar

Sponsors

@pyrodogg
@the-eater

Organizations

@tedious @github-beta @screepers @LeagueOfAutomatedNations @ScreepsMods @gitconsensus @multi-py @scp-data
Block or Report

Block or report tedivm

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Add an optional note:
Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
tedivm/README.md

Robert Hafner's Projects

Here's a selection of projects that I've open sourced over the years. There's a variety of applications, infrastructure as code modules, libraries from various languages, and even some game development.

These 54 repositories have 686 forks, 3070 stars, 230 watchers, and 5088 commits.

My professional history can be found on LinkedIn.

Applications

  • Nebula 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 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 GithubOrganizer - GithubOrganizer applies settings to teams, repositories, and issues- automatically protecting branches, applying labels, and assigning issues to projects.
  • BadThings Slack Bot 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 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 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 this very site.
  • ec2details 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 python-celery - Multiarchitecture Docker Containers for Python with Celery
  • python-uvicorn python-uvicorn - Multiarchitecture Docker Containers for Python with Uvicorn
  • python-gunicorn python-gunicorn - Multiarchitecture Docker Containers for Python with Gunicorn
  • python-gunicorn-uvicorn python-gunicorn-uvicorn - Multiarchitecture Docker Containers for Python using Gunicorn and Uvicorn
  • python-oso python-oso - Multiarchitecture Docker Containers for Python with OSO

Python Development

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

  • Rob's Awesome Python Template Rob's Awesome Python Template - This is the complete CookieCutter template for Python that can be used for any project.
  • tedivms-flask 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.
  • Python Lockfile Update 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 Game of Life - A Game of Life implimentation with additional rules and varients that add colors, written in javascript using canvas.
  • Formations Formations - An experiment in digital movement.
  • Good Guy Warren Good Guy Warren - An Elizabeth Warren Meme Collection. Memes are built using JS Canvas.

Libraries

  • Stash 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 JShrink - This library minifies javascript using 100% pure PHP, allowing it to be integrated into applications with minimal work and maximum compatibility.
  • github3apps.py github3apps.py - This library is a wrapper around the github3.py library, giving it the ability to build GitHub Applications.
  • Fetch Fetch - This library wraps the native PHP IMAP libraries around a modern object orientated interface.
  • QuasiQueue QuasiQueue - A MultiProcessing library for Python that makes it super easy to have long running MultiProcess jobs.

CLIs

  • GitConsensus CLI GitConsensus CLI - A standalone python application and library for managing Github PRs using Reactions as a voting mechanism.
  • JSONSmash JSONSmash - A node cli shell that lets users browse large json objects like they would a filesystem.
  • SecretCLI SecretCLI - A simple CLI tool that makes reading and writing to the AWS Secrets Manager super easy.
  • URLParser 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 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-aws-nat terraform-aws-nat - This module launches a NAT Instance on AWS for cheap and efficient private subnet internet access.
  • terraform-aws-dev-vpn 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 terraform-aws-lambda - This module provides a variety of ways to deploy Lambda functions on AWS.
  • terraform-general-cloudinit terraform-general-cloudinit - This module is a wrapper around the cloudinit resource that exposes cloud config settings directly.
  • Terraformer Terraformer - A Python library for running Terraform programmatically, including plan review and advanced log processing.

Puppet

  • psad psad - This module controls the Port Scan Active Defense program, providing active response to block port scans.
  • rsnapshot 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 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 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 inspiricd - This module allows IRC networks and servers to be defined using inspircd.
  • iscsi 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 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 Slack Proxy - This simple to deploy application allows developers to send notifications to slack without having to manage webhooks directly themselves.
  • NLM Scrubber Assist 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 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 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 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 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 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 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 screeps_console - This ncurses based terminal application provides a standalone console for the Screeps world.
  • screeps_notify 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 screeps-stats - Using a reverse engineered API this project takes data saved inside the game “Screeps”, transforms it and injects it into elasticsearch.
  • Spawn1 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 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 screeps-backup - This tool takes a backup of an existing account's memory and segments and provides the ability to restore from those backups.

Pinned

  1. The place to keep your cache.

    PHP 945 137

  2. Javascript Minifier built in PHP

    PHP 687 152

  3. An IMAP library for PHP

    PHP 501 158

  4. Automate Open Source Governance

    Python 53 13

  5. A Highly Configurable Python Project Template

    Python 7 1

  6. tedivms-flask Public template

    Flask starter app with celery, bootstrap, and docker environment

    CSS 193 25

2,261 contributions in the last year

No contributions on Sunday, March 6, 2022 10 contributions on Monday, March 7, 2022 No contributions on Tuesday, March 8, 2022 5 contributions on Wednesday, March 9, 2022 No contributions on Thursday, March 10, 2022 2 contributions on Friday, March 11, 2022 No contributions on Saturday, March 12, 2022 No contributions on Sunday, March 13, 2022 No contributions on Monday, March 14, 2022 1 contribution on Tuesday, March 15, 2022 No contributions on Wednesday, March 16, 2022 No contributions on Thursday, March 17, 2022 No contributions on Friday, March 18, 2022 No contributions on Saturday, March 19, 2022 7 contributions on Sunday, March 20, 2022 10 contributions on Monday, March 21, 2022 9 contributions on Tuesday, March 22, 2022 6 contributions on Wednesday, March 23, 2022 6 contributions on Thursday, March 24, 2022 No contributions on Friday, March 25, 2022 No contributions on Saturday, March 26, 2022 No contributions on Sunday, March 27, 2022 No contributions on Monday, March 28, 2022 No contributions on Tuesday, March 29, 2022 No contributions on Wednesday, March 30, 2022 No contributions on Thursday, March 31, 2022 1 contribution on Friday, April 1, 2022 7 contributions on Saturday, April 2, 2022 3 contributions on Sunday, April 3, 2022 1 contribution on Monday, April 4, 2022 6 contributions on Tuesday, April 5, 2022 No contributions on Wednesday, April 6, 2022 3 contributions on Thursday, April 7, 2022 2 contributions on Friday, April 8, 2022 No contributions on Saturday, April 9, 2022 No contributions on Sunday, April 10, 2022 No contributions on Monday, April 11, 2022 8 contributions on Tuesday, April 12, 2022 6 contributions on Wednesday, April 13, 2022 13 contributions on Thursday, April 14, 2022 11 contributions on Friday, April 15, 2022 3 contributions on Saturday, April 16, 2022 16 contributions on Sunday, April 17, 2022 8 contributions on Monday, April 18, 2022 4 contributions on Tuesday, April 19, 2022 14 contributions on Wednesday, April 20, 2022 31 contributions on Thursday, April 21, 2022 11 contributions on Friday, April 22, 2022 No contributions on Saturday, April 23, 2022 No contributions on Sunday, April 24, 2022 2 contributions on Monday, April 25, 2022 8 contributions on Tuesday, April 26, 2022 9 contributions on Wednesday, April 27, 2022 No contributions on Thursday, April 28, 2022 2 contributions on Friday, April 29, 2022 No contributions on Saturday, April 30, 2022 No contributions on Sunday, May 1, 2022 2 contributions on Monday, May 2, 2022 8 contributions on Tuesday, May 3, 2022 1 contribution on Wednesday, May 4, 2022 3 contributions on Thursday, May 5, 2022 4 contributions on Friday, May 6, 2022 No contributions on Saturday, May 7, 2022 No contributions on Sunday, May 8, 2022 5 contributions on Monday, May 9, 2022 19 contributions on Tuesday, May 10, 2022 1 contribution on Wednesday, May 11, 2022 No contributions on Thursday, May 12, 2022 1 contribution on Friday, May 13, 2022 No contributions on Saturday, May 14, 2022 No contributions on Sunday, May 15, 2022 1 contribution on Monday, May 16, 2022 1 contribution on Tuesday, May 17, 2022 7 contributions on Wednesday, May 18, 2022 8 contributions on Thursday, May 19, 2022 8 contributions on Friday, May 20, 2022 1 contribution on Saturday, May 21, 2022 No contributions on Sunday, May 22, 2022 2 contributions on Monday, May 23, 2022 6 contributions on Tuesday, May 24, 2022 1 contribution on Wednesday, May 25, 2022 7 contributions on Thursday, May 26, 2022 6 contributions on Friday, May 27, 2022 2 contributions on Saturday, May 28, 2022 1 contribution on Sunday, May 29, 2022 11 contributions on Monday, May 30, 2022 20 contributions on Tuesday, May 31, 2022 13 contributions on Wednesday, June 1, 2022 8 contributions on Thursday, June 2, 2022 3 contributions on Friday, June 3, 2022 1 contribution on Saturday, June 4, 2022 5 contributions on Sunday, June 5, 2022 16 contributions on Monday, June 6, 2022 13 contributions on Tuesday, June 7, 2022 12 contributions on Wednesday, June 8, 2022 22 contributions on Thursday, June 9, 2022 3 contributions on Friday, June 10, 2022 1 contribution on Saturday, June 11, 2022 1 contribution on Sunday, June 12, 2022 5 contributions on Monday, June 13, 2022 9 contributions on Tuesday, June 14, 2022 3 contributions on Wednesday, June 15, 2022 12 contributions on Thursday, June 16, 2022 9 contributions on Friday, June 17, 2022 1 contribution on Saturday, June 18, 2022 1 contribution on Sunday, June 19, 2022 1 contribution on Monday, June 20, 2022 1 contribution on Tuesday, June 21, 2022 2 contributions on Wednesday, June 22, 2022 6 contributions on Thursday, June 23, 2022 1 contribution on Friday, June 24, 2022 1 contribution on Saturday, June 25, 2022 1 contribution on Sunday, June 26, 2022 22 contributions on Monday, June 27, 2022 11 contributions on Tuesday, June 28, 2022 15 contributions on Wednesday, June 29, 2022 14 contributions on Thursday, June 30, 2022 8 contributions on Friday, July 1, 2022 1 contribution on Saturday, July 2, 2022 2 contributions on Sunday, July 3, 2022 1 contribution on Monday, July 4, 2022 9 contributions on Tuesday, July 5, 2022 83 contributions on Wednesday, July 6, 2022 36 contributions on Thursday, July 7, 2022 30 contributions on Friday, July 8, 2022 1 contribution on Saturday, July 9, 2022 1 contribution on Sunday, July 10, 2022 71 contributions on Monday, July 11, 2022 59 contributions on Tuesday, July 12, 2022 34 contributions on Wednesday, July 13, 2022 5 contributions on Thursday, July 14, 2022 20 contributions on Friday, July 15, 2022 1 contribution on Saturday, July 16, 2022 1 contribution on Sunday, July 17, 2022 26 contributions on Monday, July 18, 2022 9 contributions on Tuesday, July 19, 2022 15 contributions on Wednesday, July 20, 2022 11 contributions on Thursday, July 21, 2022 9 contributions on Friday, July 22, 2022 1 contribution on Saturday, July 23, 2022 1 contribution on Sunday, July 24, 2022 11 contributions on Monday, July 25, 2022 6 contributions on Tuesday, July 26, 2022 7 contributions on Wednesday, July 27, 2022 10 contributions on Thursday, July 28, 2022 3 contributions on Friday, July 29, 2022 1 contribution on Saturday, July 30, 2022 1 contribution on Sunday, July 31, 2022 1 contribution on Monday, August 1, 2022 8 contributions on Tuesday, August 2, 2022 5 contributions on Wednesday, August 3, 2022 5 contributions on Thursday, August 4, 2022 5 contributions on Friday, August 5, 2022 1 contribution on Saturday, August 6, 2022 1 contribution on Sunday, August 7, 2022 16 contributions on Monday, August 8, 2022 5 contributions on Tuesday, August 9, 2022 13 contributions on Wednesday, August 10, 2022 13 contributions on Thursday, August 11, 2022 21 contributions on Friday, August 12, 2022 1 contribution on Saturday, August 13, 2022 1 contribution on Sunday, August 14, 2022 24 contributions on Monday, August 15, 2022 1 contribution on Tuesday, August 16, 2022 9 contributions on Wednesday, August 17, 2022 6 contributions on Thursday, August 18, 2022 16 contributions on Friday, August 19, 2022 1 contribution on Saturday, August 20, 2022 1 contribution on Sunday, August 21, 2022 4 contributions on Monday, August 22, 2022 17 contributions on Tuesday, August 23, 2022 22 contributions on Wednesday, August 24, 2022 21 contributions on Thursday, August 25, 2022 6 contributions on Friday, August 26, 2022 1 contribution on Saturday, August 27, 2022 1 contribution on Sunday, August 28, 2022 24 contributions on Monday, August 29, 2022 24 contributions on Tuesday, August 30, 2022 17 contributions on Wednesday, August 31, 2022 20 contributions on Thursday, September 1, 2022 8 contributions on Friday, September 2, 2022 1 contribution on Saturday, September 3, 2022 1 contribution on Sunday, September 4, 2022 1 contribution on Monday, September 5, 2022 23 contributions on Tuesday, September 6, 2022 56 contributions on Wednesday, September 7, 2022 15 contributions on Thursday, September 8, 2022 20 contributions on Friday, September 9, 2022 1 contribution on Saturday, September 10, 2022 1 contribution on Sunday, September 11, 2022 48 contributions on Monday, September 12, 2022 42 contributions on Tuesday, September 13, 2022 10 contributions on Wednesday, September 14, 2022 1 contribution on Thursday, September 15, 2022 4 contributions on Friday, September 16, 2022 1 contribution on Saturday, September 17, 2022 1 contribution on Sunday, September 18, 2022 1 contribution on Monday, September 19, 2022 1 contribution on Tuesday, September 20, 2022 1 contribution on Wednesday, September 21, 2022 1 contribution on Thursday, September 22, 2022 1 contribution on Friday, September 23, 2022 1 contribution on Saturday, September 24, 2022 1 contribution on Sunday, September 25, 2022 No contributions on Monday, September 26, 2022 3 contributions on Tuesday, September 27, 2022 17 contributions on Wednesday, September 28, 2022 10 contributions on Thursday, September 29, 2022 14 contributions on Friday, September 30, 2022 6 contributions on Saturday, October 1, 2022 2 contributions on Sunday, October 2, 2022 10 contributions on Monday, October 3, 2022 20 contributions on Tuesday, October 4, 2022 13 contributions on Wednesday, October 5, 2022 9 contributions on Thursday, October 6, 2022 6 contributions on Friday, October 7, 2022 No contributions on Saturday, October 8, 2022 No contributions on Sunday, October 9, 2022 1 contribution on Monday, October 10, 2022 12 contributions on Tuesday, October 11, 2022 7 contributions on Wednesday, October 12, 2022 8 contributions on Thursday, October 13, 2022 6 contributions on Friday, October 14, 2022 No contributions on Saturday, October 15, 2022 No contributions on Sunday, October 16, 2022 4 contributions on Monday, October 17, 2022 1 contribution on Tuesday, October 18, 2022 6 contributions on Wednesday, October 19, 2022 13 contributions on Thursday, October 20, 2022 16 contributions on Friday, October 21, 2022 No contributions on Saturday, October 22, 2022 No contributions on Sunday, October 23, 2022 14 contributions on Monday, October 24, 2022 24 contributions on Tuesday, October 25, 2022 28 contributions on Wednesday, October 26, 2022 14 contributions on Thursday, October 27, 2022 2 contributions on Friday, October 28, 2022 No contributions on Saturday, October 29, 2022 No contributions on Sunday, October 30, 2022 6 contributions on Monday, October 31, 2022 1 contribution on Tuesday, November 1, 2022 No contributions on Wednesday, November 2, 2022 3 contributions on Thursday, November 3, 2022 3 contributions on Friday, November 4, 2022 1 contribution on Saturday, November 5, 2022 No contributions on Sunday, November 6, 2022 2 contributions on Monday, November 7, 2022 5 contributions on Tuesday, November 8, 2022 6 contributions on Wednesday, November 9, 2022 3 contributions on Thursday, November 10, 2022 1 contribution on Friday, November 11, 2022 No contributions on Saturday, November 12, 2022 No contributions on Sunday, November 13, 2022 6 contributions on Monday, November 14, 2022 9 contributions on Tuesday, November 15, 2022 2 contributions on Wednesday, November 16, 2022 15 contributions on Thursday, November 17, 2022 6 contributions on Friday, November 18, 2022 No contributions on Saturday, November 19, 2022 2 contributions on Sunday, November 20, 2022 1 contribution on Monday, November 21, 2022 5 contributions on Tuesday, November 22, 2022 1 contribution on Wednesday, November 23, 2022 1 contribution on Thursday, November 24, 2022 1 contribution on Friday, November 25, 2022 No contributions on Saturday, November 26, 2022 2 contributions on Sunday, November 27, 2022 1 contribution on Monday, November 28, 2022 1 contribution on Tuesday, November 29, 2022 1 contribution on Wednesday, November 30, 2022 1 contribution on Thursday, December 1, 2022 1 contribution on Friday, December 2, 2022 No contributions on Saturday, December 3, 2022 No contributions on Sunday, December 4, 2022 No contributions on Monday, December 5, 2022 No contributions on Tuesday, December 6, 2022 No contributions on Wednesday, December 7, 2022 No contributions on Thursday, December 8, 2022 No contributions on Friday, December 9, 2022 9 contributions on Saturday, December 10, 2022 7 contributions on Sunday, December 11, 2022 7 contributions on Monday, December 12, 2022 7 contributions on Tuesday, December 13, 2022 5 contributions on Wednesday, December 14, 2022 No contributions on Thursday, December 15, 2022 1 contribution on Friday, December 16, 2022 1 contribution on Saturday, December 17, 2022 4 contributions on Sunday, December 18, 2022 1 contribution on Monday, December 19, 2022 No contributions on Tuesday, December 20, 2022 No contributions on Wednesday, December 21, 2022 No contributions on Thursday, December 22, 2022 1 contribution on Friday, December 23, 2022 No contributions on Saturday, December 24, 2022 No contributions on Sunday, December 25, 2022 15 contributions on Monday, December 26, 2022 2 contributions on Tuesday, December 27, 2022 No contributions on Wednesday, December 28, 2022 3 contributions on Thursday, December 29, 2022 8 contributions on Friday, December 30, 2022 5 contributions on Saturday, December 31, 2022 11 contributions on Sunday, January 1, 2023 23 contributions on Monday, January 2, 2023 4 contributions on Tuesday, January 3, 2023 8 contributions on Wednesday, January 4, 2023 6 contributions on Thursday, January 5, 2023 4 contributions on Friday, January 6, 2023 13 contributions on Saturday, January 7, 2023 8 contributions on Sunday, January 8, 2023 7 contributions on Monday, January 9, 2023 No contributions on Tuesday, January 10, 2023 No contributions on Wednesday, January 11, 2023 No contributions on Thursday, January 12, 2023 No contributions on Friday, January 13, 2023 No contributions on Saturday, January 14, 2023 No contributions on Sunday, January 15, 2023 No contributions on Monday, January 16, 2023 1 contribution on Tuesday, January 17, 2023 No contributions on Wednesday, January 18, 2023 No contributions on Thursday, January 19, 2023 No contributions on Friday, January 20, 2023 No contributions on Saturday, January 21, 2023 No contributions on Sunday, January 22, 2023 No contributions on Monday, January 23, 2023 1 contribution on Tuesday, January 24, 2023 No contributions on Wednesday, January 25, 2023 No contributions on Thursday, January 26, 2023 No contributions on Friday, January 27, 2023 15 contributions on Saturday, January 28, 2023 3 contributions on Sunday, January 29, 2023 3 contributions on Monday, January 30, 2023 6 contributions on Tuesday, January 31, 2023 9 contributions on Wednesday, February 1, 2023 8 contributions on Thursday, February 2, 2023 11 contributions on Friday, February 3, 2023 No contributions on Saturday, February 4, 2023 No contributions on Sunday, February 5, 2023 1 contribution on Monday, February 6, 2023 No contributions on Tuesday, February 7, 2023 No contributions on Wednesday, February 8, 2023 No contributions on Thursday, February 9, 2023 No contributions on Friday, February 10, 2023 No contributions on Saturday, February 11, 2023 No contributions on Sunday, February 12, 2023 1 contribution on Monday, February 13, 2023 1 contribution on Tuesday, February 14, 2023 2 contributions on Wednesday, February 15, 2023 12 contributions on Thursday, February 16, 2023 4 contributions on Friday, February 17, 2023 No contributions on Saturday, February 18, 2023 No contributions on Sunday, February 19, 2023 1 contribution on Monday, February 20, 2023 No contributions on Tuesday, February 21, 2023 No contributions on Wednesday, February 22, 2023 No contributions on Thursday, February 23, 2023 9 contributions on Friday, February 24, 2023 13 contributions on Saturday, February 25, 2023 10 contributions on Sunday, February 26, 2023 1 contribution on Monday, February 27, 2023 No contributions on Tuesday, February 28, 2023 No contributions on Wednesday, March 1, 2023 7 contributions on Thursday, March 2, 2023 2 contributions on Friday, March 3, 2023 25 contributions on Saturday, March 4, 2023 8 contributions on Sunday, March 5, 2023 4 contributions on Monday, March 6, 2023 No contributions on Tuesday, March 7, 2023 Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mon Wed Fri