A few weeks ago I had the pleasure of flying to Singapore to participate in FOSSASIA 2016, which is billed as Asia’s Premier Open Technology Event. I was able to spend a little time prior to the event doing some touristing but Friday morning came quickly and I met up with a colleague to make our way to the conference. We took the Singapore MRT (Mass Rapid Transit, rails!) from the station near our hotel to the Science Centre Singapore where the conference was being held. I was really pleased with how fast, frequent, clean and easy to navigate the MRT is during rush hour. Though the trains did tend to fill up, we had very easy rides to and from the venue each day.
This was my second open source conference in a science museum, and I really like the association. As conference attendees we were free to visit the museum (photos here). It was quite an honor to be welcomed to the center by Lim Tit Meng, the museum’s Chief Executive, during the keynotes on Friday morning. That morning I also had the pleasure of meeting FOSSASIA founder Hong Phuc, who I had been exchanging emails with leading up to the event, it was very clear that she’s continued to be very hands on with the organization of the conference since its founding.
The theme of the conference this year centered around the Internet of Things, so the Friday morning keynotes drew from a diverse group of people and organizations. I was particularly impressed that they didn’t just call upon open source developers to give presentations. Keynotes came from folks working on hardware, design and fascinating programs that used IoT devices.
Highlights of the morning included a talk by Bunnie Huang who made electronic, lighted badges for Burning Man that changed their light patterns based on how they “mated” with other badges to change their blinkome (think genome). Talks continued with a really fun one from Bernard Leong of the Singapore Post who explained how they’ve been experimenting with drones for small package delivery, particularly to remote areas, using Pulau Ubin as an example in the demonstration run.
I was then really delighted to hear about UNESCO’s YouthMobile program from Davide Storti and ITO Misako. YouthMobile is encouraging children to shift from being mere users of mobile devices to actually developing applications for them. I find this project to be particularly important as I know I wouldn’t be the technologist I am today without being able to fiddle with my early computers. We need to grow that next generation of tinkerers, but increasingly kids tend to only have access to mobile rather than the big old desktops that I grew up on. I believe projects aimed at inspiring the tinkerer in children on these new devices will grow in importance as we move into the future It was also nice to hear that the project hasn’t just been creating all their own curriculum to accomplish their goals, they’ve been partnering with existing initiatives and programs. Kudos to them for doing it right.
Cat Allman continued keynotes as she talked about the work Google has started to do in the Maker and Science space. Their work includes Google Summer of Code accepting more science-focused programs, support of Maker events and “road trips” with students to science museums. The final keynote came from Jan Nikolai Nelles who spoke on the The Other Nefertiti, where a team visited a German museum and created a not-strictly-authorized 3D rendering of a famous Nefertiti bust. It was a valuable thing unto itself, and interesting for raising awareness about how museums share data about artifacts, or don’t, as the case may be.
The conference continued as I went to a talk titled “Why are we (Still) wasting food? How technology can help” which sounds interesting, but the presenter didn’t seem to understand his audience or what the conference was about. The talk was pretty much a sales talk about the success of their product in saving food in restaurant and other industry kitchens. A noble effort, and it was fun to brainstorm how some of the components he talked about could be used in other open source projects. I visited their website during the talk and was perplexed to be unable to find a link to their source code. During the Q&A I specifically asked whether the software was actually open source. The presenter struggled to answer my question, he claimed that it was, but that he is not a developer so he wasn’t sure which parts or where I could find it. He gave me his business card so I could send him an email about it after the conference. My email follow-up received this response:
“We are not using any open source code. Everything is developed in house.”
How disappointing! I’m not sure how their talk ended up at a Free and Open Source Software conference, though their selection of a non-technical presenter who couldn’t answer a simple question that strikes at the core of what the conference is about does hint at their obliviousness. I certainly didn’t appreciate being tricked into attending a sales talk about a suite of proprietary software. Thankfully, the conference improved after this.
I attended a talk by U-Zyn Chua about how he reverse engineered an API in a taxi app for his Singapore Taxi data project. His talk was fascinating for two reasons. First he walked us through the work that had to be done to use an undocumented API. Second, the data about taxis that he collected was fascinating, high traffic areas, times of days when taxis were busy. Plus, between this talk and the Singapore Post talk I learned a lot about the geography and population centers of Singapore.
The conference continued the next day and I made sure I made time to attend Sayan Chowdhury’s “Dive deep into Fedora Infra” talk. Fedora was an early project on my open source infra list and it’s always exciting to chat with their engineers and swap running infra in the open stories. Sayan’s talk gave an overview of several of the key services that they’ve developed and deployed, including projects like Fedora Infrastructure Message Bus (fedmsg) which was also deployed by the open source infra team for the Debian project. Unfortunately I had to quickly depart from that talk in order to make it over to my own just after.
I gave a talk on “Code Review for DevOps” which I had a lot of fun modifying for the 20 minute slot and for a devops rather than systems administration audience. I put a firmer emphasis on the development of tooling in our team and was able to tighten up the presentation a lot to deliver a whirlwind tour of how we do almost everything through a code review system and with testing. Slides from the presentation are here (PDF).
I mentioned that my talk was 20 minutes long, and that makes this a good time to pause and reflect on that format. Almost all the talks at this conference were 20 minute slots, which is about half the length I’m accustom to. I really like this length. If a talk is not interesting, at least it’s short. If it is interesting, 20 minutes does actually give enough time for a good presentation. The schedule also allowed for 10 minutes between sessions so that people could get to their next room. In reality, all this timing this could have used a bit more policing. Q&As and even talks themselves by speakers used to longer slots frequently overflowed beyond their 20 minute window and frequently made it difficult to complete seeing one talk and getting out to the next. For a volunteer-run event, they did do a good job overall of sticking to at least the schedule of when talks started in each room, so if I planned accordingly I rarely missed the beginning of a talk in an alternate track because the schedule had drifted.
Saturday afternoon I spent some time going to lightning talks, including one about “Continuous Integration and Continuous Deployment (CI/CD) for Open Source and Free Software Development” by my colleague Dong Ma. With only 5 minutes, he was quickly able to contrast some of the features of the FOSSology open source CI/CD workflow with that of the model the OpenStack community has developed.
I was then off to Sundeep Anand’s presentation, “Using Python Client to talk with Zanata Server.” Last autumn we launched translate.openstack.org running on Zanata and have been using the Java client along with a series of scripts to handle manipulation of the translations in the OpenStack project. It was interesting to learn about his strides with the Python client, which is making its way up to feature parity with the Java one. Since OpenStack itself is written in Python, switching to this Python client may make sense for us at some point, as it would make it easier for developers on our project to contribute to it. During his talk he also gave a demonstration of Zanata itself as he walked through the use of the client.
These talks were all very practical for me and applicable to my work, but that doesn’t mean I didn’t go off and have fun too. Later that afternoon I attended a talk on “A trip to Pluto with OpenSpace” where the team developing OpenSpace took public images of the Pluto flyby and gave us a demonstration of how their software worked to provide such a fascinating, animated demonstration. I also got to learn about the New Palmyra project where people are getting together to create 3D models of famous monuments in Syria that have been or are at risk of being destroyed by ongoing military conflict in the region. I also enjoyed learning about the passion that everyone on that team is bringing to the project, and I have a lot of respect for and interest in their goals of preserving history.
On Sunday the first talk I attended was by François Cartegnie on the newest features of the popular, cross-platform VLC software project. As a user of multiple platforms (Linux and Android) it was nice to hear that with the 3.0 release they’re aiming to standardize on that release number, as the differing version numbers across platforms have been confusing. He also spent a great deal of time explaining the challenges they continually overcome to be the best player on the market, including not just by supporting encoding standards, but by also supporting when those encoding standards are poorly or improperly implemented. This can’t be an easy task. I was also interested to learn that the uPnP support has also been revamped and should be working better these days.
My colleague and tourism buddy for the week Matthew Treinish spoke next, on “QA in the Open.” Drawing from his experience as the QA project lead for OpenStack for several cycles, he talked about the plugin-driven model that OpenStack QA has adopted. This model has helped individual projects take ownership of their testing requirements and has helped scale the very small core QA team, which now spans over a thousand repositories and dozens of projects that make up OpenStack.
Sunday afternoon had a talk that was one of the conference highlights for me: “Reproducible Builds – fulfilling the original promise of free software” by Chris Lamb. I had an interest in the topic before joining the session, but it was one of those talks where I was really pulled in and became even more interested in the topic. The idea on the surface seems pretty simple, you want to be able to exactly replicate builds over time and space. But there are a number of challenges to this when it comes to actually doing it, which he outlined:
- Timestamps
- Timezones and locales
- Different versions of libraries
- Non-deterministic file ordering
- Users, groups, umask, environment variables
- Random behavior (eg. hash ordering)
- Build paths
As soon as he enumerated these things it was obvious that they all would be problems, and still surprising that it would be so difficult. From this talk I learned about the reproducible-builds.org project which seeks to document and discuss these issues and find solutions for all of them. Additionally, Chris himself is a participant in Debian and he was able to share statistics about how most Debian packages are now being created in a way that adheres to the reproducible model. Very cool stuff, I hope to learn more about it.
My afternoon continued by attending a talk about btrfs by Anand Jain. His focus was basics and then on to upcoming features in development. The talk may have convinced me to start using it in a basic way on one of my systems soon, as the support for the core components is actually quite stable these days. I then went to an Asciidoc talk, where presenter George Goh compiled his presentation from Asciidoc just before he began presenting, nicely done! He stressed the importance of documentation and making it easy to keep updated, with automated updates of references to things like figures that live inline in the text. He also explored the use of template systems in Asciidoc to easily export portions of your document to different projects and organizations while preserving the appropriate branding for each.
In what seemed much too soon, the conference conclusion came on Sunday evening. There were thanks and words from several of the organizers. Words from the audience and various attendees were also spoke, my favorite of which came from young (middle school by my US-rendering) students visiting from Saudi Arabia. Several had feared that the conference would be boring and too technical for the level they were at, but they expressed excitement about how much fun they had and how many presenters had succeeded in presenting topics that they could understand. It was thrilling to hear this from these students, I want the future architects of our future to start young, be exposed to free and open source software and to be excited by the possibilities.
More of my photos from the event here: https://www.flickr.com/photos/pleia2/albums/72157666299641355
Thanks to all the organizers and volunteers for putting this conference together. I had a wonderful time and hope to participate again in the future!