Free Software and Open Source Symposium Paper - Tiki & Pi
Introduction
For my class in open source development, I was tasked with attending the Free Software and Open Source Symposium (FSOSS) conference in Toronto Canada, and reporting on 2 of the talks that I viewed. FSOSS is a collection of talks and workshops about new, upcoming, and current projects from members throughout the open technologies communities about how they are shaping the future of multimedia (including web, video and education), what projects they are currently working on, and other technologies.
The conference took place between October 27th and 29th of 2011 and the Seneca @ York and during that time I attended several of the talks, but the two that stood out for me was a presentation by Eben Upton on Raspberry Pi, a a new 25$ computer, and on by Neson Ko and Pascal St-Jean about TikiWiki, a robust and powerful wiki option for open source development.
For me, the main ideals that I hold for open technologies are access and collaboration. What I love most about open technologies is that anyone can use them. The traditional monetary obstacles that exist for software are not a problem because for the most part, it’s free. This puts everyone on the same playing field to use and learn about tools and methods for achieving their goals. If access is the heart of open technologies, collaboration is the soul. Seeing people from all over the world, come together and produce functional and high quality software is incredible. Not only do the solutions work, many of the people contributing to projects are doing it for free. In the busy world that we live in, it’s great to see people finding the time to help out and share with the global community.
Though I enjoyed all of the talks that I attended, the two aforementioned presentations stood out for me as I felt that they both hit home with the values I hold highest for open development.
Raspberry Pi
“A Slice of Raspberry Pi” by Eben Upton was a fascinating talk about a new 25$ linux box. He noted that when he was a professor in computer science at Cambridge University, he found that the quality of applicants was steadily decreasing. Gone were the once adept students applying for entry, replaced by those with lackluster experience and little pre-existing knowledge of computer programming. Not only did applicants know less, they were dwindling in number. Though he and his colleagues had several ideas about why this was happening, they felt that their best efforts of helping curb this issue would be placed in trying to increase access to the hardware itself. Thus, the idea for Raspberry Pi was formed. A computer that was cheap and easy to produce that also had a decent amount of processing power.
What Raspberry Pi turned out to be holds a lot of potential. The hardware, about the same size as a credit card with the depth of about 1 inch, was able to run a full Linux distribution and even play HD video. It also boasted a somewhat powerful processor considering it’s size (similar to what is also being used in modern smartphones), ran at a low temperature, and required very little power.
With a small, lightweight computer that has a low initial cost and low upkeep costs, it opens a world of possibilities and creates a huge potential market. The current iteration of computers is quite expensive. With this technology, it opens the doors so that more computers are available in schools for students of all ages to learn on and use; enables those of lower income or underdeveloped countries to gain access to decent quality technology.
As I mentioned before, access is an integral pillar of open technology. Raspberry Pi has the potential to remove the monetary roadblock for a huge portion of the global population. This computer is a tenth of the cost of the tradition variety and could easily be bought or donated en masse to many different groups in need. In places with shared access, the number of available stations could increase so that individuals who want to use and learn more have the ability. Though the initial idea that started this project off may have been to increase enrollment at college and have more people interested with programming, the implications of this are far greater than merely that. The ever-expanding global village will be able to hugely benefit and allow access to many users that have never been able to enjoy the benefits of using a computer.
A lot of open development is focused on the software aspect and not nearly enough on the hardware aspect. Though there have been other efforts in creating accessible hardware for everyone, to the best of my knowledge, this is one of the cheapest options soon to be available. I can only image that this could have a big impact for the One Laptop Per Child mission. With even cheaper hardware, they would be able to donate even more laptops to underprivileged children throughout the world. With more access, kids and students will be able to have a hands-on approach to learning too. Instead of merely reading or seeing demonstrations, they themselves would be able to actively participate and hopefully gain an appreciation and interest of the hardware and software. Computer skills are necessary for almost any job. This technology will level the field for many, many people.
Philanthropic possibilities aside, this computer could even allow those with a general interest to explore subjects like hardware modification (since the unit is easily replaced) or distributed computing (as the units are cheap and can be bought in bulk). People will no longer need to use a specialized lab to learn and work with these paradigms.
Obviously there are other barriers to have nearly barrier free access to computers for everyone in the world. Hopefully though, this will start the ball rolling so that cheaply available computer systems (monitor, computer, peripherals) are easily available. Computers offer a huge advantage and affording everyone the opportunity to use and learn how to use and work with them will increase the quality of life around the globe.
Tiki
“Tiki Wiki CMS Groupware – Software the Wiki Way” by Nelson Ko and Pascal St-Jean was an interesting presentation on the TikiWiki software and how their community functions. With 250 active developers, 1,000,000 lines of code and over 1000 features, they had to collaborate and work as a cohesive group. While there have been some negatives, the benefits of writing software in a wiki way have been far greater. Applying the wiki idea to creating software has ended up with one of the most successful open technologies for content management, wiki and groupware all in one product.
While the project does have certain priorities, it is mainly a “do-ocracy”. What this means is that you only have to work on the stuff you want to do or use. Much like a wiki, you can also edit or code on anything else that already exists. In many projects, there are owners to certain features. In the Tiki case, much like a wiki, anyone can edit anything and everyone can request access. Most of the people that are contributing are doing so because there is a need that they had and filled and wanted to share it back with the community. This is the main reason that they so many features. This methodology is manageable because all of the code is in one repository. With other systems that have thousands of features, the code is scattered and it’s hard to continue development on features that no longer have a developer. In the Tiki case, if a developer fails to maintain a feature that they created or if someone else wants to add some new sub features, they can do it on their own and not bother trying to request the original developer to do it or have to start their own completely new feature.
With so many people editing different parts of the code base, there needs to be a way to test to make sure that the features work properly and are bug free before the software is released. A process called “Dogfood” achieves this. The beauty of Tiki is that the contributors of the software are themselves using the software to contribute. This recursive system of software development means that any bugs or issues are quickly resolved and fixed. This also means that not only do you have end-users that can inform you of issues should they occur, but Tiki will themselves encounter the same issues because it is its own platform for development. This also increases the confidence that users have in the product because they are using it as a proof of concept.
I found this talk really interesting. Typically few people have access to the software repository when development occurs in the open source world. Normally, one person has access to the main repository and all code changes need to go through them (whether it’s patch files in Subversion or pull requests in Git). This successful shift in the fundamental way that the software is developed and how it grows is really amazing. With the wiki idea behind the development it also ensure that there is still accountability. While access to the repository is controlled, it’s still considerably open (considering 250 people have full read/write access). It’s also nice because no one has to wait for something to be fixed. If a developer fails to fix their code in a timely manner, someone else can do it. Sure this introduces other issues but for the most part it seems to have worked incredibly well for Tiki and many other projects could probably benefit from a similar system. I also found that Tiki using the software it’s developing to run itself very cool. It’s a very easy way to build confidence in the software when you can see the success that they’ve had. A lot of open technologies are built by people who use their own product, but have no real proof of concept to show others. Tiki is a huge stakeholder since it’s run off of its own software and has a development cycle that almost ensure that features will always have developers shows that it works incredibly well. The idea of having a collaborative effort akin to Wikipedia for building software would be a very hard sell, except that Tiki has already shown how well it works.
Comparison
It’s hard to compare the two technologies because, for me, they both represent different parts of the open technologies community. Raspberry Pi deals with access and Tiki, collaboration. This being said, there are two things they are both doing extremely well. They are both challenging existing notions of how thing are or how they should be done and removing existing obstacles that were preventing people from achieving their goals.
Raspberry Pi is challenging the way that we thing about hardware and how access to it is controlled by large monetary blockades. What was once exclusively available to those who could afford it, can now be purchased by nearly anyone. Moreover, it allows institutions who allowed those who could not afford it, the ability to grant greater access by purchasing more units for the same amount of money. Places like libraries that only need computers to browse a catalogue, browse the Internet, or for simple word processing will find machines like this fantastic for this purpose.
Tiki on the other hand is challenging the way that we develop software in the open community. Until now, software has been typically developed in a way where very few people have write access to the code repository. Now we can see the great success that can be found in developing software the same way that Wikipedia built it’s gargantuan compendium of knowledge. It’s exciting to see the wiki method applied to software development because it has huge implications for future projects. As a developer, it’s interesting to see how the burden of effectively being a gatekeeper for a project can be lifted under the right circumstances. Volunteer open technology developers are almost exclusively made up of people who want to improve software. This completely removes the roadblocks that were preventing them from directly adding their contributions and completely opens open technology development.
Conclusion
I’m really glad that I attended these two talks. I love seeing existing notions challenged and shaken to the core. As a developer, these changes could prove to completely change the way we think about hardware and software. Both Tiki and Raspberry Pi are showing us that you can do things a new way and that nothing is set in stone. I’ve mentioned throughout this that my two central ideas in open technologies is providing access to as many people as possible, and collaborating to create something far greater than a single person could ever achieve. Both of these projects relate directly to that and I think it’s encouraging to see that developments are still being made to these central columns of what I think it means to be “open”.
I look forward to attending FSOSS again next year where I will hopefully get to see more about how the world of open technologies is being shaped and change. I enjoyed all the quality talks this year and encourage anyone else who enjoys and is active in open technologies to attend.