User:Asalga/FSOSS 09

From CDOT Wiki
Jump to: navigation, search

Introduction

For the past eight years, Seneca College has hosted the annual FSOSS, the Free Software and Open Source Symposium. It is a two day event in which students, professors and developers are given the chance to present their work, research and views on anything open source. It is held at Seneca College's York University campus and attracts hundreds of individuals from a wide range of backgrounds. Every year the talks vary greatly; from documentation, legal issues, tools and standards to 3D and mobile development. Not only are the speakers highly qualified, but often many seasoned professionals from different fields can be found among the audience. This creates a wonderful opportunity for Seneca's students to mingle and discuss current issues on open source with these experts. Like last year's FSOSS, this year's had a gamut of talk topics. I had the pleasure of listening to several of them, all of which were very interesting. However, because I am considering making a career from open source development and because I have a strong interest in real-time graphics, there were two talks I felt were especially relevant to me. These were Al MacDonald's talk on Processing.js and Khalid Baheyeldin's presentation on making a profit using open source software.

Alistair MacDonald

The first presentation I attended was Al MacDonald's talk on Processing.js. Al is a contract developer who originally specialized on building user interface web applications with Flash. He has since then switched to developing other powerful user interface applications with JavaScript. JavaScript combined with the HTML5 canvas tag enables developers to render highly interactive and impressive real-time graphics within a web page. Al is the champion of the Processing.js project, which he acquired from John Resig, who was the pioneer of Processing.js. Al MacDonald's work on the project began when Resig asked MacDonald to create the Processing.js web site. Once John saw Al's excellent work on the site, he decided to pass on the entire project to Al since John needed to focus on his other projects such as jQuery. This is a common occurrence found in open source development. When an individual develops a personal itch, they begin to implement a project to solve some problem. However, for some reason, they later decide to abandon the project. Instead of letting the code become stale, they pass the code to another interested developer. A similar situation happened when Eric Raymond, the author of "The Cathedral and the Bazaar" overtook a project Carl Harris was no longer supporting. This is something closed source software does not easily allow. As Eric succinctly states, "When you lose interest in a program, your last duty is to hand it off to a competent successor". In Resig's case, the program was Processing.js. Resig originally began his work on Processing.js because he felt that the Processing language was elegant, but Processing was Java-based and he thought the Processing demos needed to be liberated. He therefore began to port the language to JavaScript and eventually handed it off to Al when he could no longer work on it. Alistair is now leading a small group of Seneca students which are implementing various functions in the language which Resig did not have the time to complete.

MacDonald's talk focused on demonstrating the practical use of the Processing.js by showing how a twitter widget can be easily built using the language. He began his talk with a overview of the official Processing.js web site. Interestingly, the web site is almost a direct copy of the Processing.org web site. This is a quintessential example of one open source project reusing the style and layout of another. Ben Fry and Casey Reas who first began Processing (which is also open source) are of course not threatened, but are excited to see the success of the JavaScript-based version of the language and site grow. One useful feature the site offers is a script which encourages any curious Processing neophyte developers to write their Processing.js scripts within the site itself and watch it execute. Once a developer has found they have created something of value, they can simply have the site extract their code and insert it into web page complete with the library itself. Because of the simplicity of the language, creating neat scripts can be done quite quickly. The tool of course serves another useful purpose. It increases the chances of a passer-by developer deciding to contribute to the development of the project.

Al then spent the remainder of his talk on the twitter widget. He provided a walkthrough of how the tool was constructed and then demonstrated the final product. The widget extracts tweets from an individual's "following" list on twitter and animates the text in the canvas tag of the web page. This widget can then be inserted on a user's web site. It provides an great aesthetic, sticky and interactive feature for a user's visitors.

Processing.js's open source posture was evident and was not directly mentioned, however near the end of the presentation, Al did mentioned some of Seneca's students who are currently contributing to the development of the language. He is no doubt pleased to have a small group of students willing to devote their own time implementing functions to make the API identical to that of the Java-based Processing project.

Al then gave accolades to Daniel Hodgin, one of Seneca's open source students who had elegantly implemented a function which converts a hexadecimal value to decimal. The day before, Al had stated it would have proven challenging for him to implement. Although Alistair is a very skilled and successful developer, other developers may be able to implement functionality into a project more easily. This directly relates to another one of Raymond's aphorisms "Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone". No developer excels in every aspect of programming. It was at this point the proverb ceased to be simply words on a page and something I understood.

Lastly, as I watched Alistair demonstrate one last impressive experiment. I began thinking of yet another one of Raymond's truisms: "Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected". We have developers at Mozilla implementing a browser which parses HTML5 elements which then renders all sorts of incredible things. I wonder how much of the demonstrations online Mozilla staff envisioned. I also wonder what other amazing scripts will find their way to the Web.

Khalid Baheyeldin

The other session I found personally relevant was Khalid's talk titled "Open Source for Fun and Profit: Making a Career". I was stunned at the throng of people present. The talk took place in the upper Kaleidoscope room and had audience members lining its glass walls. Audience members were forced to stand because there were simply not enough chairs to accommodate for all of us. Luckily I didn't arrive too late and managed to get a seat. I interpreted the amount of audience members present as a sign that there is still much confusion as how a business or individual can make a profit from free or open source software. I am hopeful FSOSS 2010 will have similar talks or even an entire stream addressing this issue.

