Monday, June 8, 2009

Note to self...

I just wasted a few minutes on the obvious...Working on a JavaScript with Dojo, going through the excellent Mastering Dojo book from the Pragmatic Programmers.

I'm working on the script, and looking at this bit of code:

dojo.addOnLoad(function() {
dojo.connect(dojo.byId("qform"), "submit", function(e){
//stop default processing and propagation
//(we really don't want to submit the form)

//erase any previous borders...
dojo.query("*", "fixture").style("border", "");

//set all elements found by the query to have a red border...
var query= dojo.byId("query").value;
dojo.query(query, "fixture").style("border", "2px solid red");

The error I'm getting is in the 'addOnLoad' method, with a "dojo not defined" error. Looking further up, I indeed have my dojo root specified.

See the problem? Of course not, because there is not a problem with this code. I was looking at the code (mismatched parens? missing semi-colon) when the issue was that I had retrieved the page by putting the file name in the browser, instead of the the http URL, so my code was not being served by my Apache server, therefore making it impossible to find the dojo code. Switch to an http url, and it works like a charm.

Someone is going to make the same mistake, and it's an object lesson (no pun intended) that sometimes there IS a simple solution, but that solution is often overlooked. I hope to save you a few minutes scratching your head.

Friday, June 5, 2009

Come into my office

This is just a bit of here to read about my 'office' and visit it via the Unity browser plug-in! Good weekend to all.

While I'm's my 'other life', my band Good Rocking Sam.

Monday, June 1, 2009


Here's a quick rundown of projects, and some of the technologies I'm working with..

The Social Computing Room at RENCI has been busy...
  • I'm working on a new media projects that uses Max/MSP/Jitter to create MIDI music using tangible objects with embedded UbiSense tags as the 'instrument'.
  • I'm working on installing a very cool Flash/Flex based media project that uses all four surfaces of the Social Computing Room. This work has been installed elsewhere, so it's an adaptation. It really looks cool! This has allowed me to learn a bit more about Flash and Flex. As a programmer, I 'get' Flex much better than I get Flash.
  • I'm working on a virtual worlds project, utilizing a 360-degree Second Life client to stage mock trials.
I'm still looking at the InfoMesa technology demonstrator, and building an application based on WPF technology for the large display environment in the Social Computing Room.

I've been working mostly on the back-end, creating a services layer for storing metadata (the part I'm working on now) and for accessing arbitrary data stores based on the metadata. The metadata service layer is pluggable by interface, and my first implementation uses NHibernate to store metadata on a back end server. Once this done, that metadata layer can have pluggable modules for things like cloud databases.

For the pluggable data stores, the first stores will probably be a mounted file system, then a database, then an iRods repository. After this, in order, it will probably be http, ftp, then cloud databases.

The Social Computing Room will be integrating a multi-touch table later in the summer, and therefore I'm kicking some of the user interface stuff down the road. I want to allow folks to sit at the multi-touch table and interact with arbitrary data stores, manipulating on the touch table, and viewing on the 360-degree display. This would be soooooo cool.

Serious Games

I'm learning about the Unity3d game engine in my 'spare cycles'. We've ported a few Unity projects to the dome, and blogged about it.

Lots of things going on, as you can see. Main technologies I've worked with in the last two months:

  • .Net, C#, WPF
  • Java, including some Jetty work, and some socket stuff.
  • Max/MSP patches
  • Flex and Flash development
  • Wordpress and a bit of PHP
  • Quicktime Streaming Server and Quicktime Broadcaster
  • Unity3D
  • Second Life building and LSL scripting.
This is why I like my I busted some solder joints Friday doing some testing, so I've got to play with a soldering iron.