<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1405318705472934452</id><updated>2011-12-19T16:32:47.768-05:00</updated><category term='mobile'/><category term='ruby'/><category term='ubiquitous computing'/><category term='Panda3D'/><category term='media'/><category term='multi-touch'/><category term='javascript'/><category term='HASTAC'/><category term='VirtualBox'/><category term='.Net'/><category term='glassfish'/><category term='blender'/><category term='social computing'/><category term='ubisense'/><category term='Unity3D'/><category term='irods'/><category term='campus events'/><category term='grails'/><category term='second life'/><category term='mobile2.0'/><category term='jargon'/><category term='new media'/><category term='rails'/><category term='internet'/><category term='ITS'/><category term='renci wordpress'/><category term='gems ruby'/><category term='mashup'/><category term='secondlife'/><category term='where2.0'/><category term='serious gameing'/><category term='sunspot'/><category term='higher education'/><category term='Swing JTree'/><category term='visualization'/><category term='max/msp/jitter'/><category term='context-aware'/><category term='secondlife locationaware'/><category term='openspime'/><category term='cloud computing'/><category term='ambient computing'/><category term='REST'/><category term='game engines'/><category term='hci'/><category term='programming'/><category term='locationaware'/><category term='spring security'/><category term='grails jargon groovy irods'/><category term='web3.0'/><category term='music'/><category term='jargon irods'/><category term='virtualization VirtualBox Ubuntu'/><category term='YouTube'/><category term='jargon git maven'/><category term='googlewave'/><category term='3D Web'/><category term='netbeans'/><category term='C#'/><category term='dojo'/><category term='android'/><category term='renci'/><category term='web2.0'/><category term='wpf'/><category term='library2.0'/><category term='unc'/><category term='spime'/><category term='sensor'/><category term='fun'/><category term='mash-up'/><category term='croquet'/><category term='memex'/><category term='jade'/><category term='web2.0 mobile2.0 mash-up'/><category term='wonderland'/><category term='location iFind context-aware'/><category term='agent'/><category term='google'/><category term='infomesa'/><title type='text'>Instanceof Idea</title><subtitle type='html'>Mike Conway's adventures in IT, and other misc ramblings.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default?start-index=101&amp;max-results=100'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>127</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-6735944692060657618</id><published>2011-07-20T22:38:00.003-04:00</published><updated>2011-07-20T22:50:20.297-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='googlewave'/><title type='text'>So that's what happened to Wave</title><content type='html'>I tried Wave, was unimpressed, but felt like it would follow the classic hype curve.  At any rate, I'm working on my Masters of Science in Information Science at the School of Information and Library Science.  It's a wonderful program, though challenging with family + full time job + music gig.  I'm holding it together (but procrastinating on some homework right now).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am interested in collaborative search and sense-making from back in the day at RENCI when I was looking at &lt;a href="http://instanceofidea.blogspot.com/2009/01/infomesa-and-databases-in-cloud-windows.html"&gt;InfoMesa&lt;/a&gt;, and recent research in my summer class has me thinking about this again.  Many aspects of collaborative search and sense-making were captured in the original intent of &lt;a href="http://code.google.com/apis/wave/"&gt;Wave&lt;/a&gt;.  I never bought that it was a new form of communication, or that it was revolutionary in that respect.  What I still think is that it has some aspects of a platform for collaborative search and sense making.  I especially like how it can combine time-shifted asynchronous activities with synchronous activities.  What's most compelling is to look at what Wave was doing as an application platform.  Collaborative search and knowledge discovery could be a great one for Wave.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I guess I've been busy working, because I'd hardly noticed that Wave has&lt;a href="http://techcrunch.com/2010/08/04/google-wave-eric-schmidt/"&gt; gone over to Apache&lt;/a&gt; as '&lt;a href="http://www.waveprotocol.org/wave-in-a-box"&gt;Wave in a Box&lt;/a&gt;'.  While it appears to be in early incubator stage (they probably don't know what to do with it either), it bears watching.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-6735944692060657618?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/6735944692060657618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=6735944692060657618&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6735944692060657618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6735944692060657618'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2011/07/so-thats-what-happened-to-wave.html' title='So that&apos;s what happened to Wave'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-451788857337372632</id><published>2011-07-19T12:58:00.004-04:00</published><updated>2011-07-19T13:01:13.667-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jargon git maven'/><title type='text'>Working on releasing Jargon-core</title><content type='html'>I'm working on a beta release of Jargon core, and all the fun involved in setting up the maven release plug-in for git and Nexus.  Needless to say, I've made a few U-turns.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's my tip (I'm saving this for myself) on deleting the git tag to tackle some config errors:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://nathanhoad.net/how-to-delete-a-remote-git-tag"&gt;http://nathanhoad.net/how-to-delete-a-remote-git-tag&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks Nathan!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-451788857337372632?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/451788857337372632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=451788857337372632&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/451788857337372632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/451788857337372632'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2011/07/working-on-releasing-jargon-core.html' title='Working on releasing Jargon-core'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-2521268501044527080</id><published>2011-07-16T09:41:00.003-04:00</published><updated>2011-07-16T09:49:11.947-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jargon irods'/><title type='text'>Recent Jargon Updates</title><content type='html'>There's a lot of activity on various types of interfaces, but I  wanted to update folks on things at the API level, especially in the  jargon-core API.&lt;br /&gt;&lt;p&gt;&lt;a target="_blank" rel="nofollow" href="http://www.google.com/url?sa=D&amp;amp;q=https://code.renci.org/gf/project/jargon/"&gt;https://code.renci.org/gf/project/jargon/&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;This  is late beta, we are working on moving to a schedule of releases,  frankly, we need to work out maven and git and the maven release  plug-in, there is a lot going on and we're trying to get that done.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Some highlights:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;   The big push has been to put a new public API out that is easier to  use and maintain.  I think this is shaping up (you can tell me whether  that's so).  There are plenty of capabilities that have never been  exposed outside of the C API that are either in there, or planned.&lt;/li&gt;&lt;li&gt;There are lots of implementing and testing going on in several  places, providing a nice amount of friction to help the API come along.   As things settle in, we're starting to be able to shift perspective  more to optimization.  There are lots more places where buffering is  implemented, and baby steps to looking at NIO.  With the presence of the  RENCI team, we're starting to stand up resources where we could start  doing benchmarks to help guide optimization.&lt;/li&gt;&lt;li&gt;We will be  working to pull the jargon-trunk and php code out of the main iRODS  trunk into separate areas for the next release.  The schedules are  pretty tight, so that's still a tentative plan.&lt;/li&gt;&lt;li&gt;Several key community wish list items are under development, some things that may be of interest are below:&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Configuration, setting options for operations, defaulting&lt;br /&gt;&lt;/p&gt;&lt;p&gt;With  the 'clean code' practice of separating code from metadata in mind,  there is a jargon.properties file now.  This is where config info is  being consolidated over time.  The IRODSSession object is the place  where expensive stuff like loading configuration properties, extensible  metadata mappings, and such occurs.  You can access the default jargon  properties there, or override them.  (So in Spring, you can wire in  configured properties at startup for your web app, etc).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;When you do transfers, you can call methods like below:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre class="brush:java"&gt;/**&lt;br /&gt;* Put a file or a collection (recursively) to iRODS. This method allows&lt;br /&gt;* registration of a &lt;code&gt;TransferStatusCallbackListener&lt;/code&gt; that will&lt;br /&gt;* provide callbacks about the status of the transfer suitable for progress&lt;br /&gt;* monitoring&lt;br /&gt;*&lt;br /&gt;* @param sourceFile&lt;br /&gt;*            &lt;code&gt;File&lt;/code&gt; with the source directory or file.&lt;br /&gt;* @param targetIrodsFile&lt;br /&gt;*            {@link org.irods.jargon.core.pub.io.IRODSFile} with the target&lt;br /&gt;*            iRODS file or collection.&lt;br /&gt;* @param transferControlBlock&lt;br /&gt;*            an optional&lt;br /&gt;*            {@link org.irods.jargon.core.transfer.TransferControlBlock}&lt;br /&gt;*            that provides a common object to communicate between the&lt;br /&gt;*            object requesting the transfer, and the method performing the&lt;br /&gt;*            transfer. This control block may contain a filter that can be&lt;br /&gt;*            used to control restarts, and provides a way for the&lt;br /&gt;*            requesting process to send a cancellation. This may be set to&lt;br /&gt;*            null if not required.&lt;br /&gt;* @throws JargonException&lt;br /&gt;*/&lt;br /&gt;void putOperation(&lt;br /&gt;final File sourceFile,&lt;br /&gt;final IRODSFile targetIrodsFile,&lt;br /&gt;final TransferStatusCallbackListener transferStatusCallbackListener,&lt;br /&gt;final TransferControlBlock transferControlBlock)&lt;br /&gt;throws JargonException;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;I  wanted to point out the 'transferStatusCallbackListener'.  You can  implement this interface, pass it to the method, and get callbacks like  initiation of operation, file transfer update, completion of operation.   We are working on also providing a callback for 'messages', like  'starting parallel transfer', or 'computing checksum' so those can start  surfacing in UI like iDrop.  There are plans soon to provide optional  'intra-file' callbacks, so you could throw up a progress bar for what's  going on inside of a file transfer.  Look for that soon.  Of course, you  can leave that null if you don't care.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The  'transferControlBlock' is important.  It is the communication pipeline  between the thing calling the transfer, and the transfer itself.  You  can peek at aggregate numbers, set a cancel flag, etc.  The point is,  there is now also a transferOptions that can be set.  The transfer  options can include things like 'no parallel transfers', or 'max  transfer threads', or buffer sizes, or things like the recently added  'compute and verify checksum'.  You can either set a transfer options in  that transfer control block, or leave it alone and defaults will be  computed based on the settings in the jargon properties.  The checksum  validation is in there now (a community request), and the rerouting of  gets/puts to the owning resource server should be there soon.  The  checksum and checksum validation functions were just added&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Parallel Transfer Pools&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Another  community request in the optimization department was to set up a thread  pool for parallel transfer threads.  This has been done in a first  implementation, but turned off by default.  This should be handy in  mid-tier apps, where you might want to cap the number of threads.  More  testing needs to be done, is it fixed? What are the time-outs, etc.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;GSS/Kerberos, etc&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;There  are threads here about security, GSS, etc.  This is a high-priority  item from the user group meeting, and this is next on the list of 'core'  development.  Folks who are really facile with GSS, Kerberos and the  like who have comments and insight are invited to give input.  I think  once this part is in jargon-core, we can go to a full-on 'release'.  The  code is pretty solid, much more so than the older API, we're seeing,  and will continue to see, performance gains, and it's much easier to use  in mid-tier situations, or if you are 'Spring'-happy.  Please let me  know your experiences, comments, criticisms, and keep an eye out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-2521268501044527080?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/2521268501044527080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=2521268501044527080&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2521268501044527080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2521268501044527080'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2011/07/recent-jargon-updates.html' title='Recent Jargon Updates'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-5780576409183946327</id><published>2011-01-03T19:02:00.002-05:00</published><updated>2011-01-03T19:11:01.555-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jargon'/><category scheme='http://www.blogger.com/atom/ns#' term='grails'/><title type='text'>Another undocumented annoyance with testing Grails controllers</title><content type='html'>I switched from rendering JSON in my &lt;a href="http://instanceofidea.blogspot.com/2011/01/testing-grails-controller-getting-thing.html"&gt;previous post&lt;/a&gt; to using a gsp to format an HTML ul tag based on a model containing my list of results.  This is because I find it easier when using JQuery to do my AJAX using HTML content.  JQuery seems to natively prefer HTML to JSON, whereas Dojo seemd to run on JSON.&lt;br /&gt;&lt;br /&gt;At any rate, I changed my controller to something like this:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;def loadTree = {  &lt;br /&gt;  def parent = params['dir']&lt;br /&gt;  log.info "loading tree for parent path: ${parent}"&lt;br /&gt;  def collectionAndDataObjectListAndSearchAO = irodsAccessObjectFactory.getCollectionAndDataObjectListAndSearchAO(irodsAccount)&lt;br /&gt;  def collectionAndDataObjectList = collectionAndDataObjectListAndSearchAO.listDataObjectsAndCollectionsUnderPath(parent)&lt;br /&gt;  log.debug("retrieved collectionAndDataObjectList: ${collectionAndDataObjectList}")&lt;br /&gt;  render(view:"loadTree",model:[collectionAndDataObjectList:collectionAndDataObjectList, parent:parent])&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I altered my unit test, per the docs, to inspect the model and view.  I attempted to get at the model entry for 'parent', which contained the parent dir, like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;def parent = mav.model.parent&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;It turns out that that does not work anymore, instead, you need to interpose a reference to linkedHasMap like so:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;&lt;br /&gt;void testBrowse() {&lt;br /&gt;        controller.params.dir = "/"&lt;br /&gt;        controller.irodsAccessObjectFactory = irodsAccessObjectFactory&lt;br /&gt;        controller.irodsAccount = irodsAccount&lt;br /&gt;        controller.loadTree()&lt;br /&gt;        def mav = controller.modelAndView&lt;br /&gt;        def name = mav.viewName&lt;br /&gt;        assertNotNull("null mav", mav)&lt;br /&gt;        assertEquals("view name should be loadTree", "loadTree", name)&lt;br /&gt;        def parent = mav.model.linkedHashMap.parent&lt;br /&gt;        assertEquals("parent dir not found", "/", parent)&lt;br /&gt; &lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now my Grails controller and test are working again.  My next step is to create a decent JavaScript object that can bridge between methods in this BrowseController and a lazy-loadable &lt;a href="http://www.jstree.com/"&gt;JQuery JSTree&lt;/a&gt;.  Maybe the next post can share some developments there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-5780576409183946327?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/5780576409183946327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=5780576409183946327&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5780576409183946327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5780576409183946327'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2011/01/another-undocumented-annoyance-with.html' title='Another undocumented annoyance with testing Grails controllers'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-745432870698075532</id><published>2011-01-01T11:59:00.008-05:00</published><updated>2011-01-02T20:52:55.191-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jargon'/><category scheme='http://www.blogger.com/atom/ns#' term='irods'/><category scheme='http://www.blogger.com/atom/ns#' term='grails'/><title type='text'>Testing a Grails Controller - getting the $*&amp;@ thing to work</title><content type='html'>I wanted to post on two things.  First, of general interest, I wanted to show how I got a working test on a Grails controller.  Second, I wanted to highlight some of the new Jargon API and how it can fit into apps written using Groovy and Grails (this should also translate to Jython and JRuby, as well as other dynamic JVM languages).&lt;br /&gt;&lt;br /&gt;There is lots of contradictory information on the web, even in the Grails docs, on testing Grails controllers.  The biggest issues are understanding the ControllerUnitTestCase, and what it does and does not do.&lt;br /&gt;&lt;br /&gt;First, here's a controller I'm developing that will back a JQuery JTree component.  The first method will take a parent path name, and return a JSON representation of the iRODS file system for the parent path using some new Jargon methods that are meant to assist in Swing and JQuery tree development.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:html"&gt;&lt;br /&gt;&lt;br /&gt;package org.irods.mydrop.controller&lt;br /&gt;&lt;br /&gt;import org.springframework.security.core.context.SecurityContextHolder;&lt;br /&gt;import org.irods.jargon.core.pub.*;&lt;br /&gt;import org.irods.jargon.core.connection.*;&lt;br /&gt;import org.irods.jargon.core.exception.*;&lt;br /&gt;import grails.converters.*&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* Controller for browser functionality&lt;br /&gt;* @author Mike Conway - DICE (www.irods.org)&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;class BrowseController {&lt;br /&gt;&lt;br /&gt;IRODSAccessObjectFactory irodsAccessObjectFactory&lt;br /&gt;IRODSAccount irodsAccount&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* Interceptor grabs IRODSAccount from the SecurityContextHolder&lt;br /&gt;*/&lt;br /&gt;def beforeInterceptor = {&lt;br /&gt;def irodsAuthentication = SecurityContextHolder.getContext().authentication&lt;br /&gt;&lt;br /&gt;if (irodsAuthentication == null) {&lt;br /&gt; throw new JargonRuntimeException("no irodsAuthentication in security context!")&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;irodsAccount = irodsAuthentication.irodsAccount&lt;br /&gt;log.debug("retrieved account for request: ${irodsAccount}")&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* Display initial browser&lt;br /&gt;*/&lt;br /&gt;def index = { }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* Render the tree node data for the given parent.&lt;br /&gt;* &lt;p&gt;&lt;br /&gt;*  Requires param 'dir' from request to derive parent&lt;br /&gt;*&lt;br /&gt;*/&lt;br /&gt;def loadTree = {&lt;br /&gt;def parent = params['dir']&lt;br /&gt;log.info "loading tree for parent path: ${parent}"&lt;br /&gt;def collectionAndDataObjectListAndSearchAO = irodsAccessObjectFactory.getCollectionAndDataObjectListAndSearchAO(irodsAccount)&lt;br /&gt;def collectionAndDataObjectList = collectionAndDataObjectListAndSearchAO.listDataObjectsAndCollectionsUnderPath(parent)&lt;br /&gt;log.debug("retrieved collectionAndDataObjectList: ${collectionAndDataObjectList}")&lt;br /&gt;render collectionAndDataObjectList as JSON&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;/pre&gt;A few things to note.  The new Jargon libraries are meant to provide simple POJO's that represent various domain objects within iRODS.  There also is an idea of Access Objects, that roughly equate with the DAO pattern.  iRODS is not a database, so the mapping is not the same, but to me, the idea of Access Objects for iRODS at least gives some comfort in familiarity.  One access object I'm developing is meant to assist in tree depictions and searching on file and collection paths to support such elements in typical web and Swing GUI applications.  We'll use that Access Object.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I've wired in my Spring security objects as described in an&lt;a href="http://instanceofidea.blogspot.com/2010/12/grails-and-spring-security.html"&gt; earlier post&lt;/a&gt;.  My interceptor in my controller grabs the saved authentication token from the Spring Security layer and extracts the IRODSAccount object.  In the loadTree method, this IRODSAccount object is used with a factory injected into my controller to get a CollectionAndDataObjectListAndSearchAO.  My controller uses the method that takes a parent path, and returns JSON objects that represent iRODS files and collections under that parent path.&lt;br /&gt;&lt;br /&gt;The approach taken in Jargon seems to map fairly easily into Grails apps, that's a good sign.  This shows that quick development of arbitrary interfaces on top of iRODS will become easier with the newer Jargon libraries.  Yay!&lt;br /&gt;&lt;br /&gt;So, the problems really began with trying to test.  First, let me share a working test, then I'll talk about some of the problems I ran into:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;&lt;br /&gt;&lt;br /&gt;package org.irods.mydrop.controller&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;import grails.test.*&lt;br /&gt;import java.util.Properties&lt;br /&gt;import org.irods.jargon.core.connection.IRODSAccount&lt;br /&gt;import org.irods.jargon.core.pub.IRODSAccessObjectFactory&lt;br /&gt;import org.irods.jargon.core.pub.IRODSFileSystem;&lt;br /&gt;import org.irods.jargon.core.pub.io.IRODSFile&lt;br /&gt;import org.irods.jargon.core.query.CollectionAndDataObjectListingEntry&lt;br /&gt;import org.irods.jargon.testutils.TestingPropertiesHelper&lt;br /&gt;import org.irods.jargon.testutils.filemanip.FileGenerator&lt;br /&gt;import org.irods.jargon.testutils.TestingPropertiesHelper&lt;br /&gt;import org.irods.jargon.spring.security.IRODSAuthenticationToken;&lt;br /&gt;import org.springframework.security.core.context.SecurityContextHolder;&lt;br /&gt;import grails.converters.*&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;class BrowseControllerTests extends ControllerUnitTestCase {&lt;br /&gt;&lt;br /&gt;IRODSAccessObjectFactory irodsAccessObjectFactory&lt;br /&gt;IRODSAccount irodsAccount&lt;br /&gt;Properties testingProperties&lt;br /&gt;TestingPropertiesHelper testingPropertiesHelper&lt;br /&gt;IRODSFileSystem irodsFileSystem&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;protected void setUp() {&lt;br /&gt;super.setUp()&lt;br /&gt;testingPropertiesHelper = new TestingPropertiesHelper()&lt;br /&gt;testingProperties = testingPropertiesHelper.getTestProperties()&lt;br /&gt;irodsAccount = testingPropertiesHelper.buildIRODSAccountFromTestProperties(testingProperties)&lt;br /&gt;irodsFileSystem = IRODSFileSystem.instance()&lt;br /&gt;irodsAccessObjectFactory = irodsFileSystem.getIRODSAccessObjectFactory()&lt;br /&gt;def irodsAuthentication = new IRODSAuthenticationToken(irodsAccount)&lt;br /&gt;SecurityContextHolder.getContext().authentication = irodsAuthentication&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected void tearDown() {&lt;br /&gt;    super.tearDown()&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void testBrowseNoLogin() {&lt;br /&gt;controller.params.dir = "/"&lt;br /&gt;controller.irodsAccessObjectFactory = irodsAccessObjectFactory&lt;br /&gt;controller.irodsAccount = irodsAccount&lt;br /&gt;controller.loadTree()&lt;br /&gt;def controllerResponse = controller.response.contentAsString&lt;br /&gt;def jsonResult = JSON.parse(controllerResponse)&lt;br /&gt;assertNotNull("missing json result", jsonResult)&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;One of the first sources of confusion to me were &lt;a href="http://www.grails.org/doc/1.0.x/guide/9.%20Testing.html"&gt;documents&lt;/a&gt; that seemed to imply that running the grails command create-controller would put the relevant test in the integration tests directory.  It didn't, it placed the test in the test/unit directory.  Go figure.  Maybe I'm missing something, but I'm taking what Grails does at it's word, so to speak.  I tried moving the test to the integration test directory, but found that this resulted in the setup methods not running. Fine...I'll just forget this rabbit-hole.&lt;br /&gt;&lt;br /&gt;Second, I had the hardest time setting up the params.  My controller expects a request param of 'dir', with my test specifying the root '/' directory.  I kept getting a "No such property: params" error when I tried doing the&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;controller.params.dir = "/"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;test setup.    It turns out that the ControllerUnitTestCase is wanting to wire in and extend your controller for you, creating a 'controller' variable automatically, with the test target controller defined by convention using the test name.   So instead of creating my controller in a def using the 'new' keyword, I had to let the ControllerUnitTestCase do it for me.&lt;br /&gt;&lt;br /&gt;I also ran into the issue of irodsAccount being null.  The ControllerUnitTestCase does not run my interceptor for me.  I was getting a null irodsAccount, and realized that I had to manually inject that variable in my test code.&lt;br /&gt;&lt;br /&gt;Well, I was almost home, I kept getting a 'null' for my controller variable in my test case.  Doh...I had plugged a bunch of code into setUp() in my test case, and I had to go back and add the super() call in my test case so that ControllerUnitTestCase could do it's magic on the controller variable.   So now it works!  There's still lots of refactoring I want to do in the controller, and I need to do things like parse and test the actual JSON response, but these are the details to work out now that I can get the stupid test cases to run.&lt;br /&gt;&lt;br /&gt;Now that's progress...hopefully that will help you avoid some of my own frustrations.    Here's to a New Year and new adventures in coding.  I think Grails/Groovy feels as immature as most new dynamic scripting languages, but at the same time, I really feel like, combined with the new Jargon libraries, I'm well on my way to a rapid web development stack on top of iRODS.  That's a good thing!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-745432870698075532?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/745432870698075532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=745432870698075532&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/745432870698075532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/745432870698075532'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2011/01/testing-grails-controller-getting-thing.html' title='Testing a Grails Controller - getting the $*&amp;@ thing to work'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-2449801543143857239</id><published>2010-12-29T12:28:00.008-05:00</published><updated>2011-01-03T06:50:23.249-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jargon'/><category scheme='http://www.blogger.com/atom/ns#' term='irods'/><category scheme='http://www.blogger.com/atom/ns#' term='grails'/><category scheme='http://www.blogger.com/atom/ns#' term='spring security'/><title type='text'>Grails and Spring Security</title><content type='html'>I'm developing a personal 'cloud browser' application for iRODS based on my Jargon libraries.  Previously, I had started looking at a set of Spring Security libraries that could be used in web apps, such that authentication and gathering of roles could be done against the iRODS security, using iRODS user groups for role based access.&lt;br /&gt;&lt;br /&gt;My Spring Security library has a custom AuthenticationManager as well as a custom AuthenticationFilter and AuthenticationToken, as iRODS security uses not only user and password, but also zone, resource, host, and port.  Because of the differences, I did not find the Spring Security Grails plug-in to be suitable.  Besides, since I am already testing a set of custom libraries, I wanted to take advantage of the library and the XML wiring I had already created.&lt;br /&gt;&lt;br /&gt;First, here's what my XML wiring looks like:&lt;br /&gt;&lt;script type="syntaxhighlighter" class="brush:html"&gt;&lt;![CDATA[&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;beans:beans xmlns="http://www.springframework.org/schema/security" beans="http://www.springframework.org/schema/beans" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd                         http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd"&gt;&lt;br /&gt;&lt;br /&gt;  &lt;beans:bean id="irodsConnectionManager" class="org.irods.jargon.core.connection.IRODSSimpleProtocolManager" method="instance"&gt;&lt;br /&gt;  &lt;/beans:bean&gt;&lt;br /&gt;&lt;br /&gt;  &lt;beans:bean id="irodsSession" class="org.irods.jargon.core.connection.IRODSSession" method="instance"&gt;&lt;br /&gt;      &lt;beans:constructor-arg type="org.irods.jargon.core.connection.IRODSProtocolManager" ref="irodsConnectionManager"&gt;&lt;br /&gt;  &lt;/beans:constructor-arg&gt;&lt;br /&gt;&lt;br /&gt;  &lt;beans:bean id="irodsAccessObjectFactory" class="org.irods.jargon.core.pub.IRODSAccessObjectFactoryImpl"&gt;&lt;br /&gt;      &lt;beans:constructor-arg ref="irodsSession"&gt;&lt;/beans:constructor-arg&gt;&lt;br /&gt;  &lt;/beans:bean&gt;&lt;br /&gt;&lt;br /&gt;  &lt;beans:bean id="authenticationManager" class="org.irods.jargon.spring.security.IRODSAccountAuthenticationManager"&gt;&lt;br /&gt;      &lt;beans:property name="irodsAccessObjectFactory" ref="irodsAccessObjectFactory"&gt;&lt;/beans:property&gt;&lt;br /&gt;  &lt;/beans:bean&gt;&lt;br /&gt;&lt;br /&gt;  &lt;beans:bean id="springSecurityFilterChain" class="org.springframework.security.web.FilterChainProxy"&gt;&lt;br /&gt;      &lt;filter-chain-map type="ant"&gt;&lt;br /&gt;          &lt;filter-chain pattern="/css/**" filters="none"&gt;&lt;br /&gt;          &lt;filter-chain pattern="/images/**" filters="none"&gt;&lt;br /&gt;          &lt;filter-chain pattern="/js/**" filters="none"&gt;&lt;br /&gt;          &lt;filter-chain pattern="/login/*" filters="none"&gt;&lt;br /&gt;          &lt;filter-chain pattern="/**" filters="securityContextPersistenceFilter,                 logoutFilter,                 authenticationProcessingFilter,                 exceptionTranslationFilter,                 filterSecurityInterceptor"&gt;&lt;br /&gt;      &lt;/filter-chain&gt;&lt;br /&gt;  &lt;/filter-chain&gt;&lt;br /&gt;&lt;br /&gt;  &lt;beans:bean id="filterSecurityInterceptor" class="org.springframework.security.web.access.intercept.FilterSecurityInterceptor"&gt;&lt;br /&gt;      &lt;beans:property name="authenticationManager" ref="authenticationManager"&gt;&lt;br /&gt;      &lt;beans:property name="accessDecisionManager" ref="accessDecisionManager"&gt;&lt;br /&gt;      &lt;beans:property name="securityMetadataSource"&gt;&lt;br /&gt;          &lt;filter-security-metadata-source expressions="true"&gt;&lt;br /&gt;              &lt;intercept-url pattern="/images/**" access="permitAll"&gt;&lt;br /&gt;              &lt;intercept-url pattern="/css/**" access="permitAll"&gt;&lt;br /&gt;              &lt;intercept-url pattern="/js/**" access="permitAll"&gt;&lt;br /&gt;              &lt;intercept-url pattern="/login*" access="permitAll"&gt;&lt;br /&gt;              &lt;intercept-url pattern="/**" access="isAuthenticated()"&gt;&lt;br /&gt;&lt;br /&gt;          &lt;/intercept-url&gt;&lt;br /&gt;      &lt;/intercept-url&gt;&lt;br /&gt;  &lt;/intercept-url&gt;&lt;br /&gt;&lt;br /&gt;  &lt;beans:bean id="logoutFilter" class="org.springframework.security.web.authentication.logout.LogoutFilter"&gt;&lt;br /&gt;      &lt;beans:constructor-arg value="/login/login"&gt;&lt;br /&gt;      &lt;beans:constructor-arg&gt;&lt;br /&gt;          &lt;beans:list&gt;&lt;br /&gt;              &lt;beans:bean class="org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler"&gt;&lt;br /&gt;          &lt;/beans:bean&gt;&lt;br /&gt;      &lt;/beans:list&gt;&lt;br /&gt;      &lt;beans:property name="filterProcessesUrl" value="/login/logout"&gt;&lt;br /&gt;  &lt;/beans:property&gt;&lt;br /&gt;&lt;br /&gt;  &lt;beans:bean id="exceptionTranslationFilter" class="org.springframework.security.web.access.ExceptionTranslationFilter"&gt;&lt;br /&gt;      &lt;beans:property name="authenticationEntryPoint" ref="authenticationEntryPoint"&gt;&lt;br /&gt;      &lt;beans:property name="accessDeniedHandler" ref="accessDeniedHandler"&gt;&lt;br /&gt;  &lt;/beans:property&gt;&lt;br /&gt;&lt;br /&gt;  &lt;beans:bean id="authenticationProcessingFilter" class="org.irods.jargon.spring.security.IRODSAccountAuthenticationFilter"&gt;&lt;br /&gt;      &lt;beans:property name="authenticationManager" ref="authenticationManager"&gt;&lt;br /&gt;      &lt;beans:property name="filterProcessesUrl" value="/login/authenticate"&gt;&lt;br /&gt;      &lt;beans:property name="authenticationFailureHandler" ref="authenticationFailureHandler"&gt;&lt;br /&gt;  &lt;/beans:property&gt;&lt;br /&gt;&lt;br /&gt;  &lt;beans:bean id="accessDecisionManager" class="org.springframework.security.access.vote.AffirmativeBased"&gt;&lt;br /&gt;      &lt;beans:property name="decisionVoters"&gt;&lt;br /&gt;          &lt;beans:list&gt;&lt;br /&gt;              &lt;beans:bean class="org.springframework.security.web.access.expression.WebExpressionVoter"&gt;&lt;br /&gt;          &lt;/beans:bean&gt;&lt;br /&gt;      &lt;/beans:list&gt;&lt;br /&gt;  &lt;/beans:property&gt;&lt;br /&gt;&lt;br /&gt;  &lt;beans:bean id="authenticationEntryPoint" class="org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint"&gt;&lt;br /&gt;      &lt;beans:property name="loginFormUrl" value="/login/login"&gt;&lt;br /&gt;  &lt;/beans:property&gt;&lt;br /&gt;&lt;br /&gt;  &lt;beans:bean id="accessDeniedHandler" class="org.springframework.security.web.access.AccessDeniedHandlerImpl"&gt;&lt;br /&gt;      &lt;beans:property name="errorPage" value="/login/login"&gt;&lt;br /&gt;  &lt;/beans:property&gt;&lt;br /&gt;&lt;br /&gt;  &lt;beans:bean id="securityContextPersistenceFilter" class="org.springframework.security.web.context.SecurityContextPersistenceFilter"&gt;&lt;br /&gt;      &lt;beans:property name="'securityContextRepository'"&gt;&lt;br /&gt;          &lt;beans:bean class="org.springframework.security.web.context.HttpSessionSecurityContextRepository"&gt;&lt;br /&gt;              &lt;beans:property name="'allowSessionCreation'" value="'true'"&gt;&lt;br /&gt;          &lt;/beans:property&gt;&lt;br /&gt;      &lt;/beans:bean&gt;&lt;br /&gt;  &lt;/beans:property&gt;&lt;br /&gt;&lt;br /&gt;  &lt;beans:bean id="authenticationFailureHandler" class="org.irods.jargon.spring.security.IRODSAuthenticationFailureHandler"&gt;&lt;br /&gt;      &lt;beans:property name="defaultFailureUrl" value="/login/login"&gt;&lt;br /&gt;  &lt;/beans:property&gt;&lt;br /&gt;&lt;/beans:bean&gt;&lt;/beans:bean&gt;&lt;/beans:bean&gt;&lt;/beans:bean&gt;&lt;/beans:bean&gt;&lt;/beans:property&gt;&lt;/beans:property&gt;&lt;/beans:bean&gt;&lt;/beans:property&gt;&lt;/beans:bean&gt;&lt;/beans:constructor-arg&gt;&lt;/beans:constructor-arg&gt;&lt;/beans:bean&gt;&lt;/intercept-url&gt;&lt;/intercept-url&gt;&lt;/filter-security-metadata-source&gt;&lt;/beans:property&gt;&lt;/beans:property&gt;&lt;/beans:property&gt;&lt;/beans:bean&gt;&lt;/filter-chain&gt;&lt;/filter-chain&gt;&lt;/filter-chain&gt;&lt;/filter-chain-map&gt;&lt;/beans:bean&gt;&lt;/beans:bean&gt;&lt;/beans:beans&gt;]]&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;I had started to re-create this using Spring DSL in my resources.groovy file, but I was finding it difficult to translate (I'm still very new at Spring DSL, and it had more to do with just getting this done).&lt;br /&gt;&lt;br /&gt;I added my mappings to the resources.xml file in my Grails app, and started things up just to see if Spring could wire this together.  Knock me over with a feather but that worked!  The one issue I had was a complaint about the Spring Security namespace, which was corrected by adding these items to my BuildConfig.groovy:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;dependencies {&lt;br /&gt;      // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg.&lt;br /&gt;      compile 'org.irods:jargon-core:0.0.3-SNAPSHOT'&lt;br /&gt;      compile 'org.irods:jargon-security:0.0.1-SNAPSHOT'&lt;br /&gt;      compile 'org.springframework.security:spring-security-core:3.0.5.RELEASE'&lt;br /&gt;      compile 'org.springframework.security:spring-security-web:3.0.5.RELEASE'&lt;br /&gt;      compile 'org.springframework.security:spring-security-config:3.0.5.RELEASE'&lt;br /&gt;   &lt;br /&gt;      //test 'org.irods:jargon-test:0.0.1-SNAPSHOT'&lt;br /&gt;      // runtime 'mysql:mysql-connector-java:5.1.5'&lt;br /&gt;  }&lt;/pre&gt;The key was actually the spring-security-config dependency.&lt;br /&gt;&lt;br /&gt;Next, I started testing with a browser, only to find that the security was not being enforced.  The missing step was to add the delegating filter proxy to my web.xml file.  Well...what web.xml file?  Like I said, I'm very new to Grails.  It turns out that I needed to fire up the grails console and do a&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;grails install-templates&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;command.  This adds templates for various artifacts to my project.  Then it's a simple matter of editing the template web.xml file to add my delegating filter proxy mapping like so:&lt;br /&gt;&lt;script type="syntaxhighlighter" class="brush:html"&gt;&lt;![CDATA[&lt;br /&gt;&lt;br /&gt;&lt;filter&gt;&lt;br /&gt;      &lt;filter-name&gt;springSecurityFilterChain&lt;/filter-name&gt;&lt;br /&gt;      &lt;filter-class&gt;org.springframework.web.filter.DelegatingFilterProxy&lt;/filter-class&gt;&lt;br /&gt;  &lt;/filter&gt;&lt;br /&gt;&lt;br /&gt;  &lt;filter-mapping&gt;&lt;br /&gt;      &lt;filter-name&gt;springSecurityFilterChain&lt;/filter-name&gt;&lt;br /&gt;      &lt;url-pattern&gt;/*&lt;/url-pattern&gt;&lt;br /&gt;  &lt;/filter-mapping&gt;]]&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;Now, I have not completed all the testing, but it does seem like I'm on the right path.  I'll let you all know how it's going, but I think it'll work out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-2449801543143857239?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/2449801543143857239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=2449801543143857239&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2449801543143857239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2449801543143857239'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2010/12/grails-and-spring-security.html' title='Grails and Spring Security'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-3781338353021740420</id><published>2010-12-28T12:11:00.002-05:00</published><updated>2010-12-28T12:14:05.535-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VirtualBox'/><title type='text'>Fedora 14 running full-screen on Virtual Box for Mac</title><content type='html'>A big shout-out to www.sysprobs.com for this entry:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sysprobs.com/install-fedora-14-virtualbox-working-guest-additions"&gt;http://www.sysprobs.com/install-fedora-14-virtualbox-working-guest-additions&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As I was having endless headaches mining the Google for tips on getting Fedora Linux 14 to run in full-screen mode on my Mac using VirtualBox.  The missing pieces were some yum updates that had to be run, it's now running beautifully.&lt;br /&gt;&lt;br /&gt;As is typical, I had to wade through several pages of hits that didn't solve the problem, hopefully this will boost the real solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-3781338353021740420?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/3781338353021740420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=3781338353021740420&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3781338353021740420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3781338353021740420'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2010/12/fedora-14-running-full-screen-on.html' title='Fedora 14 running full-screen on Virtual Box for Mac'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-2309100733958315049</id><published>2010-12-12T08:09:00.003-05:00</published><updated>2010-12-12T08:20:06.132-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='grails jargon groovy irods'/><title type='text'>Testing Groovy/Grails with Jargon</title><content type='html'>I'm having a great time looking at &lt;a href="http://www.grails.org/"&gt;Groovy and Grails&lt;/a&gt; as a rapid development environment for &lt;a href="https://www.irods.org/index.php/IRODS:Data_Grids,_Digital_Libraries,_Persistent_Archives,_and_Real-time_Data_Systems"&gt;iRODS&lt;/a&gt; web interfaces via the new Jargon API I am developing.&lt;br /&gt;&lt;br /&gt;Jargon is a pure Java API that encapsulates the iRODS server protocol.  I am developing a new version, and one of the goals is to make it more usable in Spring-based apps.  I have web projects to develop, and at the same time, I need to kick the tires on how Jargon works with dynamic scripting languages.  So far, so good.  I'm able to wire together some simple things, and utilize the Jargon libraries quite smoothly.  Here's a little bit of wiring together of IRODSFileSystem using Spring DSL:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;beans = {&lt;br /&gt; &lt;br /&gt; irodsFileSystem(org.irods.jargon.core.pub.IRODSFileSystem) {&lt;br /&gt;  bean -&gt;&lt;br /&gt;  bean.factoryMethod = "instance"&lt;br /&gt;  bean.singleton = true&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; irodsFileServiceWrapperService(mydrop.IrodsFileServiceWrapperService) {&lt;br /&gt;  irodsFileSystem = ref("irodsFileSystem")&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; irodsAuthenticationHelperService(mydrop.IRODSAuthenticationHelperService) {&lt;br /&gt;  irodsFileServiceWrapperService = ref("irodsFileServiceWrapperService")&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt;}&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here's a bit of my hacked auth code (I need to see how to more formally wire in Spring Security with Grails:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;IrodsFileServiceWrapperService irodsFileServiceWrapperService&lt;br /&gt;&lt;br /&gt; /**&lt;br /&gt;  * Validate the user by logging into iRODS under the given credentials.  Also retrieve the iRODS user groups for&lt;br /&gt;  * use in role-based access&lt;br /&gt;  * @param host&lt;br /&gt;  * @param port&lt;br /&gt;  * @param zone&lt;br /&gt;  * @param userName&lt;br /&gt;  * @param password&lt;br /&gt;  * @param resource&lt;br /&gt;  * @return&lt;br /&gt;  */&lt;br /&gt;   def authenticate(String host, int port, String zone, String userName, String password, String resource) throws AuthenticationException {&lt;br /&gt;  def irodsAccount = IRODSAccount.instance(host, port, userName, password, resource, zone, "")&lt;br /&gt;  def irodsFileSystem  = irodsFileServiceWrapperService.getIrodsFileSystem()&lt;br /&gt;  def irodsAccountAuthenticationManager = new IRODSAccountAuthenticationManager()&lt;br /&gt;  irodsAccountAuthenticationManager.setIrodsAccessObjectFactory irodsFileSystem.getIRODSAccessObjectFactory()&lt;br /&gt;  def irodsAuthentication = new IRODSAuthenticationToken(irodsAccount)&lt;br /&gt;  def irodsAuthenticationToken = irodsAccountAuthenticationManager.authenticate(irodsAuthentication)&lt;br /&gt;  SecurityContextHolder.getContext().setAuthentication(irodsAuthenticationToken);&lt;br /&gt;   }&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'm certain that this is not the most beautiful Grails code, but it's promising nevertheless.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-2309100733958315049?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/2309100733958315049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=2309100733958315049&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2309100733958315049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2309100733958315049'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2010/12/testing-groovygrails-with-jargon.html' title='Testing Groovy/Grails with Jargon'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-1456711545466939585</id><published>2010-11-13T16:02:00.002-05:00</published><updated>2010-11-13T16:08:40.807-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gems ruby'/><title type='text'>Ruby on Rails on OSX  10.6</title><content type='html'>A bit of frustration picking up Rails again on Mac.  It seemed that I could not install rails via the &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&gt;gem install rails&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;command.  I kept getting an exception like this:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;ERROR:  http://gems.rubyforge.org/ does not appear to be a repository&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Well, I kept messing with gems.rubyforge.org, when it appear that the gems install on the mac was actually the problem.  So I tried gem udpate --system, which, of course, failed because it tries to talk to gems.rubyforge.org.&lt;br /&gt;&lt;br /&gt;Solution...go to http://rubygems.org/pages/download and manually download an updated gems..once I did this, gems, now properly configured with the gem repository, seems to work fine.&lt;br /&gt;&lt;br /&gt;Back to Rails and Ruby after something of hiatus, delayed for several hours messing with gems.  Tolerating frustration is a vital part of the developer's tool-set.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-1456711545466939585?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/1456711545466939585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=1456711545466939585&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/1456711545466939585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/1456711545466939585'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2010/11/ruby-on-rails-on-osx-106.html' title='Ruby on Rails on OSX  10.6'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-3814126424868787759</id><published>2010-10-26T14:13:00.002-04:00</published><updated>2010-10-26T14:15:50.311-04:00</updated><title type='text'>Peeking at iRODS XML packing instructions using icommands</title><content type='html'>In working on the Jargon API, I'm often comparing the protocol operations with icommands.  A helpful tip to turn on XML logging of the icommands you are executing:&lt;br /&gt;&lt;br /&gt;type this at the command prompt before issuing your commands to set some environment variables:&lt;br /&gt;&lt;br /&gt;export irodsProt=1; export irodsLogLevel=9;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-3814126424868787759?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/3814126424868787759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=3814126424868787759&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3814126424868787759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3814126424868787759'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2010/10/peeking-at-irods-xml-packing.html' title='Peeking at iRODS XML packing instructions using icommands'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-7125652165736039006</id><published>2010-10-20T16:26:00.002-04:00</published><updated>2010-10-20T16:32:05.763-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Swing JTree'/><title type='text'>Hover highlighting for drag and drop in a Swing JTree</title><content type='html'>This was a pain in the butt.  I am working on a file browser for iRODS that allows easy movement of data from local file system to iRODS resources.  I'm implementing drag-and-drop gestures of all sorts, and the Swing JTree is pretty bare-bones, and lacked hover highlighting when dragging.&lt;br /&gt;&lt;br /&gt;I found a very helpful thread &lt;a href="http://www.hbtrel.com/java-swing/16935/"&gt;here&lt;/a&gt;, pertaining to Swing JTables, but I found it easily adaptable to JTree, adding an alpha background color to the original code.  In my subclass of JTree, in which I implement DropTargetListener, I added this&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;class {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;  private int highlightedRow = -1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;    private Rectangle dirtyRegion = null;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;    private Color highlightColor = new Color(Color.BLUE.getRed(), Color.BLUE.getGreen(), Color.BLUE.getBlue(), 100);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;@Override&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;    public void dragOver(DropTargetDragEvent dtde) {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;       Point location = dtde.getLocation();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;       int closestRow = this.getClosestRowForLocation((int) location.getX(), (int) location.getY());&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;       boolean highlighted = false;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;       Graphics g = getGraphics();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;       // row changed&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;       if (highlightedRow != closestRow) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;           if (null != dirtyRegion) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;               paintImmediately(dirtyRegion);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;           }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;           for (int j = 0; j&lt;getrowcount();&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;               if (closestRow == j) {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;                   Rectangle firstRowRect = getRowBounds(closestRow);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;                   this.dirtyRegion = firstRowRect;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;                   g.setColor(highlightColor);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;                   g.fillRect((int) dirtyRegion.getX(), (int) dirtyRegion.getY(), (int) dirtyRegion.getWidth(), (int) dirtyRegion.getHeight());&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;                   highlightedRow = closestRow;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;               }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;           }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;       }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt; @Override&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;    public void dragExit(DropTargetEvent dte) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;         if (null != dirtyRegion) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;               paintImmediately(dirtyRegion);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;           }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-7125652165736039006?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/7125652165736039006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=7125652165736039006&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/7125652165736039006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/7125652165736039006'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2010/10/hover-highlighting-for-drag-and-drop-in.html' title='Hover highlighting for drag and drop in a Swing JTree'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-4188724019206121299</id><published>2009-10-14T16:12:00.003-04:00</published><updated>2009-10-14T16:18:17.198-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization VirtualBox Ubuntu'/><title type='text'>Sun VirtualBox</title><content type='html'>A few quick tips on Sun &lt;a href="http://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt;, 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).&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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:&lt;br /&gt;&lt;br /&gt;&lt;pre class="screen"&gt;mount -t vboxsf [-o OPTIONS] sharename mountpoint&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;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...&lt;br /&gt;&lt;br /&gt;&lt;span class="kw2"&gt;sudo&lt;/span&gt; &lt;span class="sy0"&gt;/&lt;/span&gt;media&lt;span class="sy0"&gt;/&lt;/span&gt;cdrom&lt;span class="sy0"&gt;/&lt;/span&gt;VBoxLinuxAdditions-x86.run&lt;br /&gt;&lt;br /&gt;This will let Ubuntu know about the vboxsf type. &lt;br /&gt;&lt;br /&gt;I'm liking VirtualBox so far, it appears to be a useful tool in the toolbox.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-4188724019206121299?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/4188724019206121299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=4188724019206121299&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4188724019206121299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4188724019206121299'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2009/10/sun-virtualbox.html' title='Sun VirtualBox'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-2046290152024634920</id><published>2009-07-08T06:48:00.002-04:00</published><updated>2009-07-08T07:03:59.905-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google Chrome OS?</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;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 apple..search 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..&lt;br /&gt;&lt;br /&gt;From&lt;a href="http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html"&gt; Google&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;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.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Chrome OS is targeted first towards small notebooks (and probably tablets?) The post makes it clear that ChromeOS and &lt;a href="http://code.google.com/android/"&gt;Android &lt;/a&gt;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. &lt;br /&gt;&lt;br /&gt;Intermittantly connected (a-la &lt;a href="http://gears.google.com/"&gt;Gears&lt;/a&gt;) 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?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-2046290152024634920?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/2046290152024634920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=2046290152024634920&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2046290152024634920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2046290152024634920'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2009/07/google-chrome-os.html' title='Google Chrome OS?'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-8215643907632213569</id><published>2009-06-08T20:23:00.005-04:00</published><updated>2009-06-08T20:36:48.771-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='dojo'/><title type='text'>Note to self...</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;I'm working on the script, and looking at this bit of code:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;dojo.addOnLoad(function() {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;      dojo.connect(dojo.byId("qform"), "submit", function(e){&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;        //stop default processing and propagation&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;        //(we really don't want to submit the form)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;        dojo.stopEvent(e);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;        &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;        //erase any previous borders...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;        dojo.query("*", "fixture").style("border", "");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;        &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;        //set all elements found by the query to have a red border...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;        var query= dojo.byId("query").value;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;        dojo.query(query, "fixture").style("border", "2px solid red");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;      });&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  });&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-8215643907632213569?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/8215643907632213569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=8215643907632213569&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8215643907632213569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8215643907632213569'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2009/06/note-to-self.html' title='Note to self...'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-4582024841440806331</id><published>2009-06-05T19:47:00.003-04:00</published><updated>2009-06-05T19:49:20.986-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unity3D'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='social computing'/><title type='text'>Come into my office</title><content type='html'>This is just a bit of fun....click &lt;a href="http://unc.renci.org/rencinews/take-a-stroll-around-the-social-computing-room"&gt;here&lt;/a&gt; to read about my 'office' and visit it via the Unity browser plug-in!  Good weekend to all.&lt;br /&gt;&lt;br /&gt;While I'm pimping...here's my 'other life', my band &lt;a href="http://www.goodrockingsam.com/"&gt;Good Rocking Sam&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-4582024841440806331?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/4582024841440806331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=4582024841440806331&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4582024841440806331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4582024841440806331'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2009/06/come-into-my-office.html' title='Come into my office'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-3275164920527974556</id><published>2009-06-01T08:06:00.005-04:00</published><updated>2009-06-01T08:34:19.957-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unity3D'/><category scheme='http://www.blogger.com/atom/ns#' term='second life'/><category scheme='http://www.blogger.com/atom/ns#' term='infomesa'/><category scheme='http://www.blogger.com/atom/ns#' term='serious gameing'/><category scheme='http://www.blogger.com/atom/ns#' term='social computing'/><title type='text'>Updates</title><content type='html'>Here's a quick rundown of projects, and some of the technologies I'm working with..&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://unc.renci.org/resources/visualization-resources/social-computing-room"&gt;Social Computing Room&lt;/a&gt;&lt;span style="font-weight: bold;"&gt; at RENCI has been busy...&lt;/span&gt;&lt;ul&gt;&lt;li&gt;I'm working on a new media projects that uses &lt;a href="http://www.cycling74.com/products/max5"&gt;Max/MSP/Jitter&lt;/a&gt; to create MIDI music using tangible objects with embedded UbiSense tags as the 'instrument'.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;I'm working on a virtual worlds project, utilizing a &lt;a href="http://unc.renci.org/rencinews/virtual-court-in-the-social-computing-room"&gt;360-degree Second Life client to stage mock trials&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;I'm still looking at the &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://sambbiblog.spaces.live.com/blog/cns%21794708049C7AE9C2%211164.entry"&gt;InfoMesa technology demonstrator&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;, and building an application based on WPF technology for the large display environment in the Social Computing Room.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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 &lt;a href="https://www.hibernate.org/343.html"&gt;NHibernate&lt;/a&gt; to store metadata on a back end server.  Once this done, that metadata layer can have pluggable modules for things like cloud databases.&lt;br /&gt;&lt;br /&gt;For the pluggable data stores, the first stores will probably be a mounted file system, then a database, then an &lt;a href="https://www.irods.org/index.php/IRODS:Data_Grids%2C_Digital_Libraries%2C_Persistent_Archives%2C_and_Real-time_Data_Systems"&gt;iRods &lt;/a&gt;repository.  After this, in order, it will probably be http, ftp, then cloud databases.&lt;br /&gt;&lt;br /&gt;The Social Computing Room will be integrating a&lt;a href="http://vis.renci.org/multitouch/"&gt; multi-touch&lt;/a&gt; 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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Serious Games&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'm learning about the &lt;a href="http://unity3d.com/"&gt;Unity3d&lt;/a&gt; game engine in my 'spare cycles'. &lt;a href="http://unc.renci.org/rencinews/serious-gaming-and-simulation-at-renciunc"&gt; We've ported a few Unity projects to the dome, and blogged about it&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Lots of things going on, as you can see.  Main technologies I've worked with in the last two months:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;.Net, C#, WPF&lt;/li&gt;&lt;li&gt;Java, including some Jetty work, and some socket stuff.&lt;/li&gt;&lt;li&gt;Max/MSP patches&lt;/li&gt;&lt;li&gt;Flex and Flash development&lt;/li&gt;&lt;li&gt;Wordpress and a bit of PHP&lt;/li&gt;&lt;li&gt;Quicktime Streaming Server and Quicktime Broadcaster&lt;/li&gt;&lt;li&gt;Unity3D&lt;/li&gt;&lt;li&gt;Second Life building and LSL scripting.&lt;/li&gt;&lt;/ul&gt;This is why I like my job...now I busted some solder joints Friday doing some testing, so I've got to play with a soldering iron.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-3275164920527974556?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/3275164920527974556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=3275164920527974556&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3275164920527974556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3275164920527974556'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2009/06/updates.html' title='Updates'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-5856162313894221984</id><published>2009-01-29T12:52:00.004-05:00</published><updated>2009-01-29T15:39:19.770-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='second life'/><category scheme='http://www.blogger.com/atom/ns#' term='social computing'/><title type='text'>Sitting on Top of the (virtual) world</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;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...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Y5gZZSW978E/SYIQPtu4dFI/AAAAAAAAAIE/p_MfxLXGY2k/s1600-h/IMG_0497.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_Y5gZZSW978E/SYIQPtu4dFI/AAAAAAAAAIE/p_MfxLXGY2k/s320/IMG_0497.JPG" alt="" id="BLOGGER_PHOTO_ID_5296813973901440082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;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...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Y5gZZSW978E/SYITCVYxUmI/AAAAAAAAAIM/_y7ctWBHTXU/s1600-h/Snapshot_001.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 187px;" src="http://3.bp.blogspot.com/_Y5gZZSW978E/SYITCVYxUmI/AAAAAAAAAIM/_y7ctWBHTXU/s320/Snapshot_001.jpg" alt="" id="BLOGGER_PHOTO_ID_5296817042562830946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;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!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-5856162313894221984?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/5856162313894221984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=5856162313894221984&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5856162313894221984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5856162313894221984'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2009/01/sitting-on-top-of-virtual-world.html' title='Sitting on Top of the (virtual) world'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Y5gZZSW978E/SYIQPtu4dFI/AAAAAAAAAIE/p_MfxLXGY2k/s72-c/IMG_0497.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-4838533675424015137</id><published>2009-01-28T16:14:00.004-05:00</published><updated>2009-01-28T16:26:23.657-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='spime'/><category scheme='http://www.blogger.com/atom/ns#' term='openspime'/><category scheme='http://www.blogger.com/atom/ns#' term='sensor'/><title type='text'>The world of mobile sensors</title><content type='html'>I've been sharing around a&lt;a href="http://www.research.nokia.com/files/insight/NTI_Sensing_-_Dec_2008.pdf"&gt; white paper by Nokia&lt;/a&gt; that considers the mobile phone as a sensor.  The key point:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;As mobile device subscriptions pass the four billion mark, we’re looking at&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;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&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;of data with exceptional granularity. The perfect platform for sensing the world&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;is already in our hands.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Well, here's a cool example, from &lt;a href="http://www.openspime.com/2009/01/25/widenoise-to-let-all-familiarize-with-the-concept-of-spimes/"&gt;OpenSpime&lt;/a&gt;, &lt;a href="http://www.widetag.com/widenoise/"&gt;WideNoise &lt;/a&gt;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.&lt;br /&gt;&lt;br /&gt;Rewind a bit, 'Spime' is an abbreviate of 'space' + 'time'. A Spime is defined by OpenSpime as: &lt;span style="font-style: italic;"&gt;a technologically enabled device that interacts both with the physical and the digital environment, aware of its location and with an history about itself.&lt;/span&gt;  OpenSpime is working to create a Jabber/XMPP protocol that allows Spimes to report information about themselves, and has a&lt;a href="http://code.google.com/p/pyopenspime/"&gt; set of python libraries in development&lt;/a&gt; as a first project.&lt;br /&gt;&lt;br /&gt;A handful of threads that really are woven together...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-4838533675424015137?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/4838533675424015137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=4838533675424015137&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4838533675424015137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4838533675424015137'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2009/01/world-of-mobile-sensors.html' title='The world of mobile sensors'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-3777497812152838719</id><published>2009-01-16T13:06:00.001-05:00</published><updated>2009-01-16T13:07:52.046-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='renci'/><title type='text'>Renci featured in Endeavors Magazine</title><content type='html'>Cool article on Renci and the power of visualization...in Endeavors Magazine right &lt;a href="http://research.unc.edu/endeavors/win2009/lets_get_visual.php"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-3777497812152838719?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/3777497812152838719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=3777497812152838719&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3777497812152838719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3777497812152838719'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2009/01/renci-featured-in-endeavors-magazine.html' title='Renci featured in Endeavors Magazine'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-5202342186377762017</id><published>2009-01-15T08:38:00.000-05:00</published><updated>2009-01-15T08:38:41.699-05:00</updated><title type='text'>InfoMesa and Databases in the Cloud - Windows Live</title><content type='html'>InfoMesa is a technology demonstrator from Microsoft Life Sciences that I've blogged about &lt;a href="http://instanceofidea.blogspot.com/2008/10/adapting-infomesa-to-social-computing.html"&gt;previously&lt;/a&gt;.  I've been working (as time permits) on two tracks. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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 &lt;a href="http://www.microsoft.com/azure/default.mspx"&gt;Microsoft Azure&lt;/a&gt;, or&lt;a href="http://aws.amazon.com/s3/"&gt; Amazon S3&lt;/a&gt;.  The InfoMesa blog has some interesting demonstrations of porting the whiteboard metadata to Azure in the post &lt;a href="http://sambbiblog.spaces.live.com/blog/cns%21794708049C7AE9C2%212060.entry"&gt;InfoMesa and Databases in the Cloud - Windows Live.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;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.  &lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-5202342186377762017?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://sambbiblog.spaces.live.com/blog/cns!794708049C7AE9C2!2060.entry' title='InfoMesa and Databases in the Cloud - Windows Live'/><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/5202342186377762017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=5202342186377762017&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5202342186377762017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5202342186377762017'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2009/01/infomesa-and-databases-in-cloud-windows.html' title='InfoMesa and Databases in the Cloud - Windows Live'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-1121919172490734652</id><published>2009-01-07T10:46:00.000-05:00</published><updated>2009-01-07T10:50:44.779-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='renci wordpress'/><title type='text'>Working on a blog/website for Renci@UNC</title><content type='html'>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 (&lt;a href="http://www.growlingranger.com/flickrbox/"&gt;FlickrBox&lt;/a&gt;) to incorporate this into the new Renci@UNC site.&lt;br /&gt;&lt;br /&gt;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!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-1121919172490734652?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/1121919172490734652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=1121919172490734652&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/1121919172490734652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/1121919172490734652'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2009/01/working-on-blogwebsite-for-renciunc.html' title='Working on a blog/website for Renci@UNC'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-8708716766055186942</id><published>2008-12-04T11:15:00.000-05:00</published><updated>2008-12-04T11:25:37.175-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='renci'/><category scheme='http://www.blogger.com/atom/ns#' term='multi-touch'/><title type='text'>Vid from Supercomputing 08</title><content type='html'>Here's some &lt;a href="http://www.renci.org/sc08/video/"&gt;Renci Vid from SC08&lt;/a&gt;, showing some of the technology in the Renci booth.  As stated before, I'd love to put a touch table in as a centerpiece to the &lt;a href="http://instanceofidea.blogspot.com/2008/11/bit-about-social-computing-room.html"&gt;Social Computing Room&lt;/a&gt;, and have multi-touch applications that interact with the 360-degree viz display.  This idea meshes well with the ideas demonstrated by &lt;a href="http://instanceofidea.blogspot.com/2008/10/adapting-infomesa-to-social-computing.html"&gt;InfoMesa&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Also cool to note is the HoloPanel that can be seen in the corner of the booth.  A pair of these was used in the Social Computing Room as a part of the &lt;a href="http://comm.unc.edu/newsevents/productionevent"&gt;Spectacular Justice&lt;/a&gt; installation, and they were stunning!&lt;br /&gt;&lt;br /&gt;All that said, really this is just to share some cool technology.  I'm lucky to work with such smart and resourceful people at Renci.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-8708716766055186942?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/8708716766055186942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=8708716766055186942&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8708716766055186942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8708716766055186942'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/12/vid-from-supercomputing-08.html' title='Vid from Supercomputing 08'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-6584538797813073299</id><published>2008-11-17T06:52:00.001-05:00</published><updated>2008-11-17T08:22:53.461-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='renci'/><category scheme='http://www.blogger.com/atom/ns#' term='social computing'/><category scheme='http://www.blogger.com/atom/ns#' term='multi-touch'/><title type='text'>Renci Multi-Touch blog</title><content type='html'>Here's the&lt;a href="http://vis.renci.org/multitouch/"&gt; multi-touch blog&lt;/a&gt; from Renci.  There are two form factors that Renci is working with, a large &lt;a href="http://vis.renci.org/multitouch/?cat=5"&gt;multi-touch wall at Duke&lt;/a&gt;, and a &lt;a href="http://vis.renci.org/multitouch/?p=164"&gt;horizontal touch-table&lt;/a&gt; at Europa.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://vis.renci.org/multitouch/wp-content/themes/daleri-dark-10/img/front.jpg"&gt;&lt;img style="cursor: pointer; width: 356px; height: 74px;" src="http://vis.renci.org/multitouch/wp-content/themes/daleri-dark-10/img/front.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;My hope is that a touch-table will grace the &lt;a href="http://instanceofidea.blogspot.com/2008/11/bit-about-social-computing-room.html"&gt;Social Computer Room&lt;/a&gt;.  A long-term vision would be to extend our &lt;a href="http://instanceofidea.blogspot.com/2008/10/adapting-infomesa-to-social-computing.html"&gt;Collage/InfoMesa ideas&lt;/a&gt; in the SCR, using the 360-degree display to provide visual real estate.  Imagine a group working around a touch table, shooting images out to the 360-degree wall with gestures on the touch table.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-6584538797813073299?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/6584538797813073299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=6584538797813073299&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6584538797813073299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6584538797813073299'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/11/renci-multi-touch-blog.html' title='Renci Multi-Touch blog'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-2734716193921807461</id><published>2008-11-13T09:39:00.000-05:00</published><updated>2008-11-13T10:51:25.164-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wpf'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Putting Google Earth into a WPF window</title><content type='html'>This may end up being fruitless, but I was inspired by this &lt;a href="http://channel9.msdn.com/posts/briankel/PDC2008-ShowOff-Entry-Multi-channel-Virtual-Earth/"&gt;multi-channel version of Microsoft Virtual Earth&lt;/a&gt;.  It looks like they linked multiple version of Virtual Earth with different camera settings, and I wanted to try something similar with Google Earth for our Global Immersion dome.  This four-projector rig needs a viewport and four camera views to work right.  Can I create a full-screen app that has these four viewports, and have four synchronized version of Google Earth running?  I don't know, but the first step was to see if I could create a WPF app that had Google Earth embedded in the WPF window.  You can at least do that, and that's interesting in itself, because I can add a Google Earth widget to my &lt;a href="http://instanceofidea.blogspot.com/2008/10/adapting-infomesa-to-social-computing.html"&gt;InfoMesa/Collage experiments&lt;/a&gt; described here...&lt;br /&gt;&lt;br /&gt;Anyhow, here's the window in all its (yawn) glory:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Y5gZZSW978E/SRw9dBEo8YI/AAAAAAAAAH4/MJ38GBCDj6M/s1600-h/ge_in_wpf.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_Y5gZZSW978E/SRw9dBEo8YI/AAAAAAAAAH4/MJ38GBCDj6M/s320/ge_in_wpf.jpg" alt="" id="BLOGGER_PHOTO_ID_5268153232830034306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It was a bit of a slog to get it right, and I'll share the code that worked.  First, I had to get Google Earth, which gives you this &lt;a href="http://earth.google.com/comapi/index.html"&gt;COM SDK&lt;/a&gt;.  I did this using C#, Vis Studio 2008.  I added a project ref to the COM Google Earth library, and created a class that extended HwndHost.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;using System;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;using System.Collections.Generic;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;using System.Linq;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;using System.Text;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;using System.Windows;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;using System.Windows.Controls;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;using System.Windows.Data;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;using System.Windows.Documents;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;using System.Windows.Input;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;using System.Windows.Media;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;using System.Windows.Media.Imaging;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;using System.Windows.Navigation;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;using System.Windows.Shapes;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;using System.Windows.Interop;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;using System.Runtime.InteropServices;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;using EARTHLib;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;namespace GeTest&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;    class MyHwndHost : HwndHost&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;    {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        [DllImport("user32.dll")]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        static extern int SetParent(int hWndChild, int hWndParent);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        IApplicationGE iGeApp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        [DllImport("user32.dll", EntryPoint = "GetDC")]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        public static extern IntPtr GetDC(IntPtr ptr);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        [DllImport("user32.dll", EntryPoint = "GetWindowDC")]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        public static extern IntPtr GetWindowDC(Int32 ptr);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        [DllImport("user32.dll", EntryPoint = "IsChild")]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        public static extern bool IsChild(int hWndParent, int hwnd);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        [DllImport("user32.dll", EntryPoint = "ReleaseDC")]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        public static extern IntPtr ReleaseDC(IntPtr hWnd, IntPtr hDc);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        [DllImport("user32.dll", CharSet = CharSet.Auto)]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        public extern static bool SetWindowPos(int hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        [DllImport("user32.dll", CharSet = CharSet.Auto)]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        public static extern IntPtr PostMessage(int hWnd, int msg, int wParam, int lParam);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        //PInvoke declarations&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        [DllImport("user32.dll", EntryPoint = "CreateWindowEx", CharSet = CharSet.Auto)]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        internal static extern IntPtr CreateWindowEx(int dwExStyle,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;                                                      string lpszClassName,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;                                                      string lpszWindowName,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;                                                      int style,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;                                                      int x, int y,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;                                                      int width, int height,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;                                                      IntPtr hwndParent,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;                                                      IntPtr hMenu,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;                                                      IntPtr hInst,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;                                                      [MarshalAs(UnmanagedType.AsAny)] object pvParam);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        readonly IntPtr HWND_BOTTOM = new IntPtr(1);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        readonly IntPtr HWND_NOTOPMOST = new IntPtr(-2);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        readonly IntPtr HWND_TOP = new IntPtr(0);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        readonly IntPtr HWND_TOPMOST = new IntPtr(-1);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        static readonly UInt32 SWP_NOSIZE = 1;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        static readonly UInt32 SWP_NOMOVE = 2;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        static readonly UInt32 SWP_NOZORDER = 4;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        static readonly UInt32 SWP_NOREDRAW = 8;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        static readonly UInt32 SWP_NOACTIVATE = 16;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        static readonly UInt32 SWP_FRAMECHANGED = 32;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        static readonly UInt32 SWP_SHOWWINDOW = 64;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        static readonly UInt32 SWP_HIDEWINDOW = 128;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        static readonly UInt32 SWP_NOCOPYBITS = 256;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        static readonly UInt32 SWP_NOOWNERZORDER = 512;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        static readonly UInt32 SWP_NOSENDCHANGING = 1024;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        static readonly Int32 WM_CLOSE = 0xF060;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        static readonly Int32 WM_QUIT = 0x0012;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        private IntPtr GEHrender = (IntPtr)0;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        private IntPtr GEParentHrender = (IntPtr)0;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        internal const int&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;  WS_CHILD = 0x40000000,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;  WS_VISIBLE = 0x10000000,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;  LBS_NOTIFY = 0x00000001,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;  HOST_ID = 0x00000002,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;  LISTBOX_ID = 0x00000001,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;  WS_VSCROLL = 0x00200000,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;  WS_BORDER = 0x00800000;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        public ApplicationGEClass googleEarth;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        protected override HandleRef BuildWindowCore(HandleRef hwndParent)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;            // start google earth&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;            googleEarth = new ApplicationGEClass();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;            int ge = googleEarth.GetRenderHwnd();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;            IntPtr hwndControl = IntPtr.Zero;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;            IntPtr hwndHost = IntPtr.Zero;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;            int hostHeight = 200;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;            int hostWidth = 300;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;            // create a host window that is a child of this HwndHost.  I'll plug this HwndHost class as a child of&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;            // a border element in my WPF app, &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;            hwndHost = CreateWindowEx(0, "static", "",&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;                                      WS_CHILD | WS_VISIBLE,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;                                      0, 0,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;                                      hostHeight, hostWidth,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;                                      hwndParent.Handle,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;                                      (IntPtr)HOST_ID,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;                                      IntPtr.Zero,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;                                      0);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;           &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;            // set the parent of the Google Earth window to be the host I created here&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;            int oldPar = SetParent(ge, (int) hwndHost);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;            // check to see if I'm now a child, for my own amusement&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;            if (IsChild(hwndHost.ToInt32(), ge)) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;                System.Console.WriteLine("now a child");&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;            }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;            &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;            // return a ref to the hwndHost, which should now be the parent of the google earth window&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;            return new HandleRef(this, hwndHost);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        protected override void DestroyWindowCore(HandleRef hwnd)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;            throw new NotImplementedException();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);font-family:courier new;" &gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The main window of my WPF app, in its constructor for the Window, just plugs this HwndHost as a child of a Border control:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:verdana;" &gt; public Window1()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:verdana;" &gt;        {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:verdana;" &gt;            InitializeComponent();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:verdana;" &gt;            MyHwndHost hwndHost = new MyHwndHost();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:verdana;" &gt;            border1.Child = hwndHost;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:verdana;" &gt;            &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);font-family:verdana;" &gt;        }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And you are off to the races!  I found a lot of different approaches to this all over the web, but none of them seemed to work, as is often the case.  Maybe this will work for you, or maybe it adds to the confusion.&lt;br /&gt;&lt;br /&gt;UPDATE: can't run more than one Google Earth, so it's a bust, but still has use in my InfoMesa/Collage project.  I wonder about Virtual Earth?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-2734716193921807461?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/2734716193921807461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=2734716193921807461&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2734716193921807461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2734716193921807461'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/11/putting-google-earth-into-wpf-window.html' title='Putting Google Earth into a WPF window'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Y5gZZSW978E/SRw9dBEo8YI/AAAAAAAAAH4/MJ38GBCDj6M/s72-c/ge_in_wpf.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-5921426898125027556</id><published>2008-11-12T14:50:00.001-05:00</published><updated>2008-11-12T16:38:39.925-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubisense'/><category scheme='http://www.blogger.com/atom/ns#' term='max/msp/jitter'/><category scheme='http://www.blogger.com/atom/ns#' term='media'/><category scheme='http://www.blogger.com/atom/ns#' term='social computing'/><title type='text'>Video for Ubisense/MIDI demo</title><content type='html'>Here's the video that &lt;a href="http://instanceofidea.blogspot.com/2008/11/music-and-media-in-scr.html"&gt;was described in this post&lt;/a&gt;.  The point of this experiment was to see if we could reasonably map carpet squares in the&lt;a href="http://instanceofidea.blogspot.com/2008/11/bit-about-social-computing-room.html"&gt; Social Computing Room&lt;/a&gt; to MIDI notes, and output those notes to the on-board MIDI implementation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-8aa59c5918828a6f" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v9.nonxt2.googlevideo.com/videoplayback?id%3D8aa59c5918828a6f%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330382346%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4DECE3834C82DB6A095168E23BFD6ECBD22B9752.495BA21B9B0C0702E8279CE5227966906B936CB7%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D8aa59c5918828a6f%26offsetms%3D5000%26itag%3Dw160%26sigh%3DaDr1epqVbK3ROSewTXK6CFpLRas&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v9.nonxt2.googlevideo.com/videoplayback?id%3D8aa59c5918828a6f%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330382346%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4DECE3834C82DB6A095168E23BFD6ECBD22B9752.495BA21B9B0C0702E8279CE5227966906B936CB7%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D8aa59c5918828a6f%26offsetms%3D5000%26itag%3Dw160%26sigh%3DaDr1epqVbK3ROSewTXK6CFpLRas&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Oh well...off to a Games4Learning event...see ya there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-5921426898125027556?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=8aa59c5918828a6f&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/5921426898125027556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=5921426898125027556&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5921426898125027556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5921426898125027556'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/11/video-for-ubisensemidi-demo.html' title='Video for Ubisense/MIDI demo'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-4237285383827470859</id><published>2008-11-10T08:00:00.000-05:00</published><updated>2008-11-10T09:01:45.488-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='renci'/><category scheme='http://www.blogger.com/atom/ns#' term='social computing'/><title type='text'>A bit about the Social Computing Room</title><content type='html'>In&lt;a href="http://instanceofidea.blogspot.com/2008/11/music-and-media-in-scr.html"&gt; the last blog entry&lt;/a&gt;, I had put down a spot to link to a description of the 'Social Computing Room', and realized that I didn't have one.  So I wanted to fill in a few details and fix that link.&lt;br /&gt;&lt;br /&gt;The Social Computing Room, (or SCR for short) is a visualization space at the &lt;a href="http://www.renci.org/"&gt;Renci &lt;/a&gt;Engagement Center at &lt;a href="http://www.renci.org/resources/viz/unc.php"&gt;UNC Chapel Hill&lt;/a&gt;. We're over near the hospital in the &lt;a href="http://its.unc.edu/about-its/its-manning.html"&gt;ITS-Manning&lt;/a&gt; building in Chapel Hill.  It's one of three spaces, the other being the Showcase Dome (a 5-meter tilted Global Immersion dome), and Teleimmersion, which is a 4K (4 x HD resolution) stereo environment.  We're working on some virtual tours for a new web site, so there should be some more info soon on those other spaces.&lt;br /&gt;&lt;br /&gt;One of the primary features of the SCR is its 360-degree display.  The room is essentially a 12,288x768 Windows desktop.  (I've also tested a Mac in this environment, and it works as well).  Here's a pic of the SCR...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Y5gZZSW978E/SRg5n1AWQvI/AAAAAAAAAHo/s-AB-ddd9To/s1600-h/social_comp18.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 266px;" src="http://4.bp.blogspot.com/_Y5gZZSW978E/SRg5n1AWQvI/AAAAAAAAAHo/s-AB-ddd9To/s400/social_comp18.jpg" alt="" id="BLOGGER_PHOTO_ID_5267023120616014578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The room has multiple cameras, wireless mics, multi-channel sound, 3D location tracking for people and objects, and is ultra-configurable (plenty of cat-6 for connecting things, Unistrut ceiling for adding new hardware).  The room has so many possibilities that it gets difficult to keep up with all of the ideas.  I think of it as a place where you can paint the walls with software, and make it into anything you want.  There are currently a few emerging themes:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The SCR is a collaborative visualization space.   The room seems especially suited for groups considering a lot of information, doing comparison, interperetation, and grouping.  There is a lot of visual real estate, and the four-wall arrangement seems to lend itself to spatial organization of data.  As groups use the space for this purpose, I'm trying to capture how they work, and what they need.  The goal is to create a seemless experience for collaboration.  This is the reason I've been interested in WPF, and the InfoMesa technology demonstrator,&lt;a href="http://instanceofidea.blogspot.com/2008/10/adapting-infomesa-to-social-computing.html"&gt; as covered in this previous post&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;The SCR is a new media space.  Its been used for art installations, and it has interesting possibilities for all sorts of interactive experiences, as illustrated by &lt;a href="http://instanceofidea.blogspot.com/2008/11/music-and-media-in-scr.html"&gt;this recent experiment&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The SCR is a place for interacting with the virtual world.  We're working on a Second Life client that would have a 360-degree perspective, so that we can embed the SCR inside of a larger virtual enviroment, enabling all sorts of new possibilities.&lt;/li&gt;&lt;/ul&gt;These are just a few of the areas I'm interested in.  Each of the areas can be enhanced by the use of different types of sensors and robotics, and I've been started with Wiimotes, SunSpots, and the Ubisense location tracking hardware.&lt;br /&gt;&lt;br /&gt;That's a bit about the SCR, it's a really fascinating environment, and if you are on the UNC campus, give me a shout out and I'll show you around!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Y5gZZSW978E/SRg-JoWze-I/AAAAAAAAAHw/maKbh4b1Q-o/s1600-h/scr_sl.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 265px;" src="http://4.bp.blogspot.com/_Y5gZZSW978E/SRg-JoWze-I/AAAAAAAAAHw/maKbh4b1Q-o/s400/scr_sl.JPG" alt="" id="BLOGGER_PHOTO_ID_5267028099382606818" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-4237285383827470859?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/4237285383827470859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=4237285383827470859&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4237285383827470859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4237285383827470859'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/11/bit-about-social-computing-room.html' title='A bit about the Social Computing Room'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Y5gZZSW978E/SRg5n1AWQvI/AAAAAAAAAHo/s-AB-ddd9To/s72-c/social_comp18.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-3384378138933003254</id><published>2008-11-07T14:48:00.001-05:00</published><updated>2008-11-10T09:06:36.395-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubisense'/><category scheme='http://www.blogger.com/atom/ns#' term='max/msp/jitter'/><category scheme='http://www.blogger.com/atom/ns#' term='social computing'/><title type='text'>Music and Media in the SCR</title><content type='html'>&lt;span style="font-weight: bold;"&gt;UPDATE: delay on getting the video done, should be here by early this week...MC&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here's an interesting prototype that combines the Social Computing Room with Max/MSP/Jitter and UbiSense.  Video will follow soon.&lt;br /&gt;&lt;br /&gt;The Social Computing Room &lt;a href="http://instanceofidea.blogspot.com/2008/11/bit-about-social-computing-room.html"&gt;(described here&lt;/a&gt;) has many potential applications, and one intriguing use is as an 'interactive media space'.  The idea is that 360-degree visuals, combined with various types of sensors, software, and robotics, can create new kinds of experiences.  Two examples that I can point to include the '&lt;a href="http://comm.unc.edu/newsevents/productionevent"&gt;Spectacular Justice&lt;/a&gt;' exhibit that occurred last winter, as well as &lt;a href="http://www.renci.org/news/luminescence.php"&gt;student work with Max/MSP/Jitter&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In this case, a prototype was written that uses &lt;a href="http://www.ubisense.net/content/10.html"&gt;UbiSense&lt;/a&gt;, which provides location tracking in 3D through an active tag.  A &lt;a href="http://www.cycling74.com/products/max5"&gt;Max&lt;/a&gt; object was written in Java to take the UbiSense location data off of a multicast stream, and push it out into Max-land.  A second Max object was created to take the x,y,z data from UbiSense, in meters, and convert it into numbers that match up to the carpet squares on the floor of the Social Computing Room.  Given those two new objects, the 'pad' number of the carpet square can be mapped to a MIDI note, and sent out through the Max &lt;a href="http://www.cycling74.com/docs/max5/refpages/max-ref/noteout.html"&gt;noteout &lt;/a&gt;object.&lt;br /&gt;&lt;br /&gt;Here's a picture of a simple patch:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Y5gZZSW978E/SRSoXc1-A0I/AAAAAAAAAHg/OACDAJKzOTs/s1600-h/ubisensepatch.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 301px;" src="http://2.bp.blogspot.com/_Y5gZZSW978E/SRSoXc1-A0I/AAAAAAAAAHg/OACDAJKzOTs/s320/ubisensepatch.jpg" alt="" id="BLOGGER_PHOTO_ID_5266018985135964994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What I'm really trying to show are techniqes for interacting with music and video.  I could see using objects in the room that can be arranged to create musical patterns using an arpegiator or a loop player, and this can be combined with video on all four walls.  MIDI or other methods can simultaneously control lights and other electronics.  You could create a human theramin by having two people move around the room in relation to each other.&lt;br /&gt;&lt;br /&gt;It's also interesting to let several people move around in the SCR holding multiple tags, you can create semi-musical patterns by working as a group.  It's a fun thing, but points to some interesting possibilities.   I've also adapted a Wiimote in the same manner.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-3384378138933003254?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/3384378138933003254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=3384378138933003254&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3384378138933003254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3384378138933003254'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/11/music-and-media-in-scr.html' title='Music and Media in the SCR'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Y5gZZSW978E/SRSoXc1-A0I/AAAAAAAAAHg/OACDAJKzOTs/s72-c/ubisensepatch.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-461806486908345467</id><published>2008-10-28T07:57:00.001-04:00</published><updated>2008-11-04T09:06:41.887-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='infomesa'/><category scheme='http://www.blogger.com/atom/ns#' term='social computing'/><title type='text'>Adapting InfoMesa to the Social Computing Room</title><content type='html'>InfoMesa&lt;span style="text-decoration: underline;"&gt; &lt;/span&gt;is an interesting initiative by Sam Batterman at Microsoft Life Sciences...quoting from &lt;a href="http://sambbiblog.spaces.live.com/blog/cns%21794708049C7AE9C2%211750.entry"&gt;Sam's blog&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;p style="font-style: italic;"&gt;InfoMesa is a project to allow scientists to do more science and more discovery in a collaborative and data-rich environment. The metaphor that we have elected to use as the underlying fabric of the InfoMesa is a Whiteboard. &lt;/p&gt;&lt;p&gt;&lt;span style="font-style: italic;"&gt;InfoMesa allows &lt;/span&gt;&lt;em style="font-style: italic;"&gt;any kind&lt;/em&gt;&lt;span style="font-style: italic;"&gt; of data or visualization to be added to the Whiteboard. Far from static, these tools are interactive, allowing data to be absorbed from data sources like Oracle, SQL Server, Excel Spreadsheets, XML or even Cloud-based web services. InfoMesa, when complete will support imagery, video, 2D connected models, 3D models (lit in a photo realistically manner), web searches, results from web service calls, Image Tile Maps, ScatterPlots, Sticky Notes, Ink Notes, Rich Annotations and Associations. &lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Check the blog link for screen shots, it's a really interesting application, as well as a nice example of the capabilities of &lt;a href="http://msdn.microsoft.com/en-us/netframework/aa663326.aspx"&gt;WPF &lt;/a&gt;(Windows Presentation Foundation).  As a died-in-the-wool Java and Ruby programmer, I don't necessarily fit the typical Microsoft bandwagon profile, but I am having quite good success leveraging the WPF framework for the challenging environment in our Social Computing Room, which is essentially a 12,288 x 768 desktop.&lt;/p&gt;&lt;p&gt;A bit of a rewind, the Social Computing Room is part of the Renci Engagement Center at UNC Chapel Hill.  The SCR has a 360-degree visual display running on all four walls, with 12 projectors per wall.  The relevant model we were already working on was a supporting environment for researchers working in collaborative groups, and considering LOTS of data at one time.   The SCR is a great venue for approaching problems that fit the '&lt;a href="http://en.wikipedia.org/wiki/Small_multiple"&gt;small multiples&lt;/a&gt;' mold.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;One of my colleagues, Dave Borland, had created a prototype called 'Collage'.  This prototype used OpenGL and C++ (including some nifty wxWidgets sleight of hand to allow OpenGL to render such a large visual application).  Collage handled cool things like letting the mouse, and any images, wrap all the way around the room.  Collage could also play videos, and we were looking at adding other capabilities.  Another cool part of Collage was the ability to intelligently 'lay out' images.  For example, it was a common activity to expand each image to size to one 'projector', avoiding any stitch lines between displays.  We were also working on displaying metadata about the images on command, sorting data various ways, and generally assisting 'small multiple' visualization tasks.&lt;/p&gt;&lt;p&gt;The downside of Collage is that it was a bit hard to extend, requiring a lot of OpenGL and wxWidgets prestidigitation to add new features.  There were further plans to add Wiimote integration for multi-user input, and the ability to assign functionality to each wall.  E.g., have a magnification wall, where thumbnails that were dragged to the magnification wall would automatically size for comparison.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;After seeing InfoMesa in prototype form, I realized that many of the ideas we had in Collage mapped nicely onto the InfoMesa concept, and InfoMesa really moved the ball down the field.  The first question I had was whether WPF would support, in a performant manner, a 12,288x768 desktop, and I was pleasantly suprised!  The thing I've been working on for the past couple of weeks is taking the InfoMesa code, and adapting it to cover the functionality we already had in the OpenGL Collage prototype.  I've been concentrating on the visual interface so far, leaving persistance, annotation, and metadata for later work.  Here's a short vid of the CollageWPF adaptation of InfoMesa:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-6484199403093486" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v11.nonxt2.googlevideo.com/videoplayback?id%3D6484199403093486%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330382346%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D53B922A08F6317D4D9D6B00CB5F3CDC4A85ACE57.1D864BEE09C8F5DDF9B22AB642A7BA776786723A%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D6484199403093486%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dnb4UmJWnnQx_spLHIiD18P3ldew&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v11.nonxt2.googlevideo.com/videoplayback?id%3D6484199403093486%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330382346%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D53B922A08F6317D4D9D6B00CB5F3CDC4A85ACE57.1D864BEE09C8F5DDF9B22AB642A7BA776786723A%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D6484199403093486%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dnb4UmJWnnQx_spLHIiD18P3ldew&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;I wanted to hit on a few of the 'features' we've added, some requested by researchers who are using the prototype:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;InfoMesa is turned 'inside out', maximizing real estate.  Wrapping controls and toolbars around the whole display doesn't work on a big wall, so I went with a right-click context menu.  It would be cool for InfoMesa to expand full desktop or display the interface!  Otherwise, it might be cool to concentrate on partitioning the application such that the host 'window' can be easily customized for various display types.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ability to automatically lay out and size imagery, which I implemented by creating a SceneManager to describe the environment, and a LayoutManager that can be subclassed for various layouts.  The first LayoutManager does a scale and position to get one image per projector.  The idea is that SceneManagers could be created for other viz environments, such as a 3x3 viz wall, or a 4K high-def display.  &lt;/li&gt;&lt;li&gt;I Started thinking about a base 'widget' that can be subclassed to create other tools.  Here I've still got things to learn about InfoMesa!  I also started thinking about how these subclassed widgets would keep and share metadata, and allow the host 'cavas', or 'Universe', to know its widgets, and be able to manipulate them for things like layouts.&lt;/li&gt;&lt;li&gt;I added a widget to display 'time series' images in a player.  It will eventually work by synchronizing multiple 'time series' viewers so researchers can consider different model runs simultaneously.  I also added a widget to digest a power point, break into images, and then lay out those images.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The original InfoMesa zooms the entire desktop.  Researchers were really looking to scale individual images.&lt;/li&gt;&lt;li&gt;I added mouse-over tool tips to display image metadata.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://sambbiblog.spaces.live.com/blog/cns%21794708049C7AE9C2%211781.entry"&gt;There's a good rundown of the use cases for InfoMesa here&lt;/a&gt;, and I think they are spot on.  I think there's some adaptation that will be needed to get InfoMesa to fit the SCR form factor, and there are several other viz environments that also can serve as test cases, so it should be interesting.  I'd like for a researcher to be able to log in to an InfoMesa room, create a white board, provision it, then go into the SCR, log in there, and see the white board depicted and ready to roll.  Another angle would be to have some sort of event model that would publish changes on one viz wall to render in another...wall-to-wall collaboration would be way cool!&lt;br /&gt;&lt;br /&gt;More later....be sure to vote tomorrow.  As a political junkie, I'm sure I'll be pretty tired looking on Wednesday morning.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-461806486908345467?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=6484199403093486&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/461806486908345467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=461806486908345467&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/461806486908345467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/461806486908345467'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/10/adapting-infomesa-to-social-computing.html' title='Adapting InfoMesa to the Social Computing Room'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-8654809922084707096</id><published>2008-10-03T13:37:00.001-04:00</published><updated>2008-10-03T13:39:08.949-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='infomesa'/><title type='text'>InfoMesa</title><content type='html'>This is cool, a huge, sharable electronic white-board and research notebook from Microsoft called InfoMesa.   I'm interested in how this can integrate into our Social Computing Room&lt;br /&gt;&lt;br /&gt;&lt;a href="http://anirbanghoshscinno.spaces.live.com/"&gt;http://anirbanghoshscinno.spaces.live.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-8654809922084707096?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/8654809922084707096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=8654809922084707096&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8654809922084707096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8654809922084707096'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/10/infomesa.html' title='InfoMesa'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-1607510175650754797</id><published>2008-06-27T15:21:00.000-04:00</published><updated>2008-06-27T15:28:37.531-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Panda3D'/><category scheme='http://www.blogger.com/atom/ns#' term='blender'/><title type='text'>Blender -&gt; Panda via Chicken, finally working</title><content type='html'>Mad props to the poster on the Panda &lt;a href="http://panda3d.org/phpbb2/viewtopic.php?t=4501"&gt;forums &lt;/a&gt;&lt;span class="name"&gt;&lt;b&gt;BrianInSuwon.  &lt;/b&gt;I had wrestled with getting an animated &lt;a href="http://panda3d.org/wiki/index.php/Loading_and_Animating_the_Panda_Model"&gt;Actor &lt;/a&gt;into &lt;a href="http://www.panda3d.org/"&gt;Panda3D &lt;/a&gt;after creating it in Blender.  I think part of my problem was that I was using the newest version of &lt;a href="http://www.blender.org/"&gt;Blender&lt;/a&gt;, and using envelopes to warp the mesh that I was putting over my armatures.&lt;br /&gt;&lt;br /&gt;I'm really not trying to be a 3D animator, rather learning the mechanics of the animation and art path to better understand game engine development.  I'm picking up Blender while picking up Panda. &lt;/span&gt;&lt;span class="name"&gt;There are alternative methods of doing bone animation in Blender, so you really do have to do it one certain way to get it to work.  I won't repeat the instructions, rather &lt;a href="http://panda3d.org/phpbb2/viewtopic.php?t=4501"&gt;link off to the forum&lt;/a&gt; post, but this does work using the &lt;a href="http://chicken-export.sourceforge.net/"&gt;Chicken exporter plug-in&lt;/a&gt; for Blender.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-1607510175650754797?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/1607510175650754797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=1607510175650754797&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/1607510175650754797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/1607510175650754797'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/06/blender-panda-via-chicken-finally.html' title='Blender -&gt; Panda via Chicken, finally working'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-8889157984097525565</id><published>2008-06-25T10:01:00.001-04:00</published><updated>2008-06-25T10:29:25.002-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Panda3D'/><category scheme='http://www.blogger.com/atom/ns#' term='serious gameing'/><category scheme='http://www.blogger.com/atom/ns#' term='game engines'/><title type='text'>Panda3D in a Global Immersion Dome</title><content type='html'>To the outside world (at least the four or five people that have visited my blog), the topics covered must appear seemingly random from week to week.  Well, this week is no exception!  I really like what I'm doing, because I never know what's around the next corner.  Really, my experience is probably not all that new.  It seems like deep knowledge of a narrow area has its place (e.g. the hot-shot Oracle DB administrator), but that doesn't seem to be the game anymore.  Rather, the ultra-adaptable, multi-lingual (C, C++, Java, Python, Ruby, etc.) developer who can work in any environment or platform, multi-task, and turn on a dime, and work in multiple teams at once seems to be the profile.  I'm not saying that I am the best example, but it's what I'm striving to be.&lt;br /&gt;&lt;br /&gt;That said, I thought I'd pass along this tidbit from my latest adventure...&lt;br /&gt;&lt;br /&gt;Serious gaming is a hot topic on campus.  How can we utilize game engine platforms to create new tools for simulation, interactive visual applications, training, and learning?  Marry this with unique assets such as an interactive dome, an ultra-high (4K) resolution stereo environment, and a cool 360-degree 'viz wall', and it gets even more interesting.  Over the summer, my group is exploring this intersection of game engines, and unique environments, and reaching out to folks on campus to find like-minded 'explorers'. &lt;br /&gt;&lt;br /&gt;The true topic of this post is getting &lt;a href="http://panda3d.org/"&gt;Panda &lt;/a&gt;to work in our dome, which turned out to be fairly straight forward.  The example I'm using is a bit 'hackey', because it reflects a lot of trial-and-error.  Python is great for this fortunately.  I'll try and annotate what did the trick, using the baked in Panda and scene you get with the download...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande; color: rgb(102, 102, 204);"&gt;# our dome has a 2800x2100 display, create a window at the 0,0 origin with no borders like so...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;from pandac.PandaModules import loadPrcFileData&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;loadPrcFileData("", """win-size 2800 2100&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;                win-origin 0 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;                undecorated 1""")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;import direct.directbase.DirectStart&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;import math&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;from direct.task import Task&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;from direct.actor import Actor&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;from direct.interval.IntervalGlobal import *&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;from pandac.PandaModules import *&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande; color: rgb(102, 102, 204);"&gt;# create a function that sets up a camera to a display region, pointing a given direction&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande; color: rgb(102, 102, 204);"&gt;# note that we're essentially creating one borderless window divided into four equal regions.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande; color: rgb(102, 102, 204);"&gt;# each region depicts a camera with a precise eye-point and aspect ratio.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande; color: rgb(102, 102, 204);"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande; color: rgb(102, 102, 204);"&gt;# NOTE this geometry is particular to our dome&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;def createCamera(dispRegion, x, y, z):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;   camera=base.makeCamera(base.win,displayRegion=dispRegion)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;    camera.node().getLens().setViewHpr(x, y, z)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;    camera.node().getLens().setFov(112,86) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;    return camera&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande; color: rgb(102, 102, 204);"&gt;# set the default display region to inactive so we can remake it&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;dr = base.camNode.getDisplayRegion(0)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;dr.setActive(0)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande; color: rgb(102, 102, 204);"&gt;#settings for main cam, which we will not really be displaying.  Actually, this code might be&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande; color: rgb(102, 102, 204);"&gt;# unnecessary!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;base.camLens.setViewHpr(45.0, 52.5, 0)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;base.camLens.setFov(112)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande; color: rgb(102, 102, 204);"&gt;# set up my dome-friendly display regions to reflect the dome geometry&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;window = dr.getWindow()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;dr1 = window.makeDisplayRegion(0, 0.5, 0, 0.5)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;dr1.setSort(dr.getSort())&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;dr2 = window.makeDisplayRegion(0.5, 1, 0, 0.5)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;dr2.setSort(dr2.getSort())&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;dr3 = window.makeDisplayRegion(0, 0.5, 0.5, 1)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;dr3.setSort(dr3.getSort())&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;dr4 = window.makeDisplayRegion(0.5, 1, 0.5, 1)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;dr4.setSort(dr4.getSort())&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande; color: rgb(102, 102, 204);"&gt;# create four cameras, one per region, with the dome geometry.  Note that we're not using the &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande; color: rgb(102, 102, 204);"&gt;# base cam.  I tried this at first, pointing the base cam at region 1.  It worked, but it threw the &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande; color: rgb(102, 102, 204);"&gt;# geometry off for some reason.  The fix was to create four cameras, parent them to the base &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande; color: rgb(102, 102, 204);"&gt;# cam, and off we go. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;cam1 = createCamera((0, 0.5, 0, 0.5), 45.0, 52.5, 0)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;dr1.setCamera(cam1)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;cam2 = createCamera((0.5, 1, 0, 0.5), -45.0, 52.5, 0)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;dr2.setCamera(cam2)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;cam3 = createCamera((0, 0.5, 0.5, 1), 135.0, 52.5, 0)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;dr3.setCamera(cam3)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;cam4 = createCamera((0.5, 1, 0.5, 1), -135, 52.5, 0)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;dr4.setCamera(cam4)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande; color: rgb(102, 102, 204);"&gt;# loading some baked-in model&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;environ = loader.loadModel("models/environment")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;environ.reparentTo(render)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;environ.setScale(0.25,0.25,0.25)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;environ.setPos(-8,42,0)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;cam1.reparentTo(base.cam)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;cam2.reparentTo(base.cam)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;cam3.reparentTo(base.cam)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;cam4.reparentTo(base.cam)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande; color: rgb(102, 102, 204);"&gt;# rest of code follows...this works!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-8889157984097525565?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/8889157984097525565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=8889157984097525565&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8889157984097525565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8889157984097525565'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/06/panda3d-in-global-immersion-dome.html' title='Panda3D in a Global Immersion Dome'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-8927078003649071839</id><published>2008-05-09T12:21:00.000-04:00</published><updated>2008-05-12T15:28:44.163-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HASTAC'/><category scheme='http://www.blogger.com/atom/ns#' term='3D Web'/><category scheme='http://www.blogger.com/atom/ns#' term='ubisense'/><category scheme='http://www.blogger.com/atom/ns#' term='sensor'/><category scheme='http://www.blogger.com/atom/ns#' term='where2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>Techno-travels and HASTAC Part II</title><content type='html'>In brief, here's a demo of a physical/virtual mashup.  In this case, UbiSense tracking is used on individuals within a space called the Social Computing Room, and depicted within a virtual representation of the same space.&lt;br /&gt;&lt;br /&gt;One can think of a ton of ways to take this sort of thing.  There are many examples of using the virtual world as a control panel for real-world devices and sensors, such as the Eolus One project.  How can this idea be applied to communication between people, for social applications, etc.  What sort of person-to-person interactions between persons in the SCR and remote visitors are possible?  I have this idea that virtual visitors would fly in and view the actual SCR from a video wall.  Then they could fly through the wall (through the looking glass) to see and communicate with the virtual people as they are arranged in the room.  A fun thing we'll using as a demo at HASTAC.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-ce09e6a1ffaad32b" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v5.nonxt4.googlevideo.com/videoplayback?id%3Dce09e6a1ffaad32b%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330382346%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D799FC3AB569E3E26450B4BFFB8739230A1EE5707.6BE3A20FBB7D7A0159124708BEDBFBD4459B5A98%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dce09e6a1ffaad32b%26offsetms%3D5000%26itag%3Dw160%26sigh%3DLLa5qh6IcjZ9nilmF7m5m-6-AVE&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v5.nonxt4.googlevideo.com/videoplayback?id%3Dce09e6a1ffaad32b%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330382346%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D799FC3AB569E3E26450B4BFFB8739230A1EE5707.6BE3A20FBB7D7A0159124708BEDBFBD4459B5A98%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dce09e6a1ffaad32b%26offsetms%3D5000%26itag%3Dw160%26sigh%3DLLa5qh6IcjZ9nilmF7m5m-6-AVE&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-8927078003649071839?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=ce09e6a1ffaad32b&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/8927078003649071839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=8927078003649071839&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8927078003649071839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8927078003649071839'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/05/techno-travels-and-hastac-part-ii.html' title='Techno-travels and HASTAC Part II'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-3920682308487732504</id><published>2008-05-02T11:06:00.000-04:00</published><updated>2008-05-07T11:24:39.557-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='HASTAC'/><category scheme='http://www.blogger.com/atom/ns#' term='3D Web'/><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><title type='text'>Techno-Travels and HASTAC Part I</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Y5gZZSW978E/SAOOPZdbjGI/AAAAAAAAAEQ/Feof_9ixtI0/s1600-h/social_comp2.jpg"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://2.bp.blogspot.com/_Y5gZZSW978E/SAOOPZdbjGI/AAAAAAAAAEQ/Feof_9ixtI0/s1600-h/social_comp2.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I'll be presenting at the HASTAC conference on May 24th at UCLA.  The conference has a theme of 'TechnoTravels/TeleMobility: HASTAC in Motion".  I'll quote the &lt;a href="http://www.uchri.org/page-home.php?page_id=1289&amp;amp;cat_id=2"&gt;description of the theme&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; This year’s theme is “techno-travels” and explores the multiple ways in which place, movement, borders, and identities are being renegotiated and remapped by new locative technologies.  Featured projects will delve into mobility as a modality of knowledge and stake out new spaces for humanistic inquiry.  How are border-crossings being re-conceptualized, experienced, and narrated in a world permeated by technologies of mobility?  How is the geo-spatial web remapping physical geographies, location, and borderlands?  How are digital cities interfacing with physical space?  How do we move between virtual worlds?  And what has become of sites of dwelling and stasis in a world saturated by techno-travels?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;OK...so how do you take a bite out of that apple?  In my case, the presentation is going to center on something called the '&lt;a href="http://www.renci.org/focusareas/viz/environments.php"&gt;Social Computing Room&lt;/a&gt;' (SCR), part of visualization center at UNC Chapel Hill.  There are lots of different ways to approach the SCR. It's a visualization space for research, it's a canvas for art and new media projects, it's a classroom, a video conference center, a gaming and simulation environment, and it's a physical space that acts as a port between the physical world and the digital world. It's difficult when talking about interesting new ideas to avoid overstating the potential, but I'll try to use the SCR to talk about how physical and digital worlds converge, using the 'port' metaphor.  Thinking about the SCR as a port can start by looking at a &lt;a href="http://2.bp.blogspot.com/_Y5gZZSW978E/SAOOPZdbjGI/AAAAAAAAAEQ/Feof_9ixtI0/s1600-h/social_comp2.jpg"&gt;picture&lt;/a&gt; of the space.  Now compare that picture with a capture of a virtual version, in this case within &lt;a href="http://secondlife.com/"&gt;Second Life&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Y5gZZSW978E/SCBO1DYNdpI/AAAAAAAAAEY/KN9RSJhb6I0/s1600-h/scr_from_sl1.jpg"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_Y5gZZSW978E/SCBO1DYNdpI/AAAAAAAAAEY/KN9RSJhb6I0/s320/scr_from_sl1.jpg" alt="" id="BLOGGER_PHOTO_ID_5197240643332437650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To me, the SCR is a port in the sense that it exists in both worlds, and the ongoing evolution of the space will explore the ways these two sides of the coin interact.  Before I go there, perhaps a bit more about the HASTAC theme.  In this installment, let's talk about borders in a larger sense, coming back to the SCR a bit down the road.&lt;br /&gt;&lt;br /&gt;Techno-travels?  Borders?  Mobility?  Borders are falling away in our networked world, this means the borders that exist between geographic places, and the borders between the physical and virtual world.   The globe is a beehive of activity, and that activity can be comprehended in real time from any vantage point.  A case in point are real time mashups between RSS feeds and Google Maps, such as &lt;a href="http://flickrvision.com/"&gt;flickrvision&lt;/a&gt; and &lt;a href="http://twittervision.com/"&gt;twittervision&lt;/a&gt;.  These mashups show uploads of photos to Flickr, and mapping of twitters around the globe.  You can watch the action unfold from your desktop, no matter where you are.    Borders between places start to disappear as you watch ordinary life unfold across the map, and from this perspective, the physical borders seem to mean less, like the theme song to that old kids show 'Big Blue Marble', if you want to date yourself.  Sites like MySpace and Orkut have visitors from all over the world, as illustrated by this &lt;a href="http://www.comscore.com/press/release.asp?press=1555"&gt;ComScore survey&lt;/a&gt;, and social networks don't seem to observe these borders either.&lt;br /&gt;&lt;br /&gt;The term '&lt;a href="http://news.nationalgeographic.com/news/2006/04/0425_060425_map_blogs.html"&gt;neogeography&lt;/a&gt;' was coined by Joab Jackson in National Geographic News, to describe the markup of the world by mashing up mapping with blogs.  Sites such as &lt;a href="http://www.platial.com/splash"&gt;Platial&lt;/a&gt; serve as an example of neogeography in action, essentially providing social bookmarking of places.  Google Earth is being marked up as well...Using &lt;a href="http://earth.google.com/"&gt;Google Earth&lt;/a&gt; and &lt;a href="http://maps.google.com/help/maps/streetview/index_.html"&gt;Google Street View&lt;/a&gt;, you can see and tag the whole world.  Tools like &lt;a href="http://sketchup.google.com/product/gsu.html"&gt;Sketch-up&lt;/a&gt; allow you to add 3D models to Google Earth, such as this Manhattan view:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Y5gZZSW978E/SCCoLzYNdqI/AAAAAAAAAEg/sAqdkkki7Yc/s1600-h/google_earth_manhattan_redu.jpg"&gt;&lt;img style="cursor: pointer; width: 301px; height: 205px;" src="http://3.bp.blogspot.com/_Y5gZZSW978E/SCCoLzYNdqI/AAAAAAAAAEg/sAqdkkki7Yc/s320/google_earth_manhattan_redu.jpg" alt="" id="BLOGGER_PHOTO_ID_5197338890709333666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So we're marking up the globe, and moving beyond markup to include 3D modeling. Web2.0 and  'neogeography' add social networking too.  At the outset, I also waived my hands a bit at the SCR by comparing real and virtual pictures of this 'port'.  That's a bunch of different threads that can be tied together by including some of the observations in an excellent MIT Technology Review article called '&lt;a href="http://www.technologyreview.com/Infotech/18911/?a=f"&gt;Second Earth&lt;/a&gt;'.  In that article, Wade Roush looks at virtual worlds such as Second Life, and at Google Earth and asks, "&lt;span style="font-style: italic;"&gt;As these two trends continue from opposite directions, it's natural to ask what will happen when Second Life and Google Earth, or services like them, actually meet.&lt;/span&gt;"  Instead of socially marking up the world, the crucial element is the ability to be present at the border between real and virtual, to recognize others who are inhabiting that place at that time, and to connect, communicate, and share experiences in those places.  This gets to how I would define the SCR as a port.&lt;br /&gt;&lt;br /&gt;The drawback to starting out with this 'Second Earth' model is that it limits the terrain to a recognizable spatial point.  While a real place sometimes can serve as a point of reference in the virtual world, that also unnecessarily constrains the meaning.  What is an art exhibit?  What is a scientific visualization?  What is any collection of information?  As naturally as we mark up the world, we're also marking up the web, collaborating, and experiencing media in a continuous two-way conversation..that's a lot of what Web2.0 is supposed to be about.  How can we create the same joint experience, where we're all present together as our real or virtual selves sharing a common experience?  That to me is the central goal of 'techno-travels', and perhaps expands a bit on the idea of border crossing.&lt;br /&gt;&lt;br /&gt;Anyhow, I'm trying to come up with my HASTAC presentation, and thinking aloud while I do it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-3920682308487732504?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/3920682308487732504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=3920682308487732504&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3920682308487732504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3920682308487732504'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/05/techno-travels-and-hastac-part-i.html' title='Techno-Travels and HASTAC Part I'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Y5gZZSW978E/SAOOPZdbjGI/AAAAAAAAAEQ/Feof_9ixtI0/s72-c/social_comp2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-2437341911042122117</id><published>2008-04-15T08:12:00.000-04:00</published><updated>2008-04-15T08:14:16.471-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='second life'/><title type='text'>Hands-free control of Second Life</title><content type='html'>Cool video, though this interaction style still seems a bit awkward.  I think the more interesting idea is the capture of gestures, which would be great for speaking to a group via an avatar, for example.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.handsfree3d.com/"&gt;video here&lt;/a&gt;...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-2437341911042122117?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/2437341911042122117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=2437341911042122117&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2437341911042122117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2437341911042122117'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/04/hands-free-control-of-second-life.html' title='Hands-free control of Second Life'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-5480562535243493460</id><published>2008-04-14T12:58:00.001-04:00</published><updated>2008-04-14T13:05:15.222-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sunspot'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><category scheme='http://www.blogger.com/atom/ns#' term='renci'/><category scheme='http://www.blogger.com/atom/ns#' term='social computing'/><title type='text'>NetBeans 6.0.1 running like a pig...here's how I fixed it</title><content type='html'>Netbeans 6.0.1 was running like a pig on my ThinkPad T60p.  I did a bit of poking around, and found this set of config changes quite helpful, so I'll pass them along:&lt;br /&gt;&lt;br /&gt;This is in my netbeans.conf, which should be under Program Files/NetBeans 6.0.1/etc on Windows.  The critical change was the memory config:&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;netbeans_default_options="-J-Dcom.sun.aas.installRoot=\"C:\Program Files\glassfish-v2ur1\" -J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Xverify:none -J-Dapple.laf.useScreenMenuBar=true"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now NetBeans is running quite well.  I'm hacking some Sun code samples to get data from the accelerometer to build a prototype air mouse.  This isn't a standard mouse, but rather a way for multiple users to manipulate visualizations in the Social Computing Room.  For grins, here's a shot of the space...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Y5gZZSW978E/SAOOPZdbjGI/AAAAAAAAAEQ/Feof_9ixtI0/s1600-h/social_comp2.jpg"&gt;&lt;img style="cursor: pointer; width: 442px; height: 293px;" src="http://2.bp.blogspot.com/_Y5gZZSW978E/SAOOPZdbjGI/AAAAAAAAAEQ/Feof_9ixtI0/s320/social_comp2.jpg" alt="" id="BLOGGER_PHOTO_ID_5189147590844451938" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-5480562535243493460?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/5480562535243493460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=5480562535243493460&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5480562535243493460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5480562535243493460'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/04/netbeans-601-running-like-pigheres-how.html' title='NetBeans 6.0.1 running like a pig...here&apos;s how I fixed it'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Y5gZZSW978E/SAOOPZdbjGI/AAAAAAAAAEQ/Feof_9ixtI0/s72-c/social_comp2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-6549961747751865727</id><published>2008-04-10T14:59:00.000-04:00</published><updated>2008-04-10T15:02:49.818-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sunspot'/><title type='text'>Note to Self</title><content type='html'>I knew this, forget where I wrote it down, so I'll memorialize it here.  I need to add some files to a SunSPOT project (in this case a desktop client), but couldn't remember the property in the ANT script to point to additional classpath entries...viola!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;main.class=org.sunspotworld.demo.TelemetryFrame&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;#main.args=COM1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;#port=COM1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;user.classpath=lib/log4j-1.2.15.jar&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Of course, now I'll forget that I stuck it in my blog.  I'm looking at using the spots to create a multi-user input interface to a 360 degree visualization environment (our Social Computing Room), at least as a proof-of-concept.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-6549961747751865727?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/6549961747751865727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=6549961747751865727&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6549961747751865727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6549961747751865727'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/04/note-to-self.html' title='Note to Self'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-7550553887232957901</id><published>2008-03-26T16:09:00.000-04:00</published><updated>2008-03-26T16:21:13.214-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='agent'/><title type='text'>Android and Agents</title><content type='html'>I am able to revive my interest in agent computing a bit with a few projects, especially the development of a &lt;a href="http://www.renci.org/resources/viz/unc.php"&gt;Social Computing Room&lt;/a&gt; on the UNC-Chapel Hill campus.  The whole smart space, ambient computing thing really plays into where I see the web evolving...that is, an always connected web of people and things, with a continuous flow of information shaped by location, presence, situation, and the filtering effects of social networks.&lt;br /&gt;&lt;br /&gt;Agents to me are the perfect interface between myself, my devices, my environment, and others around me.  Agents can also play a part in mediating between my 'personal cloud', and the larger web.  This mediation is two way...I may be life-blogging, sending real-time media, location reports, etc.  I may also be watching for events, conditions, or proximity.&lt;br /&gt;&lt;br /&gt;Anyhow, I am looking at setting up some agents to automate things in the Social Computing Room, so I popped out to the &lt;a href="http://jade.tilab.com/"&gt;JADE &lt;/a&gt;site to see if I had the latest version, to find that they are working on a JADE agent toolkit for the Anderoid platform:&lt;br /&gt;&lt;br /&gt;V&lt;span style="font-style: italic;"&gt;ersion 1.0 of JADE-ANDROID, a software package that allows developing agent oriented applications based on JADE for the ANDROID platform, has been released. &lt;/span&gt;&lt;a style="font-style: italic;" href="http://code.google.com/android/"&gt;Android&lt;/a&gt;&lt;span style="font-style: italic;"&gt; is the software stack for mobile devices including the operating system released by the &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.openhandsetalliance.com/"&gt;Open Handset Alliance&lt;/a&gt;&lt;span style="font-style: italic;"&gt; in November 2007. The possibility of combining the expressiveness of &lt;/span&gt;&lt;a style="font-style: italic;" href="http://jade.tilab.com/www.fipa.org"&gt;FIPA&lt;/a&gt; communication supported by JADE agents with the power of the ANDROID platform brings, in our opinion, a strong value in the development of innovative applications based on social models and peer-to-peer paradigms. See the &lt;a style="font-style: italic;" href="http://jade.tilab.com/doc/tutorials/JADE_ANDROID_Guide.pdf" target="_blank"&gt;JADE-ANDROID guide&lt;/a&gt;&lt;span style="font-style: italic;"&gt; for more details &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;That looks really interesting, note their (tilab's) own observation about the relation of Android to social network enabled, peer-to-peer applications.&lt;br /&gt;&lt;br /&gt;Incidentally, I note that I have crossed the 100th blog post line, so w00t!&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-7550553887232957901?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/7550553887232957901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=7550553887232957901&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/7550553887232957901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/7550553887232957901'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/03/android-and-agents.html' title='Android and Agents'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-8112546377063114617</id><published>2008-03-14T09:59:00.000-04:00</published><updated>2008-03-14T10:02:16.320-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Breaking news, Santa Fe blog covers Hillsborough blues jam</title><content type='html'>This is indeed a small world.  Ran into a sax player at the Bayou blues jam the other nite, turns out he's really from Santa Fe.  His blog covers the jam at the Tin Star Cafe, but since he was in town for a project, here's a&lt;a href="http://tinstarmusic.blogspot.com/2008/03/tuesday-blue-bayou-jam.html"&gt; few shots and sounds&lt;/a&gt; from the last Bayou jam.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-8112546377063114617?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/8112546377063114617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=8112546377063114617&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8112546377063114617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8112546377063114617'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/03/breaking-news-santa-fe-blog-covers.html' title='Breaking news, Santa Fe blog covers Hillsborough blues jam'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-5734590697621136187</id><published>2008-03-03T15:46:00.001-05:00</published><updated>2008-03-03T15:47:15.985-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sunspot'/><title type='text'>Play with a SunSpot without buying a developer kit</title><content type='html'>Sun has released, in beta, an SDK that lets you code and run on an emulated SunSpot.  Take your mobile Java experience in a new direction, and start learning about sensors!&lt;br /&gt;&lt;br /&gt;http://blogs.sun.com/davidgs/entry/beta_starts&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-5734590697621136187?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/5734590697621136187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=5734590697621136187&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5734590697621136187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5734590697621136187'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/03/play-with-sunspot-without-buying.html' title='Play with a SunSpot without buying a developer kit'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-4334803350497502350</id><published>2008-03-03T15:39:00.001-05:00</published><updated>2008-03-03T15:41:05.531-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><title type='text'>Cloud Computing and MSoft</title><content type='html'>Speculation here and there about Microsoft versus Google in the emerging Cloud Computing Space from &lt;a href="http://www.roughtype.com/archives/2008/03/rumor_microsoft_1.php"&gt;Nicholas Carr&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-4334803350497502350?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/4334803350497502350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=4334803350497502350&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4334803350497502350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4334803350497502350'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/03/cloud-computing-and-msoft.html' title='Cloud Computing and MSoft'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-5969395930117687052</id><published>2008-02-26T13:17:00.001-05:00</published><updated>2008-02-26T13:25:43.193-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubisense'/><title type='text'>Getting a Ubisense CellData schema</title><content type='html'>I &lt;a href="http://www.ubisense.org/viewtopic.php?p=567#567"&gt;posted this&lt;/a&gt; on the Ubisense forum...I'm running into many quandries about getting at different parts of the Ubisense architecture.  I'm trying to build a service to age out Ubisense tags.  The issue is that Ubisense 'remembers' the last sensed location of a tag.  This makes sense when the tag is on a pallet in a warehouse, but causes a problem detecting when Elvis has left the building, in other words, when a person walks out of range of the sensors, he's still 'in the building'.  This can cause issues depending on the application.&lt;br /&gt;&lt;br /&gt;I am &lt;a href="http://www.ubisense.org/viewtopic.php?t=208"&gt;working on code based on this forum exchange&lt;/a&gt;..., and it seems to be working, though I'm getting sporadic exceptions:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102);"&gt;System.NullReferenceException was unhandled&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102);"&gt;  Message="Object reference not set to an instance of an object."&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102);"&gt;  Source="UbisensePlatform"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102);"&gt;  StackTrace:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102);"&gt;       at UPrivate.au.a(Byte[] A_0, EndPoint&amp;amp; A_1)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102);"&gt;       at UPrivate.am.j()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102);"&gt;       at UPrivate.am.k()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102);"&gt;       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102);"&gt;       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102);"&gt;       at System.Threading.ThreadHelper.ThreadStart()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I think this might be for some underlying thread collision, or a subtle bug in my own code,  so I'm trying to add additional instrumentation to my code.  The current code is using the multiCell and RemoveObjectLocation.  I am still working to debug that, but at the same time, I'm looking at addressing the CellData schema directly, using the remove_object method.  I want to see if this clears up the problem.&lt;br /&gt;&lt;br /&gt;I'm also doing burn-in testing of the code, right now there's a robot running around the Social Computing Room carrying around a few Ubisense tags to drive the system...quite fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-5969395930117687052?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/5969395930117687052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=5969395930117687052&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5969395930117687052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5969395930117687052'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/02/getting-ubisense-celldata-schema.html' title='Getting a Ubisense CellData schema'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-5107700209069586898</id><published>2008-02-25T15:05:00.000-05:00</published><updated>2008-02-25T15:12:12.356-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D Web'/><title type='text'>Sun Worldwide Education and Research Conference</title><content type='html'>Here's an item that I'll probably check on this week...&lt;br /&gt;&lt;br /&gt;&lt;pre wrap=""&gt;S&lt;span style="color: rgb(0, 102, 0);"&gt;un is moving fast on many fronts in 3D worlds - but&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;focusing on education. I hear they will have an&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;important announcement this week at their Worldwide&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;Education &amp;amp; Research Conference in SF:&lt;/span&gt;&lt;br /&gt;&lt;a style="color: rgb(0, 102, 0);" class="moz-txt-link-freetext" href="http://www.events-at-sun.com/wwerc08/agenda.html"&gt;http://www.events-at-sun.com/wwerc08/agenda.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;The agenda shows SUN Founder Scott McNealy speaking&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;wedged between the Immersive Education Forum and Lunch&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;the second day. I'm GUESSING that this placement is&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;intentional and hints that Sun has BIG news for&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;educators interested in immersive environments.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I played a bit with MPK20 (the Sun virtual environment).  It still has limited features, but it's open, and among the ones to watch, along with Croquet.  I may put up the feed in the Social Computing Room as availability permits, if anyone is interested in viewing it there, let me know.&lt;br /&gt;&lt;br /&gt;Other than that, I'm wrestling a bit with UbiSense again! &lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-5107700209069586898?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/5107700209069586898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=5107700209069586898&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5107700209069586898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5107700209069586898'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/02/sun-worldwide-education-and-research.html' title='Sun Worldwide Education and Research Conference'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-3110172116565494692</id><published>2008-02-13T21:53:00.000-05:00</published><updated>2008-02-13T22:04:21.822-05:00</updated><title type='text'>Back to better habits</title><content type='html'>I've neglected the blog, but trying to do better.&lt;br /&gt;&lt;br /&gt;It has been a busy few months, largely spent putting together talks and demonstrations of the Social Computing Room, as well as the other spaces in the &lt;a href="http://www.renci.org/news/its_open_house.php"&gt;RENCI UNC Chapel Hill Engagement Center&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'm into a lot of different things right now, which I'll describe in greater detail later.  I'm:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Working more with &lt;a href="http://www.ubisense.net/"&gt;UbiSense&lt;/a&gt;, which is a real-time 3D location sensing system.  I've been concerned with bridging UbiSense using their .Net API to something called &lt;a href="http://www.cs.unc.edu/Research/vrpn/index.html"&gt;VRPN&lt;/a&gt;, which is an abstraction layer developed in the Computer Science department at UNC Chapel Hill.  Eventually, we'll have a full-blown UbiSense server implementation.  I'm working on handling button press signals from the tags right now, having some C# fits.&lt;/li&gt;&lt;li&gt;I began working on a tag ageing service for UbiSense, and ran into some code on the UbiSense &lt;a href="http://www.ubisense.org/viewtopic.php?t=208"&gt;forum &lt;/a&gt;that got me started (the UbiSense forum has been very helpful).&lt;/li&gt;&lt;li&gt;I've been learning OpenGL and GLUT, which I'll need as we develop new applications for the Social Computing Room.&lt;/li&gt;&lt;li&gt;Between VRPN and OpenGL, I'm having to use C++, which I've dabbled with in the past.  It's not been my language of choice in the past, but it's becoming more useful.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Geez, that's enough for now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-3110172116565494692?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/3110172116565494692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=3110172116565494692&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3110172116565494692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3110172116565494692'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2008/02/back-to-better-habits.html' title='Back to better habits'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-5635710712207465804</id><published>2007-12-08T11:31:00.000-05:00</published><updated>2007-12-08T13:29:43.043-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>Rails to the rescue</title><content type='html'>&lt;span style="font-family: arial;"&gt;It's good to keep the tools in your box sharp, I'm happy I've been messing with Rails on my own, because I need to knock out a prototype for work really quickly, Rails to the rescue!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;A couple notes, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.netbeans.org/"&gt;NetBeans 6.0 &lt;/a&gt;&lt;span style="font-family: arial;"&gt;is out, and I highly recommend it as your Rails development environment.  I took a few minutes to switch to the new IDE, and it's very smooth.  Alas, when I switched, I was having a very hard time getting plug-ins, and getting Rails to upgrade via Gems.  I was receiving weird buffer errors.  Google to the rescue, there was a simple fix that involved upgrading gems..just run this command:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code style="font-family: arial;"&gt;gem update --system&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;span style="font-family: arial;"&gt;and you should be in business...thanks to the &lt;/span&gt;&lt;a style="font-family: arial;" href="http://dontrepeatyourself.wordpress.com/2007/05/14/zlibbuferror/"&gt;DRY blog &lt;/a&gt;&lt;span style="font-family: arial;"&gt;for the heads up!  I'm also incorporating the WillPaginate plug-in in this round, and I've got to mash-up with Google maps.  I did find a gem for Google maps, we'll see how far I get, but I'll post any findings..&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Updates:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Apparently, will_paginate returns nil if your collection is smaller than the per-page.  I was having a problem where I was returning an array of results for my 'position log', and it would not show up in the form where I had used&lt;br /&gt;&lt;br /&gt;&lt;%=will_paginate @obs_log %&gt;&lt;br /&gt;&lt;br /&gt;I'm not sure why, but here's the code for will_paginate..&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt;  # Renders Digg-style pagination. (We know you wanna!)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt;    # Returns nil if there is only one page in total (can't paginate that).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt;    # &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt; def will_paginate(entries = @entries, options = {})&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt;      #total_pages = &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt;      if entries.page_count &gt; 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt;        renderer = WillPaginate::LinkRenderer.new entries, options, self&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt;        links = renderer.items&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt;        &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt;        content_tag :div, links, renderer.html_options&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt;      end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;"&gt;    end&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;So this really does me no good, I'm sure I'm missing something obvious, but it should at least render the collection without the paging cruft.  I'm just in too much of a hurry, but this was frustrating.  I punted and just showed the last 30 or so with a :limit in my find_all.&lt;br /&gt;&lt;br /&gt;I want to present a REST-ful interface for my app to accept data from a mobile with a GPS, I ran across this &lt;a href="http://media.railscasts.com/videos/035_custom_rest_actions.mov"&gt;RailsCast on REST&lt;/a&gt;, which seems useful...&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-5635710712207465804?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/5635710712207465804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=5635710712207465804&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5635710712207465804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5635710712207465804'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/12/rails-to-rescue.html' title='Rails to the rescue'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-3067339806880895178</id><published>2007-12-03T19:32:00.000-05:00</published><updated>2007-12-03T19:53:58.662-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>will paginate</title><content type='html'>I've been working on a Rails app as a sort of hobby, it's for a site that I'm prototyping for fun, and we'll see where it goes.  I've been off and on, depending on the home schedule, but having a concrete goal helps in my effort to keep my chops up.  My areas of focus right now are Ruby, Rails, AJAX, JavaScript (with the Dojo toolkit), as well as CSS and design (never my strong suit).  The things I work on lately are quite fun and challenging, but have taken me away from heads-down web app coding for quite a while.&lt;br /&gt;&lt;br /&gt;Anyhow, working with the project, pagination turns out to be deprecated in Rails.  I grabbed the new plug-in, classic_pagination, but the first thing I got is a notice that it's dead code, and I should move to &lt;a href="http://rock.errtheblog.com/will_paginate/"&gt;WillPaginate&lt;/a&gt;.  I love working with Rails, but the capricious nature of open source does have its drawbacks!  Anyhow, I'm working with it, it looks nice.  I found a quick jump-start on a RailsCast episode dedicated to pagination,&lt;a href="http://media.railscasts.com/videos/051_will_paginate.mov"&gt; linked here&lt;/a&gt;.  RailsCast is a fine resource, and I highly recommend it.&lt;br /&gt;&lt;br /&gt;One thing I would point out, and something that I'm still working to change, is to wake up to the fact that Rails and Ruby let you pop open a console and work with your code while you code.  Try things out, see what responses you get, and if it looks good, copy it into your codebase.  As a Java monkey, this is still a foreign mode of operation.  The point is, if you're used to coding Java like I am, get used to having that console open, and monkey with your code!  Check out the RailsCast, and give WillPaginate a try.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Y5gZZSW978E/R1Sjo6nEPpI/AAAAAAAAAEI/gCRezwGtwDg/s1600-R/stm.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-3067339806880895178?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/3067339806880895178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=3067339806880895178&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3067339806880895178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3067339806880895178'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/12/will-paginate.html' title='will paginate'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-5502104909875433165</id><published>2007-12-03T12:23:00.001-05:00</published><updated>2007-12-03T12:31:59.014-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D Web'/><title type='text'>Taking the Social Web into the virtual world</title><content type='html'>Here's an &lt;a href="http://www.eweek.com/article2/0,1895,2223530,00.asp"&gt;interesting article&lt;/a&gt; on IBM's efforts to blend social software, identity, and the virtual world through Lotus. &lt;br /&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;&lt;br /&gt;IBM Lotus programmers and engineers from IBM's research groups are currently working on ways to employ virtual reality technologies with Lotus Connections social computing software, said Jeff Schick, vice president of social computing for IBM.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I heard someone describe the 3D web by saying 'people are back', and I think this is the true strength of environments like Second Life.  It's not about the graphics or a particular virtual space, it's about the people and experiences that are available.  Maintaining and monitoring a social network is Web2.0, the 3D web is about being present with friends and peers in meaningful ways, through virtual experiences.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-5502104909875433165?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/5502104909875433165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=5502104909875433165&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5502104909875433165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5502104909875433165'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/12/taking-social-web-into-virtual-world.html' title='Taking the Social Web into the virtual world'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-5500204889669407574</id><published>2007-11-29T12:36:00.000-05:00</published><updated>2007-11-29T12:55:15.860-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Building the 'web of things' means breaking some eggs</title><content type='html'>I've been writing a lot about the 3D web lately, and I'm still pretty jazzed about what I've seen.  Part of the appeal is the way that environments like Second Life serve as a metaphor for the merging of the physical and virtual worlds that is taking place all around us.&lt;br /&gt;&lt;br /&gt;Anyhow, way back in the day, I was writing here about the next web, or Web3.0, or whatever you want to call it.  Back in those old days, about 12 months ago, I was really thinking more about the new web, and the mobile web, like &lt;a href="http://instanceofidea.blogspot.com/2006/12/working-towards-mobile20.html"&gt;in this dusty old post&lt;/a&gt;.  Someone had already fronted Mobile2.0 as a variant of Web3.0, in the confusing cloud of infotech talking heads.&lt;br /&gt;&lt;br /&gt;Anyhow, one barrier to 'Mobile2.0' is the fact that networks and devices can't be ubiquitous if you can't get your cell phone to run an app or use the network you want, witness the entire &lt;a href="http://www.news.com/8301-13579_3-9795769-37.html"&gt;iPhone hacking&lt;/a&gt; phenomenon.  The subtext of the whole &lt;a href="http://code.google.com/android/"&gt;Google Android&lt;/a&gt; platform seems to be an attempt to smash through the walled gardens that are your typical telecom, witness the mission of the &lt;a href="http://www.openhandsetalliance.com/index.html"&gt;Open Handset Alliance&lt;/a&gt;.    Anyhow, the actions of Google, and the &lt;a href="http://www.informationweek.com/news/showArticle.jhtml?articleID=204203940"&gt;recent announcement by Verizon &lt;/a&gt;that they are going to open their platform to any app and any service hint at the cracks that are appearing in the walled gardens.  Does this hint at a new wave of innovation driven by the availability of an open platform?  I'd think so, but at any rate, &lt;a href="http://gigaom.com/2007/11/28/here-comes-trouble-infocom-vs-telecom/"&gt;changes in the mobile space are coming&lt;/a&gt;, and they'll contribute to the next 'version' of the web!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-5500204889669407574?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/5500204889669407574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=5500204889669407574&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5500204889669407574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5500204889669407574'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/11/building-web-of-things-means-breaking.html' title='Building the &apos;web of things&apos; means breaking some eggs'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-5520730491259440410</id><published>2007-11-19T10:58:00.001-05:00</published><updated>2007-11-19T14:28:28.731-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='second life'/><category scheme='http://www.blogger.com/atom/ns#' term='sunspot'/><category scheme='http://www.blogger.com/atom/ns#' term='sensor'/><title type='text'>Virtual SunSPOT controlled by a real SunSPOT</title><content type='html'>Pardon the zapruder-like quality to this film, but this shows the hack &lt;a href="http://instanceofidea.blogspot.com/2007/11/sunspots-talk-and-demo-today-at.html"&gt;I mentioned in my last post&lt;/a&gt;.  I'm in SecondLife, controlling a virtual SunSPOT from a real one.  In this case, tapping into the 3D accellerometer to pick up the xyz rotation, sending it through my framework to rotate the virtual one.  It's a bit laggy, and not 100 percent there, but enough to get the idea.&lt;br /&gt;&lt;br /&gt;If I ever find the time, the next cool example would be to implement the &lt;a href="http://www.youtube.com/watch?v=vPBVmLdmI5s"&gt;ectoplasmic bouncing ball demo&lt;/a&gt; using one real and one virtual SPOT.  Anyhow, it works.  The point really is to learn about the SPOT, and why not do something interesting while testing them...?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-369c46b29dd938ed" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v4.nonxt4.googlevideo.com/videoplayback?id%3D369c46b29dd938ed%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330382346%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D6E56927743CC33B217CEE48CD4BA880258656968.153F206B255A835D44A8A714666A4A7E2E678F99%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D369c46b29dd938ed%26offsetms%3D5000%26itag%3Dw160%26sigh%3D4dC8oaxs_v1BiCbtxIdtjFsK-gk&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v4.nonxt4.googlevideo.com/videoplayback?id%3D369c46b29dd938ed%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330382346%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D6E56927743CC33B217CEE48CD4BA880258656968.153F206B255A835D44A8A714666A4A7E2E678F99%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D369c46b29dd938ed%26offsetms%3D5000%26itag%3Dw160%26sigh%3D4dC8oaxs_v1BiCbtxIdtjFsK-gk&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-5520730491259440410?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=369c46b29dd938ed&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/5520730491259440410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=5520730491259440410&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5520730491259440410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5520730491259440410'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/11/virtual-sunspot-controlled-by-real.html' title='Virtual SunSPOT controlled by a real SunSPOT'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-7708877572933568509</id><published>2007-11-15T07:53:00.000-05:00</published><updated>2007-11-15T08:11:04.029-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unc'/><category scheme='http://www.blogger.com/atom/ns#' term='second life'/><category scheme='http://www.blogger.com/atom/ns#' term='sunspot'/><title type='text'>SunSPOTS talk and demo today at Sitterson</title><content type='html'>&lt;a href="http://ibiblio.org/pjones/wordpress/?p=2347"&gt;Paul Jones &lt;/a&gt;sent out this note, and I'll be attending for sure:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;About SunSPOTS &lt;/span&gt;&lt;a style="font-style: italic;" class="moz-txt-link-freetext" href="http://www.sunspotworld.com/"&gt;http://www.sunspotworld.com/&lt;/a&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Where: Sitterson 014 &lt;/span&gt; &lt;span style="font-style: italic;"&gt;When: Thursday November 15th at 3:30 &lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;br /&gt;Who: A member from the Sun Labs, David Simmons &lt;/span&gt; &lt;a style="font-style: italic;" class="moz-txt-link-freetext" href="http://blogs.sun.com/davidgs"&gt;http://blogs.sun.com/davidgs&lt;/a&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;   &lt;span style="font-style: italic;"&gt;&lt;br /&gt;More:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;David has hands-on experience in building applications for SunSPOTs and was  instrumental in its design and development, will be on hand to offer his  insight into this amazing product. &lt;/span&gt;   &lt;a style="font-style: italic;" class="moz-txt-link-freetext" href="http://www.sunspotworld.com/"&gt;http://www.sunspotworld.com/&lt;/a&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;   &lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;The SunSPOT (Small Programmable Object Technology) was developed in the Sun  Labs and represents the future of embedded systems. Already used throughout  academia, students and professors alike are finding new and interesting uses  for SunSPOTs. Each SunSPOT comes equipped with a&lt;/span&gt;&lt;span style="font-style: italic;"&gt; processor, memory, eight  external tri-color LEDs, light sensors, temperature sensors, an accelerometer,  and several digital/analog inputs and outputs; offering up seemingly countless  practical uses.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;At its core, a SunSPOT is an embedded system. But, unlike other embedded  systems that must be programmed using a low-level language such as assembly or  C, SunSPOT applications are developed in Java. By allowing Java applications to  be uploaded and run on an internal Java Virtual Machine, Sun is not only  opening up SunSPOTs to more users than many other embedded systems, it is also  leaving the final function of each SunSPOT up to the end user. By following a  simple API with which to interface the SunSPOT, developers nationwide have  created unique uses for SunSPOTs - everything from animal research to rocket  testing and much more! &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'm currently working with the SunSPOT developers kit, and have been going through (and hacking on) the demo apps.  One of the first things I am trying is to tap into the 3D accellerometer.  I took the telemetry example and added tilt to the packets coming off the SunSPOT,  and have that available on the host.  At the same time I've created a virtual SunSPOT in Second Life, and have scripted that to mirror the pitch, yaw, and roll coming into the LSL script.  Just a few more tweaks, and the virtual SunSPOT will be controllable from a real one.  This has been done before, but not to Second Life.  The lag will probably be pretty bad, but I want to explore how multiple SunSPOTS, used by different people in an immersive environment, can create cool experiences.&lt;br /&gt;&lt;br /&gt;Anyway, here's a shot of the virtual SunSPOT, when I get it hooked up, I'll shoot a video.  I might have it by this afternoon, if the creek don't rise.  Anyhow, see you all at the talk this afternoon!&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Y5gZZSW978E/RzxDjoNjmtI/AAAAAAAAAEA/8ZOYFui3OUo/s1600-h/Snapshot_001.PNG"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_Y5gZZSW978E/RzxDjoNjmtI/AAAAAAAAAEA/8ZOYFui3OUo/s320/Snapshot_001.PNG" alt="" id="BLOGGER_PHOTO_ID_5133051954664282834" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-7708877572933568509?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/7708877572933568509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=7708877572933568509&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/7708877572933568509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/7708877572933568509'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/11/sunspots-talk-and-demo-today-at.html' title='SunSPOTS talk and demo today at Sitterson'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Y5gZZSW978E/RzxDjoNjmtI/AAAAAAAAAEA/8ZOYFui3OUo/s72-c/Snapshot_001.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-3160209617194435611</id><published>2007-11-13T08:58:00.000-05:00</published><updated>2007-11-13T09:04:42.298-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>My good deed for today - UdpClient in C# joining a multicast group</title><content type='html'>Why are simple things so difficult!  I spent a couple hours banging my head against the wall on this one.  All I wanted to do was push out multicast UDP packets and pick them up from a C# program.  The UdpClient is not very well documented, and the examples I found didn't work.  So simply, this is what I had to do, marked in red.  Now this works!&lt;br /&gt;&lt;br /&gt;I hope I saved someone a minor headache.&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;using System;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;using System.Collections.Generic;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;using System.Text;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;using System.Net.Sockets;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;using System.Net;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;using System.Threading;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;namespace UbiSenseUdpClientTest&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;    class UbiSenseUdpListener&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;        private static readonly IPAddress GroupAddress =&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;      IPAddress.Parse("224.237.248.237");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;        private const int GroupPort = 64555;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;        private static void StartListener()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;            bool done = false;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;            UdpClient listener = new UdpClient(&lt;span style="color: rgb(255, 0, 0);"&gt;GroupPort&lt;/span&gt;);&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;- even though the samples show the noargs constructor for UdpClient, you must specify the port you are going to use if you want to receive multicast packets&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;            IPEndPoint groupEP = new IPEndPoint(GroupAddress, GroupPort);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;            try&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;            {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;                listener.JoinMulticastGroup(GroupAddress);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;                &lt;span style="color: rgb(255, 0, 0);"&gt;//listener.Connect(groupEP); &lt;--- even thought the MSDN examples say to connect, don't connect before you receive, or you will sit and block at the receive below 'waiting for broadcast' below &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;                while (!done)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;                {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;                    Console.WriteLine("Waiting for broadcast");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;                    byte[] bytes = listener.Receive(ref groupEP);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;                    Console.WriteLine("Received broadcast from {0} :\n {1}\n",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;                        groupEP.ToString(),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;                        Encoding.ASCII.GetString(bytes, 0, bytes.Length));&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;                }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;                listener.Close();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;            catch (Exception e)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;            {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;                Console.WriteLine(e.ToString());&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;                Console.ReadLine();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;            }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;         static void Main(string[] args)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;        {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;            StartListener();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; color: rgb(51, 102, 255);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-3160209617194435611?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/3160209617194435611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=3160209617194435611&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3160209617194435611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3160209617194435611'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/11/my-good-deed-for-today-udpclient-in-c.html' title='My good deed for today - UdpClient in C# joining a multicast group'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-4523941871896262907</id><published>2007-10-11T13:38:00.000-04:00</published><updated>2007-10-12T14:30:46.617-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubiquitous computing'/><category scheme='http://www.blogger.com/atom/ns#' term='second life'/><category scheme='http://www.blogger.com/atom/ns#' term='ubisense'/><category scheme='http://www.blogger.com/atom/ns#' term='sunspot'/><title type='text'>Turning Turing Around</title><content type='html'>I was reading &lt;a href="http://www.irvingwb.com/blog/2007/09/playing-serious.html#more"&gt;Irving Wladawsky-Berger's blog &lt;/a&gt;today when I happened upon this wonderful observation..&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I was reminded of the Turing Test recently, as I have been watching the huge progress we are making in social networks, virtual worlds and personal robots.  Our objective in these applications can perhaps be viewed as the flip side of the Turing Test.  We are leveraging technology to enable real people to infuse virtual objects - avatars, personal robots, etc - with intelligence, - as opposed to leveraging technology to enable machines and software to behave as if they are intelligent.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;What intrigues me so much about virtual worlds like Second Life is this ability of avatar-based virtual spaces to allow you to push through the barrier, and cross over.  How's that for a bunch of meta-physical BS!  This is a different aim then something like &lt;a href="http://www.sun.com/software/looking_glass/"&gt;Looking Glass&lt;/a&gt;, which is trying to apply a 3D metaphor to a 2D interaction...it's about stepping through to live with the data, or the sensors, or the other distant collaborators.  As the real world becomes more inhabited by pervasive computing, it only seems natural that we go and visit the virtual on its own turf.  One wonders about the definition of an application interface in the future.  As machines grow smarter, perhaps we'll pop into the 'living room' of our personal agent to have a chat.&lt;br /&gt;&lt;br /&gt;At any rate, there are a couple of fun things I'll be looking at in the near future that can tie in to these ideas.  First, the idea of pervasive, wireless sensors everywhere.  I'm waiting for a &lt;a href="http://www.sunspotworld.com/products/"&gt;SunSpot Developers Kit&lt;/a&gt;, and there will be some sensor applications coming down the pike that could involve these extremely cool sensors.  The fact that they use Java is a plus in my book.  Needless to say, I'll be brushing up on my J2ME.&lt;br /&gt;&lt;br /&gt;The next thing I see coming down the pike is real time location tracking, using the &lt;a href="http://www.ubisense.net/"&gt;UbiSense &lt;/a&gt;platform.  This is being leveraged for an intriguing space called a Social Computing Room, and has all sorts of potential uses.  Here, I'm going to be doing some .Net programming.&lt;br /&gt;&lt;br /&gt;Like the blog quote above, I've had a unique chance to push the physical into the virtual, and with the mentioned projects, there's a chance to work in the other direction.  Where these meet is getting to be a pretty interesting space!   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-4523941871896262907?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/4523941871896262907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=4523941871896262907&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4523941871896262907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4523941871896262907'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/10/turning-turing-around.html' title='Turning Turing Around'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-420204033969298916</id><published>2007-10-03T09:14:00.000-04:00</published><updated>2007-10-03T09:15:37.920-04:00</updated><title type='text'>Science 2.0 talk on Friday</title><content type='html'>&lt;span style="font-style: italic;"&gt;I'm going!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Center for the Digital Libraries (CRADLE) presents&lt;br /&gt;&lt;br /&gt;Speaker: &lt;a set="yes" linkindex="55" onclick="(new Image()).src = '/ajax/ct.php?644532&amp;app_id=2344132808&amp;action_type=3&amp;post_form_id=d9201c5d1be8659c16d1bdb675e7c8f0';return true" href="http://scienceblogs.com/clock/"&gt;Bora Zivkovic&lt;/a&gt;, the Online Community Manager at PLoS ONE (Public Library of Science)&lt;br /&gt;Date: Friday, Oct 5&lt;br /&gt;Time: 12:00-1:00pm&lt;br /&gt;Location: Manning Hall, Room 208&lt;br /&gt;&lt;br /&gt;Title: Science 2.0&lt;br /&gt;&lt;br /&gt;Abstract:&lt;br /&gt;The development of the Web has provided new ways for doing science, publishing and communicating science, networking within a scientific community, and teaching science. Blogs and wikis, existing social networking sites (e.g, Facebook), new science networking sites, Open Access Publishing and Open Notebook Science are just some of the many ways that scientists, students and interested laypeople are starting to change the way science (communication) is done, connected, used and archived and the future is difficult to predict - which does not stop us from speculating, which is the fun part, so let’s speculate!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-420204033969298916?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/420204033969298916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=420204033969298916&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/420204033969298916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/420204033969298916'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/10/science-20-talk-on-friday.html' title='Science 2.0 talk on Friday'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-214241835945330831</id><published>2007-09-28T08:18:00.000-04:00</published><updated>2007-09-28T08:47:15.584-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='library2.0'/><title type='text'>Why Delete?</title><content type='html'>Yesterday, I attended a discussion at the Wilson Library posing the question...Storage is Cheap: Why Select?  Here's the premise:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Storage media for digital information are extremely cheap and getting &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;exponentially cheaper over time. The price of a terabyte of hard drive &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;space is a few hundred dollars, and in a decade it will be less than a &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;dollar. The cost of the expertise of well-trained information &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;professionals, on the other hand, is quite high and likely to increase &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;over time. So shouldn't we stop worrying about selection and just capture &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;and keep as much material as possible?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;There are some drawbacks to keeping everything, including the cost of storage, and maintenance (file formats and media change, for example, moral and ethical questions (do I want this propaganda or hate speech to be available to the public), and impacts of preserving institutional records on liability. &lt;br /&gt;&lt;br /&gt;The main point of contention was the value of selection, where the archivist's choice of what to preserve is in itself a valuable data point.  In essence, the archivist is applying the values and understanding of material at the time of selection, which can preserve the context of a collection for future viewers.  Another key point is that, even if it's preserved, it's not findable.  A Google search that returns 5000 hits is great, but if the item shows up as hit 4999, it's not findable.&lt;br /&gt;&lt;br /&gt;Fine, but I came away thinking that the game really has changed, and we're relying too much on the present to see how the future is developing.  &lt;a href="http://www.ibiblio.org/pjones/blog/"&gt;Paul Jones&lt;/a&gt; really hit the key point.  It's preserved, it is not going away, even if you think you have deleted it...deal with it.  There are backups, things leak to the web, or are documented through other channels.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;I wonder how much impact an individual archive can have on our understanding of an event, time, or place in the read/write web era!  An archive/archivist seems like a throwback idea.  This relates to Paul's point, but I see the future of archives as distributed.  Storage will be cheap enough to keep everything, search algorithms will improve, and the cost of preserving media will continue to decline (but &lt;a href="http://www.freesoftwaremagazine.com/articles/focus_format_free"&gt;free the formats&lt;/a&gt;!).  We will throw the data up on the web in widely distributed formats, and the power of (buzzword points) the long tail, collective wisdom, and the value added by participation will turn the web into a huge, search able, participatory archive of everything.  I notice that I've departed from pinning preservation through traditional institutions, because this can be seen more broadly, but I can still see great value in the editing, selection, and context provided by an archivist to a narrow, specialized collection of data.&lt;br /&gt;&lt;br /&gt;There are also so many new sources of data, and I wonder how these play into the idea of archives and collections.  How about personal archives, life-blogs, uploaded media, records of digital communications, and the coming deluge of data from sensors in the environment.  Nobody in the present can imagine how all of these data sources may be used in combination by a future researcher or viewer.  Given the emerging participatory web, the way that people use and link information will itself provide context, and assist in find ability, creating spontaneous collections that have nothing to do with the original intent when data was first stored.&lt;br /&gt;&lt;br /&gt;So that's a pretty confused picture, and what is surprising to conclude is that being a librarian sounds pretty cool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-214241835945330831?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/214241835945330831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=214241835945330831&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/214241835945330831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/214241835945330831'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/09/why-delete.html' title='Why Delete?'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-6430761810000367425</id><published>2007-08-23T16:21:00.000-04:00</published><updated>2007-08-23T16:25:48.935-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='second life'/><title type='text'>A goldmine of information about Second Life and Education</title><content type='html'>This came to me via Kathy Kyzer at ITS-Teaching and Learning, who have done wonderful work on Second Life (visit the UNC island sometime).&lt;br /&gt;&lt;br /&gt;These are the &lt;a href="http://www.simteach.com/slccedu07proceedings.pdf"&gt;proceedings of 2007 Second Life Education Workshop&lt;/a&gt; (PDF warning), lots of information about experiments and experience using Second Life in an educational setting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-6430761810000367425?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/6430761810000367425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=6430761810000367425&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6430761810000367425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6430761810000367425'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/08/goldmine-of-information-about-second.html' title='A goldmine of information about Second Life and Education'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-4652249031438963529</id><published>2007-08-10T14:13:00.000-04:00</published><updated>2007-08-10T14:45:48.277-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='second life'/><title type='text'>The realities of virtual worlds for corporate sites</title><content type='html'>There has been a swirl of hype, and anti-hype around the idea of 'Serious Virtual Worlds'.  Of note were the &lt;a href="http://www.wired.com/techbiz/media/magazine/15-08/ff_sheep"&gt;Wired &lt;/a&gt;article, as well as a &lt;a href="http://www.longtail.com/the_long_tail/2007/07/why-i-gave-up-o.html"&gt;blog posting by Chris Anderson&lt;/a&gt; that generated a lively exchange.  Even more recent was a &lt;a href="http://www.itwire.com/content/view/13912/53/"&gt;Gartner report cautioning corporate America&lt;/a&gt; about the risks of doing business in Second Life.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.metaversed.com/10-aug-2007/metaversed-live-2-corporate-challenges-virtual-worlds"&gt;Metaversed&lt;/a&gt;, yesterday, held a really nice event in the SAP space on Silicon Island on Corporate Challanges in Virtual Worlds.  The panel was:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a set="yes" linkindex="10" href="http://craig.cmehil.com/"&gt;Craig Cmehil&lt;/a&gt; - Community Evangelist, SAP&lt;/li&gt;&lt;li&gt;Fiona Gallagher - SL Project Lead, Sun&lt;/li&gt;&lt;li&gt;&lt;a linkindex="11" href="http://jeff-barr.com/"&gt;Jeff Barr&lt;/a&gt; - Web Services Evangelist, Amazon&lt;/li&gt;&lt;li&gt;&lt;a linkindex="12" href="http://really.blogs.xerox.com/"&gt;Jonas Karlsson&lt;/a&gt; - Research Team, Xerox&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Here's a shot...hardly a 'ghost town' for tech firms in Second Life!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Y5gZZSW978E/RryskUoT9yI/AAAAAAAAAD4/vxJ-5exb1S8/s1600-h/ghosttown.JPG"&gt;&lt;img style="cursor: pointer; width: 436px; height: 227px;" src="http://3.bp.blogspot.com/_Y5gZZSW978E/RryskUoT9yI/AAAAAAAAAD4/vxJ-5exb1S8/s320/ghosttown.JPG" alt="" id="BLOGGER_PHOTO_ID_5097138618289616674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.metaversed.com/10-aug-2007/metaversed-live-2-corporate-challenges-virtual-worlds"&gt;&lt;/a&gt;The panel seemed to be in agreement that much of the recent coverage of virtual business was uninformed, or based on misconceptions.  As an example,  Gartner cautioned that corporations could not control access to their virtual sites.  Expectation plays a big part here too.  I think it is true that corporations that expect to build a virtual commercial for a product will be disappointed because nobody showed up.  Second Life seems driven by events and gatherings, and is very much a socially driven animal around small networks.  Increasingly, real life blogs, and things like Twitter are playing the same role in virtual space as they do in real life, acting as an alert system for happenings, and reporting events later to a wider audience. &lt;br /&gt;&lt;br /&gt;The virtual medium has characteristics that distinguish it from the web.  Instead of an ad that is encountered for a brief few seconds by a wide audience, virtual interactions involve deeper contacts with customers or contributors in small groups.  It was pointed out that surveying a corporate office and seeing it empty can be misleading.  The vendors represented pointed out the fact that one must understand the point of a particular build, it could be used for various events, could host customers for private exchanges and training, and also has ripple effects in the 2D media that must be counted in any calculation.&lt;br /&gt;&lt;br /&gt;This was alluded to by one of the presenters, but I think about trucking out to the Airport Sheraton for Oracle Tech Days, or similar, vendor-driven events.  In those cases, vendors ship out their employees, arrange conference space, and put on an all-day show to a small group.  How is this any different from the corporate uses described by the panelists?  Not very!&lt;br /&gt;&lt;br /&gt;Anyhow, the Metaversed podcast carries the content.  I continue to be impressed with the richness of these experiences in virtual space, including all of the networking that occurs before and after these presentations, which in itself demonstrates one of the true, unique properties of the 3D web.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; I took a tram into the fourth dimension&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; Cos I had the blues, the blues of throwing it all away&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; Just gimme a Tequila, I'll slam it the 4-D way&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; And when I got there you know it had certain similarities&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-style: italic;"&gt; Like no smoking anywhere&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; And hiding in the khazi to avoid paying the fare&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; 4-D Tequila anyone&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; And dont think we didn't dance to records by the Fifth Dimension&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;-Joe Strummer&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-4652249031438963529?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/4652249031438963529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=4652249031438963529&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4652249031438963529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4652249031438963529'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/08/realities-of-virtual-worlds-for.html' title='The realities of virtual worlds for corporate sites'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Y5gZZSW978E/RryskUoT9yI/AAAAAAAAAD4/vxJ-5exb1S8/s72-c/ghosttown.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-563863062684110753</id><published>2007-08-09T10:42:00.000-04:00</published><updated>2007-08-09T10:44:13.550-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='second life'/><title type='text'>Interesting SL Event Today...</title><content type='html'>I picked this up from &lt;a href="http://metaversed.com/09-aug-2007/corporations-discuss-second-life-experiences-lessons-learned-live-panel-discussion-today"&gt;Metaversed&lt;/a&gt;...this is at 12PM SL time today. People from Sun, Amazon, Xerox, etc...&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;There's been a lot of negativity in the press of late over the marketing failures of corporations in the virtual world of &lt;a set="yes" linkindex="9" href="http://secondlife.com/"&gt;Second Life&lt;/a&gt;. Analyst firm Gartner have even &lt;a set="yes" linkindex="10" href="http://www.virtualworldsnews.com/2007/08/gartner-warns-c.html"&gt;warned companies away&lt;/a&gt; from public worlds recently. With all of that in mind, Metaversed has put together a panel of active real life firms in Second Life to discuss their experiences, and lessons learned from being part of the community. The debate will no doubt prove useful to others and be of great interest to anyone involved in the business side of virtual worlds.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-563863062684110753?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/563863062684110753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=563863062684110753&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/563863062684110753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/563863062684110753'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/08/interesting-sl-event-today.html' title='Interesting SL Event Today...'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-7006755381944020208</id><published>2007-08-06T12:44:00.000-04:00</published><updated>2007-08-06T12:48:44.129-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jade'/><category scheme='http://www.blogger.com/atom/ns#' term='glassfish'/><title type='text'>JADE, RMI error running JADE Gateway using Glassfish</title><content type='html'>Nothing comes up on Google, so I'll throw this out for reference.  I was trying to use the new Glassfish server to run a JADE GatewayAgent, on localhost, connecting to a main container on the localhost.  Anyhow, it blows off with a &lt;span style="font-style: italic;"&gt;MalformedURLException: no protocol&lt;/span&gt; yadda yadda yadda when trying to add the child node, blowing off in the RMIMTPManager$PlatformManagerAdapter.addNode method.&lt;br /&gt;&lt;br /&gt;This looks like an incompatability with the RMI implementation on Glassfish.  In the short term, I punted to Tomcat 5.5 and all is right with the world again.&lt;br /&gt;&lt;br /&gt;I'm on J2SE 1.6_02, btw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-7006755381944020208?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/7006755381944020208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=7006755381944020208&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/7006755381944020208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/7006755381944020208'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/08/jade-rmi-error-running-jade-gateway.html' title='JADE, RMI error running JADE Gateway using Glassfish'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-3613843042258375379</id><published>2007-08-02T08:19:00.001-04:00</published><updated>2007-08-02T08:24:35.757-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D Web'/><category scheme='http://www.blogger.com/atom/ns#' term='agent'/><title type='text'>A bit part on virtual worlds last nite</title><content type='html'>NC-17 news did a piece on virtual worlds last night.  See if you can spot the nerd.  Link to video &lt;a href="http://www.nbc17.com/midatlantic/ncn/news.apx.-content-articles-NCN-2007-08-01-0018.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'm working on JADE agents today.  I'm somewhat suprised that agent frameworks like &lt;a href="http://jade.tilab.com/"&gt;JADE &lt;/a&gt;are not applied more, especially in this '&lt;a href="http://www.personalinfocloud.com/2006/01/the_come_to_me_.html"&gt;come to me web&lt;/a&gt;' era.  As we get an excess of computer cycles in our individual 'infrastructures', and as we become more mobile, there certainly seems to be a niche that agent computing could fill.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-3613843042258375379?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/3613843042258375379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=3613843042258375379&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3613843042258375379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3613843042258375379'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/08/bit-part-on-virtual-worlds-last-nite.html' title='A bit part on virtual worlds last nite'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-8297123816362183296</id><published>2007-08-01T12:39:00.000-04:00</published><updated>2007-08-01T12:39:12.297-04:00</updated><title type='text'>IT Conversations: Faculty Summit Opening Panel</title><content type='html'>This week's Technometria features the Microsoft Research Faculty Summit's opening panel, moderated by Ed Lazowska and including a number of leading academics and Microsoft researchers.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.itconversations.com/shows/detail1888.html"&gt;IT Conversations: Faculty Summit Opening Panel&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-8297123816362183296?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.itconversations.com/shows/detail1888.html' title='IT Conversations: Faculty Summit Opening Panel'/><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/8297123816362183296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=8297123816362183296&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8297123816362183296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8297123816362183296'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/08/it-conversations-faculty-summit-opening.html' title='IT Conversations: Faculty Summit Opening Panel'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-7605872465971552115</id><published>2007-08-01T08:04:00.000-04:00</published><updated>2007-08-02T08:18:09.036-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D Web'/><category scheme='http://www.blogger.com/atom/ns#' term='jade'/><category scheme='http://www.blogger.com/atom/ns#' term='agent'/><title type='text'>Real Agents working with virtual spaces</title><content type='html'>It's been a while since I looked at agents, but I was happy to see that&lt;a href="http://jade.tilab.com/"&gt; Jade 3.5&lt;/a&gt; had been released.  That's actually old news for some.  I'm working on a project that embeds a physical space within a virtual 'building', and utilizing the JADE agent framework to tie the virtual and the physical worlds together seems like the ticket.&lt;br /&gt;  &lt;br /&gt;Anyhow, the things that jumped out at me about 3.5 were the ability to communicate between agents using a pub-sub topic model, and a re-working of the web services integration gateway.&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://instanceofidea.blogspot.com/2007/06/next-version-of-slicer-deployed.html"&gt;a previous post&lt;/a&gt;, I had talked about a small framework to tie virtual space (in this case Second Life) to external applications.  The framework uses sensors (and I'm looking at other means) to detect and inventory objects in the virtual space, and gives the facility to pipe messages to those objects from outside.  Yesterday, I used that to create a control panel GUI that can run on a small tablet.  This control panel uses the framework to send information into the virtual space, causing alterations to the environment.&lt;br /&gt;&lt;br /&gt;Over the weekend, I added the facility to push events out of the virtual space to subscribing listeners.  Objects in SL can generate events for touch, creation (on_rez), collision, and so forth.  By dropping a script in an object, the framework can trap these events and communicate them to a hub.  The hub takes these events and sends them to the framework.  Here's a pic where the 'pyramid' is the event generator, and the sphere is the hub.  I simply 'touch' the pyramid, and the hub is messaged, sending the event to the framework for dispatching to subscribed listeners.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Y5gZZSW978E/RrB7HEoT9wI/AAAAAAAAADo/B1FCkfyzo1s/s1600-h/event_001.JPG"&gt;&lt;img style="cursor: pointer; width: 443px; height: 213px;" src="http://2.bp.blogspot.com/_Y5gZZSW978E/RrB7HEoT9wI/AAAAAAAAADo/B1FCkfyzo1s/s320/event_001.JPG" alt="" id="BLOGGER_PHOTO_ID_5093706539988154114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Below is a shot of the 'touch' event in the framework.  There is a facility that inspects events coming out of the virtual space, and compares it to subscribers.  A subscriber picks the 'region', or island, the object name, and the desired event.  The subscriber also sets up a callback, and receives the paramaters associated with each event.  I want to add a more flexible subscription, using regular expressions, etc., but that's more than I need right now.  It might also be cool to add the ability to specify a script to run when an event is encountered, but for now it can just callback to a subscriber at a given url.  Here's the basics of the event as it arrived to the framework.  What's not shown is a generic 'payload' field, where I plan on pushing in the variables associated with each SL event.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Y5gZZSW978E/RrB8VkoT9xI/AAAAAAAAADw/cKOZshjUHgc/s1600-h/event.jpg"&gt;&lt;img style="cursor: pointer; width: 630px; height: 271px;" src="http://4.bp.blogspot.com/_Y5gZZSW978E/RrB8VkoT9xI/AAAAAAAAADw/cKOZshjUHgc/s320/event.jpg" alt="" id="BLOGGER_PHOTO_ID_5093707888607885074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;At any rate, the 'control panel' I wrote for the tablet uses the ability to push messages into the sim by using a known region and object name.  The new addition of the ability to push events out of the virtual space to subscribers is next on the plate, hence the interest in using agents on the 'real life' side.  I think topic-based subscriptions on the agent side will help me figure out cool things to do given that I can hook into virtual events, plus it is just plain geek-fun.&lt;br /&gt;&lt;br /&gt;The first task will be to have an avatar push a doorbell button in the sim, pick up that event, push it to the agent, and have the agent kick off a real-life doorbell chime.  A stupid pet-trick, true, but the point will be to exercise this thing end-to-end, and then I'll have established a workable 2-way bridge to interesting things later.  So far, the scripting/framework approach works out.  Time will tell how well it scales, how lag-inducing it can be, etc.  I've gone the approach of using conservative ping and sense rates, and it's been pretty smooth and stable so far.&lt;br /&gt;&lt;br /&gt;Something whack that would be a fun side-project would be to wrap virtual devices with Jini, and have discoverable virtual services under a framework like that.  This gets back to an idea I had a while back, using virtual spaces, virtual sensors, virtual actuators, and virtual people, to develop and prototype smart, ambient computing services.  Given the collaborative nature of these environments, it might make sense!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-7605872465971552115?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/7605872465971552115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=7605872465971552115&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/7605872465971552115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/7605872465971552115'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/08/real-agents-working-with-virtual-spaces.html' title='Real Agents working with virtual spaces'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Y5gZZSW978E/RrB7HEoT9wI/AAAAAAAAADo/B1FCkfyzo1s/s72-c/event_001.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-1985316663380398248</id><published>2007-07-31T11:42:00.001-04:00</published><updated>2007-07-31T11:46:29.715-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D Web'/><category scheme='http://www.blogger.com/atom/ns#' term='wonderland'/><title type='text'>Sun's open source 3D World, and 3D web as a training tool for WMD management</title><content type='html'>A couple interesting links, first is Sun's project &lt;a href="https://lg3d-wonderland.dev.java.net/"&gt;Wonderland&lt;/a&gt;, open  source client and server for their 3D world.  This looks like it's in early stages of development, but you can run the client and the server on your own, always a plus!.&lt;br /&gt;&lt;a class="moz-txt-link-freetext" href="https://lg3d-wonderland.dev.java.net/#goals"&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;The vision for this multi-user virtual environment is to provide an environment that is robust enough in terms of security, scalability, reliability, and functionality that organizations can rely on it as a place to conduct real business. Organizations should be able to use Wonderland to create a virtual presence to better communicate with customers, partners, and employees. &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Second, Idaho Bioterrorism Awareness and Preparedness Program, using 3D  web (in this case Second Life) for &lt;a href="http://irhbt.typepad.com/play2train/"&gt;incident management training&lt;/a&gt;...&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;This virtual environment spreads over two islands Asterix and Obelix (65536 x 2 sq. meters), with one island dedicated to a virtual town and the other a virtual hospital. The design of this virtual environment is influenced by dioramas frequently used by emergency services to support their tabletop exercises.&lt;br /&gt;&lt;/blockquote&gt;&lt;a class="moz-txt-link-freetext" href="http://irhbt.typepad.com/play2train/"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-1985316663380398248?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/1985316663380398248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=1985316663380398248&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/1985316663380398248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/1985316663380398248'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/07/suns-open-source-3d-world-and-3d-web-as.html' title='Sun&apos;s open source 3D World, and 3D web as a training tool for WMD management'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-5851776541623585660</id><published>2007-07-31T09:42:00.000-04:00</published><updated>2007-07-31T09:43:22.423-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>IBM Employees and Second Life Guidelines</title><content type='html'>IBM tells &lt;a href="http://www.networkworld.com/news/2007/072707-ibm-employees-second-life.html?netht=072707dailynews2&amp;"&gt;employees to behave&lt;/a&gt; in Second Life, from Network World.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-5851776541623585660?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/5851776541623585660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=5851776541623585660&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5851776541623585660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5851776541623585660'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/07/ibm-employees-and-second-life.html' title='IBM Employees and Second Life Guidelines'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-8867429561245633972</id><published>2007-07-30T12:56:00.000-04:00</published><updated>2007-07-30T12:58:45.129-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D Web'/><title type='text'>NCSU, and using 3D environments for learning</title><content type='html'>UNC has a lot of interesting projects applying the 3D web to education, visit the UNC island sometime!  Here's some &lt;a href="http://delta.ncsu.edu/about/research_initiatives/3d_ole/"&gt;info about similar initiatives at NCSU&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;I went to an interesting Croquet demo last week, I've got some notes and am working on a write-up of what I heard.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-8867429561245633972?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/8867429561245633972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=8867429561245633972&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8867429561245633972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8867429561245633972'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/07/ncsu-and-using-3d-environments-for.html' title='NCSU, and using 3D environments for learning'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-2871487026844018304</id><published>2007-07-27T11:40:00.001-04:00</published><updated>2007-07-27T11:50:43.887-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D Web'/><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>Wired, SL, 3D web, the hype curve in action</title><content type='html'>This is sort of fun, &lt;a href="http://blog.wired.com/business/2007/07/zinger-of-a-deb.html"&gt;the back and forth about advertising and the 3D web&lt;/a&gt; based on a Wired mag article, sort of like that previous LA Times article.  In the bubble days, businesses thought they could sell sock monkeys and pet food, and just because it was on the web, they'd be millionaires. The corporations that think they are going to sell mac &amp;amp; cheese because they put up a virtual store are as deluded, and the press will be all over that, I imagine. The most useful thing in the back and forth is the fact that sites in virtual space often appeal to the long tail, versus a mass-market appeal. The long tail is ignored in the original Wired write-up, and I think that's the critical omission.&lt;br /&gt;&lt;br /&gt;There's that old saw about asking a farmer what would help his farm work better, and him responding a better plow or a stronger mule, rather than responding that automated farm equipment would help.  In other words, the farmer only can apply the world he knows to the question.  I'd say we're in the middle of a prime example of the phenomena.There's also the old adage that we overestimate change in the short term, and underestimate it in the long term, and this has a lot to do with the shape of the hype curve.&lt;br /&gt;&lt;br /&gt;History repeats itself, and at an accelerating rate, it seems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-2871487026844018304?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/2871487026844018304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=2871487026844018304&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2871487026844018304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2871487026844018304'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/07/wired-sl-3d-web-hype-curve-in-action.html' title='Wired, SL, 3D web, the hype curve in action'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-1266205821786332630</id><published>2007-07-27T11:30:00.000-04:00</published><updated>2007-07-27T11:31:34.601-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D Web'/><category scheme='http://www.blogger.com/atom/ns#' term='hci'/><title type='text'>Using the Wii with 3D Web as a training/sim device</title><content type='html'>From &lt;a href="http://www.wired.com/gadgets/miscellaneous/news/2007/07/wiimote"&gt;Wired&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;For Stone, the Wiimote is the key to building realistic training simulators within the virtual world of &lt;/span&gt;&lt;cite style="font-style: italic;"&gt;Second Life&lt;/cite&gt;&lt;span style="font-style: italic;"&gt;. He is helping companies and universities do that through his &lt;/span&gt;&lt;a style="font-style: italic;" linkindex="36" href="http://www.dr-david-stone.com/"&gt;WorldWired&lt;/a&gt; consultancy. Clients include a company interested in training workers for its power plants, a manufacturer of medical devices and pest-control firm Orkin.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-1266205821786332630?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/1266205821786332630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=1266205821786332630&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/1266205821786332630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/1266205821786332630'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/07/using-wii-with-3d-web-as-trainingsim.html' title='Using the Wii with 3D Web as a training/sim device'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-4670245409448267477</id><published>2007-07-24T07:57:00.000-04:00</published><updated>2007-07-24T08:49:30.082-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D Web'/><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>The future of virtual worlds, LA Times says it's bleak</title><content type='html'>It's odd sometimes, the way backlashes go.  I've been blogging a bit, and being somewhat evangelistic about the 3D web.  I didn't invent the term, and wasn't among the first to catch on, but I have a gut feeling (me and Chertoff) that the term means something.  Lately, especially after the &lt;a href="http://www.latimes.com/business/la-fi-secondlife14jul14,0,6012147.story?coll=la-home-business"&gt;LA Times article about the death of commerce on the 3D web&lt;/a&gt;, I've been approached by multiple people who want to explain to me that this is all a tempest in a teapot.&lt;br /&gt;&lt;br /&gt;A proper, direct response to the LA Times article about Second Life can be found &lt;a href="http://nwn.blogs.com/nwn/2007/07/re-debunking.html"&gt;here&lt;/a&gt;, and &lt;a href="http://gigaom.com/2007/07/12/debunking-5-business-myths-about-second-life/"&gt;here&lt;/a&gt;, so I won't try to recapitulate the common myths that make up such negative press. I was considering reasons why I am intrigued by the whole topic of virtual worlds, though, and I wanted to jot some of these down. These observations are shaped by my own interests, by past projects I worked, and so forth.  You may discover other reasons to pay attention to the 3D web.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Real and Virtual are Merging&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is a drum I was beating well before I delved into Second Life.  &lt;a href="http://instanceofidea.blogspot.com/2006/12/working-towards-mobile20.html"&gt;In this older post&lt;/a&gt;, and &lt;a href="http://instanceofidea.blogspot.com/2007/01/enrique-ortiz-on-future-web.html"&gt;this one soon after&lt;/a&gt;, I talked about Mobile2.0 and Web2.0, trying to relate these terms to this larger idea of real and virtual merging.  The main idea was that mobility and the new web were, in part, about the 'web of things'.  Sensors and actuators talking on the web, and smarter applications to discover and manipulate this explosion of new information and services.   Whole new  types of applications stretching the definition of the web.  Virtual worlds are important because they are a metaphor for this merging.  In a way, our avatars allow us to cross the barrier, and physically inhabit the web of things. That's a bit sketchy, but I see the 3D web riding the coat-tails of the emerging web of things.&lt;br /&gt;&lt;br /&gt;There are potential, practical benefits to visiting the virtual world to understand and manipulate the physical too.  I've been interested lately in the development of EOLUS One,  &lt;a href="http://www.ugotrade.com/2007/07/02/eolus-makes-leap-to-3d-internet-on-second-life/"&gt;as described in this UgoTrade blog entry&lt;/a&gt;.  This is a fairly wide-ranging project, but it does serve as an interesting illustration real world/virtual world merging.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;People Make a Comeback&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The ubiquitous social networking web site provides many benefits.  I'll pick on a few, and tie them to a virtual world experience:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;a venue to expand social/professional networks&lt;/li&gt;&lt;li&gt;a tool to maintain connections to existing friends&lt;/li&gt;&lt;li&gt;a platform to shape and present our own identity&lt;/li&gt;&lt;li&gt;a tool to filter and flag important information (use of social networks to compensate for a deficit of attention)&lt;/li&gt;&lt;li&gt;a collective tool to add value, from which we individually extract benefit&lt;/li&gt;&lt;/ul&gt;All of these points can be extracted from classic definitions of Web2.0, and many of the points are mirrored in virtual worlds such as Second Life.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Expanding Social Networks&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The first point, virtual worlds as a venue for expanding social networks, is primarily a function of the ability of a virtual world to create an event, or common experience.  Think about where friendships start, it is often based on some shared experience, like a college course, or a conference, or some notable event.  Virtual worlds can provide an immersive, compelling experience from which these connections can take root.&lt;br /&gt;&lt;br /&gt;Social networking also relies on sharing connections, in a friend-of-a-friend style.  Given the existence of shared experience in virtual worlds, the familiar mechanism of meeting new people through current friends has a virtual analogue.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Maintaining Current Connections&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's probably a question for sociologists, but what quality of social experiences can be achieved in a virtual environment?  I'm quite sure it's not the same as real life, but I also suspect it's a richer interaction than what one would suspect.&lt;br /&gt;&lt;br /&gt;We're using tools like Twitter, Flickr,  and FaceBook as a way to keep up with our friends and colleagues when we're separated by time or distance. The function of these tools do not map onto the real-time nature of virtual worlds, but I suspect that virtual worlds can add some unique new tools to serve these ends.  One example that comes to mind is the ability to establish 'hang outs' particular to a group of friends and colleagues.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Shaping Identity&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;People use social applications as a way to shape and present themselves.  Virtual worlds such as Second Life have an economy partially based on the customization of personal avatars.  People take great care to build an image of themselves.  Does this aspect of virtual worlds play into this basic function of social networking applications?  I guess this is another one for the sociologists...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tapping into Collective Power&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Successful Web2.0 sites often become so because they provide tools to build something interesting, let the tools loose on the world, and leverage the resulting content.  I'd toss out Wikipedia and Flickr as two prime examples.  There's a fundamental principle at work there, and a lesson that virtual world developers need to take to heart.&lt;br /&gt;&lt;br /&gt;Professional 3D developers really don't like Second Life.  I picked that up!  I can see why, I think the building tools are crummy.  This is something I had observed in a previous blog entry, but it bears repeating...the quality of the tools matters, but more important than professional level, sophisticated building tools are accessible tools, available in-world, suitable for the average Joe to get something done.  There are indeed master builders within environments like Second Life that could take advantage of special tools, but I will guess that the vast majority rely on simple constructs, and use the ecosystem to purchase the rest.&lt;br /&gt;&lt;br /&gt;I think about how bad HTML is, and how crude the tools still are, and would not be suprised to find out that, back in the day, that the web was dismissed as consisting of poor technology in the hands of unqualified developers.   I know there are two sides to the coin, as I still encounter poorly designed sites with flaming clip-art, but I look at how far the web has come based on simple HTML, and simple scripting, and don't think it wise to assume it won't happen again.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;It's not there yet!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Don't take this as a Second Life fan site.  There are lots of things lacking in Second Life, and lots of other virtual worlds out there.  I'm going to a Croquet presentation this afternoon, and have begun looking at that tool, getting used to Blender, and intent on learning Squeak.  The dust has not settled on the particulars, but I really do think the 3D web means something.&lt;br /&gt;&lt;br /&gt;There are 'virtual natives' coming up fast.  Under my watchful eye, my little kids spend a little time wandering around Nicktropolis, and similar sites that approximate virtual worlds.  These kids don't even blink, they just jump right in, and they are right at home.  It's a mistake to put our own preconceptions and limits on a new technology, based on our own experiences and habits.  I liken this to the way that younger people don't have a problem editing and keeping documents out on the web, or in alternative, open-source office suites, versus the old MS Office stand-by.  I look at my own kids, and it makes me think that the metaverse is as natural to them as Tom and Jerry was to me.&lt;br /&gt;&lt;br /&gt;It's especially clear that issues like identity, security, scalability, and application development support all are lacking in many of the current contenders.  The power of open source and standards needs to be applied to this space, but the 3D web is here, and it's going to keep growing, I feel confident in saying, even if everyone wants to observe that this is just a game with no future...heck, I'm still waiting for the death of Java!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-4670245409448267477?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/4670245409448267477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=4670245409448267477&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4670245409448267477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4670245409448267477'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/07/future-of-virtual-worlds-la-times-says.html' title='The future of virtual worlds, LA Times says it&apos;s bleak'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-8776178420253872707</id><published>2007-07-20T10:53:00.000-04:00</published><updated>2007-07-20T10:58:41.520-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><title type='text'>Try NetBeans 6.0 Milestone as your Rails IDE</title><content type='html'>I don't have a comprehensive analysis, just a general feeling.  I really like coding Rails apps using the &lt;a href="http://www.netbeans.org/community/releases/60/index.html"&gt;NetBeans 6.0 Milestone&lt;/a&gt;.  I love Eclipse, and switch between the IDE's depending on the specific task, so this is not coming from a particular camp.&lt;br /&gt;&lt;br /&gt;I like RadRails a lot, but it seems to have stalled a bit.  I kept having problems where the IDE would loose my Rake tasks.  I found a fix to manually add an Eclipse builder to the project, point it at rake, etc. Even so, I still periodically see the app forget about Rake.  A small complaint, really, but it frustrated me enough to switch.  What I found in NetBeans is a rather tight-feeling, smooth IDE for Ruby on Rails.  No big analysis, just a nice experience.  I'm back to coding, and my IDE seems to not forget about rake.  Now if only I can remember my anniversary coming up!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-8776178420253872707?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/8776178420253872707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=8776178420253872707&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8776178420253872707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8776178420253872707'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/07/try-netbeans-60-milestone-as-your-rails.html' title='Try NetBeans 6.0 Milestone as your Rails IDE'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-1449844453269862681</id><published>2007-07-17T18:56:00.000-04:00</published><updated>2007-07-18T10:00:00.999-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>Mobile AJAX, then some really cool SL stuff</title><content type='html'>I read this blog posting about &lt;a href="http://opengardensblog.futuretext.com/archives/2006/01/mobile_web_20_a.html"&gt;mobile AJAX&lt;/a&gt; with some interest.  The main premise was that, due to the difficulty in porting to so many mobiles, even with the efforts of the J2ME specification, large-scale deployments remain prohibitive.    The blog concludes:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;AJAX offers a potentially better solution in comparison to the incumbents (J2ME and XHTML) due to a combination of fewer potential choke points because of its distribution mechanism. The economic models do not favour J2ME and AJAX offers a superior user experience to XHTML. It has the support of the developer community.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I think the idea is cool, but the one fly in the ointment is the fact that mobile connectivity is still so sketchy, and applications need to really support a 'sometimes connected', or event 'mostly connected' environment, as well as the ability to receive pushed-in data.  I suppose there are all sorts of creative ways around this, but for the foreseeable future, web browsing on mobiles still sucks.&lt;br /&gt;&lt;br /&gt;To other things, we're working on a really cool idea for physical/virtual mash-ups.  Imagine a physical space embedded within a virtual space, where real people can see and interact with avatars, and vice versa.  In this environment, the virtual avatars can 'reach in' and alter the physical environment, and real life individuals that inhabit this space can use physical 'things' to alter the virtual environment.  Sort of a twilight-zone between two parallel universes!&lt;br /&gt;&lt;br /&gt;The pic below shows me standing in the virtual room that surrounds the physical room.  Imagine that the virtual walls are projected on the physical walls that surround the room occupants.  On the walls are windows that avatars may approach.  The avatars themselves see real-time streams of audio and video, so from their perspective they are looking into the real room.  This sort of thing has been done before, but I think the context is unique.  It'll be a cool place to explore the merging of the physical world and the virtual world.  This is being tested right now by pushing a custom Second Life client through four monitors arranged as the walls of the room, and will eventually be projected on the actual walls of the real room.  (I didn't write the client!)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Y5gZZSW978E/Rp1NG_bwoMI/AAAAAAAAADg/74BUkYycIx4/s1600-h/newview_001.JPG"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_Y5gZZSW978E/Rp1NG_bwoMI/AAAAAAAAADg/74BUkYycIx4/s320/newview_001.JPG" alt="" id="BLOGGER_PHOTO_ID_5088307936500949186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's just the start, a fascinating range of possibilities opens up from here.  One SL friend, Uskala, mentioned the idea that the walls of the room could change from a meeting space to an auditorium, so that's something that I just implemented, where the walls reconfigure to reveal an auditorium space, and seating rises from the floor.  Imagine giving a SL presentation by standing at a podium, looking out onto an audience of avatars.  If time permits, I'd like to program these room alterations into the room control system, so a physical knob or button could select different room configurations.  This is really cool stuff!  More later as it develops, but the first tries today look promising.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-1449844453269862681?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/1449844453269862681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=1449844453269862681&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/1449844453269862681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/1449844453269862681'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/07/mobile-ajax-then-some-really-cool-sl.html' title='Mobile AJAX, then some really cool SL stuff'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Y5gZZSW978E/Rp1NG_bwoMI/AAAAAAAAADg/74BUkYycIx4/s72-c/newview_001.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-6603977913633873246</id><published>2007-07-12T11:26:00.000-04:00</published><updated>2007-07-12T11:27:09.385-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>Doooh!</title><content type='html'>An obvious point, but do your Rails model validation code before developing your unit and functional tests very far, otherwise, you have to re-do a bunch of test cases....&lt;br /&gt;&lt;br /&gt;Doooh!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-6603977913633873246?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/6603977913633873246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=6603977913633873246&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6603977913633873246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6603977913633873246'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/07/doooh.html' title='Doooh!'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-6351015029665492702</id><published>2007-07-11T07:53:00.000-04:00</published><updated>2007-07-11T07:56:01.256-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='YouTube'/><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><title type='text'>Way cool video explaining the new web</title><content type='html'>This came to me from my friend Joel, at UNCG.  In a couple of minutes, &lt;a href="http://www.youtube.com/watch?v=NLlGopyXT_g"&gt;this cool YouTube video&lt;/a&gt; highlights many of the changes happening on the web, recommended!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-6351015029665492702?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/6351015029665492702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=6351015029665492702&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6351015029665492702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6351015029665492702'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/07/way-cool-video-explaining-new-web.html' title='Way cool video explaining the new web'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-4605206911255975872</id><published>2007-06-20T12:26:00.000-04:00</published><updated>2007-06-20T12:31:20.484-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D Web'/><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>3D web as disruptive technology - Mitch Kapor</title><content type='html'>I've had the videos of the IBM &amp; MIT Media Labs conference on virtual worlds running in the corner of my monitor all morning, and I was highly impressed with &lt;a href="http://www.media.mit.edu/events/movies/video.php?id=ibmvw-2007-06-15-3"&gt;Mitchell Kapor, Linden Lab Chair, and his view of virtual worlds as disruptive technology&lt;/a&gt;.  He brings up the term macromyopia, which is a nice word that captures the idea that we overestimate change in the short term and underestimate it in the long term.&lt;br /&gt;&lt;br /&gt;Anyhow, his talk is entertaining and thought-provoking, and worth the investment of about 45 minutes of your time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-4605206911255975872?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/4605206911255975872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=4605206911255975872&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4605206911255975872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4605206911255975872'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/06/3d-web-as-disruptive-technology-mitch.html' title='3D web as disruptive technology - Mitch Kapor'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-3306383367248653616</id><published>2007-06-20T07:44:00.000-04:00</published><updated>2007-06-20T08:06:53.902-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D Web'/><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='context-aware'/><title type='text'>Food for thought</title><content type='html'>Check out the &lt;a href="http://www.everythingismiscellaneous.com/wp-content/samples/eim-sample-prologue.html"&gt;prologue&lt;/a&gt; to "Everything is Miscellaneous", by David Weinberger.  He's an interesting and engaging speaker, and writes in the same style.&lt;br /&gt;&lt;br /&gt;Anyhow, I loved this quote, and I think about it in terms of what's happening with the 3D internet...&lt;br /&gt;&lt;br /&gt;&lt;p style="font-style: italic;"&gt;Those differences are significant. But they’re just the starting point. For something much larger is at stake than how we lay out our stores. The physical limitations that silently guide the organization of an office supply store also guide how we organize our businesses, our government, our schools. They have guided—and limited—how we organize knowledge itself. From management structures to encyclopedias, to the courses of study we put our children through, to the way we decide what’s worth believing, we have organized our ideas with principles designed for use in a world limited by the laws of physics.&lt;/p&gt;           &lt;p style="font-style: italic;"&gt;Suppose that now, for the first time in history, we are able to arrange our concepts without the silent limitations of the physical. How might our ideas, organizations, and knowledge itself change?&lt;/p&gt;For me this neatly captures a central idea of the 3D web.  In a world without limitations, physics,  or other constraints, how can we use the tools in a way that feels real, but that doesn't place the limits of physical world, or a static organization of information, into the virtual?  This quote highlights both a mistake to be made, and new ways to think.&lt;br /&gt;&lt;br /&gt;It also struck me last night that there is a common thread between the (admittedly modest) things I'm doing within Second Life, and  past work I did on smart spaces and context aware computing.  In some ways, the tools you wish were there in the physical world can be modeled in the virtual, sometimes with the same ends.  In each case, physical and virtual, the goal is  to respond to each individual, and provide a mesh of services around that person as they navigate the environment.  I'm intrigued by the idea that  some of these context-aware computing concepts could be applied within the metaverse toward the aims that David Weinberger describes.  By the same token, I am interested in how the metaverse could be a testbed for context-aware applications.  The whole environment is scripted, you can build sensors and actuators, have location, manipulate the environment, add social elements, etc.  Model a smart home, classroom, or office in Second Life...It's certainly faster and cheaper than trying to build  a testbed or living lab!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As a note, I happened upon this tidbit from &lt;a href="http://www.sutor.com/newsite/blog-open/?p=1678"&gt;Bob Sutor's blog&lt;/a&gt;, links to video now available from the  MIT &amp; IBM Conference: &lt;b&gt;Virtual Worlds:  Where Business, Society, Technology &amp;amp; Policy Converge &lt;/b&gt;which took place on Friday at MIT Media Labs.&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;em&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-3306383367248653616?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/3306383367248653616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=3306383367248653616&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3306383367248653616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3306383367248653616'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/06/food-for-thought.html' title='Food for thought'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-4482022275274998674</id><published>2007-06-18T12:23:00.000-04:00</published><updated>2007-06-18T12:25:22.734-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>Pics from the SL iCommons Summit</title><content type='html'>I popped in, and &lt;a href="http://instanceofidea.blogspot.com/2007/06/waiting-for-lessig-at-1100.html"&gt;blogged a bit about his event&lt;/a&gt; here, and here's a link to some &lt;a href="http://www.fengshuichat.com/sitearm/icommons_summit_2007_in_second_life_event_pictures.htm"&gt;interesting pics&lt;/a&gt; from the occasion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-4482022275274998674?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/4482022275274998674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=4482022275274998674&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4482022275274998674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4482022275274998674'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/06/pics-from-sl-icommons-summit.html' title='Pics from the SL iCommons Summit'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-3116740349056388610</id><published>2007-06-18T08:22:00.001-04:00</published><updated>2007-06-18T08:37:44.291-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D Web'/><category scheme='http://www.blogger.com/atom/ns#' term='locationaware'/><category scheme='http://www.blogger.com/atom/ns#' term='mash-up'/><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>Second Earth in MIT Technology Review</title><content type='html'>From &lt;a href="http://www.technologyreview.com/Infotech/18888/page1/"&gt;MIT Technology Review&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The World Wide Web will soon be absorbed into the World Wide Sim: an immersive, 3-D visual environment that combines elements of social virtual worlds such as Second Life and mapping applications such as Google Earth. What happens when the virtual and real worlds collide?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;This is worthy of a read.  The basic premise is that 3D worlds as part of a mash-up with real life locations and data will transform the way we view the 'web'.  I'm down with that...&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-3116740349056388610?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/3116740349056388610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=3116740349056388610&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3116740349056388610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3116740349056388610'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/06/second-earth-in-mit-technology-review.html' title='Second Earth in MIT Technology Review'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-6415935877026058301</id><published>2007-06-15T15:54:00.001-04:00</published><updated>2007-06-15T15:54:57.449-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D Web'/><title type='text'>IBM Conference on Virtual Worlds</title><content type='html'>&lt;a href="http://news.com.com/8301-10784_3-9730042-7.html?tag=bl"&gt;Coverage&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;&lt;p style="font-style: italic;"&gt; "We are now at the threshold of newly emerging (Web) platforms focused on participation and collaboration," he said. "The power of collaboration and community are one of the major drivers of innovation as companies figure out the capabilities to accelerate collaborative innovation." &lt;/p&gt;&lt;p&gt;&lt;span style="font-style: italic;"&gt;Parris described some of IBM's initial uses of virtual worlds in a business context, including enhanced training, immersive social-shopping experiences, simulations for learning and rehearsing business processes, and event hosting.&lt;/span&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-6415935877026058301?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/6415935877026058301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=6415935877026058301&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6415935877026058301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6415935877026058301'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/06/ibm-conference-on-virtual-worlds.html' title='IBM Conference on Virtual Worlds'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-6205537154521677657</id><published>2007-06-15T13:34:00.000-04:00</published><updated>2007-06-15T18:41:15.193-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new media'/><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>Waiting for Lessig at 11:00</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Y5gZZSW978E/RnLOOs5vr9I/AAAAAAAAADI/NXesrD70qnE/s1600-h/lessig.JPG"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_Y5gZZSW978E/RnLOOs5vr9I/AAAAAAAAADI/NXesrD70qnE/s320/lessig.JPG" alt="" id="BLOGGER_PHOTO_ID_5076346481966821330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Popped into the iCommons summit in Second Life, waiting for &lt;a href="http://uscpublicdiplomacy.org/index.php/iSummitSL/program"&gt;11:00 SL time&lt;/a&gt; when Larry Lessig will be speaking.  &lt;a href="http://slurl.com/secondlife/Ilha%20de%20Intercambio/57/93/30"&gt;Here's&lt;/a&gt; where I'm at..&lt;br /&gt;&lt;br /&gt;Some audio probs right now they are working out.&lt;br /&gt;&lt;br /&gt;Cool..things are worked out, watching a short film about the remix culture...&lt;br /&gt;&lt;br /&gt;Oh well, looking at a grey screen, having media probs here..&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Y5gZZSW978E/RnLPYs5vr-I/AAAAAAAAADQ/6K2UB79WFg0/s1600-h/lessig_003.JPG"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_Y5gZZSW978E/RnLPYs5vr-I/AAAAAAAAADQ/6K2UB79WFg0/s320/lessig_003.JPG" alt="" id="BLOGGER_PHOTO_ID_5076347753277140962" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;OK, switched computers and I'm able to see, right now Johnathan Zittrain is speaking.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Y5gZZSW978E/RnLbWs5vr_I/AAAAAAAAADY/pRzFzp5A3do/s1600-h/lessig+talk_001.JPG"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_Y5gZZSW978E/RnLbWs5vr_I/AAAAAAAAADY/pRzFzp5A3do/s320/lessig+talk_001.JPG" alt="" id="BLOGGER_PHOTO_ID_5076360913056935922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Larry talking about debate with Brett Cottle re copyright.  How do people in creative commons movement get respect?  We get that respect by demanding it loudly like they (copyright people) do.  Who are 'we'...iow creative commons?&lt;br /&gt;&lt;br /&gt;CC is a movement of open source for culture.  Copyright's power comes from its complexity..it's the command line interface that gets to the core of the machine, great for geeks, not good for most people.  For most people, layers are put on top.  Think about CC as a gui overlay for the copyright system's power.  Another function is as a signal.  The people displaying the cc sign send the message that they are part of the sharing economy.  Money not part of terms of exchange...instead it's poison.  This economy is important provider of value, (wikipedia, flickr).  Money is not why people participate.&lt;br /&gt;&lt;br /&gt;CC has a role in protecting the sharing economy.  CC protects participation in the sharing economy.&lt;br /&gt;&lt;br /&gt;"You are helping artists to starve!" as a criticism.  Responds that CC can help artists cross over from a sharing economy to a commercial economy when they want to, and when appropriate.  New component, beatnick, from creative commons, that allows commercial licensing of creative commons content.  Enables bottom-up creativity.  You share, and choose when to allow work to be commercially exploited.&lt;br /&gt;&lt;br /&gt;We have allowed other side as if this is a debate about piracy.  We are fighting for the right to steal, etc...E.g. defense of p2p, as if cc is fighting for the 'right to steal'.&lt;br /&gt;&lt;br /&gt;How to respond?  This is not a movement about the right to take, it's about the right to create, the right to share in the sense that the artists, creators can be free to choose without the government speaking for them.&lt;br /&gt;&lt;br /&gt;General problem, people controlling government is that they only listen to money. (Global warming, healthcare as examples).&lt;br /&gt;&lt;br /&gt;CC people need to stand for the movement and make it grow.  Standing O.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-6205537154521677657?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/6205537154521677657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=6205537154521677657&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6205537154521677657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6205537154521677657'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/06/waiting-for-lessig-at-1100.html' title='Waiting for Lessig at 11:00'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Y5gZZSW978E/RnLOOs5vr9I/AAAAAAAAADI/NXesrD70qnE/s72-c/lessig.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-1132635733899982965</id><published>2007-06-13T14:42:00.000-04:00</published><updated>2007-06-13T14:46:14.457-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new media'/><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>iCommons Summit in Second Life</title><content type='html'>This looks interesting, another SL overlay of a RL conference...&lt;br /&gt;&lt;br /&gt;&lt;p style="font-style: italic;"&gt;The USC Center on Public Diplomacy, Linden Lab and iCommons are delighted to announce that the iCommons 2007 Summit in Dubrovnik, Croatia, will be run in parallel in Second Life!&lt;/p&gt;  &lt;p style="font-style: italic;"&gt;The aim of running the iSummit 2007 in Second Life is to mix the real and virtual world for both attendees of the Summit, and for those who are unable to make it to Dubrovnik, thus expanding the community who will be able to learn, collaborate and share their knowledge and experiences of the Summit. The parallel summit will also help to introduce new users to Second Life and to build the global diversity of participants who are collaborating in-world.&lt;/p&gt;The schedule is posted &lt;a href="http://uscpublicdiplomacy.org/index.php/iSummitSL/program"&gt;here&lt;/a&gt;, looks like some interesting people will be there, e.g. Larry Lessig, Jimmy Wales.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-1132635733899982965?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/1132635733899982965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=1132635733899982965&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/1132635733899982965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/1132635733899982965'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/06/icommons-summit-in-second-life.html' title='iCommons Summit in Second Life'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-4692351580692791559</id><published>2007-06-13T11:29:00.000-04:00</published><updated>2007-06-13T12:34:24.201-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D Web'/><category scheme='http://www.blogger.com/atom/ns#' term='mash-up'/><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><category scheme='http://www.blogger.com/atom/ns#' term='agent'/><title type='text'>Making Connections, virtual reality, agent computing, robots, and even real human beings</title><content type='html'>So I spent a few minutes digging around after reading the &lt;a href="http://slashdot.org/articles/07/06/07/0319215.shtml"&gt;Slashdot&lt;/a&gt; article about using AI, agents, and 3D visualization to train firefighters.  Off on ZDNet is the &lt;a href="http://blogs.zdnet.com/emergingtech/?p=596"&gt;original article&lt;/a&gt;, by Roland Piquepaille.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.zdnet.com/emergingtech/?p=596"&gt;ZDNet describes the system&lt;/a&gt; this way:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The system is currently used by the Los Angeles Fire Department. DEFACTO has committees of AI ‘agents’ which can create disaster scenarios with images and maps seen in 3-D by the trainees. The software agents also evaluate the trainees’ answers and help them to take better decisions.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;This is interesting in several ways.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Virtual simulation and training&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One of the great potential uses of virtual worlds is the creation of immersive training and simulation environments.  I'd anecdotally observe that interacting in a 3D environment with an avatar provides a pretty effective experience.  Situations like a fire or a disaster are prime candidates for such an application.  Other uses might include immersive language learning, law enforcement, or hospital/medical situations.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Collaborative visualization, ambient data, situational awareness&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Collaborative is the key word here, because there are better, higher resolution methods for exploring data through visualization.  A simple equation may be to combine your avatar, the avatars of collaborators, and the visualization, so that remotely distributed teams can fly around, point, manipulate, and refer to parts of a visualization as a group.  This is somewhat linked to the themes illustrated by multi-touch displays, such as the &lt;a href="http://instanceofidea.blogspot.com/2007/05/microsoft-surface-computing-hci-and.html"&gt;Microsoft Surface Computer that I mentioned&lt;/a&gt; a few posts back.&lt;br /&gt;&lt;br /&gt;I'm mostly looking at Second Life, for many reasons.  It's safe to say that SL is not a platform for visualizations, but I have tried several small prototypes with the premise that the collaborative nature of these environments yields qualitatively different experiences.  Another way of saying this is that it might be useful to look at ways of creating 3D visualizations within virtual environments, not necessarily as the best visualization tool, but as points of reference in virtual collaboration.&lt;br /&gt;&lt;br /&gt;Take a &lt;a href="http://viterbi.usc.edu/assets/042/54596.jpg"&gt;look at this image&lt;/a&gt; from the DEFACTO page, and imagine how that application, combined with a collaborative, avatar-based environment, could have interesting possibilities, even as far as visualizing and managing an actual event, versus a simulation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Agents again!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;I had a brief run on some earlier projects where I looked at agent technology.  At the time, we were looking at the state of context-aware computing, especially as it applied to the development of smarter mobile applications (location awareness, etc).  This was mostly using the &lt;a href="http://jade.tilab.com/"&gt;JADE&lt;/a&gt; agent framework, and was based on a research framework called &lt;a href="http://ebiquity.umbc.edu/project/html/id/1/"&gt;CoBrA&lt;/a&gt;.  Honestly, I have not been thinking about agents for a while, but this article made me think about agent technology again. Agents are a great model when you have heterogeneous, autonomous, entities that need to cooperate.  Especially important is the ability to dynamically form associations, and negotiate to solve a shared task.  Web2.0 talks about small things, loosely joined, and agents share that same philosophy in their own arena.&lt;br /&gt;&lt;br /&gt;Agents have always struck me as not getting enough play in the whole 'next generation web' yap-space, especially considering the merging of the virtual (web) and physical world through the explosion of sensors and actuators that are starting to talk on the web.  Both agent technology, and the physical/virtual merging still seem like blind-spots, when both may play an important part in the &lt;a href="http://instanceofidea.blogspot.com/2006/12/working-towards-mobile20.html"&gt;post-web2.0&lt;/a&gt; world.&lt;br /&gt;&lt;br /&gt;In this case, agents are seen as proxies for what &lt;a href="http://teamcore.usc.edu/doc/Machinetta/"&gt;Machinetta&lt;/a&gt; calls RAP's.  Machinetta is one of the underpinnings of the DEFACTO system, and it is essentially an agent framework that supports negotiation, assignment of roles, and other aspects of team-work.  RAP's are the Machinetta term for "Robot, Agent and/or Person".  Cool...we got robots too!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Virtual/Physical merging&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;So this was just mentioned, and bears repeating.  The web is not only the information and people, but also the parts of the physical world that are being hooked in.  This has gone on for a while, but what is interesting is to see that merging playing out on something suggestive of a virtual environment as well.  This is actually something &lt;a href="http://instanceofidea.blogspot.com/2007/06/next-version-of-slicer-deployed.html"&gt;I've been messing with in Second Life&lt;/a&gt;, though at a much less sophisticated level.  The DEFACTO application seems to suggest some of the same notions, in any case.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Virtual ambient information&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The last point I'd make is that this application shares some common characteristics of many of the location-aware mash-ups that are everywhere, especially using tools like Google Maps, Google Earth, and now &lt;a href="http://www.google.com/apis/maps/documentation/mapplets/"&gt;Google Mapplets&lt;/a&gt;.   This gets back to the original point about interacting with visualizations in an immersive environment. In a virtual, 3D space, it seems like the potential is there for mash-ups on steroids.  Here's a shot from an earlier post of a modest example using 3D symbols on a map...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Y5gZZSW978E/RmmiUc5vr8I/AAAAAAAAADA/JACGWrCQ1CQ/s320/mapfloor_003.JPG"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://4.bp.blogspot.com/_Y5gZZSW978E/RmmiUc5vr8I/AAAAAAAAADA/JACGWrCQ1CQ/s320/mapfloor_003.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It might be hard to get the gist of this, but, just like in DEFACTO, virtual worlds can represent ambient information about state and situation by the appearance and behavior of the objects.   There is no reason that these objects could not link to DEFACTO RAP's for example, and provide handles to communicate or interrogate the state of the various agents.&lt;br /&gt;&lt;br /&gt;Lots of possibilities!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-4692351580692791559?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/4692351580692791559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=4692351580692791559&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4692351580692791559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4692351580692791559'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/06/making-connections-virtual-reality.html' title='Making Connections, virtual reality, agent computing, robots, and even real human beings'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Y5gZZSW978E/RmmiUc5vr8I/AAAAAAAAADA/JACGWrCQ1CQ/s72-c/mapfloor_003.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-5219621617110794204</id><published>2007-06-11T12:59:00.000-04:00</published><updated>2007-06-11T13:24:45.996-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>Rails Active Scaffold - from a DHSB</title><content type='html'>Saw this come across from my del.icio.us network, an &lt;a href="http://www.ibm.com/developerworks/library/l-activescaffold/index.html?ca=drs-"&gt;article&lt;/a&gt; from IBM about the Rails &lt;a href="http://www.activescaffold.com/"&gt;ActiveScaffold&lt;/a&gt; plug-in...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is a plug in to nicely handle all the CRUD that still required lots of coding using the vanilla Rails framework.  The promised benefits include (quoting from the ActiveScaffold page):&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;An AJAXified table interface for creating, updating, and deleting objects&lt;/li&gt;&lt;li&gt;Automatic handling of ActiveRecord associations&lt;/li&gt;&lt;li&gt;Sorting, Search and Pagination&lt;/li&gt;&lt;li&gt;Graceful JavaScript degradation&lt;/li&gt;&lt;li&gt;RESTful &lt;span class="caps"&gt;API&lt;/span&gt; support (XML/YAML/JSON) baked in&lt;/li&gt;&lt;li&gt;Sexy &lt;span class="caps"&gt;CSS&lt;/span&gt; styling and theming support&lt;/li&gt;&lt;li&gt;More extension points than you can shake a stick at&lt;/li&gt;&lt;li&gt;Guaranteed to work on Firefox 1+, &lt;span class="caps"&gt;IE 6&lt;/span&gt;+ and Safari 2+&lt;/li&gt;&lt;li&gt;Released under the &lt;span class="caps"&gt;MIT&lt;/span&gt; License, the same one as Rails itself, so you can use it freely in your commercial applications.&lt;/li&gt;&lt;/ul&gt;Worth a try!  Of the plug-ins and Rails extensions I've seen lately, this one looks promising.&lt;br /&gt;&lt;br /&gt;This plug-in is good for me, as I found I'm a DHSB, from this &lt;a href="http://www.doolwind.com/index.php?page=11"&gt;programmer's test&lt;/a&gt;...what are you?&lt;br /&gt;&lt;br /&gt;                Your programmer personality type is:&lt;br /&gt;&lt;br /&gt;   &lt;b&gt;&lt;span style="font-size:180%;"&gt;DHSB&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;You're a &lt;span style="font-size:180%;"&gt;D&lt;/span&gt;oer.&lt;/b&gt;&lt;br /&gt;          You are very quick at getting tasks done. You believe the outcome is the most            important part of a task and the faster you can reach that outcome the better.            After all, time is money.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;You like coding at a &lt;span style="font-size:180%;"&gt;H&lt;/span&gt;igh level.&lt;/b&gt;&lt;br /&gt;          The world is made up of objects and components, you should create your programs            in the same way.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;You work best in a &lt;span style="font-size:180%;"&gt;S&lt;/span&gt;olo situation.&lt;/b&gt;&lt;br /&gt;          The best way to program is by yourself. There's no communication problems, you            know every part of the code allowing you to write the best programs possible.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;You are a li&lt;span style="font-size:180%;"&gt;B&lt;/span&gt;eral programmer.&lt;/b&gt;&lt;br /&gt;          Programming is a complex task and you should use white space and comments as            freely as possible to help simplify the task. We're not writing on paper anymore            so we can take up as much room as we need.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-5219621617110794204?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/5219621617110794204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=5219621617110794204&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5219621617110794204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5219621617110794204'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/06/rails-active-scaffold.html' title='Rails Active Scaffold - from a DHSB'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-3074163835582767718</id><published>2007-06-11T07:08:00.000-04:00</published><updated>2007-06-11T08:03:46.662-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google Developer Days video streams</title><content type='html'>&lt;a href="http://www.youtube.com/profile?user=GoogleDeveloperDay"&gt;YouTube has a wealth of info&lt;/a&gt; from the recent Google developer days (gears, mash-up, etc).  Worth a look on a slow day.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-3074163835582767718?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/3074163835582767718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=3074163835582767718&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3074163835582767718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/3074163835582767718'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/06/googe-developer-days-video-streams.html' title='Google Developer Days video streams'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-8441767170437171511</id><published>2007-06-10T08:59:00.000-04:00</published><updated>2007-06-10T09:06:32.743-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='locationaware'/><category scheme='http://www.blogger.com/atom/ns#' term='mash-up'/><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>Bit of vid showing RL/SL mashup</title><content type='html'>Willi &lt;a href="http://approx31.blogspot.com/2007/06/more-about-bridging-real-and-second.html"&gt;had captured a bit of video&lt;/a&gt; from Second Life showing a campus walkabout with his mobile -&gt; second life reporter.  What can I say...it was a nice day on campus!&lt;br /&gt;&lt;br /&gt;This afternoon, the band I'm in starts recording a new cd.  As we're complete unknowns, (and probably deservedly so), we're all DIY.  The first time we did this, about eight years ago, it was to a Tascam 80-8 with one bad channel, using a DBX unit that had 4 good channels.  We're starting this one out with capability for about 80 tracks, and all the eq's, compressors, and misc. rack gear that we'd rationally want to use.  In addition, we can carry the project between home studios and our tracking 'shed', and do independent overdubs.  The whole thing is probably going direct to the web under Creative Commons...the march of technology is changing the lives of anyone with any creative impulse, and the web will allow us to reach the dozen people that would want to listen to us prattle on, long tail indeed!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-8441767170437171511?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/8441767170437171511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=8441767170437171511&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8441767170437171511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8441767170437171511'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/06/bit-of-vid-showing-rlsl-mashup.html' title='Bit of vid showing RL/SL mashup'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-5566046374667099053</id><published>2007-06-08T14:18:00.001-04:00</published><updated>2007-06-08T14:45:04.460-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>Next version of SlIcer deployed</title><content type='html'>I've been up late a few nights on this, so allow me to go on a bit...This is the next version of SlIcer, which is essentially a utility for hookup up things in Second Life to things in real life.  I've seen things like ObjectOverlord that work on the client code, but I wanted to do things that would work within the vanilla client.  Good idea?  Not sure, but at least it's workable.&lt;br /&gt;&lt;br /&gt;What it does now:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Inventories people and objects within a sim using scripted sensor objects that are placed in strategic locations.  This inventory can be for multiple regions, and is kept in a database.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Creates a queue for messages bound for Second Life.  These messages are stored in a database, and delivered through scripted hub objects (co-located with the sensors).  Essentially, the hubs poll the database for pending messages, which come down in a bundle, and are distributed to target nodes.&lt;/li&gt;&lt;/ul&gt;The test case is a mapping room, with a map on the floor, and 3D symbols that reflect state and position.  Messages can come in from external applications, and the objects on the map change position, reconfigure to reflect state changes, and can also display floating text for other messages.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Y5gZZSW978E/Rmmfvc5vr4I/AAAAAAAAACg/KTGu9tDLI-U/s1600-h/mapfloor_001.JPG"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_Y5gZZSW978E/Rmmfvc5vr4I/AAAAAAAAACg/KTGu9tDLI-U/s400/mapfloor_001.JPG" alt="" id="BLOGGER_PHOTO_ID_5073762092770635650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;That's a picture of the map floor.  The round object floating in air is the sensor/hub.  Against the wall is our people sensor that looks for individuals, sort of virtual RFID.  The SlIcer web app, which is still very much a work in progess, can show an inventory of everything discovered by our in-world sensors.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Y5gZZSW978E/RmmgM85vr5I/AAAAAAAAACo/1Ut8Fxt9-QU/s1600-h/slicer_obj.jpg"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_Y5gZZSW978E/RmmgM85vr5I/AAAAAAAAACo/1Ut8Fxt9-QU/s400/slicer_obj.jpg" alt="" id="BLOGGER_PHOTO_ID_5073762599576776594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That's a screen shot that shows, for example, a rover_counter on the map.  The database contains info like the last sense time, the x,y,z coordinates, etc.  The cool thing is, there are simple URL's that an external app can call, targeting a region and object by their known name.  This obviates the need to keep up with SL UUID's.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Y5gZZSW978E/RmmhDM5vr6I/AAAAAAAAACw/ScLJMKgFAys/s1600-h/mapfloor_002.JPG"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_Y5gZZSW978E/RmmhDM5vr6I/AAAAAAAAACw/ScLJMKgFAys/s320/mapfloor_002.JPG" alt="" id="BLOGGER_PHOTO_ID_5073763531584679842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm an awful object builder, but this is my pitiful truck object in a 'stowed' state..an external source (such as a mobile GPS unit), could send telemetry by calling a URL, this enqueues a message for delivery to the sim...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Y5gZZSW978E/Rmmh385vr7I/AAAAAAAAAC4/_AEay8RYVbY/s1600-h/messages.jpg"&gt;&lt;img style="cursor: pointer; width: 488px; height: 205px;" src="http://2.bp.blogspot.com/_Y5gZZSW978E/Rmmh385vr7I/AAAAAAAAAC4/_AEay8RYVbY/s320/messages.jpg" alt="" id="BLOGGER_PHOTO_ID_5073764437822779314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And bammo...state/position change...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="file:///C:/Documents%20and%20Settings/tapuser/Desktop/slicer2/messages.jpg" alt="" /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Y5gZZSW978E/RmmiUc5vr8I/AAAAAAAAADA/JACGWrCQ1CQ/s1600-h/mapfloor_003.JPG"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_Y5gZZSW978E/RmmiUc5vr8I/AAAAAAAAADA/JACGWrCQ1CQ/s320/mapfloor_003.JPG" alt="" id="BLOGGER_PHOTO_ID_5073764927449051074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What's next:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I've already got a database of objects, and it will be easy to add a table of arbitrary name/value properties per object.  This gives a Silo-like capability to maintain object state outside of the sim.  Objects could update their own state, or pick up state changes pushed in from the web.  What would be cool is that that state can survive object name changes, and also re-rezzing.  The drawback is that objects have to have a unique given name, I don't do duplicates.&lt;/li&gt;&lt;li&gt;Thinking about a pub/sub system for events.  For example, do something when an object is rezzed, when an object moves, when a certain person walks into a room, etc.  I thought about putting this up in an additional sim, and doing some stupid pet tricks where moving and object in one sim causes a change in an object in another. &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;From there, I'm not quite sure, but it seems to open a lot of possibilities up.  I have some cruft in the database for doing some reliable delivery stuff, but that's not a burning issue right now.  The whole thing is done using Ruby on Rails, which I am really keen on these days.  This has not taken a huge effort, development can go very quickly one you make the mental jump!&lt;br /&gt;&lt;br /&gt;Rails, SL, mash-ups, all in one project...how cool is that...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-5566046374667099053?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/5566046374667099053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=5566046374667099053&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5566046374667099053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5566046374667099053'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/06/next-version-of-slicer-deployed.html' title='Next version of SlIcer deployed'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Y5gZZSW978E/Rmmfvc5vr4I/AAAAAAAAACg/KTGu9tDLI-U/s72-c/mapfloor_001.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-6854712551599086220</id><published>2007-06-07T07:57:00.001-04:00</published><updated>2007-06-07T07:58:35.978-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visualization'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>Cool visualizations of the net</title><content type='html'>Nice web interface from Akamai showing visualizations of real-time web traffic info...&lt;a href="http://www.akamai.com/html/technology/visualizing_akamai.html"&gt;check it out here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-6854712551599086220?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/6854712551599086220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=6854712551599086220&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6854712551599086220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6854712551599086220'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/06/cool-visualizations-of-net.html' title='Cool visualizations of the net'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-342599595720425494</id><published>2007-06-06T14:51:00.000-04:00</published><updated>2007-06-06T15:07:02.394-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>Progress on acts_as_authenticated and authorization in Rails</title><content type='html'>I'm happy to say I fairly quickly was able to implement authentication using 'acts_as_authenticated', a Rails plug-in.  Props to the helpful Rubyists of Second Life for turning me on to that.  I prefer the plug-in model to the engine model, much easier for me to grok.&lt;br /&gt;&lt;br /&gt;So the steps were fairly simple.  First, I went and grabbed acts_as_authenticated, per the &lt;a href="http://technoweenie.stikipad.com/plugins/show/Acts+as+Authenticated"&gt;helpful instruction page&lt;/a&gt;.  If you have not tried a plug-in, it's worth it to do a bit of background to understand what is happening, I'd suggest the &lt;a href="http://wiki.rubyonrails.com/rails/pages/HowTosPlugins"&gt;link-fest on the Rails Wiki &lt;/a&gt;as a primer.  This gives you a basic database user repository.  Then you can, in your controller, say things like:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;class RolesController &lt;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  before_filter :login_required&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;This filter will divert to a login page, along with signup, logout, password hashing, and other basic facilities.  Badda-bing, badda-boom.  Note that you can exclude various controller actions from the login requirement, so you can have guest pages, and other non-critical data in plain view.&lt;br /&gt;&lt;br /&gt;Important to note, acts_as_authenticated only does the authentication part, so you need to go the extra mile to add authorization.  There are a couple advertised plug-ins that sit on top of acts_as_authenticated, and I took a stab at the &lt;a href="http://brainspl.at/articles/2006/02/20/new-plugin-acl_system"&gt;acl_system&lt;/a&gt; (actually, I grabbed acl_system2 out of SVN).  The files and directories from acl_system2 go in your vendor/plugins directory in your Rails application.  There are also a few pre-reqs to using the acl_system, as explained in the instructions:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-style: italic;"&gt;You will need to have a current_user method that returns the currently logged in user.  And you will need to make your User or Account model(or whatever you named it) have a has_and_belongs_to_many :roles. So you need a model called Role that has a title attribute. Once these two things are satisfied you can use this plugin.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;So I created a role table in MySql, with id, title, and the usual created and updated dates.  I added the following to my User model:&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;class User &lt;&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  has_and_belongs_to_many :roles&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;Along with this, I have a join table to link users and roles.  Once this is configured, you can add additional filtering to the above authentication filter, as in this simple example:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;class RolesController &lt;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  before_filter :login_required&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  access_control [:list, :show, :new, :create, :update, :edit, :destroy, :index] =&gt; '(administrator)'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Note that this is simple, and the specification of complex action/role mappings looks fairly flexible.  At any rate, it works in initial testing.  Lots more to go, but this took much less time than grokking and implementing the user engine, YMMV, of course!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-342599595720425494?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/342599595720425494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=342599595720425494&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/342599595720425494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/342599595720425494'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/06/progress-on-actsasauthenticated-and.html' title='Progress on acts_as_authenticated and authorization in Rails'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-5623099573816365808</id><published>2007-06-06T07:32:00.000-04:00</published><updated>2007-06-06T08:23:43.844-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><title type='text'>Nice Comparison of Ruby/Rails IDE's</title><content type='html'>This morning, my RadRails seems to have forgotten about my projects Rake tasks.  I've seen that before, somewhat frustrating.  Made me look at the grass across the fence again.&lt;br /&gt;&lt;br /&gt;Here's a &lt;a href="http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/"&gt;nice comparison of Rails IDE's&lt;/a&gt;, as part of my short detour into alternatives.  It looks like grabbing the latest &lt;a href="http://dlc.sun.com/netbeans/download/6.0/milestones/latest/"&gt;NB 6.0 Milestone&lt;/a&gt; gives you the Ruby support.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-5623099573816365808?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/5623099573816365808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=5623099573816365808&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5623099573816365808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/5623099573816365808'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/06/nice-comparison-of-rubyrails-ides.html' title='Nice Comparison of Ruby/Rails IDE&apos;s'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-6209601889991170453</id><published>2007-06-04T21:57:00.000-04:00</published><updated>2007-06-04T22:11:58.818-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>Rails Authentication</title><content type='html'>So as I'm working on a couple Rails apps, I'm worried about the best way to authenticate.  I had originally done some things with rails authentication and authorization using a &lt;a href="http://agilewebdevelopment.com/plugins/category/10"&gt;rails engine&lt;/a&gt;. I pretty much got it to work, but it seemed a bit kludgey.  Part of this, I'm sure, is not quite grokking out how the engine was wired in to my app.  Chalk it up to a state of perpetual newbie-ness.&lt;br /&gt;&lt;br /&gt;So perhaps my feeling about engines is not totally unfounded.  I'm not jumping into the whole debate, but there seems to be a &lt;a href="http://www.pluginaweek.org/2006/11/01/rails-engines-too-much-of-a-good-thing/"&gt;split in the Rails community&lt;/a&gt; about engines, enough to look for alternatives.  Anyhow, I asked a few more experienced rails programmers, and like a chorus they all told me to forget about engines and go with &lt;a href="http://technoweenie.stikipad.com/plugins/show/Acts+as+Authenticated"&gt;Acts as Authenticated&lt;/a&gt;. That's on my plate, I'm going to try this plug in as part of this SlIcer mash-up.&lt;br /&gt;&lt;br /&gt;Additionally, I came across this &lt;a href="http://www.vaporbase.com/postings/Authorization_in_Rails"&gt;nice review of Rails authorization tools&lt;/a&gt;...a good read.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-6209601889991170453?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/6209601889991170453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=6209601889991170453&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6209601889991170453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/6209601889991170453'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/06/rails-authentication.html' title='Rails Authentication'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-2756839743910626384</id><published>2007-06-03T20:10:00.000-04:00</published><updated>2007-06-04T16:24:34.272-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hci'/><title type='text'>More along the lines of the MS Surface Computer</title><content type='html'>I"m linked to a video at &lt;a href="http://www.perceptivepixel.com/"&gt;Perceptive Pixel&lt;/a&gt;, I ran across this from &lt;a href="http://www.hyperorg.com/blogger/"&gt;Joho the Blog&lt;/a&gt;...It's worth a quick look, and expands on themes that surfaced last week with the little wave in the blogosphere around the &lt;a href="http://instanceofidea.blogspot.com/2007/05/microsoft-surface-computing-hci-and.html"&gt;Microsoft Surface Computer&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In Joho, David Weinberger makes the point that cool UI's are not necessarily usable UI's, which kind of bummed me out, I can't get past how cool it looked.&lt;br /&gt;&lt;br /&gt;I know this isn't the point of Joho, but how would access to this thing make using computers a different thing?  That is the question, versus how you would make the UI do what your keyboard and mouse does today.  Also, break out of the 2D browser model.  What about navigating tag clouds or graphs of links as part of searching...toss something into an RSS feed out to collaborators.&lt;br /&gt;&lt;br /&gt;Anyhow, take a look at the video...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-2756839743910626384?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/2756839743910626384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=2756839743910626384&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2756839743910626384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2756839743910626384'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/06/more-along-lines-of-ms-surface-computer.html' title='More along the lines of the MS Surface Computer'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-7709029568741534338</id><published>2007-06-01T14:30:00.000-04:00</published><updated>2007-06-01T14:48:21.704-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mash-up'/><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>3D RL/SL location aware mash-up working...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Y5gZZSW978E/RmBnb7f2mfI/AAAAAAAAACY/_O8a_BmA83Y/s1600-h/willi_walks_001.JPG"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_Y5gZZSW978E/RmBnb7f2mfI/AAAAAAAAACY/_O8a_BmA83Y/s400/willi_walks_001.JPG" alt="" id="BLOGGER_PHOTO_ID_5071166909944601074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Well, mostly...we have some tweaks to line up the RL coordinates and the offset on the map.  We might need to re-do the map we use to texture our sandbox.&lt;br /&gt;&lt;br /&gt;Anyhow, this image is my avatar on our 3D interactive mapping floor.  The green prim represents Willi (&lt;a href="http://approx31.blogspot.com/"&gt;approx31&lt;/a&gt;) walking around on the UNC campus with a mobile phone/GPS.  Check Willi's blog for particulars, but we take the live GPS signal, and send the lat/long to a PHP script.  That script converts to x and y offset from a known origin on our mapping table, which is then scaled to the map on the SL object.  The upshot is that the map symbol moves in real-time based on Willi's GPS report.  After we tighten down the positioning, we'll be looking for more things to instrument.  A cool thing would be to outfit various vehicles with GPS transponders, and other status telemetry, as well as various individuals.  Then, at any time, you could see the corresponding 3D symbols moving about and changing state.  This is really cool to watch.&lt;br /&gt;&lt;br /&gt;By the way, this is using the &lt;a href="http://instanceofidea.blogspot.com/2007/05/rest-ful-rails-reflections-slicer-and.html"&gt;SlIcer framework&lt;/a&gt;, which I had originally proposed a few posts back, and which is up and running in it's first pass.  I'm busy doing a second pass, with lots of optimizations and new features.  Really that next version will be the first 'usable' one, and maybe can be used in other places, such as the UNC Island.  One thing that's cool in the coming version is the ability to inventory and message across multiple regions, so you could move a prim on one sim, and have something happen on another...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-7709029568741534338?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/7709029568741534338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=7709029568741534338&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/7709029568741534338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/7709029568741534338'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/06/3d-rlsl-location-aware-mash-up-working.html' title='3D RL/SL location aware mash-up working...'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Y5gZZSW978E/RmBnb7f2mfI/AAAAAAAAACY/_O8a_BmA83Y/s72-c/willi_walks_001.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-2746680892074862473</id><published>2007-05-31T11:43:00.001-04:00</published><updated>2007-05-31T14:02:47.092-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google Gears</title><content type='html'>This was touted as Google going straight at Microsoft.  A framework for going off-line with on-line apps, called &lt;a href="http://gearsblog.blogspot.com/2007/05/posted-by-aaron-boodman-and-erik.html"&gt;Google Gears&lt;/a&gt;.  It appears that Google Reader and other apps are going to be outfitted with this capability, which is very cool.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;One of the most frequently requested features for Google's web applications is the ability to use them offline. Unfortunately, today's web browsers lack some fundamental building blocks necessary to make offline web applications a reality. In other words, we found we needed to add a few new &lt;a href="http://gears.google.com/" target="_blank"&gt;gears&lt;/a&gt; to the web machinery before we could get our apps to run offline. Gears is a browser extension that we hope -- with time and plenty of input and collaboration from outside of Google -- can make not just our applications but everyone's applications work offline.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Too many irons in the fire to play with this now, but I'll file it away, sort of today's mini-buzz after yesterday's &lt;a href="http://instanceofidea.blogspot.com/2007/05/microsoft-surface-computing-hci-and.html"&gt;MSoft Surface Computer wave&lt;/a&gt;.  I'm also catching that people are complaining about the &lt;a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;amp;q=broadway+ny+ny&amp;sll=35.91467,-79.047318&amp;amp;sspn=0.022939,0.040169&amp;ie=UTF8&amp;amp;ll=40.806079,-73.973007&amp;spn=0.042879,0.080338&amp;amp;amp;z=14&amp;om=0&amp;amp;layer=c&amp;cbll=40.792845,-73.97296&amp;amp;cbp=1,3.18055468146352e-15,0.5,0"&gt;Google Street View&lt;/a&gt;, check out &lt;a href="http://www.boingboing.net/2007/05/30/google_maps_is_spyin.html"&gt;Boing Boing for the blowback&lt;/a&gt; on that!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;update&lt;/span&gt;: Here's &lt;a href="http://news.com.com/Google+kicks+offline+Web+apps+into+gear/2100-7345_3-6187596.html"&gt;another article&lt;/a&gt; on Gears.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-2746680892074862473?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/2746680892074862473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=2746680892074862473&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2746680892074862473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2746680892074862473'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/05/google-gears.html' title='Google Gears'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-114911267594827890</id><published>2007-05-30T09:28:00.000-04:00</published><updated>2007-05-30T10:05:54.300-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubiquitous computing'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='3D Web'/><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><title type='text'>Microsoft Surface Computing - HCI and UbiComp</title><content type='html'>Sometimes, it's hard for me to pin down what my own blog is about.  I tend to run many threads at once, and end up thrashing sometimes, as I suspect anyone working in technology does these days.  The past few weeks, it's been about Second Life, and that continues, but I'm looking at other areas as well, such as plain old Web2.0, ubiquitous computing, agent computing, mobility, location aware services, SOA, and dynamic scripting languages (specifically Ruby and Rails these days).  In the mix somewhere is my original interest in Java/J2EE, along with things like Spring.&lt;br /&gt;&lt;br /&gt;Rather than a testament to a short attention span, I think this wide variation in themes is actually a sign of the times we live in.   Developers no longer learn one language, and roll into every project with the same set of tools.  The evolving web, the evolution of mobility, and the pervasive field of networked information and devices that surround us everywhere we go make for an interesting and challenging time.  I'd like to suggest that the disparate topics covered in this blog are on a converging trajectory.  Maybe that's what this blog can be about.&lt;br /&gt;&lt;br /&gt;Case in point, &lt;a href="http://www.techcrunch.com/2007/05/29/microsoft-announces-surface-computer/"&gt;check out this short video&lt;/a&gt; on Microsoft's Surface Computer.  I think this is an exciting platform that brings together a bunch of ideas.  Essentially, this is a big, touch sensitive display that uses gestures to manipulate data.  The cool thing is that it's multi-touch, so you can gesture with both hands, and multiple people can interact with the computer at the same time.  In addition, the Surface Computer is sensitive to physical objects.  It can sense with these objects, and also interact with other computers placed on the surface.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The 'multi-touch' is collaborative.  Technology is getting more and more social.  This reality is core to Web2.0, as well as the evolving 3D web.  We're not isolated from each other anymore, we Twitter and blog, we IM and message, now we can compute together. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;The Surface Computer bridges the physical and the virtual.  In the video, they demonstrate placing a device on the surface, having it dynamically connect, and using a gesture to shoot a photograph into the device.  The natural action of placing a device of interest on the collaborative surface, and being able to manipulate it, is a step towards useful ubiquitous computing. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;The Surface Computer could be an interesting new metaphor for web collaboration in the way that avatar representation in Second Life creates a sense of immersion.  I think it won't be long until you could assemble remotely around a common 3D web surface, with remote participants as avatars. &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The combination of natural interface, immersion, and the ability to easily incorporate data from the web, or from other devices, in collaborative ways seems like a natural progression.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-114911267594827890?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/114911267594827890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=114911267594827890&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/114911267594827890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/114911267594827890'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/05/microsoft-surface-computing-hci-and.html' title='Microsoft Surface Computing - HCI and UbiComp'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-7180789418763114602</id><published>2007-05-29T13:38:00.000-04:00</published><updated>2007-05-29T13:39:10.477-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='where2.0'/><title type='text'>Google street view</title><content type='html'>&lt;a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;amp;q=broadway+ny+ny&amp;sll=35.91467,-79.047318&amp;amp;sspn=0.022939,0.040169&amp;ie=UTF8&amp;amp;ll=40.806079,-73.973007&amp;spn=0.042879,0.080338&amp;amp;z=14&amp;om=0&amp;amp;layer=c&amp;cbll=40.792845,-73.97296&amp;amp;cbp=1,3.18055468146352e-15,0.5,0"&gt;Just go here&lt;/a&gt;...it's amazing.  Alas, Franklin Street not available...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-7180789418763114602?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/7180789418763114602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=7180789418763114602&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/7180789418763114602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/7180789418763114602'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/05/google-street-view.html' title='Google street view'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-8602348788227684686</id><published>2007-05-29T08:41:00.001-04:00</published><updated>2007-05-29T11:26:39.178-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='higher education'/><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>Second Life Best Practices in Education - Link Dump</title><content type='html'>Here's a&lt;a href="http://slbestpractices2007.wikispaces.com/page/diff/Temp+Links?v=4662062"&gt; nice link dump&lt;/a&gt; to catch up on the SLBP confo last week...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-8602348788227684686?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/8602348788227684686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=8602348788227684686&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8602348788227684686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8602348788227684686'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/05/second-life-best-practices-in-education_29.html' title='Second Life Best Practices in Education - Link Dump'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-7776250961555200039</id><published>2007-05-29T08:15:00.000-04:00</published><updated>2007-05-29T08:17:45.570-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><title type='text'>WUNC today, the rise and fall of Friendster</title><content type='html'>On '&lt;a href="http://thestory.org/"&gt;the Story&lt;/a&gt;' today..Jonathan Abrams from Friendster.&lt;br /&gt;&lt;br /&gt;quote:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Dick talks with Jonathan about what he learned from the success and later failure of Friendster, and how he plans to compete with a new social networking project in what has become a very crowded field.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-7776250961555200039?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/7776250961555200039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=7776250961555200039&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/7776250961555200039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/7776250961555200039'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/05/wunc-today-rise-and-fall-of-friendster.html' title='WUNC today, the rise and fall of Friendster'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-4470820231485595123</id><published>2007-05-25T13:31:00.000-04:00</published><updated>2007-05-25T14:37:55.133-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>More of SL Best Practices in Education confo</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Y5gZZSW978E/Rlcs3idYKOI/AAAAAAAAACQ/In6aCgJ7gdk/s1600-h/posters.JPG"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_Y5gZZSW978E/Rlcs3idYKOI/AAAAAAAAACQ/In6aCgJ7gdk/s400/posters.JPG" alt="" id="BLOGGER_PHOTO_ID_5068569238283233506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A few keynotes this afternoon worth catching...catching the end of the IBM keynote.  Place is SRO.&lt;br /&gt;&lt;br /&gt;Search IBM and Secondlife in YouTube (do that later) to see some examples of their use of virtual worlds.  ? on when virtual worlds truly become mainstream?  Mainstream is difficult to argue..what is mainstream?  Talk in terms of internet 1 (democratization of access), lots of people connected now took about 10 years.  Web2.0 (democratization of participation), took about half the time.  3D internet is about people coming back.  People are going to be involved in every aspect of environment, and it will happen fast.&lt;br /&gt;&lt;br /&gt;Pirate Shipman, adjunct faculty at Pepperdine, is next keynote.  Right brain attitudes important in today's world:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Design&lt;/li&gt;&lt;li&gt;Story&lt;/li&gt;&lt;li&gt;Sympathy&lt;/li&gt;&lt;li&gt;Empathy&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Play&lt;/li&gt;&lt;li&gt;Meaning&lt;/li&gt;&lt;/ul&gt;Basic premise is that we need to focus on these areas, versus left brain logic.  Pirate did a class project do develop virtual content reflecting these 6 aptitudes.  This comes from the book "The Whole New Mind".  Students given a small area and a 150 prim limit for their projects.  We watch slides of the building progress on the class island.  Students experimenting...Conclusion was that it was a powerful learning experience for all involved.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That's the keynote in progress..&lt;br /&gt;&lt;br /&gt;Question...how do we teach in a virtual world?  We need to discuss strenths and weakneses.&lt;br /&gt;&lt;br /&gt;Strengths:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;SL is a spatial experience.  Virtual world has physicality.  Shapes, sizes, movement, spatial relationships take on deep meaning.&lt;/li&gt;&lt;li&gt;SL is an immersive experience.  We can respond as if we are really there...effects emotion and mood to be in a virtual situation.&lt;/li&gt;&lt;li&gt;SL is a social platform.  We can craft and present an identity to others.  "This makes the us that engages with others easier to become".  (Interesting).&lt;/li&gt;&lt;li&gt;SL has tools to connect to and communicate with others.  LSL allows us to develop socially aware objects.&lt;/li&gt;&lt;li&gt;SL democratizes the ability to create content and learning artifacts, it's a participatory medium.   (This is what I think is the key point, which SL captures well).&lt;/li&gt;&lt;li&gt;SL enables collaborative development of objects.  (I think building things with others, and having the tools in-world, is the key...this is why SL works, and why importing from blender, etc is not important, and rather not the point, but that's just me!).&lt;/li&gt;&lt;/ul&gt;Some talk about the playful spirit that is the game part of the environent...the keynote speaker is wearing a pirate eyepatch.&lt;br /&gt;&lt;br /&gt;Weaknesses:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Effective communication of large amounts of data is difficult.&lt;/li&gt;&lt;li&gt;Technological overhead high.&lt;/li&gt;&lt;li&gt;Combo of 2d with SL lacks synergy most of the time.  Showing 'flat' images, for example, still easier in a browser interface..&lt;/li&gt;&lt;li&gt;Activities outside of the scope of what second life does can usually be done better outside of SL.  "Sometimes, though, the novelty may be enough".&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;OK...gonna hit some posters, then I gotta go....&lt;br /&gt;&lt;br /&gt;Here's a parting shot of one of the posters, this one for the SL Genetics Center.  All in all a remarkable day, and an effective use of SL.  I've even got an inventory full of junk now I have to sift thru!.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Y5gZZSW978E/RlcoKydYKNI/AAAAAAAAACI/1IJjVCdI3wI/s1600-h/pirate_001.JPG"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_Y5gZZSW978E/RlcoKydYKNI/AAAAAAAAACI/1IJjVCdI3wI/s400/pirate_001.JPG" alt="" id="BLOGGER_PHOTO_ID_5068564071437576402" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-4470820231485595123?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/4470820231485595123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=4470820231485595123&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4470820231485595123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4470820231485595123'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/05/more-of-sl-best-practices-in-education.html' title='More of SL Best Practices in Education confo'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Y5gZZSW978E/Rlcs3idYKOI/AAAAAAAAACQ/In6aCgJ7gdk/s72-c/posters.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-2030598825096662774</id><published>2007-05-25T08:10:00.001-04:00</published><updated>2007-05-25T11:38:39.582-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>Second Life Best Practices in Education</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Y5gZZSW978E/RlbSsydYKFI/AAAAAAAAABI/bTeTH-BDejE/s1600-h/welcome.JPG"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_Y5gZZSW978E/RlbSsydYKFI/AAAAAAAAABI/bTeTH-BDejE/s320/welcome.JPG" alt="" id="BLOGGER_PHOTO_ID_5068470097553139794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Popped into the &lt;a href="http://slbestpractices2007.wikispaces.com/PresentationSchedule"&gt;SL Best practices conference&lt;/a&gt;.  Hit the registration tables, got my gift bag, off to a discussion about DRM and contracts in virtual space.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here's the scene at the presentation space...Parallels right now to Viacom v YouTube, discussion of safe harbor provisions as they will apply to Second Life.  Real life money is involved in Second Life, real life legal action will follow.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Y5gZZSW978E/RlbTqCdYKGI/AAAAAAAAABQ/oK5uKnC_XOk/s1600-h/pres1.JPG"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_Y5gZZSW978E/RlbTqCdYKGI/AAAAAAAAABQ/oK5uKnC_XOk/s320/pres1.JPG" alt="" id="BLOGGER_PHOTO_ID_5068471149820127330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What happens if someone misappropriates my content in virtual space outside of virtual space (outside of the 'rules' in Second Life)?  There are layers of rights (game code, copyright) but do they give a practical answer?&lt;br /&gt;&lt;br /&gt;Interesting angle...What happens when the players don't like what the game desigeners/owners are doing.  Interesting because this could be seen as a game, but significant investments could be made in virtual space.  How does freedom of speech, etc play in?&lt;br /&gt;&lt;br /&gt;Second Life may be more open source.  How about Creative Commons licenses?  There are some mappings between the SL object permissions and CC permissions.  What does CC give us in SL that copyright does not give us in SL?  We need to be careful here about coding or contracting away rights that may be in copyright.  Note this is from an Australian perspective.&lt;br /&gt;&lt;br /&gt;Next pres,&lt;span style="font-weight: bold;"&gt; Profiling e-world customers&lt;/span&gt;...This is an e-marketing presentation.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;personalization of products and services (CRM)&lt;/li&gt;&lt;li&gt;online profiling of customers (what's that)?&lt;/li&gt;&lt;li&gt;all e-world transactions leave traces of data&lt;/li&gt;&lt;li&gt;issues involving trust, accuracty, privacy&lt;/li&gt;&lt;/ul&gt;Online profiling is practice of aggregating info about consumers lifestyle, product preferences, purchase history.  Adds up to info on customer's buying behavior.  Now talk about SL specific approaches..&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Y5gZZSW978E/RlbZ1CdYKHI/AAAAAAAAABY/EVe8s5_Ar5Q/s1600-h/aep.JPG"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_Y5gZZSW978E/RlbZ1CdYKHI/AAAAAAAAABY/EVe8s5_Ar5Q/s400/aep.JPG" alt="" id="BLOGGER_PHOTO_ID_5068477935868455026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Brands and self image apply in virtual space.  Research discussed addressing the issue of online profiling by introducing self-profiling.  Capture online ideal self-image via brand personality.  What evolving brands traits could be highlighted online?  SL objects must be designed in a way to construct an ad-hoc shopt display for each customer, sensing their profile, brand identity, self profile.&lt;br /&gt;&lt;br /&gt;Between presentations.  It's interesting to watch typical real life confo behaviors play out in virtual space.  Small groups congregating, people walking in to check the scene, and deciding to attend the other talk after looking at the boards.  Presenters trying to figure out how to get their slides to show, etc. IOW oddly familiar.  Also cool is how people linger to associate, and look around to check who else is in the room.  Lots of networking going on, and informal off-line talk.&lt;br /&gt;&lt;br /&gt;Into a panel discussion now... gonna sneak to the Grind for coffee.  Just like a real confo!&lt;br /&gt;&lt;br /&gt;OK..came back at the end of the panel..darn..took too long.  Off to the &lt;a href="http://slurl.com/secondlife/Outreach/88/130/22/"&gt;vendor area&lt;/a&gt;, outreach, etc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Popped in to  a bit of discussion, SL Education is about collaboration and partnerships.  Example, various teachers can swap sections to teach content that they are best at, and enjoy teaching the most.  The content is the focus.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Y5gZZSW978E/RlbrCidYKII/AAAAAAAAABg/v3eIiQyhn3U/s1600-h/outreach_001.JPG"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_Y5gZZSW978E/RlbrCidYKII/AAAAAAAAABg/v3eIiQyhn3U/s400/outreach_001.JPG" alt="" id="BLOGGER_PHOTO_ID_5068496859494361218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That's a shot from the discussion area.  I'll wander over to the exhibits now.   Saw the Moodle Booth, vendors who build sims, libraries.  Here's an interesting thing, a booth for the &lt;a href="http://www.glencoe.com/catalog/index.php/program?c=1673&amp;s=6752&amp;amp;p=4508"&gt;National Underground Railroad Freedom Center&lt;/a&gt;, who will be coming to Second Life...&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Y5gZZSW978E/RlbvACdYKJI/AAAAAAAAABo/HAYZopVAhWI/s1600-h/urfc.JPG"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_Y5gZZSW978E/RlbvACdYKJI/AAAAAAAAABo/HAYZopVAhWI/s400/urfc.JPG" alt="" id="BLOGGER_PHOTO_ID_5068501214591199378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;More wandering..&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.digitalcampfiresfoundation.org/1.html"&gt;Digital Campfires Foundation&lt;/a&gt;, looking at creating&lt;a href="http://www.qualitycoach.net/land/nthdegreesoft.htm"&gt; thinklets&lt;/a&gt; within second life.  UTD has an impressive booth, going to have to visit their campus.  Some discussion ensued about an open source model within SL.  &lt;a href="http://www.slforge.org/?page=welcome"&gt;SLForge&lt;/a&gt; was one attempt to start this.  Perfect for higher ed!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.schome.ac.uk/"&gt;Schome &lt;/a&gt;looks like an interesting pilot project.  "Schome park was the site of a pilot project during which over 100 memebers of NAGTY (National Assoc of Gifted and Talented Youth) collaborated with staff in Second Life to seek ways to transform educational spaces and practices"&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.kwfdn.org/map/map.aspx"&gt;Map of forces shaping future of education&lt;/a&gt;, from the Knowledge Foundation...&lt;a href="http://www.myslproject.com/sql2rss.php?CONFIGFILE=new.php"&gt;Feed of current projects&lt;/a&gt; from My SL Project.  &lt;a href="http://www.myslproject.com/ed/"&gt;Here's&lt;/a&gt; their academia edition.  Saw Columbia College Chicago has a cool sim, &lt;a href="http://slurl.com/secondlife/I%20AM%20Columbia/101/135/26"&gt;I AM Columbia&lt;/a&gt;.  I'm going to do a quick tele to their sim.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Y5gZZSW978E/Rlb4dSdYKKI/AAAAAAAAABw/nQLPij53k10/s1600-h/columbia.JPG"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_Y5gZZSW978E/Rlb4dSdYKKI/AAAAAAAAABw/nQLPij53k10/s400/columbia.JPG" alt="" id="BLOGGER_PHOTO_ID_5068511612707023010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Checking out the galleries at Columbia College.&lt;br /&gt;&lt;br /&gt;Back to the presentation hall.  Instead of turning of our cell phones, we are reminded to kill all particles and animations.  No SL bling for lag's sake.&lt;br /&gt;&lt;br /&gt;&lt;strong style="font-family: arial; font-weight: normal;"&gt;Suzi Mazzenga (Xirconnia Morphett-SL)&lt;/strong&gt;&lt;em&gt;&lt;span style="font-family:arial;"&gt; Drawing on Second Life Experiences to&lt;/span&gt;&lt;span style="font-family:arial;"&gt; Enrich the First Life.&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;This presentation is being simulcast over the plain old web via &lt;a href="http://www.slcn.tv/"&gt;SLCN &lt;/a&gt;(Second Life Cable Network) now.&lt;br /&gt;&lt;br /&gt;Living outside of the circuit box...applying learning about self in Second Life to First Life...Compare your avatar in SL to real life.  Mine is a virtual doppleganger.  Or is your avatar a subconscious blueprint for making a better 1st life you?&lt;br /&gt;&lt;br /&gt;What does your SL interaction say about you?  Is your avatar a virtual extension of your personality?  What does your SL home say about you?  Did you put up a virtual wall to block your neighbor's view?  Would you do the same things you do in SL in real life?  Is there morality in SL?  Various giggles and grins in audience.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Y5gZZSW978E/Rlb-TydYKMI/AAAAAAAAACA/8XpHVmuw968/s1600-h/simulcast.JPG"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_Y5gZZSW978E/Rlb-TydYKMI/AAAAAAAAACA/8XpHVmuw968/s400/simulcast.JPG" alt="" id="BLOGGER_PHOTO_ID_5068518046568032450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here's a shot of the talk, note the video screen showing the live simulcast.&lt;br /&gt;&lt;br /&gt;How many have group meetings in SL?  Do you have a traditional board room for meetings?  Look at other non-traditional settings.  Coffee shops, koi ponds...no walls, no chairs.  Restrictions and expectations can be changed by working within SL as groups.&lt;br /&gt;&lt;br /&gt;There is no 'back of the room' in SL collaborations.  Gonna break out, do some RL work, and hit the IBM keynote...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-2030598825096662774?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/2030598825096662774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=2030598825096662774&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2030598825096662774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/2030598825096662774'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/05/second-life-best-practices-in-education.html' title='Second Life Best Practices in Education'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Y5gZZSW978E/RlbSsydYKFI/AAAAAAAAABI/bTeTH-BDejE/s72-c/welcome.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-1155713178789891411</id><published>2007-05-24T15:16:00.001-04:00</published><updated>2007-05-24T15:25:50.356-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D Web'/><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>IBM Promo Video on their new Virtual Biz Center</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: arial;"&gt;The simple thing that stuck with me, back when I heard &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: arial;"&gt;&lt;a href="Dr.%20Irving%20Wladawsky-Berger"&gt;Dr. Irving Wladawsky-Berger&lt;/a&gt; talk at as part of the  RENCI Distinguished Lecture series was the observation that the '2D' web was about taking the catalog and putting it into the browser, while the 3D web was about taking the whole store, sales staff included, and putting it in a virtual space.  The purely commercial side of the web is not the whole story by any means, but I suspect that the next Amazon or Ebay will rise from the 3D web, and that makes this stuff exciting to watch.&lt;br /&gt;&lt;br /&gt;So dig this little &lt;a href="http://www.youtube.com/watch?v=AJPwoGQAMAM&amp;eurl=http%3A%2F%2Fwww%2Eeightbar%2Eco%2Euk%2F"&gt;YouTube video&lt;/a&gt; about the new IBM Virtual Biz center.  I took five and logged in, and happened upon the real virtual site, and saw this thing on the &lt;a href="http://eightbar.co.uk/2007/05/15/ibm-virtual-business-centre-with-people/"&gt;Eightbar&lt;/a&gt; blog.      IBM's Second Life presence is impressive, and I often point people there when they let me know that the virtual web is just a game....&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-1155713178789891411?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/1155713178789891411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=1155713178789891411&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/1155713178789891411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/1155713178789891411'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/05/ibm-promo-video-on-their-new-virtual.html' title='IBM Promo Video on their new Virtual Biz Center'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-8474496964354693401</id><published>2007-05-24T08:46:00.001-04:00</published><updated>2007-05-24T08:55:55.135-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='croquet'/><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>Approx 31 Blogging about moble + SL, Croquet</title><content type='html'>Willi's got a&lt;a href="http://approx31.blogspot.com/2007/05/watching-my-avatar-watch-myself.html"&gt; bit in his blo&lt;/a&gt;g about some prototypes we're working on.  This one is meant to show on-scene disaster workers walking around assessing damage with gps and camera equipped mobile devices.&lt;br /&gt;&lt;br /&gt;I messed with &lt;a href="http://www.opencroquet.org/index.php/Main_Page"&gt;Croquet&lt;/a&gt; a bit yesterday. just out of interest, and also a bit because I was miffed at Second Life for deciding to bring the grid down yesterday.  Such is life on the front end of the hype curve! &lt;br /&gt;&lt;br /&gt;Initial impressions...&lt;br /&gt;&lt;br /&gt;Second Life is more like the web, it has the chaotic, random feel that comes from random exploration, searching, and inputs from your social/professional network.  Croquet has more of a self-contained, peer-to-peer feel.  Right now I see Croquet as a targeted application development platform.  I also see Croquet as lending itself to more abstract presentation.  I really love the metaphor in Croquet of jumping through portals to navigate to new worlds!  I'm quite sure I've only scratched the surface on Croquet, but it seems less collaborative, and more about cool new metaphors for information.  In other words, I don't feel as much immersion, or presence of myself or others in the Croquet demos, but I do see more of a free-flowing, abstract experience.&lt;br /&gt;&lt;br /&gt;That's not a knock, I see different horses for different courses.  I'm even more of a Croquet noob than a Second Life noob, so take everything with a grain of salt.  I've got to dive into &lt;a href="http://www.blender.org/"&gt;Blender&lt;/a&gt; and &lt;a href="http://www.squeak.org/"&gt;Squeak&lt;/a&gt;, I think, before I really have a good grounding on the potential of Croquet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-8474496964354693401?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/8474496964354693401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=8474496964354693401&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8474496964354693401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8474496964354693401'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/05/approx-31-blogging-about-moble-sl.html' title='Approx 31 Blogging about moble + SL, Croquet'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-4802597704665898282</id><published>2007-05-24T08:35:00.001-04:00</published><updated>2007-05-24T08:38:28.706-04:00</updated><title type='text'>Best Practices in Education Confo in Second Life Tomorrow</title><content type='html'>By way of Kathy Kyzer..&lt;br /&gt;&lt;br /&gt;Planning is currently underway for the first Second Life International Best Practices in Education Conference!&lt;br /&gt;&lt;br /&gt;The conference will be held on May 25, 2007 in venues all over the Second Life world, with exciting presentations, vendors and exhibitors, and everything an educator needs to know to get started exploring the possibilities for teaching, learning, and research in Second Life!&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Here's &lt;a href="http://slbestpractices2007.wikispaces.com/"&gt;a link&lt;/a&gt; with more info&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-4802597704665898282?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/4802597704665898282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=4802597704665898282&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4802597704665898282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/4802597704665898282'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/05/best-practices-in-education-confo-in.html' title='Best Practices in Education Confo in Second Life Tomorrow'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-7776629503573557613</id><published>2007-05-22T15:42:00.000-04:00</published><updated>2007-05-22T16:19:38.484-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>IBM Presentation on Virtual Worlds</title><content type='html'>I think IBM has correctly identified the conceptual link between today's Web2.0 formulation and the future 3D virtual web.&lt;br /&gt;&lt;br /&gt;Check out this &lt;a href="http://eightbar.co.uk/2007/05/11/virtual-worlds-in-education-eduserv-symposium-2007/"&gt;presentation from the eightbar blog&lt;/a&gt;, now in my 2D Google Reader.  One great point is made in a qute from &lt;a href="http://iandavis.com/blog"&gt;Ian Davis'&lt;/a&gt; blog, where he says, about Web2.0, &lt;span style="font-style: italic;"&gt;Web2.0 is an attitude, not a technology.  It's about enabling and encouraging participation through open applications and servers.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;I have been been asked several times why I'm messing with Second Life, when X, Y, or Z allows you to use your 3D modeling tool of choice to import a CAD drawing, etc.  This is a very good question, and I can't claim to know the answer, but here are some observations.&lt;br /&gt;&lt;br /&gt;First, I think it's been said that people working in technology A are probably better at predicting the future of technology B, which may be a less familiar field, than in their 'own' field.  This could be true.  I know that as a hard-core Java/J2EE developer, it took me some time, and distance, to understand the Web2.0 ethos, as well as the value of dynamic scripting languages such as Ruby.  I think the same holds true thinking about virtual worlds.  My immediate reaction to the questions about various virtual worlds is to try and remove the lens of past experience with 3D technologies.&lt;br /&gt;&lt;br /&gt;Second, my reaction is to re frame the question, and to reconsider the  'things that matter' when judging virtual content.  I helped (in small ways) as UNC worked on its Second Life campus.   The natural first step was to make the UNC island look like UNC by building various familiar landmarks, such as the Old Well and the Bell Tower.  Great...Then soon after the island opened up, &lt;a href="http://chimprawk.blogspot.com/2007/03/second-lifes-intellagirl-to-visit-unc.html"&gt;Intelligirl&lt;/a&gt; took one look and pretty much said it can be a mistake to push the real world into the virtual.  I took a step back, and had to agree that the virtual space is different, and is neither a game, nor is it real life.  It needs to be taken as it is. The true goal in virtual space is not the ability to accurately replicate real life, the goal is to provide content formed by community participation.&lt;br /&gt;&lt;br /&gt;Third, remember when Mosaic came out, and all there was was a tour of Amsterdam with some hyperlinked pictures?  Anyone looked at any HTML source lately?  HTML is crap, I'll go ahead and say it!  The most important point is to imagine the end product based on the creative power of the participants, not on the nature of the component tools.  Here is where Web2.0 comes into play.  The power of Web2.0 is built from simple pieces of technology...RSS, HTML, AJAX, XML, etc.  It's the fact that modest tools have been put in the hands of the many, with low barriers to entry, that's made the web a revolution.  Comparing the tools in a space like Second Life to those on the workstations of professional designers is not the test! These comparisons lead to faulty conclusions.  The real test is, does the environment provide sufficient facility to create compelling content, and enough critical mass to create communities around that content.? To me that's the test, much different than the ability to manipulate sophisticated polygons!&lt;br /&gt;&lt;br /&gt;I'm still somewhat skeptical that Second Life is the answer.  Its move towards open source gets things moving in the right direction, but if the Web2.0 analogy is to hold, than it implies that a walled garden will fail.  Certainly the ecosystem is there, but new generations of web users are fickle, and will jump if a more open, buzz-worthy environment arises.  My guess is that alternative virtual worlds will reach hype-parity with the current Second Life buzz, there will be an explosion, and potentially open source will move in to create some standardization.  Either way, it's going to be an interesting, and increasingly virtual web.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-7776629503573557613?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/7776629503573557613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=7776629503573557613&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/7776629503573557613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/7776629503573557613'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/05/ibm-presentation-on-virtual-worlds.html' title='IBM Presentation on Virtual Worlds'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1405318705472934452.post-8958285876820962315</id><published>2007-05-22T10:12:00.000-04:00</published><updated>2007-05-22T10:30:30.715-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ambient computing'/><category scheme='http://www.blogger.com/atom/ns#' term='mash-up'/><category scheme='http://www.blogger.com/atom/ns#' term='secondlife'/><title type='text'>Second Life controlling Real Life</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Y5gZZSW978E/RlL8wSdYKEI/AAAAAAAAABA/uBhY0uZ5BLw/s1600-h/orbcontrol_001.JPG"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_Y5gZZSW978E/RlL8wSdYKEI/AAAAAAAAABA/uBhY0uZ5BLw/s320/orbcontrol_001.JPG" alt="" id="BLOGGER_PHOTO_ID_5067390437264205890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We're working with some &lt;a href="http://www.ambientdevices.com/cat/orb/orborder.html"&gt;ambient orbs&lt;/a&gt; for multiple purposes.  Since we had one handy, I got a developers account for a custom channel, and slipped in a mash-up between the orb, and Second Life.&lt;br /&gt;&lt;br /&gt;The basic idea of a custom channel is that you can call a URL for your own orb, and specify the current color and animation.  These URL's look something like this...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;http://www.theurltheygiveyou/thescripttheygiveyou.jsp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;?devID=YOURDEVICEID&amp;anim=0&amp;amp;amp;amp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;color=12&amp;comment=this+is+steady+green&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And off you go.  From that, it's a simple matter to plug in an HttpRequest in LSL.  For this first cut, I just wanted to get the thing working, so I have a display, along with several color buttons.  Push the button, the color display changes, and the correct site is called with the correct parms.  This took all of a cup of coffee to get through, but I think it shows some interesting potential.  One thing I've discussed for quite a while is the idea that the physical and the virtual are merging.&lt;br /&gt;&lt;br /&gt;Anyhow, this changes the status of the orb on the ambient site, but I'm having a heck of a time getting the physical orb to respond.  Perhaps there's a radio coverage problem, but I'll have to look into it...but this cap from my orb administration page shows that at least on the web site, my orb is the correct color.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Y5gZZSW978E/RlL8gidYKDI/AAAAAAAAAA4/vbRaXdPGk34/s1600-h/orb_stockorb24.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_Y5gZZSW978E/RlL8gidYKDI/AAAAAAAAAA4/vbRaXdPGk34/s320/orb_stockorb24.jpg" alt="" id="BLOGGER_PHOTO_ID_5067390166681266226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="file:///C:/DOCUME%7E1/tapuser/LOCALS%7E1/Temp/moz-screenshot.jpg" alt="" /&gt;&lt;br /&gt;The initial concept is to create a DEFCON style alert system.  Since the scenario we're playing with is a sort of collaborative disaster management scenario, this SL widget could control a group of orbs for people that need to be alerted when something is going on.  Perhaps the orbs on their desks start flashing red, and everyone teleports into the collaborative space...that sort of thing.  Another more generic idea would be an app that can change the orb color based on whether anyone is in the sim, showing number of people, for example.   If you were a help desk for a retailer running a virtual store, the orb could show the amount of foot traffic, and alert virtual sales avatars to pop in to close a sale.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1405318705472934452-8958285876820962315?l=instanceofidea.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://instanceofidea.blogspot.com/feeds/8958285876820962315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1405318705472934452&amp;postID=8958285876820962315&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8958285876820962315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1405318705472934452/posts/default/8958285876820962315'/><link rel='alternate' type='text/html' href='http://instanceofidea.blogspot.com/2007/05/second-life-controlling-real-life.html' title='Second Life controlling Real Life'/><author><name>Mike Conway</name><uri>http://www.blogger.com/profile/08560846342306382608</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Y5gZZSW978E/RlL8wSdYKEI/AAAAAAAAABA/uBhY0uZ5BLw/s72-c/orbcontrol_001.JPG' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
