Background
The Open Source Academy is an annual opportunity for secondary school students (typically 14 to 17 years of age) to take part in an intensive 2 week open source camp. The Academy is held in Wellington, New Zealand, and takes place in the offices of Catalyst IT.
The first week
The first week is largely spent learning about various open source technologies, everything from installing Ubuntu 14.04 on a virtual server, to using gimp for graphic design, to learning about the wonders of git. I helped to lead a primer on PHP, and helped to explain concepts like PDO. I even touched on OWASP security points such as SQL injection and XSS.
In the first week, all the small, half-day course were leading up to the students developing their own “movie voting application,” in which you could vote for the movie you want to watch that evening. To get an idea of the level of coding the students can achieve in 4 hours, some of them after just seeing PHP for the first time, here is the reference application code.
The second week
The second week gave the students an opportunity to specialize in a particular project. I led a group of three students through an intensive Drupal 8 course. Here we managed to:
- Port the beer_o_clock module to Drupal 8 (the API had changed significantly since the last time the module was ported to Drupal 8 in January 2015).
- Submit six patches to Drupal core (2 of which have since been committed).
Other projects that students worked on included Koha, Mahara, Piwik, and Silverstripe. It is genuinely impressive that all of these projects were able to donate a week’s time, from really senior members of their team, to help the students.
The room is now ready for students to work in teams on @drupal, @kohails, @maharaproject, @piwik and @silverstripe pic.twitter.com/pWS7FdbAqC
— Catalyst Academy (@CatalystAcademy) January 18, 2016
The Drupal team’s contributions are detailed below.
Open source contributions
Some examples of work the Drupal team were able to do:
Drupal core
Here we did several things: First we got Drupal 8.0.x up and running using a git clone of Drupal 8. I taught the students how the patch workflow operates with Drupal development, and how to choose the "right issue" to work on. The end result is in the drupal.org issue queue.
I will also never forget this great comment from Chris:
An interdiff on a first-ever patch? That must be some kind of a record.
In total we got six patches submitted (5 for Drupal 8, 1 for Drupal 7). Since the Academy, two of the these patches have gone on to be committed. (Also of note: a patch which started at last year's academy, was back-ported by this year's students, and now is in Drupal 7.42).
Getting documentation into core with @wiifm and the Drupal team! Who doesn't want a patch in core at 16yrs old! :) pic.twitter.com/qftEVdIUHZ
— Jinelle (@MrsSpastk) January 19, 2016
Beer O’Clock module
This is a great training module, and teaches a lot of broad concepts for Drupal 8 development. The module can be found on drupal.org at https://www.drupal.org/project/beer_o_clock.
The last time the module was touched was in January 2015, and in that time Drupal 8 has had over 12 months of active development. This meant the module needed some work to get back into a working state.
Here's what we did to port the module to Drupal 8.0.2:
- Implemented new required method
getEditableConfigNames
inConfigFormBase
. - Added a new
.links.menu.yml
file to add links to the admin section of the site. - Fixed
blockAccess
method to return anAccessResult
check. - Removed block caching using
max-age=0
in the Cache API.
And here are some new features we added:
- An animated beer glass that fills to the level to indicate how close you are to the next Beer O’Clock
- A new countdown timer with better CSS styling
- The ability to choose the style of drink. Now you can opt to see a beer or a soda. This was a great exercise in CSS, and the ability to influence twig templates.
Important feature!!! Porting our Beer O'clock module to Drupal 8 @wiifm :D pic.twitter.com/48oT8GRTBF
— Jinelle (@MrsSpastk) January 19, 2016
Why this is important
Courses like this are important to keep the open source market vibrant and active. It is not uncommon for students accepted into the Open Source Academy to go on to tinker with Arduinos, look for internships in the technology sector, and ultimately take the skills they learned and further them. A number have continued to contribute back to open source projects even after the course has finished.
Final thoughts
I have taught at the Open Source Academy now for 4 years now, and every year I come back to see the fresh enthusiasm, and, I hope, give the students a bit more inspiration. Also, I want to show them that a career in this world is easily possible if they put in the work, and where that career can lead. I am especially proud of the Drupal students, and for their efforts this year. Getting a commit into Drupal core can be daunting, so getting two in (so far) is a great achievement.
More information/photos
You can read more about the Academy here. More photos from this year’s class are available on Flickr.
Images in this article are licensed Creative Commons Attribution-ShareAlike, original sources are on Flickr.