Wednesday, October 14, 2009

Sun VirtualBox

A few quick tips on Sun VirtualBox, their open virtualization platform. I'm runing a host with Windows XP, and I want to host some Linux servers for various purposes (more on that later).

Anyhow, a few quick hits. First, I installed VirtualBox, and immediately went for Fedora 11 from RedHat. Never could get Fedora to see the virtual drives I had created. I switched from Fedora 11 to the latest version of Ubuntu and it works fine.

Second, I was working on creating a shared folder on my Windows host that could be seen by the Linux box, using the provided command:

mount -t vboxsf [-o OPTIONS] sharename mountpoint

This was returning an error that it did not know about vboxsf as a type. I found that the 'missing' step was, once you install the 'Guest Additions', to issue the following command on your guest Linux server...

sudo /media/cdrom/

This will let Ubuntu know about the vboxsf type.

I'm liking VirtualBox so far, it appears to be a useful tool in the toolbox.

Wednesday, July 8, 2009

Google Chrome OS?

Since forever in web time the chatter has been about a new 'web OS' from Google. With the advent of rich internet applications in the form of GMail, Google Documents, Calendar, etc we're seeing the migration of information to the web, followed by the migration of the application to the web as a service.

Look at the information habits of people around you, we're relying on portable devices to access the bits of information relevant to time and space, and taking much smaller bites out of the for a gas station with the lowest price, find the number to a good plumber, send a text message to the baby-sitter. It only makes sense to re-think the relationship of all of these types of applications to the traditional desktop or laptop, or at least Google thinks so..

From Google...

So today, we're announcing a new project that's a natural extension of Google Chrome — the Google Chrome Operating System. It's our attempt to re-think what operating systems should be.

The Chrome OS is targeted first towards small notebooks (and probably tablets?) The post makes it clear that ChromeOS and Android are separate concerns, though a good deal of overlap is acknowledged. Certainly the services that would be consumed by Android are the same services that a typical 'notebook' computer would want, and many of us would treat a notebook and smart phone as interchangable for many tasks.

Intermittantly connected (a-la Gears) rich internet applications will be a key application delivery mode, whether in the form of widgets, or in full-blown browser-based applications. Combine this with a growing number of cloud services running on big grids, and maybe a web OS makes sense?

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.

Thursday, January 29, 2009

Sitting on Top of the (virtual) world

With apologies to Howling Wolf, Here's a pic we took in the Social Computing Room yesterday. It's showing an adaptation of the Second Life client that provides a 360-degree view of the virtual world. The development work on the SL client was done by a colleague, David Borland.

The idea is to embed the Social Computing Room within a larger virtual space, so that you can look out in every direction to see what is happening in the virtual world. In the pic below, I'm in the SCR looking at my avatar...

How about looking in? We have video cameras from all angles, so I thought about building a 'fish tank' from the SL perspective so that avatars can walk around the SCR and see inside of it. The bread and butter of two-way audio and video, along with text chat is the obvious next step. Here's a shot from SL looking into the Social Computing Room...

Right now it's just a bare media object, and one interesting question I have is what to build on the virtual side? Do I want to mirror the room, or perhaps the SCR could be sitting on the bottom of the sea? Once the basics are tackled, the SCR and the 4-channel Second Life client make for a unique research space. The SCR is well suited for installation of all sorts of sensors, robotics, and input devices. This is something of a side project, but I've noted how intrigued people are when they visit the SCR and see the first prototypes!

Wednesday, January 28, 2009

The world of mobile sensors

I've been sharing around a white paper by Nokia that considers the mobile phone as a sensor. The key point:

As mobile device subscriptions pass the four billion mark, we’re looking at
the world’s most distributed and pervasive sensing instrument. Thanks to an increasing number of built-in sensors—ambient light, orientation, acoustical, video, velocity, GPS—each device can capture, classify, and transmit many types
of data with exceptional granularity. The perfect platform for sensing the world
is already in our hands.

