DEVELOPERS BLOG

Event Recap: Facebook Open Academy Sprint

EVENTS / 02.24.14 / timwin1
IMG_20140207_101041
GitHub co-founder Scott Chacon

I’ve just returned from the Facebook Open Academy sprint weekend, held at Facebook Headquarters in Palo Alto, California. Open Academy is a  initiative sponsored by Facebook, industry mentors and about 40 international universities that collaborate on 22 open source projects. Approximately 250 students from four continents took part and will continue to work on their projects over the rest of the semester.

The BlackBerry team consists of five students: one each from the Canadian universities of Simon Fraser, Brock, Waterloo, and Sherbrooke, and an American student from Princeton. Our goal is to write plugins for the new WebWorks 2.0 SDK, which means they will also work for Cordova and PhoneGap. To get the students started, we focused on porting our previous community contributed extensions from WebWorks 1.0. This allowed the students to learn the intricacies of the plugin architecture, without also having to write a lot of new native code or design an API so they could contribute quicker and gain confidence with the platform. We were able to get four plugins ported in the weekend, so it was a great success. The four plugins now available to WebWorks 2.0, Cordova, and PhoneGap devs on BlackBerry 10 are:

  • Vibration – length and intensity controls, with optional completion callback, so it goes beyond the HTML5 spec
  • LED – Blink or turn on and off the device LED and set its color
  • Thumbnail – resize images using the fast native library
  • DeviceInfo – toolbox of hardware information, including current network information

There are several fundamental differences between academic coursework and commercial or open source software development. This event allows students to experience the introduction of real customers, problems that don’t have a known solution (or sometimes no solution at all) and distributed development teams. Students also have their code published in public open source repositories. The feedback they get from other community developers can be invaluable, and their public work can be easily discussed in interviews for employment or grad school.

Here’s what Deric from Princeton had to say about the weekend sprint:

Hey! I’m Deric Cheng, a junior CS major at Princeton who’s developing BlackBerry plugins as part of Facebook Open Academy, a program that brings together university students and companies to work on open-source projects. Over the past weekend, I flew to Facebook’s headquarters to work with my mentor, Tim Windsor, and the four other students working on the BlackBerry team.

I arrived in San Francisco on Thursday night with the other Princeton students in the Open Academy program. On Friday, the coordinators took us all to Stanford, where Jay Borenstein gave us an introductory speech on the goals of Open Academy and what we should try to take away from this weekend. Afterwards, we separated into our respective company groups and began work on our plugins. I met Tim and the other students on the BlackBerry team, all of whom were from various Canadian schools, leaving me as the sole American in the group. Nevertheless, we got along well, and after the necessary jokes about maple syrup and class years (“What’s a junior? Is that second-year?”), we started our work on developing an LED plugin.

Over the next two days, I spent the majority of my time getting used to the plugin codebase, while tackling the actual problem of porting a native library for activating an LED light in C++ to be usable in JavaScript using Apache Cordova. Because I hadn’t had any experience with C++ or JavaScript prior to this project, most of my problems stemmed from getting used to these new languages, and there were quite a few intricacies in how the port was structured. We used JNEXT as the primary tool to call C++ code from JavaScript files, and I used the original native code for a LED plugin as created by Andy Wu. It took the better part of two days, but by the end of the project, I had a working port that could set the color and blink count of the LED on our BlackBerry test phones.

Near the end of the program on Sunday, Jay gave us a very informative talk on the process of creating a start-up and the things to keep an eye out for when going through the process. For the vast majority of us who hadn’t gone through the experience of setting up a start-up, it was an incredibly useful discussion. We learned about dividing stock and the differences between actual and potential shares, and the process behind patenting ideas and copyrighting company names.

By the end of the Open Academy program, I had met a ton of fantastic students from various universities around the world, ate a ton of fantastic food and made a lot of headway in starting the process of creating brand-new hardware plugins for BlackBerry. I’m looking forward to the rest of the semester to see what I can make!

I’m sure it’s clear that this is a great program for these students, but of course it takes quite a feat of logistics and investment to pull it off. There are only so many students who can participate, and it’s often limited to the very best at any particular university. However, this is open source that we are talking about, and engaging with the developer community is a core strength of the BlackBerry Developer Relations team. Open Source gets its greatest benefits from diversity and many perspectives collaborating. It doesn’t matter if you went to a prestigious school or none at all; if you are interested in participating to learn, or gain some of the same benefits that these students are getting, then let us help you get involved!

IMG_5285

The BlackBerry team coding.

If you’re interested in following along with the student project, watch #bbucosp on twitter, and all the code will be going into the public BlackBerry repositories on GitHub. If you want to get involved yourself, contact me on Twitter or GitHub.

About timwin1