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 Drupal team’s contributions are detailed below.
Open source contributions
Some examples of work the Drupal team were able to do:
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).
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
- Added a new
.links.menu.ymlfile to add links to the admin section of the site.
blockAccessmethod to return an
- Removed block caching using
max-age=0in 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.
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.
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.
Images in this article are licensed Creative Commons Attribution-ShareAlike, original sources are on Flickr.