
My friend Thomas in NYC participated in a recent walking tour of Christo's The Gates in Central Park. The participants downloaded music to their ipods (or whatever), met at the designated spot and synched to the same music before proceeding. Thomas writes:
It's difficult to articulate what "The Gates" really are. (I'm sure they're something different for every person…). For me the evening was almost cinematic (maybe it was the soundtrack…). The Gates seemed to focus my experience of the world around me. It was almost as if they created rooms and corridors in an outdoor space. The park at night was extraordinary. Around every bend was a new thing to see and experience. There were breathtaking and magical scenes that were brought into sharper focus by the darkness.
Beautiful. Maybe it seemed cinematic also because Thomas was video taping the night and has released a gorgeous video with a sample of the walk's soundtrack. Go to his site to read more and download the video: Trebsworld: The Gates. This was the first time I felt the power of this incredibly hyped art project! Thanks Thomas, it was well worth the 33 meg download :)
So I've decided to end my lifestyle of sloth and take a job as an e-Mover (consultant). Meet my new employer: The Huh? Corporation: We do stuff.
Before I left for Brazil, Mie and I set up accounts on Second Life (SL) so that we could have an online experience with each other while we're apart that would be richer than just moblogging, skype and video chats. Unfortunately her laptop died before I got back on the Internet here and she had't had time to install the SL client again yet.
Sunday, while she was in Portland I decided to spend some time getting my avatar in better shape. The in-world avatar editing tools are good but I wanted my avatar to look more like me so using a provided head/face template I stretched and smeared a photo of me into place and managed to get something that was an improvement. It's mostly just my lips and nose that came out ok, since they got stretched the least. Apparently you can't map your own eyes onto the avatar, which is a shame since they are probably the best bang for the buck in terms of making it really look like someone. I think I'll go back and try to do the stretched parts a little better but it's not too bad for now.
Encouraged by this small success, I next tackled a custom animation. Using an excellent tutorial for Poser 5, I managed to manipulate an actor to bring his palms together at his heart with a slight bow. I recorded myself saying "namaste" and combined the animation and sound into a cheesy hindi gesture that I can have my avatar perform in-world.

Now I was on a roll! There's only one way to top off design and animation work, and that's with a little coding. I remembered reading that the Second Life scripting language (LSL) had XML-RPC capabilites so I figured a fun thing to do would be to write a script that would call out to the Flickr API occasionally and download my latest photos for display in-world.
[Note, since the gory details of the ensuing hackfest are rather long, I've added them in the Extended Entry section, click the "MORE" link below to take you to the full posting which involves praise for Ruby, disdain for LSL and moments of joy and anguish]
MORE...
In How the web should be, Anil points out a flash rendition of a Coltrane tune that feels like an abstract version of the sonic wire sculptor. I wonder how difficult it would be to write code to generate these sort of visuals automatically from audio analysis? Obviously this is what visualizers do when playing mp3's in iTunes or WinAmp, but they don't have the same sense of narrative. I think to pull that off the entire audio file would have to analyzed as a whole instead of as a stream.
Eh, cloudy thoughts for a cloudy morning.
A just noticed Roger Penrose's new book The Road to Reality: A Complete Guide to the Laws of the Universe is out and weighing in at over 1100 pages. I'm half tempted to order it, but I already brought the equally long book Stephen Wolfram's A New Kind of Science down to Brazil in hopes I could finally make my way through that tome.
I haven't cracked that one open since I got here, but thanks to three days of flat ocean I finally was compelled to sit down and work on one of the hacking projects on my agenda: learning Ruby and Ruby on Rails. I'm impressed with this language, but especially the Rails framework. It's just ridiculously simple to set up a basic database-backed web application. In just one line of code and changing a couple of params in a config file you can create a web frontend to a database table. The rails tutorial was well written.
The language has a few things that are weird to a long-in-the-tooth Java coder like me. Here's the notes I jotted into Notational Velocity as I was running through the Ruby tutorial:
- redo: start at top of loop with same values
- iterators ( str.each_char{ |ch| printf "<%c>", ch}
- retry: start back at beginning of iteration
- for var in var2 is equivalent to vars.each{|var| ....}
- yield: moves control to a block of code passed to the iterator function
- methods defined in the "top level" of code are private methods to Object (mother of all objects)
- an object of a Class may have new methods added or altered dynamically, thus specific to that object (called singleton method)
- Module (like a class but no instances or subclasses)
- mixin: mixes in the methods of a module in a class,imitating multiple inheritance. Sort of like "implements" in java
- proc {} object and proc.call, can be passed as arguments
- begin/rescue/ensure/end (like try/catch/finally) and raise (like throw)
- inspect and to_s (like java toString())
- attr_reader :v, attr_writer :v, and attr_accessor :v (shortcuts for accessor method creation)
- initialize is the constructor
I'm especially looking forward to wrapping my mind around passing code blocks as arguments. This isn't new to the world of programming languages but it is something I've never played with before and seems to open up a lot of possibilities.

