Open main menu

CDOT Wiki β

Changes

User:Asalga/FSOSS 09

211 bytes added, 22:40, 8 November 2009
Alistair MacDonald
===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===
1
edit