User:Asalga/FSOSS 09

From CDOT Wiki
< User:Asalga
Revision as of 21:16, 8 November 2009 by Asalga (talk | contribs) (Introduction)
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 power 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 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 passion for the project, 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, but for some reason they later decide to abandon the project. Instead of letting the code become stale, they pass the program 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 supported. 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 it was Processing.js. Resig started his work on Processing.js because he felt that the language was elegant, but applets were not the future of the Web. 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 function 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 language by showing how a twitter widget can be easily built using the language. He began his talk with with a overview of the official Processing.js web site. Interestingly, the web site is almost a direct copy of the Processing 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. On useful feature the site offers 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 a something of value, they can simply have the site extract their code and create a packaged web page. Because of the simplicity of the language, creating neat scripts can be done quite quickly. The tool of course serves another purpose. It increases the odds of a 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 main page and provides an aesthetic interactive and sticky feature for 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 are currently contributing to the development of the language. He is no doubt pleased to have a small group of students willing to implement different functions the language needs to be in simpatico with 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 he 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 the proverb ceased to be words on the 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 parser to read HTML5 elements which renders all sorts of incredible things. I wonder how much of the demonstrations online they 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 the number 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 actively being used by the whitehouse.gov website, which I found quite interesting.

During his talk, Khalid drew an interesting 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 a parasitic symbiosis, one biological organism benefits, while the other suffers. A simple biological example is of course is a human 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 released 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 parasite may lead to the host's demise. An example Khalid used is two competing hardware assemblers, HP and Dell. He went on to say that the two companies are striving 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 developers to adopt its Visual Studio IDE, shunting most developers to buy this product. Other IDE producers then lose profit because their products were not even 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 claimed MicroSoft omitted technical details (such as API documentation) from 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 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 explain the an 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 all benefit. Each 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. Even looking at the different distributions of Linux, there exist so many and aren't actually trying to drown out 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 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 save from doing it themselves.

Khalid then continued into the 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. There are a slew of available options such as providing web hosting, publishing books, conducting seminars, selling video tutorials on open source tools, teaching classes in universities and colleges and of course hosting symposiums. At the conclusion of his talk, someone 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.

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.