Well, here's a cool example, from OpenSpime, WideNoise is an iPhone application that uses the microphone on the iPhone to measure environmental noise. These geo-tagged reports can then be used to create a noise map.

Rewind a bit, 'Spime' is an abbreviate of 'space' + 'time'. A Spime is defined by OpenSpime as: a technologically enabled device that interacts both with the physical and the digital environment, aware of its location and with an history about itself. OpenSpime is working to create a Jabber/XMPP protocol that allows Spimes to report information about themselves, and has a set of python libraries in development as a first project.

A handful of threads that really are woven together...

Friday, January 16, 2009

Renci featured in Endeavors Magazine

Cool article on Renci and the power of Endeavors Magazine right here.

Thursday, January 15, 2009

InfoMesa and Databases in the Cloud - Windows Live

InfoMesa is a technology demonstrator from Microsoft Life Sciences that I've blogged about previously. I've been working (as time permits) on two tracks.

First, I've forked the code to investigate how the interactive whiteboard/electronic research notebook would work in an environment like the Social Computing Room. I've already had some interesting results, and the product of that work is in actual use by researchers in day-to-day work. The main departure in this case is turning the interface 'inside out', essentially creating a 12,288x768 workspace, while migrating all of the other interface items into context menus. In the SCR port, there's more concern with laying out content around the room than having a free-flowing scrollable palate. Essentially, I'm trying to put this fork 'out there', and then asking researchers what sorts of tools they would like. I'm incrementally porting InfoMesa features to this environment as I can, and am especially keen on adding annotation features.

This brings me to the second track, which is looking at the 'cloud' as the source of data. In this way, InfoMesa becomes a 'browser' of sorts. The InfoMesa database becomes a link repository, a tagging service, and an annotation service. The whiteboards are composed of objects that may exist outside of the InfoMesa metadata repository. The data may be in a database, may be a resource on the web, identified by a URI, or may be stored in a cloud database, such as SQL Data Services in Microsoft Azure, or Amazon S3. The InfoMesa blog has some interesting demonstrations of porting the whiteboard metadata to Azure in the post InfoMesa and Databases in the Cloud - Windows Live.

I think the cloud data idea is useful, making whiteboards accessible anywhere. What I think is potentially more interesting is to think of InfoMesa as a resource browser and annotation platform, and looking at creating pluggable hooks in InfoMesa to be able to retrieve whiteboard objects from different locations, such as the above mentioned cloud data services. Questions to answer include designing such a pluggable architecture, laying out the metadata schema that would be able to store and properly access data in the cloud, and defining the security layer such that a whiteboard can acess data with proper security.

The ability to store and annotate data in these views has other interesting benefits, including 'wall-to-wall' collaboration. I imagine augmenting collaboration sessions with video conferencing between two visualization environments, where some ability to synchronize whiteboards brings remote parties together. I also am interested in the more pragmatic ability to allow a researcher to design a whiteboard that represents the agenda for a research group meeting at their desktop, and be able to walk up to a visualization wall, or an environment like the SCR, and have their data appear, ready to go. Think if this as a more fluid way of developing a presentation, where sequences of slides are less useful than a free-flowing group interaction with imagery, video, and other types of visual data.

You can see that the potential is endless. I'm trying to keep it focused on practical use, making working in the SCR a productive and fun experience.

Wednesday, January 7, 2009

Working on a blog/website for Renci@UNC

I'm working on a Wordpress based website and blog for the Renci@UNC engagement center. I've added a Flickr photostream...well at least a start, which should be visible on my blog. I'm using a Wordpress plug-in (FlickrBox) to incorporate this into the new Renci@UNC site.

Lots of cool stuff to talk about, alas, a bit busy actually doing the stuff to blog about it, but will soon (New Year's resolution). Anyhow, back from the Holidays, and glad to be into it again!