Thursday, February 11, 2010

Initial Project Plan

For my semester assignment I’ve chosen to contribute to the Processing for the Web project which is an ongoing work that is porting the Processing language to be the open web.

Background of Processing.js

Although the project is based around the processing.js language it is important to know the origins of this language port. Processing is an open source programming language that was developed for the purpose of teaching the basics of computer programming from a visual perspective. The Processing language was started by Ben Fry and Casey Reas in 2001, both of which were a part of the MIT Media Lab’s Aesthetics and Computation Group. A few years later in the summer of 2008 John Resig, the creator of the jQuery, ported the Processing language (which was based in Java) to Javascript for use in web pages.

Importance of Processing.js

Currently if one wants to implement animations in their browser they would have to install a plug-in, whether it is Macromedia Flash, Java and Microsoft Silverlight. But what if there was a way to run these animations without having to take that extra time to install a plug-in to do so? Wouldn’t that be convenient and make life easier? Well there is! With processing.js all of the implementation for animation can be done from the javascript running on your browser, ultimately eliminating the need for a plug-in to do the implementation for you. Not only is processing.js eliminating the need for additional plug-ins but it also is eliminating the issue of browser compatibility as the language is running on all of the major browsers such as Firefox, Safari and Internet Explorer (although with Internet Explorer they would have to use ExplorerCanvas).

What Will I Be Doing?

Why did I choose this project? I believe mainly for the fact that my job will consist of actually trying to break something as opposed to fixing it. For the project I will be creating a test suite that will test processing.js functions that are currently being ported through the parser to ensure that they work properly after the port process. For this I will have to develop lots and lots of simple tests to put each of the functions through. In doing so I will try to keep with the following timeline for my releases to the best of my ability:

0.1 Release – February 19th, 2010

0.2 Release – March 19th, 2010

0.3 Release – April 9th, 2010

For progress on my project you can follow on my wiki project page, I’ll keep my blog updated with breakthroughs and pitfalls, and maybe...just maybe…some ranting. Since my task encompasses creating tests for the functions used in processing.js I’m pretty sure my releases 0.2 and 0.3 will more than likely change. For the time being I will go with the following outline:


Release 0.1

Focus on completing tests for functions that are of high priority for the project in terms of close to completion by other members. For this I will have to communicate with others working on the actual porting of the code to find out which functions need immediate attention.


Release 0.2

To Be Specified**

I’m looking at completing less important functions after the important functions have tests created for them. An additional functionality will be added to the test suite to work with unit tests (unsure if this has been done yet, will update this release goal if it has)

Release 0.3

Test suite will be able to perform tests for all functions in the processing.js library. As I may be changing the goals of Release 0.2 there will be an added functionality which will be incorporated into the test suite.


Required Learning

For this project I will need to have a basic understanding of the following:

Javascript – it plays an important role in the project as it is the language in which the processing language will be ported into so I will need to know the basics of Javascript in order to write my tests and to debugging.

Processing - I will need to learn processing since it is the language that processing.js was ported from. To have an a basic understanding of this language will prove valuable for my work in the same light as Javascript as I would need to know which functions translate into what on the Javascript side.

Processing Developer Environment – familiarizing myself with how to use this development environment will allow me to actually use the functions to do some testing and debugging.

To acquire knowledge on these topics I will resort to the following:


Processing Resources

http://processingjs.org/reference

http://ejohn.org/

http://processing.org


Javascript Resources

“Learning Javascript” by Shelley Powers

http://javascript.internet.com/


Collaboration and Contact

As my task requires me to write many tests I would appreciate any input regarding to scenarios in which a function may crash, it’s not possible for one person to look at an issue from every angle so having others contribute ideas and scenarios will help cover areas that may escape me. In terms of contributing I’m keen on doing cross platform testing and debugging javascript since I will be using the language quite a bit this semester.


Barriers and Obstacles

For this project I’ve got a personal barrier that has stuck with me for a while. First off I’m easily intimidated by work that seems complex or beyond what I feel I’m capable of. When I’m faced with this not only do I get frustrated but I try to fix it on my own without asking for advice or assistance which results in time being wasted achieving a small task that could have been done in seconds should I have asked for assistance. To help with this barrier I will try to utilize IRC more and collaborate with others instead of struggling on my own wasting invaluable time.

No comments:

Post a Comment