Khalid began by first providing his background. He is the founder of 2bit.com Inc., a privately owned incorporated company based in Waterloo. His firm provides domestic along with international custom web page development for businesses seeking to place their business online. His talk mostly focused on his own experiences with generating a profit by the use of Drupal, an open source content management system. Khalid then went into more detail about the different features of Drupal. Its scalability, themes and speed were some of the advantages he reviewed. He also mentioned that Drupal is now actually being used by the whitehouse.gov website, which I found quite interesting.

During his talk, Khalid drew a fascinating analogy between biological symbiosis and software development. He argued developing closed source software is similar to a biological parasitic relationship whereas open source development more closely matches a mutualistic or a commenalistic relationship. In parasitic symbiosis, one biological organism benefits, while the other suffers. A simple biological example is of course a parasite. While the parasite benefits from a host by feeding on its flesh, the host is physically harmed and potentially killed. A software equivalent is a closed source company which releases an application juggernaut which benefits by capturing the majority of profit from consumers while dwarfing any other smaller yet functionally equivalent products. The smaller company will obviously lose profits and similar to the biological host, the well established company may lead to the other company's demise. An example Khalid used is two competing hardware assemblers, HP and Dell. He went on to say that the two companies strive for complete market share, firmly believing if one is to succeed, the other must fail. He firmly asserted this isn't necessary and each company can have their own 'piece of the pie'.

I began to think about other examples. Because of Microsoft's huge presence in software, it attracts many development studios to adopt its Visual Studio IDE, shunting most developers to buy this product. Other IDE producers then lose profit because their products may not have even been considered. A more extreme example of a parasitic occurrence was in the mid 90's. Novell released its WordPerfect application to run on the Windows operating system. However, Novell later claimed MicroSoft omitted technical details (such as API documentation) of its operating system. This prevented Novell from making their product as powerful as MicroSoft's Word. The issue still creates much debate. Whether or not Novell was correct in their claims of lost revenue is still uncertain, but this does produce an interesting case.

A third more contemporary example is that of the browser wars. After an installation of Windows, Internet Explorer can be found right on the desktop, ready for use. Many users are apathetic about which browser they choose. Since it is present by default they simply use without a second thought. Microsoft is easily able to drown out competitors simply because they build both a browser and a popular operating system on which Internet Explorer runs. One of the major reasons I choose to use Mozilla's Firefox is because it not only uses open standards but also has proven to be a extremely innovative.

Khalid then went on to describe the almost reciprocal mutualistic symbiosis. In this symbiosis, two biological organisms both benefit from their interaction. Khalid claimed open source development leans more towards this win/win relationship. For example, when developers decide to adopt the LAMP system for their web development, Linux, Apache, MySQL and PHP/PERL developers all benefit. Each of these systems were developed separately but can be brought together to solve real world problems. Of course even open source isn't purely mutualistic. There are competitors such as in the case with Drupal and Joomla, both are useful content management systems. The competition however isn't of the same nature as compared to a closed vs. open source program. Even looking at the different distributions of Linux, there exist so many and yet each aren't actually trying to drown the other.

Khalid then addressed some of his views and experiences working in open source environments. He recited a few anecdotes in which individuals have fixed or updated his old applications by sending him patches for review. This is yet another example of a relic project left behind and subsequently picked up and improved by another interested party. Additionally, this exemplifies the mutualistic relationship present in open source software development. One developer has their legacy application resurrected while the other one gains meritocratic status. That contributor can then place this on their resume when looking for future work. On the other end, the developer receiving the patch has benefited because their time was saved from doing it themselves.

Then the presentation narrowed to profit-generating portion of his talk. How exactly can one make a profit from software which is either free or has its source readily available? To do this, other avenues need to be perused rather than selling the software directly. There are a slew of available options such as providing web hosting, publishing books, conducting seminars, selling video tutorials on tools, teaching classes and of course hosting symposiums. At the conclusion of his talk, an audience member asked him about how to go on starting a business. He began to list the the different legal forms of ownership available. I found this interesting because I am currently enrolled in a Canadian Business course in which we learn this material. Hearing that individuals are actually seeking out this information makes attending some of the classes much more meaningful.

Conclusion

By analyzing both talks, it can be seen that the speakers share similar views on open source in terms of the value of contributions made by other developers. Al gave praise to Daniel Hodgin for his contributions and Khalid expressed his gratitude to contributors which have fixed bugs and resolved compatibility issues in his applications. During my time in the open source development course at Seneca College, I have read, heard and watched an assortment of different open source related material. I believe both speakers analyzed here have congenial views on open source development compared to the material covered in the class. Therefore my views on open source were bolstered by the message of the speakers rather than challenged.

Both Al and Khalid have reinforced my views on open source development by solidifying the truths in Eric Raymond's "Cathedral and the Bazaar". Firstly, there are always other developers more qualified to implement a particular feature in an application than yourself. Secondly, once you have lost interest in a program, be sure to hand it off to another programmer. By following these rules, both individuals can benefit. Looking at these two aphorisms, it is evident open source is indeed fundamentally different than closed source development. It was reassuring that I found both speakers to have practised the proverbs created by Eric Raymond because it demonstrates theory put into practise. However I am certain I would have found the same thing if I had been present in the other talks. All the speakers at this year's FSOSS presented a vast number of interesting topics and demonstrated very impressive cutting-edge tools useful to solve real world problems. I learned a great deal of things, reunited with old classmates and had a lot of fun. I look forward to attending Seneca's FSOSS 2010. It will be interesting to revisit the talks of 2009 and compare how things have changed in 2010.