In Valid Logic

Endlessly expanding technology

First open source contributions

Probably nothing to really go screaming about, but with wanting to become more publicly active as a developer, part of that involves getting code out there, and also contributing to other projects.

At Telligent, we do yearly performance reviews and goal setting as way to grow as a developer in experience/knowledge and bring it back into the company. One of my goals for this year was to contribute to open source as a way of expanding outside of our own internal stuff. Part of it is while I enjoy Community Server, I've been looking at that code for about 3.5 years. Open source is a great way to get involved with other initiatives and make contributions where you can, or to write some small piece of code and put it out there for others to consume, contribute, and grow. Can be small, short departures from the norm, and gain experience that you can roll into future works.

As a comparison, it is interesting the difference between the Ruby world and the .NET world when it comes to open source. There are tons of components/extensions in both worlds, but in the .NET world, the majority are commercial components, from companies like DevExpress, Telerik, or Xceed. While in Ruby, almost all are open source. .NET does have excellent open source projects, such as the first one to come to mind being SubSonic, but not nearly as many.

Some others like Scott Hanselman, with his Weekly Source Code postings, will use/work with other existing code to better their own knowledge. I'd much more like the approach of writing code to put out there and contribute to other projects. In this way, it is more actively writing code instead of working with code.

At any rate, I recently made my first open source contribution. I've been doing some work with Merb and DataMapper, and was working on a little project to port the Paperclip extension by Thoughtbot to DataMapper. While working on it over some PTO time I had, I needed to add a feature to DataMapper so I could make a custom type more contextually aware. So if your attachment is in a user model and named avatar, you want to know that when saving it onto the filesystem. And just yesterday, my fork got merged back into the core.

As for the Paperclip port (I've called DM-Paperclip), I will hopefully get it polished off this weekend.

Friday, April 18, 2008

blog comments powered by Disqus