Why Open Source?

Open Source Software has been a major part of my daily life since the mid-90s. Years before I was familiar with the term Open Source I was running Slackware Linux 2.0, compiling horribly written code with gcc, and hosting toy websites no one visited using Apache on a dialup internet connection (which of course were only available when I was online and had given someone my ip address for that session). Those free, professional, production quality tools gave me a head start on learning and helped keep my interest long enough to turn it all into a career where I am paid well to do more or less what I'd be doing with much of my free time (and still do with a lot of it) anyway.

Because of what Open Source has done for me (and for many others) I have a strong desire to contribute back and to encourage others to do so. I have all too infrequently contributed bug fixes and features to projects I use regularly and thanks to my employer [Mobelux](https://mobelux.com/) and our client/partner [Livio](https://livio.io/) I have been able to release a few projects from work. I have also released a few of my own projects which others may find useful, although they are still mostly toys for me to learn and I have little desire to have to grow a community of contributors around them.

A more complete blog post about Open Source and its benefits will be coming in the near future.

Contributions

My Projects

Here are some of my more recent and/or interesting and active Open Source projects. There are many more on my github profile, but many of those are old, abandoned, etc.

django-mailviewer

Docs | github

A Django application which provides mail backends to store SMTP data and views to look that data up and display it for easy visual testing of email content and attachments during development.

django-fractions

Docs | github

A set of template tags and form fields for handling and displaying fractions on a Django website

WorryWort

Go Server

A system for logging homebrew fermentation temperatures. It has been used an experiment for learning different programming languages and frameworks. Its current codebase is a Go web service and a Xamarin.Forms client. The client is not currently open source due to the licenses of a few libraries which I hope to replace. This was originally a Phoenix/Elixir server and a React Native mobile app. After a long break due to a second child being born and changes in my language interests, that version was abandoned to start the current codebase. Eventually I will also add code for monitoring and reporting temperatures from a Raspberry Pi and possibly Arduino.


Other Projects

Django

Contributions

One of the big Python web frameworks. It runs this site, many of the sites we build at Mobelux, and many popular sites on the web such as Instagram, Mozilla, and Disqus.

Django AllAuth

Contributions

Django AllAuth is an alternative authentication framework for Django. Django's built in auth system only covers authentication and password reset type functionality. Django AllAuth adds in things like social auth and user registration.

Docker-py

Contributions

It's the (now old version of the) Python Docker client.

DocDown-Python

This was developed by my employer, Mobelux for Livio and the SmartDeviceLink project. Livio chose to open source the project. I get an unfair amount of credit in the commits on this one. The majority was developed by a a co-worker, but I got to extract it out of the original project into its own package.

Remarkable DocDown

This is the JavaScript version of DocDown for use with the JavaScript Markdown library Remarkable.

JWT APNS Client

Contributions

JWT APNS Client was built at Mobelux for the now defunct New Custom project. Mobelux and New Custom were under the same ownership and it was chosen to be open sourced for ease of use in other Mobelux projects which needed to send Apple push notifications at a time when there were no other clients using their newer protocol.

Wagtail

Contributions

Wagtail is a CMS or framework for more easily building a CMS on top of Django. I use it for my personal website as well as for several projects with my employer Mobelux. It provides an easy to work with editor UI and what it calls a StreamField and blocks, which are more polished versions of things I end up building on a regularly and so saves a lot of time and effort.


Find ways to contribute

Here are a few of my favorites with a large and interesting community around them.

Here are some resources for just finding projects to contribute to