Open main menu

CDOT Wiki β

User:Dhhodgin/FSOSS 09

< User:Dhhodgin

Free Software & Open Source Symposium

Introduction

This year's FSOSS featured talks by more than 20 different individuals on a broad range of open source topics. The talks are spaced out in 4 different rooms with one per hour. This means that I was only able to attend 6 talks which made it a bit hard to choose which ones would be most beneficial to me. In the end I went with the following lineup:

  • 9AM - Creating a Twitter Widget using Processing.js (Alistair MacDonald, Hyper-Metrix.com)
  • 10AM - Ranking the Bugs: Predicting Which Will Get Fixed (Diederik van Liere, Rotman School of Management)
  • 11AM - A View from the Gallery: JVM Alt, Languages (Newman (Scott) Hunter, Fuel Industries)
  • 1PM - Coping at the scale of Mozilla: Open Tools (Taras Glek, Mozilla & David Humphrey, Seneca College)
  • 2PM - Open Source for Fun and Profit: Making a Career (Khalid Baheyeldin, 2bits.com, Inc.)
  • 3PM - 3D in the Browser... More than just Doom (Catherine Leung, Seneca College)

I'm going to discuss the two talks which are the most closely related to my project in this course which were the Twitter widget in processing.js and the 3D in the browser with canvas and whats being done with these technologies. I will then do a comparison on how these two talks related to each other. Finally I give my views on open source and a summary of my experience at FSOSS.

Creating a Twitter Widget using Processing.js

Having just recently switched my major project to work on processing.js I decided this was one presentation I could not miss out on. This talk was given by Al MacDonald who is a freelance web consultant. His website is Hyper-Metrix.com. Al began his talk with an introduction into what processing.js is. He explained that processing is a language for creating 2D and 3D graphics, animations, and interactive applications.

Processing is a language that was built to be run and parsed on a native JAVA client. So processing 'sketches' would be created and then run on the JAVA client which would process them and create the graphics, animations, text, etc in a window. Then a man by the name of John Resig came into the picture and started work on creating a port of processing for JAVA to processing for JavaScript. The idea was to be able to allow those sketches of animations, graphics, and interactive apps to be able to be drawn in a web browser without any plugins or extensions to install. Simply put a way to animate and 'interactify' the web and allow processing creations to 'just work' in modern browsers for users.

After a brief intro into what PJS was and how it got started Al got into some code samples and showed some real time examples of making some simple demos. He showed how easy it is to get started and do some really neat things and basic animations with just a few lines of code. Following some code samples and demos he showed how some of the different parts of processing.js work and some examples of contributions that some of the students in our course have made.

Al moved on to talk about the community and how it is contributing to the project and helping to implement some of the remaining code that still needs to be ported. A group of about nine Seneca students are working together to help port and test some of the remaining functions.
Next came the demo I had been waiting to see. Al had created a widget for a web page that could grab twitter info and then aggregate it into the widget. The purpose of this demo was to show that with about 100 lines of code this technology could create a really professional looking animated feature for a personal website that could run on any modern browser using the canvas element for HTML5. Al has a very supportive view on open source and allowing processing.js to leverage the full power of the web through a hopeful explosion of this technology in the near future. He mentioned some of the work the community has been doing and how to get involved in the community through the Google group or IRC. Al talked briefly about some of the contributions Seneca students have made already towards the project and how it is growing fast and being implemented at an increasing pace now.

After showing the Twitter widget demo Al proceeded to show a couple of interesting demos of how processing.js is being used on the web. One of the most interesting ones was a visual search engine called Ask Ken. It allows you to search for a topic and then presents you with a circular disc of results which you can then pick one and it will create an offshoot disc with a sub search of that choice and so on. It shows how even our most basic tasks like searching for information on the internet can be redefined as to how we do it using processing.

A significant part of Al's presentation was a section titled 'Community and Mission' in which he talked about how the community is outward facing and open to anyone who wants to make contributions. He showed examples of how people can make contributions even if its not through writing code for the port itself. One of these examples was a website called HasCanvas where you can go and paste a block of processing code into a window and it will run the code for you in the browser and show you the output result much like the web based IDE only with a little more functionality and the ability to share a link to your creation with others. He also talked about the feature list and bug list the processing team has going on the Mozilla wiki that shows who is working on what areas and what bugs are currently known. Al rounded out his conversations on community by showing some of the contributions that Seneca students have made to date.

For anyone interested in getting started with processing, there is a simple web IDE on the processing.js website that allows you to just enter in some sample processing code and see how it works without the need to download the source and install it locally or on a web host and no need to configure the canvas etc etc. Al gave a brief demonstration of the processing web IDE during the presentation and showed a simple example and modified it a few times and re-ran it to show how easy it was to get started.

3D in the Browser... More than just Doom

