25 January, 2011 § 1 Comment
This previous Thursday I attended a talk by Brian “Fitz” Fitzpatrick of Google on “How to Protect Your Open Source Project from Poisonous People”. Brian started Google’s Chicago Engineering office in 2005 working as an engineer on Google Code. He now leads several of Google’s Chicago engineering efforts, including Google Code, the Data Liberation Front, and the Google Affiliate Network. He also serves as internal advisor for Google’s open source efforts.
Brian started off the talk by recommending “Producing Open Source Software“, a free book written by Karl Fogel. I’ve added the book to my future reading list, and will try to take it in once the semester ends.
A lot of students within Computer Science think that the hardest part about making software is inventing algorithms or finding ways to use obscure data structures for improved performance. As someone who has worked within industry now for a few years, I immediately knew where he was going with this. I agreed with Brian when he said that the actual hardest problem is working with other people.
Poisonous people on a project can make others leave and cause fighting over little things. To reduce this problem, you’ll want to build a strong community based on politeness, respect, trust, and humility. If a person joins on to the project and is causing a disruption of some sorts, it is best to identify behaviors and address them the best way you can. Notice there that addressing behaviors is the goal, not addressing people.
Addressing behaviors vs. addressing people comes up in a lot of conflict resolution scenarios, and often the importance of it is overlooked. Jay Smooth describes a very similar scenario very well.
Brian also recommended defining a mission for the project. As he said, if the mission isn’t already defined, someone else will define it for you.
Feel free to read the rest of my notes from the talk as I’ve typed them up on a Google Doc.
27 May, 2010 § 4 Comments
Last week I attended the Google I/O conference. I went to some great sessions and learned a ton about Chrome, App Engine, and Android.
One of my biggest takeaways wasn’t from the sessions that I attended. I happened to bump in to some other college-aged guys and after some talking learned that they were contributors and committers to the Chromium project (the open source version of Google Chrome).
Now last year (2009) at the beginning of the summer, I wanted to participate in Google Summer of Code, specifically in one of the Google Chrome projects. I followed the steps on their developer setup guide, and kicked off a build on my machine. Hours later I realized that my machine was no match for Chromium.
Too much had to be installed to build the project and the file size of the project was leaps and bounds more than my pesky laptop could handle. I ended up putting away Chromium and focusing on tackling some books I had been wanting to read.
This summer is a whole new ball game. I’ve upgraded my computer and the Chromium project has also shed a lot of dependencies since May 2009. I’m happy to say that I was able to install Visual Studio 2008 Premium, SP1, a few hotfixes, and was off to building. An hour of waiting and I had my own build of Chromium running.
Today I can now say that I am a contributor to Chromium. I am proud that my name now resides on the AUTHORS file of Chromium, and I want to take this opportunity to pass-on some motivation for contributing to open source software.
If you’ve got an open source program that you use daily and get a lot out of, return the favor to the authors and help them out. Most open source software is free, so they’re not making money off of you using the software. It’s just kind of the fair thing to do.
Not to mention that there are tons of benefits that you will gain by contributing to an open source project. Let’s run through a list:
- Experience working with different code (paradigms, styles, patterns, algorithms)
- Get to work with developers located all across the world
- A great opportunity to learn more about a programming language
- A feeling of ownership of the product that you enjoy
- and so many more…
So take a second right now and think of the programs that you use and love. Are any of them open source? Do they have a list of bugs that could use some help? You could even take this opportunity to fix anything that you don’t like about the application and make a special build for yourself :)
29 May, 2009 § Leave a comment
As I continue to work on making more of my source code open, I will be making all of the source code for the YouTube Playlist Downloader open source. You can expect to see a post up here soon with a link to the source files, and I will also cover some of the technologies used in more depth.
In the meantime, here is a very general overview: YouTube Playlist Downloader (YPD) was a project that I took up to learn Windows Presentation Foundation (WPF). It uses WPF for the user interface and all the animations. Windows Presentation Foundation was released with Microsoft .NET 3.0, which is why there is a requirement for this version of the framework. To get the list of videos in a playlist from YouTube, an external RSS web services is used. The files are then downloaded, and transcoded using FFmpeg.
That’s about the shortest technical overview I could give, and probably still left out too much. Look forward to some code walkthroughs in the next week or so. I haven’t made up my mind yet if it will be available as a .zip file or something where you can browse the source code online ala Google Code.