Note: This post assumes that you are aware of the Google Highly Open Participation Contest. If not, see that link.
Highlights
As of right now, since the contest's inception on November 28, 2007:
- We've had participation from 42 students, of which 27 (64%) have completed one or more tasks.
- We've had a total of 36 tasks completed so far, in areas such as code, documentation, quality assurance, user interface, outreach, training, research, and translation.
- Of the students who have completed tasks, 60% are *new* contributors who came to Drupal because of this program. Of those, two have already completed 4 tasks and are on their 5th!
- We have over 100 task slots available; we currently have used up 73 out of 200.
We are desperately short on task contributions from the community. There are currently only 8 remaining tasks for students to choose from!! Unless we can turn this situation around within about 24 hours, students are going to end up going with projects like Joomla! and Python once they finish what they're working on.Yay!! Thanks SO much for your help! Please keep those great task proposals coming! Now what we really need are people to review and improve the existing task ideas so we can get them added to the queue!
Read on for more info on how these students are completely rockin' and how you can help them continue to do so.
So what are all of these students working on, anyway?
Code Improvements
- Code Filter was ported to 6.x by corsix, which is awesome since this is used on drupal.org, so will help us on our way to porting the "mothership" to 6.x!
- While he was at it, corsix set to work and created a patch to fix a long-standing bug in Code Filter's PHP regex.
- Then, corsix went on to Enable Metrics and Version Control API modules to show lines of code changed, which will be important for project ratings on Drupal.org.
- Finally, corsix went on to add an "Execute arbitrary PHP-Code action and condition to workflow-ng module. You might say he's on a roll. ;)
- jvaill added code to support auto-generation of project issues, which is critical for people trying to test project module improvements. His work also uncovered a bug which was subsequently fixed by the maintainers!
- Speaking of Project* module improvements, we're about to get a filter that turns #xxxx into a node link, courtesy of mwrochna, who also got to have a real taste about what working in an open source community is like. ;)
- User titles module now has User points support thanks to ezyang who, instead of doing the task as requested, added a hook instead so that any module can integrate with User Titles.
- CorniI created 2 new simpletests for core.
Videos
- kyl191 made a great video on how to maintain a project with TortoiseCVS for our Windows-based contributors.
- TimRogersCool created both a video on how to use Actions and Trigger module, as well as a companion handbook page!
- Translators Etinin and tkunisky translated the Rolling Patches in Drupal video into Brazilian Portuguese and Russian, respectively, which will greatly help our international developers start contributing.
Usability
- AriX and stallonselvan both sat down with some new folks installing Drupal for the first time, and created usability reports of their findings. Many of their suggestions are currently in the process of being implemented for the forthcoming Drupal 6!
- ezyang worked on a proof of concept for a re-worked module administration page, and has now set his sights on an even fancier implementation
- TimRogersCool helped us out by mocking up suggested improvements to two Drupal administration pages. Always great to have a fresh set of eyes on these things to spot problems. :)
- bjtitus went and took screenshots of all the themes that were missing them. Now, the webmasters team is looking for a way to get these integrated to the themes download listing. Any bright ideas, please post there!
Research
- CorniI did some performance profiling of Drupal 6, and found at least one great optimization that can be made.
- Mgccl performed excellent research into Microformats' use in Drupal, which is currently under discussion by the Microformats working group.
- A fantastic Evaluation of penetration testing security tools was performed by ddcc.
- kourge has reviewed several of the mini modules in the handbook for compliance with security standards.
Documentation
- dstelljes created a funny, awesome recipe on Creating a school newspaper website in Drupal
- All of the module help pages in Druapl 6 have been reviewed by DanW, and there's currently a patch in progress to fix all of these issues in Drupal 6 before string freeze! Please review!
- ThatPerson gave our Your own api.drupal.org site documentation a much-needed touch-up.
- Imagecache at last has some documentation, thanks to the heroic efforts of Etinin.
- binodc worked hard combing through Drupal's Upgrade docs looking for suggested improvements.
- fberci did a great job labeling all theme functions as "themeable" in Drupal 6 so they're available for themers. His patch was subsequently committed to core!
- dereine wrote up some great documentation on How to theme a CCK form 3 distinct ways.
- ezyang helped distill dww's talk at BADCamp into Releases and Update Status documentation, in order to help module maintainers get a handle on the system.
- ezyang struck once more, this time to create an API tutorial for Userpoints module.
- thekiefs created a Comparison document between Drupal and other frameworks which is a great read.
Marketing
- birdmanx35 created a great list of interview questions for Dries Buytaert, Drupal project founder, who has promised to answer them once he is less busy with founding companies and defending PhDs. :)
- cf_al_bs created a series of buttons and banners to promote Drupal 6.
- mbossino whipped up a gorgeous promotional booklet for Drupal 6.
Woah, this sounds awesome! How can I help?
I'm so glad you asked! ;) There are three main ways to help, but the one we need the most help with at the moment is proposing new task ideas (and of course the subsequent mentoring/review of the results of those tasks).
This is a tremendous opportunity both for our community members to get small (~1 week-long) but important tasks looked after that often fall through the cracks due to other things, and for we as an open source community to help enrich a student's life by giving them the opportunity to work along side us in the open source world.
So, please. Please:
- read the "how to write a good task" guideines (synopsis: let's make these fun/interesting/creative/important tasks rather than boring monkey work tasks).
- Take the time to write up your task proposal to sufficient detail. Doing this "right" actually takes a good bit of time; please note that mere task "ideas" aren't very helpful.
- Find a couple of co-mentors for the task to help stay on top of task reviews and such.
- And then, propose your task idea and we'll get it added "officially" once it's approved.
We can also definitely always use help monitoring the GHOP tasks that need review and in #drupal-ghop on irc.freenode.net to answer student questions, if you don't have the time available to mentor a task.
And finally, winter holidays are coming up, when students are likely to have all kinds of time, and adults are likely to be completely swamped. If you have availability over this time (~Dec. 19 - Jan. 2) please get involved to help pick up some of the slack.
Thank you!!
GHOP Task FAQs
In a series of haikus, can you please explain what the qualities are of a good task?
Fun, interesting
High importance to Drupal
Nice on a C.V.
Detailed descriptions
Clear expectations with no
Ambiguity
Mentors are lined up
To turn task around quickly
So more can be claimed
I'm interested in writing up a GHOP task! Can you point me to past successful tasks, so I can, er, "borrow" from their task descriptions?
Absolutely! :)
There have obviously been too many great tasks to list them all, but here is one from some of the major categories, so you can get an idea of the level of detail we're after.
- Code: Citation input filter: Task gives clear example of expected input and expected output, so the student has a "spec" to work from. It's also nice and compartmentalized so it won't "creep" into something large and tangly.
- Documentation: Improve documentation for the imagecache module: Task is both against a module used on thousands of Drupal sites, and also provides an outline of what the expected documentation should contain, so that there's no ambiguity about whether not the entire thing's been covered.
- Usability: Improve initial user experience: Contains both a list of things to check for as part of the user experience research, as well as a clear target to shoot for in terms of expected results.
- Videos: Create a video showing how to install and use TortoiseCVS: Covers all of the material the video should show, sets up guidelines on the length and format of the video, etc. Also is something that will be helpful to a large segment of the Drupal community (developers on Windows).
How about a task like "Go fix some documentation" or "Go port some module to 6.x"?
These are generally referred to as "wildcard" tasks, and are sub-optimal for the following reasons:
- We have no idea what documentation or module they're going to choose and whether or not we'll have enough expertise in the community to adequately review the work.
- We have a limited number of task slots available. We want to ensure that these slots are allocated to high-impact needs that can benefit the larger community.
- They can attract students who are simply after low-hanging fruit so that they can quickly move on to the next task and claim more prizes, rather than those who are interested in becoming long-term contributors in the community.
So, rather than tasks like this, please choose _specific_ documentation that needs fixing or _specific_ modules that need porting and write your tasks around that.
Oh, I've got it! Let's just make 500 copies of the $foo task. Problem solved!
While we could do this, please consider the consequences:
- We only have 200 task slots in total (and now, thanks to everyone's help, only around 100 left un-filled. w00t!). If we use up 20 of them on one area, we're directly taking away from the number of tasks we can spend in another. We really need to decide whether that thing is really worth using up 20% of our remaining slots.
- Remember that each task takes someone to mentor it (or preferably several someones) in order to ensure prompt turnaround on reviews so that students can take more tasks! Creating 20 "Create SimpleTest coverage for X module" tasks is no good if we don't have at least that many people (and preferably more like 50) who are up to speed on SimpleTest and are able to guide students through these tasks.
- If our task list essentially looks like a big copy/paste job, we're going to give the strong impression that we are lazy and aren't putting proper effort into the program. Students are likely, in turn, to not put a lot of effort into us.
Hey, why don't you guys make a task about..?
No. There is no "us guys." The "us guys" administering the program are already tapped at maximum capacity keeping the "plumbing" on the contest side of things running. There are about 5 of us, and over 200,000 of you. In order to scale this program, we need _your_ help.
Comments
Not sure quite how to TASK this up but
One key issue is that for a lot of contributed Modules the help documentation is poor and assumes Drupal familarity. E.g. to get Tiny MCE to work you have to edit the Filtered HTML Input Type to include all the tags you want to allow, always adding IMG.
A suitable task , or series of tasks, could be based around "For a Contributed Module with which you are familiar, write a Handbook page covering the main issues, esp re config and conflicts. You should look through Drupal.org first to identify common requests for help for that module."
The aim will be to either replace an existing page, (if existing very poor/outdated) or provide a useful addendum (if existing good, but limited).
This doesn't require php or code skills, just familiarity with Drupal and the Module. As a writing/communication task it is of clear educational value :-)
Ian Dickson
Likal.com
In general...
These kinds of "wildcard" tasks are best avoided. The results are pretty unpredictable, and if they choose some kind of odd-ball module that no one's used before, it's difficult to find reviewers for the results.
It's better to find a specific widely-used module that's lacking documentation, and identify that as a task. We've had great results with the imagecache documentation task, for example. That way we help ensure that the results are used by a wide spectrum of people, as opposed to being something that was quick to do, but not overly helpful.
So if TinyMCE specifically is lacking documentation, and you know enough about TinyMCE to be able to come up with an outline of what the docs ought to look like and tell if the resulting documentation is correct, this would be a great task to write up!
Here's the imagecache task you can use as a template. Please post it as a task suggestion when you're ready.
woachick!!
Hi Webchick,
Just a quick note to say thanks for the detailed update on the GHOP initiative and kudos you yourself, Crell et al, for driving that inspired idea forward.
How you find time to plough so much time and ideas back into Drupal, contribute to the excellent Lullabot Drupal podcast as well as the odd media interview, is beyond me.
It's not going un-noticed.
In my opinion (and I imagine many others would agree) you should be called Woachick instead of Webchick!
Cheers
Dub
Currently in Switzerland working as an Application Developer with UBS Investment Bank...using Drupal 7 and lots of swiss chocolate
Heh, thanks. ;)
It's quite easy actually. I just don't sleep. :D I've trained my body to be powered by Drupal instead. ;)
Could you release the code
Could you release the code for that?
;)
Cheers,
Bill
-------
http://www.funnymonkey.com
Tools for Teachers
-------
http://www.funnymonkey.com
Please instruct me
Please instruct me how do you do this?
I need to sleep 2-3 hours per day :)
how about views integration?
how about views integration? views is a powerful module and all contrib modules should have views integration but some might not. implementing views integration is relatively simple yet involves some fun explorations of the guts of drupal, views and funky sql/
now I know this is a wildcard idea, if someone suggests a couple of modules that desperately need views integration I promise to write a proper task and would be happy to help mentoring them.
the same idea can be applied for other foundational modules like token and nodeimport.
--
http://www.manalaa.net
Wow fun
My GOD this looks fantastic.
Great write-up, great visibility on lots of stuff.
So I've randomly added to the noise on a dozen tasks so far.
Now I want to propose something byte-sized...
Yep, I've got two itches that need scratching. And I like mentoring.
.dan.
How to troubleshoot Drupal | http://www.coders.co.nz/
.dan. is the New Zealand Drupal Developer working on Government Web Standards
Two suggestions that might benefit Google Adsense users & Google
The existing Adsense module http://drupal.org/project/adsense does a fine job of allowing Drupal website owners to place Adsense content ads in drupal nodes. However, Google is continuing to add new ad units like Video and Referral units which are not in the existing Adense module. The Adsense Module needs to be updated to allow users to add this content.
Also equally important is the Adsense Injector Module http://drupal.org/project/adsense_injector. Currently the module allows placement of content ads above the teaser and below node content. However, Google Adsense claims that ads placed in the middle of node content or below the teaser have better returns. Why not try to integrate the Adsense Injector with what Google adsense recommends. Seems to me that Google might contribute some manpower since it benefits them as well.
I read over the documentation but unfortunately I don't have the php skills to sponsor or oversea the work of a student. I can help with documentation so if there is a skilled php drupaler who does want to suggest this count me in on reviewing the documentation.
Adsense and
Adsense and Adsense_Injectors are good modules but I think Google Adsense doesnt allow using Revenue sharing using these modules.
I would like to create at task where some of the students can start work on Revenue sharing module using the Adsense API. There are many drupal users/sites which would like to implement this feature.
The current adsense modules allows this, but I had asked in Adsense groups and they had advised to use Adsense API instead of this module.
Thanks,
Tony
--
Drupal Expert
I am available for Drupal Consultation, Drupal Theming and Module Development.
Have good experience in Developing Social Networking Websites on Drupal.
Let me know if I'm going overboard here...
But I'd wager that a lot of folks (read module maintainers) don't even know that this is going on. I'm thinking the best way to rectify that, would be to place an issue in every module's queue to ask the maintainer to farm out some work. I would be personally be fine with doing something quite as mundane as that, but I'm going to wait until I get some feedback on this before I trounce into a tirade of poorly thought out machinations. I will press the red button if I have heard nothing in one hour....
Thanks,
Jonathan
Drupal's so easy, even I could do it.
http://www.kfol.org/
I've tried to get the word out...
I've posted on the front page (twice), the devel (twice), docs, and consultants mailing lists, my blog (which showed up in Drupal planet), the front page of groups.drupal.org, and mention it in #drupal daily (several times).
We are also assigning various tasks to the module queues to which they're most appropriate (where applicable; e.g. imagecache docs to the Imagecache module's queue, not the Docs queue), so that's helping raise awareness too. And because these are all taking place in Drupal issues, there is almost constantly a GHOP task somewhere on the first page of http://drupal.org/project/issues.
I'm not crazy about the idea of spamming each individual issue queue (that's going too overboard, imo), but if you have other bright, but less "spammy" ;) ideas as to where we could spread the word, then please let me know!
Well, this is still spammy...
But less spammy. How about leaving comments on some of the oldest issues in project queues? Then it's more like a service... "Got this old issue that you just haven't had time to resolve? Here's GHOP!" We've got a page that displays issues by age don't we? Yes we do. And looking at it, I see Simpletest just created three tasks for GHOP. On the other hand, there are tasks in the queues that are up to 3 years old. I don't think there'd be a maintainer out that would mind a comment on an old issue asking if they'd like someone to try tackling it. I'll wait for your comment back before pressing that big red button.
Thanks,
Jonathan
Drupal's so easy, even I could do it.
http://www.kfol.org/
Well...
The idea is not to get just any old issue worked on, though. If an issue is _that_ old, it's probably because no one cares about it or needs it enough to have it be a priority.
We want the opposite here.
We want students working on tasks we /really/ need, and also things that are fun/interesting for them to do, and furthermore have a high probability of someone (preferably a large group of someones) taking an interest in reviewing/mentoring on the task.
So we should instead be going after things that are glaringly missing and a constant source of headaches for the community (such as lack of theme images on the downloads page), or things that would really help a lot of people (like filling in missing documentation for an important module), or things that would really fill a need (such as a much-asked for feature in a module, or something that help with modules that drupal.org uses, etc.)
So if you find issues like /that/, then *please* feel free to promote GHOP there. And in fact, going through and identifying issues like that would be extremely helpful! :) But I don't want to see the program promoted on old issue dumping grounds or blatantly spammed any old place, because that's the exact opposite of what we're trying to do here.
Hope that makes sense.
That's all I've got.
I do have a couple of issues for the Family module that I'm working on that I might delegate to GHOP. Specifically a port to 6.x. But not tonight. I will see if I have time to create one of those GHOPpy thingies tomorrow.
Thanks,
Jonathan
Drupal's so easy, even I could do it.
http://www.kfol.org/