Saturday, April 28, 2007

Class Notes (session two)

:: borg qyoob ::

:: the matrix ::

I started today's session by projecting excerpts from Revolution OS, which chronicles the rise of the free and open source movement. The motivations were both philosophical and economic. Engineers needed more freedom.

Given Portland is an open source capital, students need some background as to what that means.

When the source code isn't secret, then global networking is a lot easier, as the teams won't degenerate into publicly expressing their recriminations and/or mutual suspicions over who "leaked it" (the source code).

Like, the code is on Sourceforge or Freshmeat or wherever, in CVS, Subversion, other version control infrastructure, and so "spilling the beans" just isn't an issue.

In exchange for this degree of liberalism around what might have been secret, you get the benefits of the bazaar type economy, whereby many eyeballs kill many bugs in a hurry -- often a recipe for robust products and thriving communities (like Python's).

Then, walking my talk, I whipped out my Corsair memory stick and made my source code available: viztoyz + stickworks. Students spent the rest of the class modifying my testing framework, learning by trial and error how VPython does shapes and colors, gradually absorbing the look and feel of this particular language, a stepping stone to many others as well as an end in itself.

A core concept in this course is how rendering the action frame by frame for a movie is different from computing geometries on the fly for an interactive game.

VPython is our engine for demonstrating this latter kind of computing, POV-Ray for the former, with Python itself the primary driver language in both cases.