This presentation was given by Catherine Leung who is a professor at Seneca College in the School of Computer Studies, where she teaches in the game development and programming areas. Cathy's talk was about a project she has been working on called C3DL. C3DL is a JavaScript library that will provide a set of classes for rendering 3D objects in the browser. Currently it requires an up to date browser such as Firefox 3.5 in order to run. Canvas 3D is available as an add-on for Firefox 3.5 or higher and can be downloaded at addons.mozilla.org. Cathy demonstrated an application called Motionview which allows previewing of down sampled motion capture data in the browser by using the C3DL library. Motionview was developed through a partnership between The Navarra Group, Bedlam Games, CORE, and Seneca College and was supported by the Ontario Media Development Corporation.

Motion capture is a technology that uses a special suit with reflective balls attached to key movement points on the object you want to animate, usually a human. Cameras from multiple angles capture the location of the reflective balls as they move around and the computer processes the data from the different cameras to build a skeleton of the object. Sometimes the cameras get it wrong though and the model needs to be cleaned up and corrected. The purpose of Motionview is to reduce the expensive cost of 'clean up' in motion capture animation scenes when sometimes certain points in the animation are wrong. Because of the high cost of producing motion capture video this data is never sent out in a raw format over the web, instead the C3DL library is used with the application which reads a converted format of the raw motion data and displays it in the browser for artists to preview which shots they want to use and mark which shots to be cleaned up instead of everything. This results in a huge cost savings.

Cathy moved on to show a few other demos such as particle systems and a 3D Google maps road view demo that could simulate turns in a route on Google maps. She also showed a really cool animation of some 3D panels that act as links to websites with logos orbiting around a c3dl logo which were clickable to visit the website. Once a panel had been clicked it would display a sepia effect to show it had been visited before.

For more information on C3DL you can visit their website. They have a section on tutorials as well for installing the Canvas 3D addon, basic modeling, light effects, etc. Their development news can be found here.

Comparisons

The most obvious comparison that can be observed from these two talks is how new strides are being made in the ability to create highly enriched content for the web. The ties of these two projects to open source is also something to take notice of. Both of these projects rely on an open source community to help contribute, test, develop for , and maintain. Both presenters focused on the importance of community in open source projects, the ability for people to give back to the community to keep it healthy, and on how taking part in the community helps raise awareness for these projects which will ultimately create a richer and fuller web experience for everyone.

My views on open source

My own personal view on open source is in two different directions. I think there is something to be said for the ability for student developers to gain an incredible amount of experience and knowledge from open source projects and seasoned developers. I've learned a lot from Al MacDonald just in the last few weeks about JavaScript and he's always been willing to help out on IRC anytime he's available. So in one way I think open source gives great opportunities to students for experience and also it gives people a way to mold their favorite open source apps into exactly what they want in an application. What I mean by this is if I decide I want a certain feature in my favorite open source project there's nothing stopping me from implementing it and adding it to the program. By giving enough time and providing quality code can get you a piece of software that is to some degree customized exactly how you want it.

I do tend to look at the open source community from the other side as well though. The corporate side. Sometimes I'll sit back and think 'wow all this work thousands of people are doing for free to improve and build on this product is making people for this company richer than astronauts'. While their is nothing wrong with that it makes me wonder how they can do it. So I wonder exactly how it is some of these corporations make the money they do. One of the lectures I attended at this years FSOSS was all about how to make money at open source. Unfortunately the presentation lacked a lot of details on specifics and exactly how much money is being made at different organizations. If I could put in one request for presentation ideas at next years FSOSS I'd love to see more presentations on how to make money with open source. Judging by the turnout for that presentation I think it's a wildly popular topic with a lot of people actually.

In the end it's all about the experience and the ability to be part of the community and also to be part of the software design process as well. Everyone loves free as a price point too let's not forget about that. Someday if I run my own software company I would like to be able to go open source with my applications as a way to give back to the community.

Conclusion

I think this years FSOSS was a successful experience for me personally. I got a chance to speak to a few of the presenters and learn a good deal more about the projects they are working on. The ranking the bugs presentation was very informative in terms of statistics and it taught me a lot about writing quality bug reports to increase the chanes my bug would get fixed. The processing.js presentation had lots of information I hadn't yet learned on the background of processing and processing for the web. It also had the best 'cool' factor of all the presentations in terms of spawning new ideas for features in web sites I design in the future. Cathys C3DL and Motionview presentation helped me draw the comparisons between processing for the web and C3DL and canvas in HTML5. Motionview is a really interesting piece of software and i've always had an interest in motion capture and CGI in movies and how its done. It was nice to connect a lot of the dots between all the presentations I got to see this year. I think the veiws on open source I saw presented at this years FSOSS were in line with my own views and how I perceive it as a community for free thought and also as potential place for profit off free software distribution if your business models suits it.