Some of you will remember my rant about open source, and how I couldn't find time to do it and didn't know how anyone could. That post caused a big backlash, lots of people wanted to know how I could say that without ever trying it. Many more shared their personal experiences getting involved in open source and loving it. They explained that it was something you MADE time for. So, to see if they were right I did make time. Let me just tell you, totally worth it.
Witty is a WPF project brought to you by some of the guys that do the Herding Code podcast. I initially reached out to Jon Galloway to see if I could get involved with their project. He explained that anyone that wanted to could get involved in Witty, and he linked me to this post by Scott Hanselman.
The post was very educational about the process for contributing, but I am no Scott Hanselman. There is a lot of green still left around these ears, and whether or not Scott Hanselman can do something is no indication if I can do it. I knew I would run into issues working on a new application in a new framework I hadn't seen yet (WPF). However, I tried it anyway and I was able to contribute a conversation viewing module to this past Witty release (2.2). I can't tell you how cool it is to think of the fact that so many people use this awesome project and I had a hand in it.
I thought that I would demonstrate to you guys how easy and rewarding it is to contribute to open source no matter what level you are at.
Ok, so the first step is figuring out what change you are going to make. I find that the best way to to do this is to actually use the application.
I actually got this idea for a feature through a tweet someone sent me about usernames not turning into links when they are prepended by a character. This became more noticable when the changes to replies were made and people were leading off their tweets with a character so all their followers could see. So, I figured we could change this today.
Step one is getting the checking out the application through SVN. If you haven't done this before check out this tutorial.
Now, what you want to do next is up to you. Some people might want to take a look around first, see how the application is set up. I did that initially, it enabled me to get a handle on how things where done and where things are located.
I looked around at the file structure and kind of got a feel of where they stored things, there is a twitter library, and then the main application where the xaml is stored. Also, a skins project, common classes, and a test project.
Our first task today is to find where the usernames are being set as hyperlinks. My initial thought was that it was in the code behind for our xaml files. Or possibly directly in the xaml as a regex. I took a look around and didn't find anything. It was frustrating, but after I pursued that direction for a while I thought to do a Cntl + Shift + F search for the character @. So I did that and found this region in my seach results:
Jackpot! I found where they were setting the username as a hyperlink here in the OnTweetChanged method: