<?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'><id>tag:blogger.com,1999:blog-1903557729215501484</id><updated>2009-11-14T09:37:47.444-08:00</updated><title type='text'>CaseyD</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://caseyd.badubadu.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default?start-index=26&amp;max-results=25'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>96</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-8199893836344005244</id><published>2009-10-21T14:09:00.000-07:00</published><updated>2009-10-21T14:11:10.308-07:00</updated><title type='text'>BBBBGoog ugh</title><content type='html'>This Blackboard / Google rumor makes no sense to me on the corporate culture levels.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-8199893836344005244?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=8199893836344005244' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/8199893836344005244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/8199893836344005244'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/10/bbbbgoog-ugh.html' title='BBBBGoog ugh'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-7693006117564243855</id><published>2009-10-01T11:53:00.001-07:00</published><updated>2009-11-03T11:01:22.747-08:00</updated><title type='text'>Back from Vacation, and found a thing of beauty</title><content type='html'>Hi folks,&lt;br /&gt;&lt;br /&gt;I've been away for quite a while, enjoying Bavaria, Austria and Venice. Still chunking through tons of cheezy phone-cam video and better stills.&lt;br /&gt;&lt;br /&gt;However I found&lt;a href="http://www.sdn.sap.com/irj/scn/weblogs;jsessionid=%28J2EE3417600%29ID0198633550DB00110818298899573183End?blog=/pub/wlg/15618%3Fpage%3Dlast"&gt;&lt;/a&gt; this &lt;a href="http://www.youtube.com/watch?v=FaNhXPSCQWo"&gt;thing of beauty &lt;/a&gt;related to Google Wave. In a past life I ran around the world driving a tool called the &lt;a href="http://ishare.intellicorp.com/cs/blogs/ctrueman/archive/2009/08/28/what-s-new-in-livemodel-2-2.aspx"&gt;Object Modeling Workbench&lt;/a&gt; in its first few incarnations. You know, back in  the Object / AI days before the web lumbered across the landscape.&lt;br /&gt;&lt;br /&gt;Anyhoo the SAP research group shows a real-time collaborative BPR tool embedded in a wave.&lt;br /&gt;&lt;br /&gt;makes me think I should get back on that real-time collaborative discrete event simulation stuff, right? heh.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-7693006117564243855?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=7693006117564243855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/7693006117564243855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/7693006117564243855'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/10/back-from-vacation-and-found-thing-of.html' title='Back from Vacation, and found a thing of beauty'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-8822870398167434579</id><published>2009-08-06T18:18:00.000-07:00</published><updated>2009-08-06T18:23:53.431-07:00</updated><title type='text'>Control Control, can you hear me?</title><content type='html'>I've been bopping back and forth this summer, and when I bop into software it seems that I'm using multiple version control systems; SVN, git, and mercurial. while drawing odd drawings of operational transforms. gah.&lt;br /&gt;&lt;br /&gt;and none of them well, I'm sure.  and heck we have svn running on our kitchen computer!&lt;br /&gt;&lt;br /&gt;I think I'll be attending this git webcast:&lt;a href="http://www.oreillynet.com/pub/e/1394"&gt; http://www.oreillynet.com/pub/e/1394&lt;/a&gt; as I swill german beer in bavaria.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-8822870398167434579?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=8822870398167434579' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/8822870398167434579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/8822870398167434579'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/08/control-control-can-you-hear-me.html' title='Control Control, can you hear me?'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-3318227234599325365</id><published>2009-07-30T16:16:00.000-07:00</published><updated>2009-07-30T16:21:10.587-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wave'/><title type='text'>Wave terms of service</title><content type='html'>An interesting item in the Google Wave terms of service came up this afternoon -&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"Should you decide to charge users any type of fees in order to access to your Wave API Implementation, you must first get written consent from Google, and you may have to enter  into a separate written agreement with Google before Google's grant&lt;br /&gt;you permission to establish any such fee-based restricted access to your Wave API Implementation"&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Thanks to Michael K for bringing this up.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have to read this as including tuition.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-3318227234599325365?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=3318227234599325365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/3318227234599325365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/3318227234599325365'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/07/wave-terms-of-service.html' title='Wave terms of service'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-1689945728372389831</id><published>2009-07-21T17:33:00.000-07:00</published><updated>2009-07-21T17:44:52.859-07:00</updated><title type='text'>a Wave server implementation is available</title><content type='html'>Today the Google wave team released an open source version of their software. It's Java 6; OS X users will have to take a chance with the recent buggy Java release from Apple. (I have to back up my machine before I take that jump - I didn't expect to take upgrade as there's a developer preview of the &lt;span style="font-weight: bold;"&gt;_next_&lt;/span&gt; one waiting in the wings. )&lt;br /&gt;&lt;br /&gt;It's not exactly what Wave itself is - for example it does not have a persistent store, doesn't implement the same type of user, and uses a funky stand-alone terminal ( think pine ) client. It does do the XMPP server federation stuff to talk back and forth between different deployments stuff. It does log tons of stuff; the stack of signing and transformations, etc. And you can bop around in the ASCII chat like wave tool with your unauthenticated friends. Just don't expect to point your browser at it and get the wave experience.&lt;br /&gt;&lt;br /&gt;It's being released as a playground for integrators and as an executible protocol testbed. Expect rapid deltas to the code. They are hosting 2 servers for you to test your integration.&lt;br /&gt;&lt;br /&gt;They gave a demo of 2 federated wave servers and 3 end users doing an ASCII wave.&lt;br /&gt;&lt;br /&gt;You can find it in a mercurial version control system at http://code.google.com/p/wave-protocol/source&lt;br /&gt;&lt;br /&gt;They really want us to all come play with them.&lt;br /&gt;&lt;br /&gt;Best quote of the day: "We built an innovative cool system which we expect to be abused in innovative cool ways..."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-1689945728372389831?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=1689945728372389831' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/1689945728372389831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/1689945728372389831'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/07/wave-server-implementation-is-available.html' title='a Wave server implementation is available'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-7461243718312676422</id><published>2009-07-19T16:59:00.000-07:00</published><updated>2009-07-19T17:20:38.033-07:00</updated><title type='text'>a day</title><content type='html'>get everyone's breakfasts going&lt;br /&gt;Move Qg5 out of closet&lt;br /&gt;Boot in Target Disk mode&lt;br /&gt;Application Migration of QG5 boot disk to MacPro&lt;br /&gt;SuperDuper Intel Mini to new external SATA disk&lt;br /&gt;Read about Operational Transforms&lt;br /&gt;Install external SATA in IntelMini&lt;br /&gt;drive kid to friends house&lt;br /&gt;Install original Intel Mini disk in external drive case&lt;br /&gt;Boot PPC Mini in target mode&lt;br /&gt;Application Migration from PPC Mini to Intel Mini&lt;br /&gt;goof off in Wave&lt;br /&gt;Remove QG5 disk. drop screw into gap between fan and case. use straightned paperclip to push screw head underneath contorted middle finger's finger nail, jam it in there and slowly draw hand back up. this takes half an hour and many tries.&lt;br /&gt;run QG5 disk naked with funky adapters&lt;br /&gt;change root directory on QG5 500M disk&lt;br /&gt;Install QG5 500M disk in MacPro&lt;br /&gt;Install QG5 2nd drive in MacPro ( what a beautiful case )&lt;br /&gt;Install original QG5 250M disk in MacPro&lt;br /&gt;Move QG5 Sonnet card to MacPro&lt;br /&gt;rewire KVM, UPS farm&lt;br /&gt;uninstall Final Cut Studio&lt;br /&gt;use iStumbler to debug first floor wireless problems - pesky neighbors where is my tin hat!&lt;br /&gt;uninstall CS2&lt;br /&gt;reauth: Aperture, Logic, NI. Upgrade NI. Upgrade MOTU stuff. debug.&lt;br /&gt;install Final Cut 2, CS4&lt;br /&gt;rack PPC mini in server room, switch IP, enable services: OSX VNC server&lt;br /&gt;install Compressor nodes&lt;br /&gt;install Logic nodes&lt;br /&gt;sear some tempeh and garlic, throw on salad&lt;br /&gt;rack misc FW drives with PPC mini&lt;br /&gt;unrack D4, XL-1 Turbo, the 828Mk2s, patchbay, UM880, power chain from rack A&lt;br /&gt;unrack Mackie from rack B.&lt;br /&gt;swap all unracked stuff to different racks&lt;br /&gt;put monitoring UPS in re-racked cart rack&lt;br /&gt;run RAID FW cables back through wall to closet.&lt;br /&gt;daisy chain to time machine disk in closet&lt;br /&gt;screw RAID straps to 2x4 studs. Being clever again, this will probably start a fire or send a weird humming vibration through the house.&lt;br /&gt;beer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-7461243718312676422?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=7461243718312676422' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/7461243718312676422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/7461243718312676422'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/07/day.html' title='a day'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-2422296031552630512</id><published>2009-07-07T23:47:00.000-07:00</published><updated>2009-07-07T23:48:37.833-07:00</updated><title type='text'>Chrome OS?</title><content type='html'>Sometimes don't cha have to wonder?&lt;br /&gt;&lt;br /&gt;Google &lt;a href="http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html"&gt;Chrome OS&lt;/a&gt;. is there some mad splintering going on?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-2422296031552630512?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=2422296031552630512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/2422296031552630512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/2422296031552630512'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/07/chrome-os.html' title='Chrome OS?'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-6068843609194663464</id><published>2009-06-29T15:55:00.001-07:00</published><updated>2009-06-29T16:30:12.117-07:00</updated><title type='text'>notes: svnserver on os x</title><content type='html'>I suddenly had an unplanned gap in my summer dad duties so I turned to my long list of neglected &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;nerding&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;I have been able to cajole my random-number-of-charges to help with installing &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Ubuntu&lt;/span&gt; on a stack of old machines prior to donation (5 so far!), taught some of them how to solder, and exterminated a horde of vermin from the call center, but no real traction. That will wait for summer camps to start!&lt;br /&gt;&lt;br /&gt;After the last Stanford project I promised myself I would jump ahead from the 2.4 era of Sakai Stanford has been using. I took a peek at the K2 stuff -  The white paper was sensible,  Zach's notes useful... so I finally picked up Maven 2 and git. Too bad today was the same day the Sakai confluence was down for a brain trainsfer. I commenced to downloading the current binaries.&lt;br /&gt;&lt;br /&gt;Onward!&lt;br /&gt;&lt;br /&gt;One goal floating around is to upgrade the kitchen Mac Mini to an &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;Intel&lt;/span&gt; based Mini. The current Mini becomes a server in the call center. I wanted to run a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;CZWX&lt;/span&gt;LLC &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;svn&lt;/span&gt; server outside of the graces of Stanford, and so went through the steps to get a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;svn&lt;/span&gt; server on the G4 mini. I did the simplest possible thing I could do. That is to get the server deployed running via the svn:// protocol and constantly accessible from within the imperial home network.&lt;br /&gt;&lt;br /&gt;It wasn't that bad. Here is a rough outline:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;install the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;SVN&lt;/span&gt; package somewhere sensible. I used /&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;usr&lt;/span&gt;/local/bin. that may not be sensible to you, but it was sensible to me.&lt;/li&gt;&lt;li&gt;figure out which user is the '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;login&lt;/span&gt;' user, if you have one. The Kitchen computer happens to have one - we want Skype up when Mitchell is on the road, so it's always ready to go.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;use &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;svnadmin&lt;/span&gt; to create a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;repo&lt;/span&gt; directory somewhere where the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;login&lt;/span&gt; user has rights. I just used the user's home directory.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;update the user configuration files with your various users and assign passwords&lt;/li&gt;&lt;li&gt;start &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;svnserve&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;Now, this last bit is a bit trickier. You probably know about &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;svnserve&lt;/span&gt; -d  -r /path to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;repo&lt;/span&gt; and all that stuff. &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_15"&gt;Firing&lt;/span&gt; up your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;svn&lt;/span&gt; server that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;way&lt;/span&gt;, as the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;login&lt;/span&gt;  user, gets everything hopping along. Until restart.&lt;br /&gt;&lt;br /&gt;To get your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;svn&lt;/span&gt; server to start up after a restart is the real goal. To do that you're going to have to use the Mac OS &lt;a href="http://developer.apple.com/documentation/Darwin/Reference/Manpages/man1/launchctl.1.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;launchctl&lt;/span&gt;&lt;/a&gt; tool.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;launchctl&lt;/span&gt; is used to configure the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;launchd&lt;/span&gt; daemon. The idea is that you want the box to boot, scoot through a set of 'scripts' and fire up basic services. init.d stuff like stuff.&lt;br /&gt;&lt;br /&gt;The 'scripts' are XML configuration files. They are stored in /Library/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;LaunchDaemons&lt;/span&gt;, and by convention are '.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;plist&lt;/span&gt;' files. These  contain a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;namespace&lt;/span&gt; registration mechanism and a way of passing in command line arguments. Take a look at the files on your own machine - it's pretty straight forward, yet as with most of these abstractions rather opaque - what the heck are the options? the options for svnserve itself are fine, but what about the OS?&lt;br /&gt;&lt;br /&gt;For &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;svnserver&lt;/span&gt; I used one found &lt;a href="http://codesnippets.joyent.com/posts/show/303"&gt;here&lt;/a&gt;. Be sure to change the path to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;repo&lt;/span&gt;, the user and the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_28"&gt;user's&lt;/span&gt; group as necessary for your machine.&lt;br /&gt;&lt;br /&gt;More sophisticated schemes would have non-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;login&lt;/span&gt; users, &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_30"&gt;separate&lt;/span&gt; groups, etc., etc., but I didn't think that was necessary for getting off the ground.&lt;br /&gt;&lt;br /&gt;As this repo is behind the CZWX firewall this is as far as I've gotten. If I put it into the DMZ when I drop it into the call center I'll have to upgrade the connections to SSL and all that jazz.&lt;br /&gt;&lt;br /&gt;Onward! Next steps are to get the most recent Sakai checked out as well as the K2 stuff and see about getting some edgeless administration stuff going on these phones.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-6068843609194663464?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=6068843609194663464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/6068843609194663464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/6068843609194663464'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/06/notes-svnserver-on-os-x.html' title='notes: svnserver on os x'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-2967658234039156003</id><published>2009-06-13T13:35:00.000-07:00</published><updated>2009-06-13T13:37:32.113-07:00</updated><title type='text'></title><content type='html'>Just a note:&lt;br /&gt;&lt;br /&gt;I've succeeded, after a Firefox upgrade, in slipping a Google Wave into the Blogger template.&lt;br /&gt;&lt;br /&gt; &lt;a href="http://caseydexperiment.blogspot.com/2009_06_01_archive.html"&gt;http://caseydexperiment.blogspot.com/2009_06_01_archive.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;the Wave embedding example worked fine.&lt;br /&gt;&lt;br /&gt;Should work anywhere ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-2967658234039156003?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=2967658234039156003' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/2967658234039156003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/2967658234039156003'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/06/just-note-ive-succeeded-after-firefox.html' title=''/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-4204613858627446828</id><published>2009-06-11T09:47:00.001-07:00</published><updated>2009-06-11T10:39:47.978-07:00</updated><title type='text'>Desktop integration with Sakai</title><content type='html'>There has been a &lt;a href="http://steve-on-sakai.blogspot.com/2009/05/enabling-web-services-in-sakai-and.html"&gt;good&lt;/a&gt; stream of articles &lt;a href="http://www.packtpub.com/article/sakai-web-services-connecting-enterprise-part1"&gt;describing&lt;/a&gt; Sakai's web services lately. If you're doing work with Sakai you can quickly come up to speed with this very useful functionality.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;I'ld&lt;/span&gt; like to give an example.&lt;br /&gt;&lt;br /&gt;Over the past Stanford academic year I &lt;a href="http://speaking.stanford.edu/highlights/SOPI_Improvements.html"&gt;built&lt;/a&gt; a desktop Java application designed to provide high-stakes language skills testing. The desktop application is tightly integrated with the Stanford University deployment of Sakai, &lt;a href="http://coursework.stanford.edu"&gt;Coursework&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The test is called the "Simulated Oral Proficiency Interview" (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SOPI&lt;/span&gt;) and is administered by the Stanford &lt;a href="https://www.stanford.edu/dept/lc/language/"&gt;Language Center&lt;/a&gt;. This &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;rSmart&lt;/span&gt; &lt;a href="http://www.rsmart.com/post/sakai-newsletter-january-22-2009"&gt;newsletter&lt;/a&gt; has background information on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SOPI&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;I'll cut to the chase.&lt;br /&gt;&lt;br /&gt;The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;SOPI&lt;/span&gt; test is administered under highly controlled conditions. The student only gets once chance, ever, to take the assessment. The assessment materials are so tightly controlled access is denied to the instructional staff. There is all sorts of complex authorization requirements for this project.&lt;br /&gt;&lt;br /&gt;Sorta tricky to have a Sakai site where the instructor can't get at the materials, eh?&lt;br /&gt;&lt;br /&gt;The assessment takes the form of a series of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Quicktime&lt;/span&gt; movies. Each movie presents a question to the user. The user's response is recorded in a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Quicktime&lt;/span&gt; movie, which is stored away for review by the instructional staff. The sequencing of the assessment is structured through an awkward XML file. To hit the schedule for the 2009 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;SOPI&lt;/span&gt; assessment we decided to leave the XML format as it was - there is lots of room for improvement.&lt;br /&gt;&lt;br /&gt;The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;SOPI&lt;/span&gt; Application is written in Java, using the &lt;a href="https://appframework.dev.java.net/"&gt;Swing Application &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Framewor&lt;/span&gt;&lt;/a&gt;&lt;a href="https://appframework.dev.java.net/"&gt;k&lt;/a&gt; (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;JSR&lt;/span&gt;-296), Axis, and Apple's &lt;a href="http://developer.apple.com/quicktime/qtjava/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Quicktime&lt;/span&gt; for Java&lt;/a&gt;. A desktop app was written to avoid all the Java / &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Quicktime&lt;/span&gt; / Sandbox / multi-Browser issues, and to push security up several notches. It does all the things you expect - pretty boxes with movies, live audio waveforms, etc. I've a writeup in the works over at &lt;a href="http://www.czwxllc.com"&gt;www.czwxllc.com&lt;/a&gt;, my companies site, and I'll put up one of the screen play movies used during development so you can see it.&lt;br /&gt;&lt;br /&gt;To support the (baroque) security requirements the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;SOPI&lt;/span&gt; assessment resources are not stored in the Language Classes' Sakai site. Rather a 'sister' site is created. We called these &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;Sopi&lt;/span&gt; Resource sites officially, but most often just 'sister-sites.' This is a custom Sakai site type with a new role, the standard Resources tool, and a real-time monitoring tool created by Zach Thomas of &lt;a href="http://aeroplanesoftware.com/"&gt;Aeroplane Software&lt;/a&gt;. Sakai site properties are created which provide references to class site sections - a single &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;SOPI&lt;/span&gt; Resource site can provide content to rosters from various class-site sections.&lt;br /&gt;&lt;br /&gt;The test is given in a controlled lab. 20 to 40 students may be starting the test simultaneously.&lt;br /&gt;&lt;br /&gt;Stanford is running a modified Sakai 2.4.x&lt;br /&gt;&lt;br /&gt;The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;SOPI&lt;/span&gt; Application uses Sakai &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;webservices&lt;/span&gt; to&lt;br /&gt;&lt;ul&gt;&lt;li&gt;support 2 user sessions, a super-empowered 'agent' and the end user&lt;br /&gt;&lt;/li&gt;&lt;li&gt;determine which &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;SOPI&lt;/span&gt; assessments are currently enabled&lt;br /&gt;&lt;/li&gt;&lt;li&gt;to get user site membership information&lt;/li&gt;&lt;li&gt;to get user Stanford affiliation information, which changes the desktop &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;app's&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;UI&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;to store user progress, including resume state&lt;/li&gt;&lt;/ul&gt;The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;SOPI&lt;/span&gt; App uses Sakai REST tools to support&lt;br /&gt;&lt;ul&gt;&lt;li&gt;pulling of XML and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;Quicktime&lt;/span&gt; movie content from the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;Resouces&lt;/span&gt; tool&lt;/li&gt;&lt;li&gt;pushing &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;Quicktime&lt;/span&gt; movie content into the Resources tool&lt;/li&gt;&lt;/ul&gt;The App pulls down the XML, validates, and then pulls down all the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;Quicktime&lt;/span&gt; movies. At that point a second validation is performed to see if the movies are in a valid QT format.&lt;br /&gt;&lt;br /&gt;As the user proceeds through the assessment the responses are queued up and asynchronously uploaded to Sakai as the assessment plows along. The load-balanced pool of Sakai servers does pretty darn well in accepting 30 odd movies all at once.&lt;br /&gt;&lt;br /&gt;The major changes to Sakai to support the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;SOPI&lt;/span&gt; assessment were&lt;br /&gt;&lt;ul&gt;&lt;li&gt;modifying the Resources '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;webservlet&lt;/span&gt;' tool to not swallow all sorts of sensible exceptions, such as quota violations. These are now reported back as HTTP RFC responses to which the App responds.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;using a locally developed version of Sakai &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;login&lt;/span&gt; which has far less overhead. We wrote this code during our first &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;rollout&lt;/span&gt; of Sakai at Stanford long ago.&lt;/li&gt;&lt;/ul&gt;which aren't really all that major, are they ;)&lt;br /&gt;&lt;br /&gt;I found this model of Sakai development, that of using REST and Axis, to be really fun and efficient. The more recent versions of Sakai would of made this even easier. I look forward to catching my dev environments up to the most recent Sakai and seeing what drops out of the SOPI codebase - less code, less to break.&lt;br /&gt;&lt;br /&gt;My next experiment is to create a language assessment app which uses a cell phone. How could this not be cool?&lt;br /&gt;&lt;br /&gt;Onward!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-4204613858627446828?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=4204613858627446828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/4204613858627446828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/4204613858627446828'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/06/desktop-integration-with-sakai.html' title='Desktop integration with Sakai'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-508941384683466948</id><published>2009-06-09T09:17:00.001-07:00</published><updated>2009-06-09T09:17:29.807-07:00</updated><title type='text'>the proper way to get that boom shot</title><content type='html'>&lt;div class="pp_items"&gt;&lt;div class="pp_item" align="center"&gt;&lt;img src="http://static.pixelpipe.com/05b4e56f-b0d9-4c30-868e-24c52c790df0_m.jpg" style="max-width: 100%;" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-508941384683466948?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=508941384683466948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/508941384683466948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/508941384683466948'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/06/proper-way-to-get-that-boom-shot.html' title='the proper way to get that boom shot'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-2888187885355719817</id><published>2009-06-06T11:22:00.001-07:00</published><updated>2009-06-06T17:55:25.142-07:00</updated><title type='text'>Wave II.5</title><content type='html'>I find it funny that the google email with my wave ID was stuffed into my gmail spam folder.&lt;br /&gt;&lt;br /&gt;I'm caseyd@wavesandbox.com&lt;br /&gt;&lt;br /&gt;There is a sandbox upgrade today, so I'll not be hanging around in the wave client too long.&lt;br /&gt;&lt;br /&gt;later: commencing to tinker. note to self: tinker on a fast machine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-2888187885355719817?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=2888187885355719817' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/2888187885355719817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/2888187885355719817'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/06/wave-ii5.html' title='Wave II.5'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-1578594262578097462</id><published>2009-06-05T09:01:00.000-07:00</published><updated>2009-06-05T09:17:29.937-07:00</updated><title type='text'>7 years of Mozilla!</title><content type='html'>Today is the &lt;a href="http://www.mozillazine.org/articles/article2278.html"&gt;7th anniversary&lt;/a&gt; of  Mozilla.&lt;br /&gt;&lt;br /&gt;Getting Mozilla rolling was a &lt;a href="http://www.wired.com/thisdayintech/"&gt;very iffy&lt;/a&gt; proposition.&lt;br /&gt;&lt;br /&gt;And it's taken a lot of work - I doubt people realize how &lt;a href="http://www.computerworlduk.com/community/blogs/index.cfm?entryid=2247"&gt;much has gone&lt;/a&gt; into simply surviving let alone prospering.&lt;br /&gt;&lt;br /&gt;Just look at the &lt;a href="https://labs.mozilla.com/projects/bespin/"&gt;mad&lt;/a&gt; &lt;a href="https://labs.mozilla.com/projects/weave/"&gt;stuff&lt;/a&gt; &lt;a href="https://labs.mozilla.com/projects/ubiquity/"&gt;emerging&lt;/a&gt; from the &lt;a href="http://labs.mozilla.com/"&gt;Labs&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Not to mention the standard "We'll make you incredibly rich, just sign here..." opportunities walked away from.&lt;br /&gt;&lt;br /&gt;Congratulations Mozilla!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-1578594262578097462?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=1578594262578097462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/1578594262578097462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/1578594262578097462'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/06/7-years-of-mozilla.html' title='7 years of Mozilla!'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-5984431304746615959</id><published>2009-06-04T23:12:00.001-07:00</published><updated>2009-06-05T08:59:21.899-07:00</updated><title type='text'>LincVolt - Neil Young's Java Land Yacht</title><content type='html'>&lt;div class="pp_items"&gt;&lt;div class="pp_item" align="center"&gt;&lt;img src="http://static.pixelpipe.com/8cebf0f9-7077-496c-bfe7-622c77619d6e_m.jpg" style="max-width: 100%;" /&gt;&lt;/div&gt;&lt;div class="pp_item" align="center"&gt;&lt;img src="http://static.pixelpipe.com/4a28d5c9-83ee-4341-87f9-81dca3ba1c75_m.jpg" style="max-width: 100%;" /&gt;&lt;br /&gt;&lt;br /&gt;This  beheamouth is Java controlled.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-5984431304746615959?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=5984431304746615959' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/5984431304746615959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/5984431304746615959'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/06/blog-post.html' title='LincVolt - Neil Young&apos;s Java Land Yacht'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-1027757744008783323</id><published>2009-06-04T09:39:00.000-07:00</published><updated>2009-06-07T22:23:24.921-07:00</updated><title type='text'>JavaOne day Two</title><content type='html'>Moscone is getting a funky air. That of thousands and thousands of java programmers shuffling around in the morelockian tunnels. The suits are up in the hotel suits cutting deals. we hope.&lt;br /&gt;&lt;br /&gt;onward!&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Extream GWT by David Geary. You know, he wrote the book.&lt;br /&gt;His website, &lt;a href="http://www.coolandusefulgwt.com/"&gt;coolandusefulgwt.com&lt;/a&gt;, has tons of examples.&lt;br /&gt;He dashed through a set of examples with a wry style. One of his examples is of a drag and drop framework in about 350 lines of code. Another example was rather bread-and-butter; jdbc and rpc stuff, but for some reason the example db was populated with the very small towns surrounding the absence-of-town where I grew up. That was just odd. I mean, &lt;span style="font-style: italic;"&gt;Castile&lt;/span&gt; &lt;span style="font-style: italic;"&gt;NY&lt;/span&gt;?&lt;br /&gt;This presentation was quite professional. It had the desired effect of lowering the percieved barrier and inspiring to action.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;JavaFX in Action by Mike the Canoo guy. yes I did change my schedule around.&lt;br /&gt;This entertaining chat was peppered with usage insights and mild grumbles about the rapid changes JavaFX went through just before JavaOne.&lt;br /&gt;(His complaint was echoed in just about all the other &lt;a href="http://java.sun.com/javaone/2009/articles/gen_introtojavafxscript.jsp"&gt;JavaFX&lt;/a&gt; talks I've seen - Sun broke the demo code of their presenters just a day or two before JavaOne. "Fail Fast!")&lt;br /&gt;JavaFX started off in Sun Labs as a language called &lt;a href="http://en.wikipedia.org/wiki/JavaFX_Script"&gt;3F - Form Follows Function&lt;/a&gt;. Apparently after a few internal demos it recieved &lt;a href="http://en.wikipedia.org/wiki/Biological_uplift"&gt;Uplift&lt;/a&gt; to JavaFX.&lt;br /&gt;Mike gave an hands on live demo of the Photoshop to JavaFX asset export. As he did so he gave out some practical hints, such as "Do NOT rename any layers after this first round trip - the IDs are a contract between your designers and your developers." He had plenty of time to comment as he clearly was not a Photoshop user... pleasant self-deprecating jokes through out.&lt;br /&gt;This export and prototype in JavaFX model has legs. I guess the Adobe Flex world has this kind of flow just built in, hmm?&lt;br /&gt;Mike mentions that JavaFX has damn few widgets, and only a few 'multimedia' widgets. That there will be a lot of hand noodling to extend these.&lt;br /&gt;On the other hand there is data binding - this alone is a big lure for his team.&lt;br /&gt;He gave a good explanation of remote calls and the impact on the event dispatch thread (EDT), leading to a talk on the JavaFX equiv of invokeLater.&lt;br /&gt;A good talk. The Canoo team seems like a fun group.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Groovy 1.6 by Mister Groovy Himself&lt;br /&gt;I dragged Xinlei to this - I think she would find Groovy to her liking and that it can have a place in the Stanford Digital Repositories back end pipeline (s).&lt;br /&gt;Mister Groovy gave a great intro by deconstructing a Java beans app down to a groovy script, element by element. Xinlei's ribs were sore by the end as I kept poking her with my elbow - 'see... see...' poor woman.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;JFugue and Log4JFugue&lt;br /&gt;A bit of fun.&lt;br /&gt;&lt;a href="http://www.jfugue.org/"&gt;These guys&lt;/a&gt; wrapped the java MIDI implementation with an easier to use layer. This allows statements such as player.play("C A C") to play those notes. If you've ever done any MIDI programming outside of Max  or PD - say in a line based language, you know it's a giant mess to set up.&lt;br /&gt;JFugue melts that away. And it is a bit idiosyncratic.&lt;br /&gt;MIDI gets a bad rap by casual users. If you want to see what MIDI can really do you have to start by upgrading your OS's MIDI services with better samples or whatnot. This talk presented a sensible series upgrades.&lt;br /&gt;Now &lt;a href="http://log4jfugue.org/"&gt;Log4JFugue&lt;/a&gt;. ha. How about feeding your log files into something which makes music based on the log content? Your ears ( sadly not mine so much any more ) are great at distinguishing fine details in complexity. you can background your log reviews!&lt;br /&gt;The Log4Jfugue people gave a fun demo where application-level service requests and releases were mapped to bass drum and snare, and service interruptions to cymbal crashes. They did some basic time mapping and let it rip. "Service Normal" running is heard as a steady-ish beat with some swing. However once the service starts backing up it's immediately clear that something is up.&lt;br /&gt;Then they used Log4J's port sending ability to stream the log data to another computer for audio presentation in real time.&lt;br /&gt;Nice.&lt;br /&gt;Julian at Stanford could stream this to his iPhone and just listen in the background for Sakai problems...&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;JavaFX + Groovy == Beauty&lt;br /&gt;Excellent &lt;a href="http://java.dzone.com/news/how-groovy-helps-javafx"&gt;live demos&lt;/a&gt; of polyglot programming by another member of the Canoo team. I apologize for being impressed and tired during this talk. My notes are rather scattery: "Cool" "How is he going to tie that into swing?" etc. sigh.&lt;br /&gt;When the presentation is available online I'll cast in a link.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;ach, I am running late - more expansion later!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-1027757744008783323?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=1027757744008783323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/1027757744008783323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/1027757744008783323'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/06/javaone-day-two.html' title='JavaOne day Two'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-553050852886768401</id><published>2009-06-02T23:29:00.001-07:00</published><updated>2009-06-03T00:44:15.052-07:00</updated><title type='text'>JavaOne day One</title><content type='html'>I'm on a roll - Google I/O, 3 days of Maker Faire, and now JavaOne. throb throb, that's my swelling itching brain you hear.&lt;br /&gt;&lt;br /&gt;JavaOne. Thanks to Lois Brooks @ Stanford I'm attending and slurping it up.&lt;br /&gt;&lt;br /&gt;Some slurps:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Java Scripting Language Bowl 2009.&lt;br /&gt;&lt;br /&gt;Here we had Jython, Groovy, Scala, Clojure and jRuby 'duking' it out, har har, in a two round grudge match where each contestant updated the crowd on new features and then pressed on to extoll their respective communities.&lt;br /&gt;&lt;br /&gt;I wrote and deployed Jython and Groovy apps in production at Stanford; I'm happy with both languages and lean to Groovy. Soley because of the indentation thing in Jython/Python.&lt;br /&gt;&lt;br /&gt;The Scala presentation left me a bit adrift. The clojure presentation reminded me of all those pesty Lisp hounds with their fancy Lisp machines from Symbolics and TI who now are off doing nothing because the world left them behind. And I've had a thing about Ruby since the early Ruby days when their advocates were slinging personal attacts at Guido.&lt;br /&gt;&lt;br /&gt;BUT from this session I heard about some cool apps: &lt;a href="http://openendedgroup.com/field/wiki"&gt;Field&lt;/a&gt;, a Processing front end. &lt;a href="http://www.jroller.com/aalmiray/entry/swingpad_0_1"&gt;SwingPad&lt;/a&gt;, an interactive Swing UI scratchpad.&lt;br /&gt;&lt;br /&gt;This session was a &lt;span style="font-style: italic;"&gt;meh&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;JavaFX intro&lt;br /&gt;&lt;br /&gt;I enrolled in this session as a flyer. I was totally surprised. JavaFX Scripting Language reminded me of a set of languages I enjoyed years ago - the IntelliCorp ProKappa / ProKee / Kappa-C / ProTalk set. Ok, not so much ProTalk as there was no backtracking or chaining involved :P.&lt;br /&gt;&lt;br /&gt;But here, in a strongly typed Java language, we have &lt;a href="http://java.sun.com/javafx/1/tutorials/core/classes/#mixins"&gt;mixins&lt;/a&gt;! we have automatic value &lt;a href="http://java.sun.com/javafx/1/tutorials/core/dataBinding/"&gt;binding&lt;/a&gt;! we have &lt;a href="http://java.sun.com/javafx/1/tutorials/core/dataBinding/#triggers"&gt;triggers&lt;/a&gt; ( only post triggers, but still! ) The triggers are not first class objects but we can't have everything we had in 1992 can we. I liked the additions of new access types, such as public-init.&lt;br /&gt;&lt;br /&gt;The language / toolage seems to fit into a groovyish space. I fired up my computer in the miserable wifi cloud at Moscone center and started re-scheduling my time.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;MTGame&lt;br /&gt;&lt;br /&gt;Not your mothers &lt;a href="http://www.jmonkeyengine.com/"&gt;JMonkey Engine&lt;/a&gt;. These guys were working on &lt;a href="https://lg3d-wonderland.dev.java.net/"&gt;WonderLand&lt;/a&gt; and using the JMonkey Engine but found that their models were getting very twisted. They decided to move forward and implement a component based model.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Securing Web and Service Oriented Architectures with Apache Axis, WSS4J, Spring and OpenLDAP.&lt;br /&gt;&lt;br /&gt;This was a great session. Mike Scheuter and Shawn McKinney of Fidelity brought a few other fellow-travelers to stage and hammered through the most concise architectural overview I've seen in a few years.&lt;br /&gt;&lt;br /&gt;new acrynoms for me: RBAC ARBAC02.&lt;br /&gt;&lt;br /&gt;and a new site: &lt;a href="http://www.webaccessmanager.com/wiki/"&gt;webaccessmanager.com/wiki&lt;/a&gt;, altho when Sun publishes the slides in this talk it will be worth your read&lt;br /&gt;&lt;br /&gt;Here, from the description:&lt;br /&gt;&lt;blockquote&gt;It provide attendees an outline they can use in designing future SOA security systems that will be capable of running on various application server platforms, both commercial and open-source.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;The Floor&lt;br /&gt;&lt;br /&gt;On the floor the best thing in the &lt;a href="http://www.lincvolt.com/"&gt;Lincoln Volt&lt;/a&gt;. god, it's 20 feet long, has fins, a touch screen UI, and is a cool cream white. I was asking one of the booth grogs, whos is actually more of a film person, why it didn't generate timecode for his part of the deal and he sent me off to check out the blu-ray Neil Young release.&lt;br /&gt;&lt;br /&gt;This too was a totaly surprise. I'm not much of a TV consumer - I'ld rather make stuff - but the blu-ray Neil Young retrospective lead me to talk to a group of java developers who are creating an IDE for making blu-ray... hmm. things.&lt;br /&gt;&lt;br /&gt;I didn't know until getting the NY demo that blu-ray players have Java inside, and a hard disk, and an internet connection, and that the UI can be built not from video fragments and a lot of tedious Photoshop / Motion / Final Cut / work but rather from AWT and Java ME. That there is a different version of ME for players, and that they can pull down stuff over the web to augument the DVD. Oh and run local code. I'm sure there are parts of the 'educational community' who are all over this stuff...&lt;br /&gt;&lt;br /&gt;After having spent the last month ( post-SOPI, more later ) doing a multi camera video gig of trapeze artists and solo-assembling it into a multi DVD package my sneering at the DVD interactivity paradigm is now blown away by the capabilities of the blu-ray stuff. you mean, I don't have to worry about stinking registers and bit shifting for tracking menu selection logic? &lt;span style="font-style: italic;"&gt;I'm YOURS&lt;/span&gt;. I got hit by the clue train.&lt;br /&gt;&lt;br /&gt;The Blackberry folks were very nice. forced a T shirt on me. Signed me up for stuff. I think they were sniffing the Android phone I got last week.&lt;br /&gt;&lt;br /&gt;the Java desktop folks were very nice. jWebPane is a WebKit Swing wrapper / component / something which does a lot of what I see the Mozilla folks doing with swirling live renderings of live browser 'surfaces.' I guess it's all the thing.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;JavaFX Tooling for being happiness with your designers man&lt;br /&gt;&lt;br /&gt;I attended a session where some members of the JavaFX team showed off a series of plugins for Adobie Photoshop / Illustrator foo which took the layering and layout information from the diagrams and allowed them to be packaged as resources for JavaFX Application development.&lt;br /&gt;&lt;br /&gt;In such a way that allowed round-trip development. Ok perhaps not round-trip but FAST. How many times have you waited for a new set of smurfberry graphic doo-dads to come back from wendy or billy over in the graphic art pen just to see what the heck kind of layout slicing the math-impared artists have come up with now?&lt;br /&gt;&lt;br /&gt;This was pretty slick. I am starting to smell the JavaFX cotton candy.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Birds of a Feather -&lt;br /&gt;&lt;br /&gt;Java and Lego Mindstorms. These folks are making mad progress in the little bricks. Exciting. I think they should get together with SRL and make some killer bots.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.alice.org/index.php?page=alice3/alice3"&gt;Alice 3.0.&lt;/a&gt; Great! So imagine you use a drag and drop 'syntax-less' IDE such as &lt;a href="http://scratch.mit.edu/"&gt;Scratch&lt;/a&gt; or &lt;a href="http://education.mit.edu/drupal/starlogo-tng"&gt;StarLogoTNG&lt;/a&gt;  or &lt;a href="http://www.greenfoot.org/about/screenshots.html"&gt;greenfoot&lt;/a&gt; or some of the MIT derived Lego Mindstorm environments, right? you know, like iconic software legos for do loops, message sending, assignments... And you mix in a donation of myriad 3d SIMs models from Electronic Arts.  And expose behaviors from the 3d mesh and skeletons as, well, drag and drop behaviors. Add cameras and timelines. Run. You have avatars running around interacting in a 3D world.&lt;br /&gt;&lt;br /&gt;Then from a pull down have the picto-program onion skin back down to raw Java in a series of gradations. Sorta like &lt;a href="http://www.bluej.org/about/what.html"&gt;BlueJ&lt;/a&gt; rite?&lt;br /&gt;&lt;br /&gt;Then export it all to NetBeans or Eclipse. Continue.&lt;br /&gt;&lt;br /&gt;I think I'm going to give the movie contest a shot.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ONWARD!&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-553050852886768401?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=553050852886768401' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/553050852886768401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/553050852886768401'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/06/javaone-day-one.html' title='JavaOne day One'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-3311934494869371963</id><published>2009-06-02T08:49:00.000-07:00</published><updated>2009-06-02T08:55:44.825-07:00</updated><title type='text'>Wave II</title><content type='html'>More thoughts, as I go out the door to JavaOne:&lt;br /&gt; - Wave servers will be tricky to run at scale. That may be a higher ed barrier right there.&lt;br /&gt; - not sure what the persistence mechanism is yet. must dig.&lt;br /&gt; - fine grained ACLs will come from site specific Wave robots. perhaps even task specific.&lt;br /&gt; - the ( cool, large ) demo app has the look of a development sandbox. I expect much smaller client side apps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-3311934494869371963?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=3311934494869371963' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/3311934494869371963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/3311934494869371963'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/06/wave-ii.html' title='Wave II'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-5887807253419491337</id><published>2009-05-29T08:47:00.000-07:00</published><updated>2009-05-29T09:03:51.860-07:00</updated><title type='text'>Wave</title><content type='html'>Overnight I've been thinking about Google's new &lt;a href="http://googlewavedev.blogspot.com/2009/05/introducing-google-wave-apis-what-can.html"&gt;Wave &lt;/a&gt;dealy.&lt;br /&gt;&lt;br /&gt;I can see a Wave server being woven into a Sakai deployment to facilitate ad hoc and classroom projects, with the Wave robots tracking participation and in simple cases grading. Cross institution wave components can federate.&lt;br /&gt;&lt;br /&gt;Wave client thingy is written in GWT, stitched together with Guice and GIN.&lt;br /&gt;&lt;br /&gt;My first concern is for the amount of bandwidth this can soak up. Each keystroke - yes - is a callback up to the server. gulp. I haven't plowed through the &lt;a href="http://www.waveprotocol.org/whitepapers/google-wave-architecture"&gt;protocol&lt;/a&gt; but I think it's XMPP ( Jabber spawn ) with extensions.&lt;br /&gt;&lt;br /&gt;Since I'm between projects... hmm... sniff. &lt;span style="font-style: italic;"&gt;hell I better do public write up of the last one!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Other quick hits:&lt;br /&gt;Project management - Lombardi's &lt;a href="https://blueprint.lombardi.com/"&gt;Blueprint&lt;/a&gt; is a very impressive hunk of engineering. Their GWT implementation is beautiful. Might be of a low-ritual scale Sakai implementors could find useful.&lt;br /&gt;&lt;br /&gt;Instant slideshows - Animoto. Upload your still images and a clicktrack (ok they said music) and it will auto keyframe a set of configurable transitions based on the clicktrack. nice stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-5887807253419491337?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=5887807253419491337' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/5887807253419491337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/5887807253419491337'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/05/wave.html' title='Wave'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-4849604716441217032</id><published>2009-05-28T10:29:00.000-07:00</published><updated>2009-05-28T14:06:09.786-07:00</updated><title type='text'>Google I/O notes</title><content type='html'>I am attending the Google I/O conference, and these are short notes. typed on my nokia with my thumbs - sorry for the typos!&lt;br /&gt;&lt;br /&gt;the conference threads I am attending are the GWT, the Java app engine, and the generic 'tech talks.'&lt;br /&gt;&lt;br /&gt;GWT 2 looks good. they have addressed the problems inherent in their stnd-aalone client by creating a set of browser plugins. This was in no small part due to developers missing the great firefox tools.&lt;br /&gt;&lt;br /&gt;their initial presentation on the Java app engine wasn't very compelling; a lot of review.&lt;br /&gt;&lt;br /&gt;a later talk from the Lombardi team was interesting. to achieve ambitious graph rendering the resorted to all soerts of mad hacks, including inline html. another totally cool technique was to execute 'client' layout code backk on the server ... if timing metrics in the browser showed that the server was more responsive.&lt;br /&gt;&lt;br /&gt;in all GWT talks the use of for:each loops was strongly discouraged as a wway to create many spurious objects.&lt;br /&gt;code spliting is cool. i like how it forces dvlprs to consider failure conditions. entry level / weak developers always ignore or handwave failure, and many UI folks ignore the issues completely. ( ymmv I hope ) TURN OFF unused platform targets in dev for faster  builds. watch out for broad class use in the RPC code via polymorpphism.  Hmm there is a flag to log the steps of code optimization. cool.  the useful tool is 'Story of Your Compile' SOYC.&lt;br /&gt;&lt;br /&gt;javascript code splitting is an olld trick, but always a headache to maintain or torque in an emergency. Letting GWT worry about a lot of it sounds like a good idea. the idea is to get running code on the browser ASAP. here you will wrap in some GWT async blocks around deferrable functionality.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;yes there really was an android phone for everyone.&lt;br /&gt;&lt;br /&gt;Google Wave. cool. it'll be interesting to read the newly released white papers.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;datastore. goal - simplify dev and mngt of apps. 'scale always matters'ok there are remote keys.  multi values look too easy. frames!  soft schema: only in the app layer. JDO /JDA defines this soft schema  using JDO / JDA supports migration to and from. what? one to ten transactions a second?only one slot update in a transaction? whoa. p eht presenter focuses a lot on this not being a RDBMS.&lt;br /&gt;&lt;br /&gt;single col keys migration easy&lt;br /&gt;composit keys map to ancestor chaiin&lt;br /&gt;mapping table to mv props&lt;br /&gt; but hard to do bidirectional adds up to heroics&lt;br /&gt;porting transactions involves more heroics in the form of, say, explicit compensateing transactions.&lt;br /&gt;&lt;br /&gt;no joins.denorm or multi queries.&lt;br /&gt;&lt;br /&gt;ezr to migrate out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-4849604716441217032?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=4849604716441217032' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/4849604716441217032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/4849604716441217032'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/05/google-io-notes.html' title='Google I/O notes'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-965338996312018629</id><published>2009-02-23T12:42:00.001-08:00</published><updated>2009-02-23T12:55:21.627-08:00</updated><title type='text'>never leave your computer</title><content type='html'>I'm back from a week of my son's mid-winter break.&lt;br /&gt;&lt;br /&gt;We rented a neat house above Truckee (high high above Truckee) with a mess of friends and totally recreated. Cooking, playing, sledding, skiing. It was really great - what was better was re-introducing the kiddo to sledding. Just a "That's AWESOME!" after a snowbank drilling crash was enough to forgive him the snowball to the back of the head. Or the ones at the shuttle buses. Or the shovelful of snow down my back - something about this trip brought out his inner Calvin. We had a couple of days in deep snowstorm and then a few more in blue sky sunny weather - making Mitchell a very happy ski-woman.&lt;br /&gt;&lt;br /&gt;Upon return I fired up my main development machine and was greeted by a growing stream of I/O errors as I did repository backups. (system.log and console.log, via the Mac OS Console app) This machine is one of the monster QuadG5's which still rips along nicely. Those machines have had a significant number of  failures in their liquid cooled housings, so I'm always a bit on the lookout for goop leaking out. But nothing like all these hundreds of channel resets!&lt;br /&gt;&lt;br /&gt;What?! This was only happening on my firewire buss too. Gah.&lt;br /&gt;&lt;br /&gt;I've spent a fair number of hours doing all the various dances - different disks, Diskwarrior, reformatting, juggling cables, making coffee.&lt;br /&gt;&lt;br /&gt;It was a firewire buss-powered camera, last used just before I left to Skype with Zach Thomas of Aeroplane Software, which was screwing everything up.&lt;br /&gt;&lt;br /&gt;I was fretting about the gigabytes of data on those firewire drives... man it would hurt to lose that. But now as it's spinning out again to the backup drives I'm going to go get some pasta and celebrate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-965338996312018629?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=965338996312018629' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/965338996312018629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/965338996312018629'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/02/never-leave-your-computer.html' title='never leave your computer'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-5316164241863197687</id><published>2009-02-11T12:24:00.000-08:00</published><updated>2009-02-11T12:34:58.479-08:00</updated><title type='text'>Interesting speakers from Davos II: Thulasiraj Ravilla</title><content type='html'>Thulasiraj Ravila comes to Davos under the Social Entrepreneur program. He has founded a set of non-profit eyecare centers in India - the Aravind Eye Hospitals. I actually met him previously, but wanted to mention this years great mad scheme.&lt;br /&gt;&lt;br /&gt; You've heard about off-shoring the analytical bits of health care, such as X-Ray image review, or CAT scan analysis. The central idea is that over the interwebs the images gathered from remote sites can be analyzed by skilled experts most... anywhere.&lt;br /&gt;&lt;br /&gt;Of course this is all wrapped up in big science and big bandwidth and big hospitals and big universities.&lt;br /&gt;&lt;br /&gt;He's built and is running an inversion of this scheme.&lt;br /&gt;&lt;br /&gt;He's using small towers with low power mini WIFI repeaters to send simple eye-chart exams from rural health workers to his central eye hospitals.&lt;br /&gt;&lt;br /&gt;No big science, a private low speed network, and the benefit of early diagnostics. Wow!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-5316164241863197687?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=5316164241863197687' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/5316164241863197687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/5316164241863197687'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/02/interesting-speakers-from-davos-ii.html' title='Interesting speakers from Davos II: Thulasiraj Ravilla'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-2199012931291704192</id><published>2009-02-11T12:04:00.000-08:00</published><updated>2009-02-11T12:21:44.777-08:00</updated><title type='text'>Interesting speakers from Davos I: Benjamin Zander</title><content type='html'>I have to leave some notes somewhere - in a chronological order...&lt;br /&gt;&lt;br /&gt;Some of the new-to-me-this-year interesting folks. ( yeah, you previously met facinating people you I'll have to catch up with! :P The obnixous type-A multi gazillionares who elbow and foot-stomp into buffet lines I won't document for you. )&lt;br /&gt;&lt;br /&gt;Benjamin Zander, conductor of the Boston Philharmonic Orchestra. He lead a very exciting session titled "Managing Complexity: A Different Approach." Mitchell and I sorta kinda stumbled into this one, and were immediately entranced. He was leading an accomplished quartet through an interpretation of Mozart with a great deal of humor, jumping up and down, leading astray and back, and fun.&lt;br /&gt;&lt;br /&gt;As he was doing this he dashed back and forth across the Congress Center's main hall scribbling madly on various large notepads.&lt;br /&gt;&lt;br /&gt;I think his message, that a simple and difficult attitude shift from "what must I do to kill these goals off" to "what can I contribute?" has got to me one I pick up. The programmer psychology is so much "goal.goal.goal" with a tied in reward system for those little stinky goals that one spends a lot of time down in the pit. The trick has to be to have the second outlook - "what can I contribute" utilize the skills of the first - and step back up when done. If you ever get a chance to hear him speak don't miss it.&lt;br /&gt;&lt;br /&gt;Mitchell and I are still practicing his gesture for acknowldeging mistakes: you must stand up, raise your hands over your head and yell "How Marvelous!" It shakes off the stigma and the laughter wipes some of the slate clean.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://benjaminzander.com/"&gt;http://benjaminzander.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-2199012931291704192?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=2199012931291704192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/2199012931291704192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/2199012931291704192'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/02/interesting-speakers-from-davos-i.html' title='Interesting speakers from Davos I: Benjamin Zander'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-2108939494365133056</id><published>2009-01-23T08:32:00.000-08:00</published><updated>2009-01-23T08:39:49.879-08:00</updated><title type='text'>Munich soon</title><content type='html'>I'll be in Munich for a few days, riding my wife's coat-heels to the &lt;a href="http://www.dld-conference.com/"&gt;Digital, Life, Design&lt;/a&gt; (DLD) conference. I'm really looking forward to it! This conference precedes the World Economic Forum's annual meeting in Davos. I've been hearing about DLD for a few years now and frankly the DLD looks to be filled with more of my kind of people ;)&lt;br /&gt;&lt;br /&gt;I've never been to Munich; perhaps the airport once or twice. Does the Lazy Web have any suggestions for Casey's Munich wanderings?&lt;br /&gt;&lt;br /&gt;I have a waterproof GPS loaded with data and good boots!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-2108939494365133056?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=2108939494365133056' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/2108939494365133056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/2108939494365133056'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/01/munich-soon.html' title='Munich soon'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-3223242065524943112</id><published>2009-01-21T13:57:00.001-08:00</published><updated>2009-01-21T14:07:45.983-08:00</updated><title type='text'>pondering WebappToolServlet</title><content type='html'>In my intermittent work on the Sakai tool side, using the Eclipse Sakai plugin, I have seen references to WebappToolServlet in the generated web.xml.&lt;br /&gt;&lt;br /&gt;Clearly it's the first stage in handling requests. Stuff worked so I haven't worried about it. However I poked around a bit and found this:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;WebappToolServlet is a CARET invention (pace Andrew Thornton)&lt;br /&gt;that was created to allow other Java view technologies than JSF&lt;br /&gt;to work in the Sakai dispatching environment.&lt;br /&gt;[snip - &lt;span style="font-style: italic;"&gt;about going to conferences where all this is discussed - casey&lt;/span&gt;]&lt;br /&gt;Without WebappToolServlet the context path part of the URL will&lt;br /&gt;be mapped incorrectly, as well as various other parts of the&lt;br /&gt;request object being empty. This correction cannot be made with&lt;br /&gt;a simple filter, since on initial entry to the context there is&lt;br /&gt;no valid URL.&lt;br /&gt;Yes, Spring is meant to avoid all dependence on the container, but&lt;br /&gt;this is plain JSPs here. This is no kind of supported option in&lt;br /&gt;Sakai - you are basically "on your own" - although I'm&lt;br /&gt;sure the few folks that have done JSP work in Sakai (Andy, Ian)&lt;br /&gt;will be glad to help you out.&lt;br /&gt;The supported/recommended option in Sakai until now has been JSF,&lt;br /&gt;which is what the dispatching environment was designed for.&lt;br /&gt;We are expecting a transition to RSF underway over these few&lt;br /&gt;months.&lt;br /&gt;The most direct step towards sanity you could take if you insist&lt;br /&gt;on sticking with JSPs is to move to SpringMVC. This defines&lt;br /&gt;various taglibs that should let you resolve beans as variables.&lt;br /&gt;As a "framework" it's pretty useless however (naturally I would&lt;br /&gt;say that...)&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;whcih explains enough for me. Since I just want to use something to bootstrap the GWT stuff and move forward I'll no longer ponder WebappToolServlet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-3223242065524943112?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=3223242065524943112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/3223242065524943112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/3223242065524943112'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/01/pondering-webapptoolservlet.html' title='pondering WebappToolServlet'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1903557729215501484.post-1567767715133223036</id><published>2009-01-21T10:31:00.001-08:00</published><updated>2009-01-21T10:31:23.129-08:00</updated><title type='text'>DayOfService-2009-01-19</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt;&lt;a href="http://www.flickr.com/photos/badubadu/3211438057/" title="photo sharing"&gt;&lt;img src="http://farm4.static.flickr.com/3459/3211438057_af5485bf5c_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;&lt;a href="http://www.flickr.com/photos/badubadu/3211438057/"&gt;DayOfService-2009-01-19 14-58-28&lt;/a&gt;&lt;br /&gt;Originally uploaded by &lt;a href="http://www.flickr.com/people/badubadu/"&gt;badubadu&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;The crew stretches down behind the point where this picture was taken.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1903557729215501484-1567767715133223036?l=caseyd.badubadu.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1903557729215501484&amp;postID=1567767715133223036' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/1567767715133223036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1903557729215501484/posts/default/1567767715133223036'/><link rel='alternate' type='text/html' href='http://caseyd.badubadu.com/2009/01/dayofservice-2009-01-19.html' title='DayOfService-2009-01-19'/><author><name>caseyd</name><uri>http://www.blogger.com/profile/04300134153852463042</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17593549291387857164'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>