Open Source Appreciation

I've never been shy about sharing my love for Open Source. I love creating things, and I love sharing them with others. One of my particular joys with Open Source Software, however, is finding new projects that excite me.

I generally get excited about new OSS projects for two reasons:

  1. It does something I want or need to do
  2. It is written in a way that allows or encourages me to learn something new

The first is obvious... when I've got a project to complete and it makes sense to use an open source component, it's my first preference. I'm always happy when someone else has thought through the hard parts and done the work to make a quality project and share it with the world. I truly enjoy contributing to these projects too. Some developer scratched an itch she had and shared it with the world, now I get to help make it better. That's just winning for everyone.

The second reason I get excited is when I find a project that teaches me something. This happened a few days ago with goa. Two things about goa excited me. It is a very well written DSL in Go, and it uses Go's net/context library in an unusual way. I say "unusual", but after studying goa more I've come to the conclusion that I've only been using net/context at half it's capability in my past projects. The author of goa -- Raphael Simon from RightScale -- is using contexts to their full potential. Learning from this code is making me a better programmer.

I spent the next few days shouting from the mountain tops about my newfound love for goa. Anybody who follows me on Twitter can attest to this.

I was talking with Matt Holt, author of another of my favorite open source projects Caddy, and our discussion evolved into the various ways we like to show appreciation for software projects we like and use. I've told Matt dozens of times how much I love and appreciate Caddy. And I believe that he enjoys hearing it. Some of the ways of showing appreciation we listed:

  1. Open an issue on the GitHub repository with a quick thank you note. "No problem with your software, just wanted to let you know I'm using it and love it." or "I really love the way you solved X problem by doing Y, I learned a lot, thanks!" I do this frequently and it's always received well.

  2. Send the author(s) a thanks on Twitter if you know their Twitter handle. Simple and direct, and who doesn't love hearing that someone is using their project?

  3. If the project has a developer mailing list or IRC/Slack/Gitter channel, pop in and say the same thing.

  4. Write a blog post about the software/project and how you use it or why you like it. I set up Google News Alerts on new projects and it's always a treat when I get an email from Google listing a blog post about one of my projects.

I'm sure you can think of dozens of other ways to show your appreciation for the Open Source Software you use. None of them are particularly burdensome or time consuming. And they almost always have a postive impact.

I'd like to propose a new hash tag on Twitter: #freesoftwarefriday

Let's start showing more appreciation to the people who put hard work into projects that we use. If you use a gem, egg, package, project, script, or any other Open Source code, take a moment on each Friday to give a shout out to that project or the maintainers. I'd venture a guess that most OSS project owners would be delighted to see them or their project mentioned. It might even give them the encouragement to create more projects, or add more features. OSS can be a thankless job sometimes. Anyone who has released OSS code knows that there's a burden of time and a psychological burden that goes along with releasing code. A kind word to the author might lessen that burden a bit. You might just make someone's day.