1
edit
Changes
→Conclusion
===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 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 passion for excellent work on the projectsite, 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 projectto solve some problem. However, but for some reason , they later decide to abandon the project. Instead of letting the code become stale, they pass the program code to another interested developer. A similar situation happened when Eric Raymond, the author of [http://131.193.153.231/www/issues/issue3_3/raymond/index.html "The Cathedral and the Bazaar"] overtook a project Carl Harris was no longer supportedsupporting. 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 , the program was Processing.js. Resig started originally began his work on Processing.js because he felt that the Processing language was elegant, but applets were not Processing was Java-based and he thought the future of the WebProcessing 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 function 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 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 .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. On 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 a something of value, they can simply have the site extract their code and create a packaged insert it into web pagecomplete 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 odds 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 main page and web site. It provides an great aesthetic , sticky and interactive and sticky 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 implement different devote their own time implementing functions to make the language needs API identical to be in simpatico with 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 he , 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 the proverb ceased to be simply words on the a page and something I understood.
Lastly, as I watched Alistair demonstrate one last [http://9elements.com/io/projects/html5/canvas/ 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 browser which parses HTML5 elements which then renders all sorts of incredible things. I wonder how much of the demonstrations online they 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 the number 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 [http://2bits.com/ 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 [http://drupal.org/ 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 actually being used by the [http://www.whitehouse.gov whitehouse.gov] website, which I found quite interesting.
During his talk, Khalid drew an interesting a fascinating analogy between biological symbiosis and software development. He argued developing closed source software is similar to a biological [http://en.wikipedia.org/wiki/Parasitism parasitic ] relationship whereas open source development more closely matches a [http://en.wikipedia.org/wiki/Mutualism mutualistic] or a [http://en.wikipedia.org/wiki/Commensal 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 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 parasite well established company may lead to the hostother company'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 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 developers 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 were 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) from 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 explain describe 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 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 natureas 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 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 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 save saved from doing it themselves.
===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 [http://fsoss.senecac.on.ca/2010/ 2010].