Help me contribute to the OSS community
July 3, 2008 12:09 PM

What is a good open-source project to get involved in?

I'd like to do some work for an open-source project, to help the community and sharpen my skills. Due to time constraints my work on this is going to be sporadic, so it would have to be something that doesn't require daily or even weekly input. This would preferably be in Java or Python, with C a distant third. What OSS projects do you guys think are interesting or a good cause?
posted by Who_Am_I to Technology (12 answers total) 9 users marked this as a favorite
You leave things pretty wide open, so I'll suggest a project I've been looking at using recently called Pinax. Pinax is a sort of opensource community CMS. It's programmed in Python using the Django framework.

In some ways I'd say it is analogous to Drupal on PHP, except it is a lot newer and so doesn't have as big a community of developers creatting extensions to it. On the other hand, it is leveraging a large number of existing open source Django apps, in addition to building additional apps that could potentially be broken out and used elsewhere.
posted by Good Brain at 12:21 PM on July 3, 2008


What skills do you have (or want to use)? Systems, graphics, networking?
posted by demiurge at 12:21 PM on July 3, 2008


Look for a project that excites you. Anything else will just lose your interest over time.
posted by chairface at 12:32 PM on July 3, 2008


Pick something that interests you. It'll be the difference between giving up when things get tough (why would you deal with the hassle when it comes up if it's a project that doesn't interest you anyway?) and sticking it out because it's fun.

I got my degree in a non-technical field and let my programming skills atrophy as a result, so I don't contribute to OSS projects (though I use quite a few), but my dad is a senior developer at a for-profit company, but he's mentioned that he's made minor contribs to various OSS projects that he uses: one time he found some obscure bug in his mail client and submitted a patch, and so on.

Something you're already using, or something that interests you, is something I think would be most rewarding. (As an alternative, a pet peeve of mine is the number of "dormant" projects, which were once popular but never saw updates... If I had the programming skills, I'd try giving a quick update to a handful of them and hope it sparks interest in a couple of the old developers, too.)
posted by fogster at 12:40 PM on July 3, 2008


Echoing what chairface and fogster have said. Find a project that interests you and which you actually want to use yourself. In my experience the best OSS is the stuff written by people trying to meet their own needs; the worst is stuff written by people who don't want the software for themselves but are writing it for some other reason (to keep up with the Joneses/Microsoft, to fill out some list of bullet points, etc.)

That said, it's also the case that some projects are a lot more welcoming of outside input than others. Some have really weird and off-putting internal politics. Some are a pleasure and a joy to work with.
posted by hattifattener at 1:25 PM on July 3, 2008


Ditto what others have said. Find something that you'll be able to use, and will have an actual stake in yourself. If you can find a project that supports a plugin architecture (jQuery is an example in the JS world, Drupal in the PHP world, and the larrger Django ecosystem on the Python side), the transition can be a lot easier. Working on building and maintaining a plugin that scratches your own itch can give you a useful sandbox to play in that integrates you into a larger development community without becoming one of the 'hardcore gurus' that work on the core project itself.
posted by verb at 1:32 PM on July 3, 2008


Are you interested in mobile apps? Write something for Google's Android, it needs all the help it can get!
posted by blue_beetle at 2:23 PM on July 3, 2008


Nth-ing the suggestion to look for a project that interests you. Small plug: since you mention Python, you may want to have a look at Crunchy; look it up on showmedo.com; it might interest you ;-)
posted by aroberge at 2:30 PM on July 3, 2008


You could pick up a couple of ideas from this thread. In particular, synchronization of PIM data between various devices would be my recommendation. OpenSync, perhaps?
posted by Cobalt at 3:00 PM on July 3, 2008


If you're a bibliophile, I've got one in active development that might interest you (Python/Django). Feel free to send MeMail if so (or anyone else, for that matter).
posted by nev at 5:24 PM on July 3, 2008


You can browse around on Github looking for projects you are interested in.
posted by chunking express at 7:47 AM on July 4, 2008


Oh boy, I have the opposite problem — I have too many open source projects I'm trying to keep tabs on (generally Python-based, and with a large Django-centric bias). The Django project proper has tons of available stuff to do, with the downside that it's a large project, and therefore harder to feel like you're "making an impact"; smaller projects give you more impact, but might have less direction.

One general tip: if you haven't, learn distributed version control! Check out Git, Mercurial, and (my favorite) Bazaar; an increasing number of projects are using them, and they're a significant productivity boost.
posted by korpios at 2:34 PM on July 8, 2008


« Older there goes a high, hard one   |   Save the bees, not the beetles! Newer »
This thread is closed to new comments.