Help newbies, your project and the community - README
If you want newbies to help you with a project - in fixing code, writing tests or even documentation - my course students will be given a course completion project to help out an open source project. That project can be yours!
Background:
I've been very inspired by DJB (Daniel J. Bernstein) and his course on UNIX Security Holes. The highlight to me was how his students interacted with the outside world - something I personally never did while studying programming (or anything else, for that matter) at school. I saw two of my brothers go through their degree (computer science, biology), helped with their homework and even attended some classes. They too never interacted with the outside world! I decided I want this changed in my course.
The project:
There are about seven lessons left to the semester in which the students will have to do their course completion project. I've decided that project will be on working with the community. It will entail either forming a project (which will be part of the "extra-credit" group) or join an existing project and helping with anything. This covers: code refactoring, reporting bugs, fixing bugs, documentation and tests. Any of those, for any project, is acceptable. They will also be advised to open a blog (either in blogs.perl.org, dreamwidth, use.perl.org or even blogger) and report their progress through the month/month and a bit. I'll try and run an aggregator for these blogs.
This will help them achieve better - practical - understanding of Perl, programming and cooperation. It will help them learn more and improve their skills. It will help start their resumes and proven practical experience. It will let them interact with the outside world and contribute something that will be of use to others. Overall, important and exciting, in my opinion.
Where you come in:
Instead of having the students roam around CPAN for modules they think might be good to work with, I'd like to showcase them existing projects to work on. Projects that are in progress (and not abandoned), useful (and not personal projects no one will ever be able to use except the author) and interesting.
If you're in a project community, if you have your own project (be it an application or even a small module) and you would like help on it, let me know so I could showcase your project in class - talk about it and try to interest people in it. These students are mostly beginners but with guidance, they could help out in applying patches, in writing tests, in documenting your code and hopefully with fixing a bug or two. This is your chance to get more people involved in your project, your project's community and the Perl community itself.
I need:
At minimum, a few lines on what to tell students (I'm also willing to simply read prepared text) about your project: what it is, why is it cool, why do you think they would enjoy working on it, how could they help out?
You could write to me either in a comment to this blog entry or you can email me at xsawyerx AT cpan DOTTT org.
If you want to prepare a short slide, a short video or a picture or two - I'm sure it will only help the students get interested in your project.
Let's get this show on the road!
Here's what I have to offer:
This is a great idea.
http://www.gitalist.com/ is looking for more polish and features...
http://www.gitalist.com/talk.html - gives a quick overview of the project and the IRC channel is where to ask about what needs doing (I've asked them to create a TODO list as well).
Very nice!
I also like the idea of improving gitalist. Off the top of my head, here are some other really nice projects to contribute with, in no particular order:
Padre, the Perl IDE - Like any big project, it has a lot of open tickets and features on the wishlist. But it's a simple codebase to hack on, and there's a really nice community happy to help on #padre. Also, your students will be able to use Padre to edit Padre, which is always fun :-)
SDL Perl - the new API is already done but it's 1:1 with libsdl, so we're building Perl sugar layers on top of it, on the SDLx namespace. The basic helpers go into the core dist, while others can be distributed as standalones or as part of SDL::Widgets. And #sdl is pretty active.
If XS is part of the idea, we could also use some help finishing the Perl bindings for ODE, also over at #sdl.
Finally, there are several important Perl modules with a pretty big ticket queue. So a "race to zero" challenge on, say, all modules installed by Task::Kensho (or all core modules in 5.12), could be interesting - provided previous agreement with the current maintainer. I've been meaning to promote a "race to zero" hackathon in my local community for a while now.
Anyway, kudos for the awesome idea!
@Shlomi:
Thanks! As I said when we spoke privately, you have quite a lot of modules and it would be difficult for me to pick the right ones. The idea of IO::All seems very interesting! I'll take it!
@Ranguard:
Gitalist is beautiful! I'll present it at class (as with IO::All) and check what they could do to help. Perhaps documentation?
@Garu:
Thank you for all the ideas! Padre is a great suggestions. I'm trying to entice Gabor to come speak to the class about it and try to get them interested. They are all using it.
I really like the SDL and SDLx effort, but I'm not sure my newbie students could be of much help here. Still, it's something beautiful (literally!) to showcase.
I'll also check out what stuff there are on Task::Kensho and see what could use some polishing.
Thank you all for taking the time to suggest things, I appreciate it!
I have some projects not available on CPAN yet:
TapTinder - http://taptinder.org
Continuous integration and automated testing tool for software engineering.
Has been used to watch Parrot VM changes for a while. See http://tt.taptinder.org
SysFink - http://code.google.com/p/sysfink/wiki/UserManual
UNIX Security tool for real administrators. Server monitor changes on clients' filesystems (RPC over OpenSSH, JSON, MD5).
See --help output on http://tapir2.ro.vutbr.cz/sysfink/doc/help.txt
You can ping me on irc://irc.freenode.net/#mj41
I would absolutely recommend Padre as your contribution project.
They can see the benefits of their work in their own editor, there will be an active IRC channel for them to visit while they work, and there's even crazy fun code like Swarm to muck around with (like stealing other people's code, or injecting file.exit commands directly into other people's editors) :)
We'd be glad to have them in the project.