<?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-12275906</id><updated>2011-12-04T06:15:12.319-08:00</updated><category term='babble'/><category term='astronomy'/><category term='tools'/><category term='sysadmin'/><category term='movies'/><category term='web'/><category term='books'/><category term='stuff'/><category term='poker'/><category term='freelancing'/><category term='scrap'/><category term='privacy'/><category term='projects'/><category term='art'/><category term='boat'/><category term='simpatico'/><category term='analytics'/><category term='gear'/><category term='coffeeshop'/><category term='firefox'/><category term='jni'/><category term='psychology'/><category term='iphone'/><category term='css'/><category term='keylogger'/><category term='celebrity'/><category term='family'/><category term='sun'/><category term='keyboard'/><category term='video'/><category term='natalie portman'/><category term='email'/><category term='eclipse'/><category term='webdev'/><category term='review'/><category term='c++'/><category term='xp'/><category term='rant'/><category term='utility'/><category term='humor'/><category term='sites'/><category term='motorcycle'/><category term='business'/><category term='olpc'/><category term='java'/><category term='animation exposition'/><category term='consumerism'/><category term='hci'/><category term='vmware'/><category term='security'/><category term='language'/><category term='registrar'/><category term='philosophy'/><category term='computers'/><category term='networking'/><category term='gui'/><category term='style'/><category term='movie'/><category term='thinkpad'/><category term='patent'/><category term='android'/><category term='injustice'/><category term='people'/><category term='discover'/><category term='desktop'/><category term='opinion'/><category term='proaudio'/><category term='mac'/><category term='accelerometer'/><category term='design'/><category term='america'/><category term='renounce'/><category term='fun'/><category term='china'/><category term='project'/><category term='chess'/><category term='love'/><category term='account'/><category term='widget'/><category term='forsale'/><category term='svn'/><category term='google'/><category term='media'/><category term='mail'/><category term='proxy'/><category term='mistake'/><category term='javascript'/><category term='drugrep'/><category term='ec2'/><category term='social'/><category term='environment'/><category term='midi'/><category term='inspiration'/><category term='java me'/><category term='adobe air'/><category term='meditation'/><category term='techtips'/><category term='gpl'/><category term='snark'/><category term='gifts'/><category term='opensource'/><category term='trees'/><category term='amazon'/><category term='internet'/><category term='spirit'/><category term='want'/><category term='windows'/><category term='nz'/><category term='physics'/><category term='productivity'/><category term='piano'/><category term='usability'/><category term='hardware'/><category term='science'/><category term='web20'/><category term='konfabulator'/><category term='idea'/><category term='oss'/><category term='tech'/><category term='util'/><category term='stress'/><category term='personal'/><category term='law'/><category term='usb'/><category term='photography'/><category term='process'/><category term='howto'/><category term='politics'/><category term='programming'/><category term='culture'/><category term='webdesign'/><category term='music'/><category term='games'/><category term='lifehacker'/><category term='happy'/><category term='blog'/><category term='utils'/><category term='widgets'/><category term='netbeans'/><category term='life'/><category term='gripe'/><category term='economics'/><category term='energy'/><category term='blogosphere'/><category term='wisdom'/><category term='food'/><category term='web dev'/><category term='bookmark'/><category term='ocaml'/><category term='writing'/><category term='data'/><category term='warning'/><category term='have'/><category term='gmail'/><title type='text'>JavaJosh Blog</title><subtitle type='html'>Fascinated with the world.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default?start-index=101&amp;max-results=100'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>673</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-12275906.post-3053881466214623218</id><published>2011-08-02T19:38:00.001-07:00</published><updated>2011-08-02T19:58:43.417-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='piano'/><title type='text'>A couple of songs</title><content type='html'>&lt;p&gt;(Click on the links to play. Blogger doesn't host MP3s so I'm using box.net).&lt;/p&gt;&lt;p&gt;I'm rather proud of these pieces, even if they are one-off doodles.&lt;/p&gt;&lt;p  style="text-align: center;  color: rgb(255, 0, 0);font-family:trebuchet ms;"&gt;&lt;span style="font-size:130%;"&gt;&lt;a href="http://www.box.net/shared/lj48oo5rdq0r4rasrkgr"&gt;No Expectations (aka "wheat") &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;In this piece I was playing with a few melody ideas, and one new left-hand idea: a quick 3-chord descending progression that I never used before. My right hand got inspired by the newness of what the left was doing, and this is the result.&lt;br /&gt;&lt;/p&gt;&lt;p  style="text-align: center; font-family:trebuchet ms;"&gt;&lt;span style="font-size:130%;"&gt;&lt;a href="http://www.box.net/shared/mazg4dhsuul35phvuc3l"&gt;A Mood&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This piece is a lot more intense, and far more textured. Might make good background in an intense movie scene. I don't think I could do this on an acoustic piano because I'm holding the sustanuto pedal down the whole time, relying on the piano's polyphany limits to reduce the mushiness. I was intentionally trying to be repetative, at least in the beginning, but I hear a lot of nice variation anyway. The variation is more rhythmic than tonal, although there is some interesting melody/harmony stuff after the mid-track dynamic shift.&lt;/p&gt;&lt;p&gt;I'm proud of both pieces, and this is the first time I've publically posted anything to the internet. Anyone who's heard me play knows that this is basically what I do: I compose on-the-fly.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-3053881466214623218?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/3053881466214623218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=3053881466214623218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3053881466214623218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3053881466214623218'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2011/08/couple-of-songs.html' title='A couple of songs'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-7023789466844771703</id><published>2011-08-02T19:32:00.001-07:00</published><updated>2011-08-02T19:32:13.402-07:00</updated><title type='text'>Finally got around to putting up a company site.</title><content type='html'>&lt;p&gt;Well, I finally got around to putting &lt;a href="http://javajosh.com"&gt;&lt;em&gt;something&lt;/em&gt; online for JavaJosh Enterprises&lt;/a&gt;. I had a static page up for a long time, decided to take it down and didn't replace it with anything. Well, now it's done. I went with the easiest possible solution, which is Wordpress on a VPS. The more &lt;em&gt;familiar&lt;/em&gt; solution would have been hand-written JSPs running on GAE/J. However, Google has never made it easy to point custom domain names to your GAE applications, imposing arbitrary restrictions to boot. Besides, it's probably not the best thing to have to redeploy every time I want to change content.&lt;/p&gt;&lt;p&gt;Yes, there are some &lt;a href="http://code.google.com/p/vosao"&gt;GAE/J hosted CMSes&lt;/a&gt;. Heck, I even wrote the beginnings of one myself (not published, but based on a really simple JSON/Datastore proxy I wrote in like one page of JSP). But Wordpress has some secret sauce. What is the sauce? Primarily, great designs. Good web design is really hard, and love it or hate it, Wordpress provides great designs in an easily redistributable package ready for your content. The second secret sauce of course, is that it adds through-the-web editing of site content. All you have to do is set it up.&lt;/p&gt;&lt;p&gt;(Wordpress has it's downsides too. Personally, I'm not a fan of the LAMP architecture in general, and PHP is not not the nicest language. But the real problem with WP is something that has nothing to do with LAMP or PHP, and in fact is shared with a lot of modern web architectures:&amp;nbsp; HTML designs must be crammed into templates. That is unncessary and costly, and eventually I think most web app frameworks will move to a templates-free structure.)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-7023789466844771703?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/7023789466844771703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=7023789466844771703' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7023789466844771703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7023789466844771703'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2011/08/finally-got-around-to-putting-up.html' title='Finally got around to putting up a company site.'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-361834833709269868</id><published>2011-07-22T16:47:00.001-07:00</published><updated>2011-07-22T16:47:20.264-07:00</updated><title type='text'>Dance with Dragons: an Index (spoilers)</title><content type='html'>&lt;p&gt;3    Prologue    Scary Skinchanger &amp;amp; Others vignette&lt;br /&gt; 16    Tyrion      Voyage to Pentos and Ilyirio&lt;br /&gt; 31    Daenerys    Ruling Mereen; Drogon murders a child&lt;br /&gt; 46    Jon         Difficult dealings with Stanis over defeated Wildings&lt;br /&gt; 60    Bran        North of the Wall with Jojen, Meera, Hodor and Coldhands, looking for "Three-Eyed Crow"&lt;br /&gt; 71    Tyrion      Leaving in Pentos with Ilyrio&lt;br /&gt; 83    The Merchant's Man  (Quentyn)   Quentyn Martell quest for Daenerys' hand seeks passage Volantis to Mereen&lt;br /&gt; 95    Jon         Kills Janos Slynt&lt;br /&gt; 112    Tyrion      Leaving Ilyrio with Duck, Haldon &amp;amp; Griff on a river journey&lt;br /&gt; 123    Davos       Marooned at Sweetsister by Sallador Saan&lt;br /&gt; 134    Jon         Executes Mance Rayder; Melisandre destroys horn of Jaromun; the wildings come through the Wall.&lt;br /&gt; 148    Daenerys    Dealing with insurrection at Mereen "Sons of Harpy"; two dragons in chains&lt;br /&gt; 161    Reek        (Theon Greyjoy) Theon has been tormented by Ramsay Bolton; used to legitamize marriage to fake Arya&lt;br /&gt; 169    Bran        Meeting with Greenseer!&lt;br /&gt; 179    Tyrion      Bonding with sellsword companions over games and learning.&lt;br /&gt; 192    Davos&lt;br /&gt; 203    Daenerys&lt;br /&gt; 218    Jon&lt;br /&gt; 232    Tyrion&lt;br /&gt; 243    Davos&lt;br /&gt; 253    Reek        (Theon Greyjoy)&lt;br /&gt; 267    Jon&lt;br /&gt; 276    Tyrion&lt;br /&gt; 293    Daenerys&lt;br /&gt; 306    The Lost Lord   (Griff/Tyrion)&lt;br /&gt; 320    The Windblown   (Quentyn)&lt;br /&gt; 332    The Wayward Bride   (Asha Greyjoy)&lt;br /&gt; 351    Tyrion&lt;br /&gt; 372    Jon&lt;br /&gt; 382    Davos&lt;br /&gt; 395    Daenerys&lt;br /&gt; 407    Mellisandre&lt;br /&gt; 420 Reek    (Theon Greyjoy)&lt;br /&gt; 434    Tyrion&lt;br /&gt; 448    Bron&lt;br /&gt; 461    Jon&lt;br /&gt; 473    Daenerys&lt;br /&gt; 484    The Prince of Winterfell    (Theon Greyjoy)&lt;br /&gt; 500    The Watcher (Balon Swan)&lt;br /&gt; 514    Jon&lt;br /&gt; 524    Tyrion&lt;br /&gt; 549    The King's Prize    (Asha Greyjoy)&lt;br /&gt; 564    Daenerys&lt;br /&gt; 579    Jon&lt;br /&gt; 593    The Blind Girl  (Arya Stark)    We follow her training as a Facedancer&lt;br /&gt; 605    A Ghost in Winterfell   (Theon Greyjoy) Mysterious murders at Winterfell.&lt;br /&gt; 618    Tyrion      Sold as a slave with Penny at an auction by Yunkish outside the gates of Mereen&lt;br /&gt; 632    Jaime       Wrapping up the war at Riverrun; taking hostages; meeting with Brienne of Tarth&lt;br /&gt; 647    Jon&lt;br /&gt; 661    Daenerys&lt;br /&gt; 673    Theon       Escapes?!&lt;br /&gt; 687    Daenerys    Jumps on Drogon and flies away from Mereen&lt;br /&gt; 700    Jon         Dealing with Wildings&lt;br /&gt; 717    Cersei&lt;br /&gt; 730    The Queensguard (Bold Barristan)    Barristan gets wise to intrigue&lt;br /&gt; 741    The Iron Suitor ()&lt;br /&gt; 754    Tyrion  Escapes from Yezzan&lt;br /&gt; 769    Jon&lt;br /&gt; 783    The Discarded Knight    (Bold Barristan)    Baristan takes charge&lt;br /&gt; 793    The Spurned Suitor  (Quentyn Martell)   Plots to ride one of Daeny's dragons&lt;br /&gt; 801    The Griffin Reborn  (John Connington)&lt;br /&gt; 814    The Sacrafice   (Asha Greyjoy)&lt;br /&gt; 827    Victarion&lt;br /&gt; 835    The Ugly Little Girl    (Arya Stark)    Arya's first assasination as a Facedancer&lt;br /&gt; 848    Cersei  The former queen is run through Kings Landing naked to atone for her crimes.&lt;br /&gt; 860    Tyrion  Signs on to the Second Sons; Promises Pentos and plots to turn them against the Yunkai&lt;br /&gt; 872    The Kingbreaker (Bold Barristan)    Barristan captures the king on suspicion of plotting.&lt;br /&gt; 887    The Dragontamer (Quentyn Martell)   Quentyn is mortally burned by a dragon.&lt;br /&gt; 899    Jon Stabbed at least 4 times in treacherous betrayal. Probably dead.&lt;br /&gt; 914    The Queen's Hand    (Bold Barristan)&lt;br /&gt; 929    Daenerys&lt;br /&gt; 940    Epilogue    (Kevan Lannister)   Varys murders Kevan to destabilize Westeros for Daeny's imminent reconquest.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-361834833709269868?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/361834833709269868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=361834833709269868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/361834833709269868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/361834833709269868'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2011/07/dance-with-dragons-index-spoilers.html' title='Dance with Dragons: an Index (spoilers)'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-389478246231010466</id><published>2011-06-17T15:32:00.001-07:00</published><updated>2011-06-17T15:32:34.860-07:00</updated><title type='text'>Tim Bray on Web vs Native</title><content type='html'>&lt;p&gt;Tim Bray wrote &lt;a href="http://www.tbray.org/ongoing/When/201x/2011/06/14/Native-vs-Web"&gt;a little blog post on Web vs. Native apps&lt;/a&gt; and makes a really important point: actually, all apps these days use the web. The only distinction is the execution environment.&lt;/p&gt;&lt;p&gt;I wrote a &lt;a href="http://www.tbray.org/ongoing/When/201x/2011/06/14/Native-vs-Web#c1308277511.114527"&gt;comment&lt;/a&gt; where I noted he missed a very important property that webapps mix well together. The same cannot be said for Android or iOS apps. Native apps can pull in resources just as well as webapps, but they don't do mashups. The data-structure of the web-interface, the DOM, is understood well enough that you can enable collaboration between programs.&lt;/p&gt;&lt;p&gt;After I posted this comment it occurred to me that this common format, the DOM, makes certain UI consistent across applications in a way that native apps don't achieve. You can select any text content, for example. You can zoom in and out of a webapp. You can send people links to parts of a webapp (maybe).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-389478246231010466?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/389478246231010466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=389478246231010466' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/389478246231010466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/389478246231010466'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2011/06/tim-bray-on-web-vs-native.html' title='Tim Bray on Web vs Native'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-808969949308697225</id><published>2011-05-01T12:46:00.001-07:00</published><updated>2011-05-01T12:46:18.743-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Edge cases: bookmarklets don't work on non-HTML pages?</title><content type='html'>&lt;p&gt;Consider this &lt;a href="http://www.itu.dk/courses/BPRD/E2010/religion.txt"&gt;funny post&lt;/a&gt;. It's plain text. If you try to run a bookmarklet (like "Share in Google Reader"), it will fail because there is no DOM to modify. Not really sure there is a work-around, but it's an interesting edge case to keep in mind, both for bookmarklet writers and publishers (who may want to avoid serving non-HTML content to user agents).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-808969949308697225?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/808969949308697225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=808969949308697225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/808969949308697225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/808969949308697225'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2011/05/edge-cases-bookmarklets-don-work-on-non.html' title='Edge cases: bookmarklets don&amp;#39;t work on non-HTML pages?'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-2480920617868075373</id><published>2011-05-01T11:39:00.001-07:00</published><updated>2011-05-01T11:39:51.020-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='happy'/><category scheme='http://www.blogger.com/atom/ns#' term='stuff'/><title type='text'>SMS is new Telegram. Stop.</title><content type='html'>&lt;p&gt;Watching &lt;a title="Jeeves and Wooster at Wikipedia" href="http://en.wikipedia.org/wiki/Jeeves_and_Wooster" target="_self"&gt;Jeeves &amp;amp; Wooster&lt;/a&gt;. Struck by telegram silimarity to SMS. Telegram less convenient, far slower, much more classy.&lt;/p&gt;&lt;p&gt;Length contstraint makes brain express self succinctly. Enjoy observed connection with past.&lt;/p&gt;&lt;p&gt;"Forgive me for sending you this long letter. I did not have time to write you a short one." - Blaise Pascal&lt;/p&gt;&lt;p&gt;Stop.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-2480920617868075373?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/2480920617868075373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=2480920617868075373' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/2480920617868075373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/2480920617868075373'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2011/05/sms-is-new-telegram-stop.html' title='SMS is new Telegram. Stop.'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-3228219134991907838</id><published>2011-04-29T11:24:00.001-07:00</published><updated>2011-04-29T11:42:08.552-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='economics'/><category scheme='http://www.blogger.com/atom/ns#' term='culture'/><category scheme='http://www.blogger.com/atom/ns#' term='philosophy'/><category scheme='http://www.blogger.com/atom/ns#' term='energy'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>The most important fact of your existence.</title><content type='html'>&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://www.theoildrum.com/node/7853?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+theoildrum+%28The+Oil+Drum%29"&gt;The Oil Drum | Time to Wake Up: Days of Abundant Resources and Falling Prices Are Over Forever&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The purpose of this, my second (and much longer) piece on resource limitations, is to persuade investors with an interest in the long term to change their whole frame of reference: to recognize that we now live in a different, more constrained, world in which prices of raw materials will rise and shortages will be common.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Jeremy Grantham is part of the monied elite, CIO of a $106 billion investment firm. And here he writes about a vast economic inflection point that we are currently experiencing. This reflects my own observations, and is perhaps the most important fact of modern life. The entire article is of value not only for building a compelling case for the reality of the inflection point, but for highlighting the reasons for it, the reasons why it is ignored, and the lessons we &lt;em&gt;should&lt;/em&gt; be taking from it.&lt;/p&gt;&lt;p&gt;The key point is that we live in a time of unprecedented abundance. If we want to continue living in abundance and not experience a painful contraction, then we need to use this windfall wisely: to produce replacement energy sources which are sustainable.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;To realize how threatening it would be to start to run out of cheap  hydrocarbons before we have a renewable replacement technology, we have  only to imagine a world without them. In 17th and 18th century Holland  and Britain, there were small pockets of considerable wealth, commercial  success, and technological progress. Western Europe was just beginning  to build canals, a huge step forward in transportation productivity that  would last 200 years and leave some canals that are still in use today.  With Newton, Leibniz, and many others, science, by past standards, was  leaping forward. Before the world came to owe &lt;img src="http://www.theoildrum.com/files/Exhibit%206.PNG" alt="" /&gt;much to hydrocarbons,  Florence Nightingale &amp;ndash; a great statistician, by the way &amp;ndash; convinced the  establishment that cleanliness would save lives. Clipper ships were soon  models of presteam technology. A great power like Britain could muster  the amazing resources to engage in multiple foreign wars around the  globe (not quite winning all of them!), and all without hydrocarbons or  even steam power. Population worldwide, though, was one-seventh of  today&amp;rsquo;s population, and life expectancy was in the thirties.&lt;/p&gt;&lt;p&gt;But there was a near fatal flaw in that world: &lt;span style="text-decoration: underline;"&gt;a looming lack of wood&lt;/span&gt;.  It was necessary for producing the charcoal used in making steel, which  in turn was critical to improving machinery &amp;ndash; a key to progress. (It is  now estimated that all of China&amp;rsquo;s wood production could not even  produce 5% of its current steel output!) The wealth of Holland and  Britain in particular depended on wooden sailing ships with tall,  straight masts to the extent that access to suitable wood was a major  item in foreign policy and foreign wars. Even more important, wood was  also pretty much the sole producer of energy in Western Europe. Not  surprisingly, a growing population and growing wealth put intolerable  strains on the natural forests, which were quickly disappearing in  Western Europe, especially in England, and had already been decimated in  North Africa and the Near East. Wood availability was probably the most  limiting factor on economic growth in the world and, in a  hydrocarbonless world, the planet would have hurtled to a nearly  treeless state. Science, which depended on the wealth and the surpluses  that hydrocarbons permitted, would have proceeded at a much slower  speed, perhaps as little as a third of its actual progress. Thus, from  1800 until today science might have advanced to only 1870 levels, and,  even then, advances in medicine might have exceeded our ability to feed  the growing population. And one thing is nearly certain: in such a  world, we would &lt;span style="text-decoration: underline;"&gt;either&lt;/span&gt; have developed the discipline to stay within our ability to grow and protect our tree supply, &lt;span style="text-decoration: underline;"&gt;or&lt;/span&gt; we would eventually have pulled an Easter Island, cutting down the last  trees and then watching, first, our quality of life decline and then,  eventually, our population implode. Given our current inability to show  discipline in the use of scarce resources, I would not have held my  breath waiting for a good outcome in that alternative universe.&lt;/p&gt;&lt;p&gt;But in the real world, we do have hydrocarbons and other finite  resources, and most of our current welfare, technology, and population  size depends on that fact. Slowly running out of these resources will be  painful enough. Running out abruptly and being ill-prepared would be  disastrous.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;If you want to read about the effects of a contraction, written in a realistic if chilling way, read &lt;a href="http://en.wikipedia.org/wiki/The_Windup_Girl"&gt;The Windup Girl&lt;/a&gt; by Paolo Bacigalupi. That is not a world in which I personally would want to live.&lt;/p&gt;&lt;p&gt;Realistically, what can we do? First, lets stop burning incredible quantities of resources and lives in pointless wars. The fact is we are vulnerable to terrorism, it's time to just learn to live with it. Second, let's stop burning resources on mindless consumerism. We don't just burn resources like money, but the producers burn resources on engineering and marketing - people fritter away their days in cubicles making products that rational people wouldn't want. Alas, this is a cultural problem and so difficult to fix, but I personally have hope. Third, perhaps the single most important way to reduce demand for oil is to let people work from home. Indeed, we need to &lt;em&gt;require&lt;/em&gt; that a larger fraction of the workforce work from home. (Critical to this is ubiquitous and cheap internet - which needs to be a public utility.) Last and not least, we need to stop getting distracted from the big problems by all the little problems. A good first cut at that problem would be to simplify everyone's lives with a flat tax, and a new law requiring that all legislation passed by congress be read aloud (and heard) by all members before being voted on - the idea being that short legislation is good legislation.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-3228219134991907838?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/3228219134991907838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=3228219134991907838' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3228219134991907838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3228219134991907838'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2011/04/most-important-fact-of-your-modern.html' title='The most important fact of your existence.'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-7135060739873575740</id><published>2011-04-28T16:24:00.001-07:00</published><updated>2011-04-28T16:26:28.355-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='happy'/><category scheme='http://www.blogger.com/atom/ns#' term='philosophy'/><category scheme='http://www.blogger.com/atom/ns#' term='writing'/><title type='text'>Silence The Great Critic</title><content type='html'>&lt;p&gt;The Great Critic has sat in patient judgement over the thoughts, opinions, and art of countless generations of thinkers and artists. He observes everything ever produced, and renders his judgement in a universal language that has always been understood, and will always be understood.&lt;br /&gt;&lt;br /&gt;The Great Critic is nothing less, and nothing more, than Silence. (If you add a comma to the title of the post, you will see it is "Silence, the Great Critic.")&lt;br /&gt;&lt;br /&gt;When we create and share our work and receive no reaction, none whatsoever, that is the sound of the Great Critic, and it is not easy criticism to hear. When the Great Critic has passed judgement, over and over again, on your life's work, it is hard not to think that he is also passing judgement on your life.&lt;br /&gt;&lt;br /&gt;But, life itself is loud, and The Great Critic cannot pass judgement on life itself. There is never a moment when his stinging judgement can be heard. There is always, at least, the breath. The beating of your heart. So, even if the Great Critic has been harsh about your writing or your work, take heart and listen to the resounding non-silence which is your life, and rejoice.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-7135060739873575740?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/7135060739873575740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=7135060739873575740' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7135060739873575740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7135060739873575740'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2011/04/great-critic.html' title='Silence The Great Critic'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-822118266120988198</id><published>2011-04-14T11:46:00.000-07:00</published><updated>2011-05-18T15:34:32.438-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Why we deserve President Donald Trump</title><content type='html'>&lt;p&gt;&lt;a href="http://www.cnbc.com/id/42570045"&gt;&lt;/a&gt;&lt;a class="rg_l" style="width: 105px; height: 105px; margin-top: 0px; margin-left: 0px;" href="http://www.google.com/imgres?imgurl=http://esquaredfashion.co.za/wp-content/uploads/2009/03/trump.jpg&amp;amp;imgrefurl=http://esquaredfashion.co.za/2009/03/31/badmitron-the-donald-trump-lookalike/&amp;amp;usg=__0-UheL6OPGT5__KcFC3uC2JsTuM=&amp;amp;h=375&amp;amp;w=375&amp;amp;sz=63&amp;amp;hl=en&amp;amp;start=2&amp;amp;sig2=mZRIz7a2IFR_1kCbsbddpw&amp;amp;zoom=1&amp;amp;tbnid=P4BknAtF--CquM:&amp;amp;tbnh=122&amp;amp;tbnw=122&amp;amp;ei=0uq5Ta2ZEOfXiALjk8DuDw&amp;amp;prev=/search%3Fq%3Dtrump%26hl%3Den%26safe%3Doff%26client%3Dfirefox-a%26hs%3DZIv%26sa%3DX%26rls%3Dorg.mozilla:en-US:official%26biw%3D882%26bih%3D179%26tbm%3Disch%26prmd%3Divnscubm&amp;amp;itbs=1"&gt;&lt;img class="rg_i" style="width: 105px; height: 105px; display: inline; float: left;" src="data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAdHx8kKDQsJCYxJx8fLT0tMTU3Ojo6Iys/RD84QzQ5Ojf/2wBDAQoKCg0MDRoPDxo3JR8lNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzf/wAARCACLAIsDASIAAhEBAxEB/8QAHAAAAgIDAQEAAAAAAAAAAAAAAAYEBQEDBwII/8QAQRAAAgEDAgMFBAcECAcAAAAAAQIDAAQRBRIGITETIkFRYXGBkaEHFBUyQrHBI2Jy0RY0UoKS4fDxJENEc5Oisv/EABkBAAMBAQEAAAAAAAAAAAAAAAABBAIDBf/EACMRAAMAAgMAAQQDAAAAAAAAAAABAgMREiExQRMyM1EEFCL/2gAMAwEAAhEDEQA/AOy0UUUxaCiiigNBWKzRQAV4eREHeYCoWr6klhF5yN0Hl6mk271i9mYtFNGvXl1NccmZT0bmGx5e9jUfi+FaftODP4vhXOW1y5VsT5B9TgH51Ki1VnA3nGfDdiuP9ijp9JHQo723k6SYPqMVIBBGRzHnXORqBU5WVlPhzyP5Vc6RrewhZHDA8jj/AFyrc/yP2J4v0NtFeIZVmjDocqa91T72cQooqLqt9FpunT3k4cxxLk7F3HyHzNAEK5UPNM2M5Na+wB54pTn46Cuyw6XKc8x2koX8s1o/p/OOX2Un/n/yrPOQ4s6fRWKK0Bk0UVigDOa1XVxHa28k8pwkaliR+nr4VsrmfG/GIuXbTLGREgVh2k7fjI8APSsXSlDlbZA17X3vLp3kRmJP3AQFQDoDVUt4kvd2bWPxrTHAzMGwxz1eTAA9gz19tW9laW/RAJGPkv51Fxbe2VLogLFNKQsUkrt5IeQ9pqXDol1ndK5B8t1XlvbxW6lnAHpUXVNcS0AVYe09N2M+yjikdCuubG4gGd5wBVM95dQuMOVweRx0qfb8UW13I6bXiYZ/ZSc8j217mWCUEBMswyB6UOUb+Bo4T1u8s7xbLU0zHIQEkHQ+VdBByARVHolpaXek2UxjRn7JQWx4gYNXaDAAqzHLSPPp9nqln6RLi5t+GJ/qqIzSukbM7YCgnOehz0x4daZqWvpBiM/DpjBILXEWMe2t14KfTh1zc3huXj7SEEHmRGSR/wC1VbavfhiO2i90f+dNP2HbNa3dzKheVJJVA38sqeXL31QWlnpklur3DdnIc5UtjHP21Okzs2vg+n6KKzVJwMUVmsUCNGoF1sLpo+biF9o8ztOK+fPqUh1GyN2dxlZX2t+LI3Y/IYr6K6ggjIrl/E2nxi+7SEqGh7yEfu4rjm8R2xP/AEUEVlDa3NnZxrK87x7peXdBPiT1znkKaLWNoLduyi3eHKoQuLFTvabZcqVkJJC4AH3efXkTVkbgxKcjH7o6CuJXS7PEkH1iEiVyjEdKVNY4Yjl+7ZCdj1mE5WT50wXl2JCCGIIqtuNWaGMljyHhjNC6Hx2VekcICGVZbncyYwI2fdj31UcW2l5Za8xtg5t2jVgqPgjz6+yrmHimGwuy+opc9ozbViVe6i+ZPma3vqmm6/dxvHD2jKwQEjnzPQUxNaR0ngGzls+F7Mzh1lmRZWDnJG4Z/LFMWayAqDao5DkKOVVpaR57e2GTSz9IVvJdcNyRxTPE3bRnKYBPPpnw8+XlTPypb+kGWWDhe4ktx+0WSPBwDjvDz9tKvGOfTkUfCUVxBNdSSyHYJGwWYnK+ufGly3srV4VZo1yc9ZD5+2r6W815VdI7gx2zs2QMYO7G7ntzz+VVEFhO8QZJbYqScEhs9alb6KJXbPpvJrOaxgnoKKsJTOaM+XOq3XNc07QrNrrUrgRLz2J1eQ+Sr1P5eZrinGf0kaprPaW1mWsrE5HZxt35B+836Dl7aQzq/F/GekcOWv8AxUgnuXB7O2iIYn+LwA9tc24Z1qXjTiaePu28i2jssQ+6cMMc/fXKZJ3Iw3UGrjgXXP6PcVWGouSIVk2T/wDbbk3w6+6s1Kr00m0dal0+CW4Vp4wTE3eVl6Ef7VE1K9kM7KpwPDFN/F2nl4jqdkQTt/bBfxr4N7R+VJcLRyq5JBbpU9y5eiyLVLZHDMxJbpWpDF9Y7S5YLDH3iWPIevurdNjdtHLlS/xBaXV/pbRWau7mVcxp1ZcH488cqyltmm9LZu1/iKxvrV/qtk9zbp9+bcB8uvyqx+jHTl1LiO3liiK28WLh1PgFAwP8WK59p+h3Qu2F7E9ukQDMJFKls9BX0T9HegjRtEWWVNtzd4kcY5omO6vwOfafSuyhOtHCsj49jXmsZqNY3sV8kzQhwIpWibcMcx191Sa7kwVRcbMicO3DS/cDx7un9oedXtUHHMQl4ZuVK7u9Hgf3xSfjGvTlT6zpyWcluzHfvkKsGXGDjHPPpSfDfdnHsO04JHJh501Pb5mYGLJHLJfyIHT5Vqht4ZU37VOScnb61G3pdlErbeh1v+Imu7q1kvnUNEe61u7qkhyDtZc5XB5fyqFq/wBKclhava2kcVzeB2zc5JjUE5GB4kZI64wB1pA4u4haO5nsbCYsm4h2HT1ApMeRnOWYk1TO/WTjHrHEV9ql09ze3LTTN1ZufuHkPQcqpp7qRuhz7aiBmHiaCxNaAGJY5PWsUUUAfQH0V8R/bXCaWlw+65sf2D7urJjuH4DH901Q8QRHRtUmCcreXvJ6HxFJH0Z62dG4ohV2xb3g7CTJ5ZJ7p9xwPea6pxhYfaFg2B3hzXl0NNyqkcW4exStNRildt7AAjGc1F1ZbqD+rJHPC5yyFsE1SaVoWranrKaXZqFmckhpCQoA6knnyp70/wCi/iUXG261SwSFfxL2khI/h2j86nWOtlSzT8mOAtBfXNVjuLy3CWltiWRS27e34VJ9cfAHzrsi/eHtqr4e0eDQ9OS0t3aRgd0krjvO3TPp6Ctupanb2MTdrKBLtO1F5sT7K7xPFE2S+VbKzguTtba+Of8Aqnf4mmHFLWmavFEAxRERwN+wAflV7cXcUMIkLgggFf3s+VKaWhOGmb5GVEZ3OFUZJNJfF/ElubKa0RkEpAaMN0LA5ANQeL+MBHbtFA3eJwAvwpduOGbuPSrjUuITiSazmaC1Y8ogNg3N+9hjy8Kw7ddI6rGpW6FuDWdQl7Yi1tGJdsnJOM9R+tVhwh2td2kJ6mM3TZX5VOtEzLI8RVQGJcKOvPHhVLqsMZ1CY4ByRzx6CuG/2dFKfgvEknJ5msUUVWShRRRQAUUUUAZVmVgyEhgcgjwNfQ+kX8OqcOW2oyuiRyQCSRmbCqQO9k+hBr53p94Vkk1Lgq9spZmMFlIS0HgyvzBPnhgceHOnPomWdpxRaLxbb3+mzA29qSGt2VkaaPOWZOeDyHJTz5etdXbiF5NNee0h7eSR3EDiNghUc0JHXBBGTXzzdNptrYwQRI93ey7mBViogyx2KMc88gcevrTfw3rEd3wpaWzrB29tI8bCRfv5XGSfE4Cj/alkrh2IcrfXOItRuZofrtnAixB22IfveKjLAgDpnNThaW0k+D2pJBLETqScZ/lSVBdyWhWSxliSQ24jlJQsCQTjqMdNvzpp4euZbl7m8llZoCOzhUqq55AknA6Z6e+uKyp+DmeTNz2TmctuWG2Tq/Uv6AfrVTxHxIIYhFbll2DagU9B5UyJAZ4juxjzJxVHf8P6bJIZHbB8lfAPurmy+dfIo6Fex2uqwX16RlSDGroSFHTd7vOpXFHEVxqt3Na2159YtZJJIo2ZsDYcenMd320zQWumW2xvq8TFQRvdQTg+FRdck0/U7YWgSFZcgRMqhcEdAceFJbS9ONzTp0JFlDdLPJH9X7fMmA0ZyOfhWq5003E7Su7IzdVMfT51avb39/eTLaSraXU04lMqjJRgSeR6ivcUMpjXtWbf+LpzPnWHU62clkpHL6KyRjxrFXGAooooAKKKKACmj6P7sxapdWR5pfWrxgZ6uo3r/wDJHvpXqZo939Q1azu847GdHPszz+WaaBl4tzYWYlNtBv1VJsxHGcswYDH8O4H1YCpPAKqb690+d3VlG5dvmp2t+Yr2t1Z2N7f3H1Ze009XWFsc5bhzgE+igEjyqg0HUDo2tR3shLKhYOFOS4IIOPzrOeeUaEjqB0u2IO4zPn1A/SmO0jSysUi2kKq5O7r50kcJ6/e8S6+IogttY2y9tKB3mfBAC5PTJ8vAGm69d7hiCQEPJyTjA9tQxjeN7fpRinfZAvtcnGEiUkMcADwFehFdyxBihU+daJ57W3lHZOjufE8wKljUtQvId1uiKi5GBzreyj4KO40zVJjOsskgGP2fZY7x9fKqCDSuIobpHe2kUZxvLghR686vr7if6ncNFdOY5BzIPKt9jrVxqB2xxSdiR3pGXAI9M9aH0tmXXFMskZ41XmhkAwW8z415Haj8afAVLstI1G+529s7J/bbur8TVsvBl8VBa5t1PiO8cfKpljuvgi2fN+0nnR0rLFmOSTXmvVAKKKzmgDFGKyDjpQST1NAGOnWvQbHQV5ooA9PI7nLsT7TXmiigB7+ixmju75gp2sqLkdQeZ+FPt0SxGSEQcwDXNOALw2kl2ME52k4pqub5pe+X2jP3WNSZPuZXj+1E+VbcHOdxPUZ61FuuJItMwkKhDjBUDIqkvr8YwsqrUXRtBu9evV7BC8e7vzuCI1Ht8T6CspbNukl2Mw1a01BN11HA5xnD4Jx76aODdU0+O1mnWyM9wjhYVjjyQMc+Z5AfOly10u1tofq4VJI1bccxjLHngk9TyPTNNvCO1pLmNQAAqkADA6micku1JPkyKlo261r2p70RGFqpjyyx82HM/i+HSoNrsmgWSaXdISdzEkk86xxYQmoovT9kD8zUSzZRbr18fH1NYvJX1GtnI4OemfGvNBor0BBRRRQAUUUUAFFFHjQAUVis0AWOjSXEMs01uSBGgaTHgNwGfiR8asb27uZtOkvdxCLKsanwdiCfkFrVwYol1poJBuimtZ0kU9GHZk4+IB91MPHEEVtwjpCQIEVrliwHiQn+ZrPBN7Nq2losODNN0+5stPu7q2WeWRgZDJlh98jkM48K69cwRw2MixqkaKhACjAFcl4IdhoenYP+t5rsd1/Vpv4TU+F90YbOZNJ3QPGmDgncL653DrECf8Q/nSxNIwbAPKmXg0n7Sl5/8j9RUmH8iA88bADUYjnmYv1qlt5wsKjb0z+dW3H3K/gPj2f60tgkDlj4VrN+RiP/2Q==" alt="" width="105" height="105" /&gt;&lt;/a&gt;&lt;span class="entry-comment-content"&gt;&lt;a href="http://www.cnbc.com/id/42570045"&gt;Ok&lt;/a&gt;. The right (and some on the left,  like &lt;a href="http://en.wikipedia.org/wiki/Rod_Blagojevich"&gt;Blagojevich&lt;/a&gt;) have innovated and profited from the innovation: they've made the startling realization t&lt;/span&gt;&lt;span class="entry-comment-content"&gt;ha&lt;/span&gt;&lt;span class="entry-comment-content"&gt;t &lt;/span&gt;&lt;span class="entry-comment-content"&gt;the public has neither the  attention span nor the w&lt;/span&gt;&lt;span class="entry-comment-content"&gt;ill &lt;/span&gt;&lt;span class="entry-comment-content"&gt;to hold individuals or organizations  accountable for lying, cheating, stealing, or profiteering.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;When  there is literally no recourse for gross injustice, up to and including  the inability to sway public opinion against those who are obviously  selfish, devious and wrong, then we have truly crossed a line as a  society.&lt;/p&gt;&lt;p&gt;It is honesty, it is personal responsibility, it is a  sense of community and shared sacrifice which made America great. People  cheated, sure, but if they were caught they had the good sense and the  shame to withdraw from public life (if not into prison). No more. Now  our politicians stand up and lie to our faces, their sense of  entitlement palpable, the sniveling practicality of those who realize  that there is &lt;strong&gt;no&lt;/strong&gt; social cost any more to supporting a liar, a cheat.&lt;/p&gt;&lt;p&gt;We deserve &lt;a href="http://www.businessinsider.com/donald-trump-president-apprentice-finale-birther-2011-4"&gt;Donald Trump as our president&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-822118266120988198?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/822118266120988198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=822118266120988198' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/822118266120988198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/822118266120988198'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2011/04/why-we-deserve-president-donald-trump.html' title='Why we deserve President Donald Trump'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6334291092485514841</id><published>2011-01-10T16:08:00.001-08:00</published><updated>2011-05-18T15:37:23.022-07:00</updated><title type='text'>Worst excuse ever.</title><content type='html'>&lt;div&gt;"I really wish I could help you, but our system won't let me do that." - &lt;a href="http://purpleyogastudio.com/"&gt;Purple Yoga&lt;/a&gt; studio manager, Sequanna Williams. (&lt;a href="http://www.yelp.com/biz/purple-yoga-long-beach#hrid:1A0Cb7GuD3rX_M72qZTtwQ"&gt;Yelp review&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Sequanna is not the first person to use this excuse to not do something, nor will she be the last. However, I expect better from small business, particularly one that values morality (as any good yoga studio should).&lt;br /&gt;&lt;br /&gt;There are many reasons to say "no" to a customer request. Perhaps it's unreasonable, perhaps it's against long-standing company policy and there is no compelling reason to make an exception. Perhaps it's too much work, or the person just doesn't feel like it. Or maybe it's too expensive. But to say that you &lt;em&gt;cannot&lt;/em&gt; make an exception because "the system won't let me" is not a valid reason.&lt;br /&gt;&lt;br /&gt;Why is "the system won't let me" not a valid reason? First and foremost, because it's a lie. Businesses, especially small business, have extraordinary freedom in the types of contracts they enter into. Or, another way to look at it: if the Dalai Lama was the one making the request, do you think Sequanna would tell him, "I'm sorry, the system won't let me do that"?&lt;br /&gt;&lt;br /&gt;Second, because it places "the system" above human judgment. Basically, the person is telling me that both of our actions are circumscrived by the whim of the system. They are saying that "the system" is actually above them, controlling them, and indeed above all people at the business, including customers. "The system" makes decisions. "The system" controls what they can and cannot do. If "the system" doesn't allow it, then it cannot be done.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;She can, and should, do better.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-6334291092485514841?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6334291092485514841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6334291092485514841' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6334291092485514841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6334291092485514841'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2011/01/worst-excuse-ever.html' title='Worst excuse ever.'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-8179709252001708373</id><published>2010-12-29T14:15:00.001-08:00</published><updated>2010-12-29T14:15:18.612-08:00</updated><title type='text'>2010: The year of music</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;For me, the new music landscape has been all but barren for many years. KROQ was my radio station from middle-school on (and actually KTWV - The Wave - was my station in elementary school. I still have a fondness for New Age to this day. A lot of it is insipid crap, but Vangelis? Ray Lynch? Mike Oldfield? all of them pure genius). KCRW resuscitated my interest in new bands around 2005, and ushered in a flurry of wonderful bands: from Sigur Ros to the Yeah Yeah Yeahs to Jesca Hoop, it was a wonderful thing. But that impact slowly faded away to another wasteland.&lt;br/&gt;&lt;br/&gt;&lt;a onclick='return amz_js_PopWin(this.href,&amp;apos;AmazonHelp&amp;apos;,&amp;apos;width=700,height=600,resizable=1,scrollbars=1,toolbar=0,status=1&amp;apos;);' target='AmazonHelp' href='http://www.amazon.com/gp/product/images/B002TN0B3W/ref=dp_image_0?ie=UTF8&amp;amp;n=5174&amp;amp;s=music'&gt;&lt;img height='160' width='160' border='0' onmouseover='' alt='Hunting My Dress' id='prodImage' src='http://ecx.images-amazon.com/images/I/51uDPT7wncL._SL500_AA300_.jpg' onload='if (typeof uet == &amp;apos;function&amp;apos;) { uet(&amp;apos;af&amp;apos;); }' style='float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;'/&gt;&lt;/a&gt;And once again, in 2010, I've been lucky enough to get a second musical rennaissance. Jesca Hoop released her second album this year, and it was far better than I had any right to expect. "Murder of Birds" is in the top 5 tracks of all time. If I had written this 2 months ago, that would have been the major highlight. We'll get to that.&lt;br/&gt;&lt;br/&gt;&lt;a onclick='return amz_js_PopWin(this.href,&amp;apos;AmazonHelp&amp;apos;,&amp;apos;width=700,height=600,resizable=1,scrollbars=1,toolbar=0,status=1&amp;apos;);' target='AmazonHelp' href='http://www.amazon.com/gp/product/images/B001W63DQ4/ref=dp_image_0?ie=UTF8&amp;amp;n=5174&amp;amp;s=music'&gt;&lt;img height='140' width='140' border='0' onmouseover='' alt='Actor' id='prodImage' src='http://ecx.images-amazon.com/images/I/51RkU6BtKIL._SL500_AA300_.jpg' onload='if (typeof uet == &amp;apos;function&amp;apos;) { uet(&amp;apos;af&amp;apos;); }' style='float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;'/&gt;&lt;/a&gt;St. Vincent released an amazing album late last year, Actor, which I didn't discover until this summer - coincidentally on the same day Annie Clark was playing a show in San Diego (which I went to). Ironically the song that set me off was "Laughing with a Mouth of Blood" and it wasn't the strongest on the album, not by half. Annie is a brilliant songwriter with a wonderful ear for texture and contrast. Her first album, Marry Me, is just as good. &lt;br/&gt;&lt;br/&gt;&lt;a onclick='return amz_js_PopWin(this.href,&amp;apos;AmazonHelp&amp;apos;,&amp;apos;width=700,height=600,resizable=1,scrollbars=1,toolbar=0,status=1&amp;apos;);' target='AmazonHelp' href='http://www.amazon.com/gp/product/images/B003O6M3RA/ref=dp_image_0?ie=UTF8&amp;amp;n=5174&amp;amp;s=music'&gt;&lt;img height='120' width='120' border='0' onmouseover='' alt='The Way Out' id='prodImage' src='http://ecx.images-amazon.com/images/I/51XRWOH4kQL._SL500_AA300_.jpg' onload='if (typeof uet == &amp;apos;function&amp;apos;) { uet(&amp;apos;af&amp;apos;); }' style='float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;'/&gt;&lt;/a&gt;The real highlight of the year didn't happen until late in the year. In November, I think, The Books played a live set at KCRW. I thought "interesting, but no big deal". But then I heard their newest album, &lt;a href='http://www.amazon.com/Way-Out-Books/dp/B003O6M3RA'&gt;The Way Out&lt;/a&gt;, in it's entirety and instantly fell in love and planned to buy 10 copies to give to friends. I don't think I've felt this strongly about an album, ever.&lt;br/&gt;&lt;br/&gt;The album is pure genius from beginning to end, with a lush, intelligent, unique sound. If Annie Clark is perfecting her linear contrast (it's most obvious on the track "Your Lips Are Red" on Actor), The Books have perfected the profound/absurd contrast &lt;i&gt;simultaneously&lt;/i&gt;. By sampling esoteric self-help tapes and dubbing them in absurd ways, but playing this over an enormously complex, textured and agonizingly detailed and beautiful arrangement it's like The Books are consuming the swirl of modern day information, and responding with wordless insight, biting humor, and hope. More than any other band in existence, I feel like The Books are "my band".&lt;br/&gt;&lt;br/&gt;&lt;a onclick='return amz_js_PopWin(this.href,&amp;apos;AmazonHelp&amp;apos;,&amp;apos;width=700,height=600,resizable=1,scrollbars=1,toolbar=0,status=1&amp;apos;);' target='AmazonHelp' href='http://www.amazon.com/gp/product/images/B0034C263A/ref=dp_image_0?ie=UTF8&amp;amp;n=5174&amp;amp;s=music'&gt;&lt;img height='134' width='134' border='0' onmouseover='' alt='Have One on Me' id='prodImage' src='http://ecx.images-amazon.com/images/I/51AkRWcX%2BiL._SL500_AA300_.jpg' onload='if (typeof uet == &amp;apos;function&amp;apos;) { uet(&amp;apos;af&amp;apos;); }' style='float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;'/&gt;&lt;/a&gt;If this was "The Year of The Books", then along with St Vincent and Jesca Hoop there were two other really good albums released this year. Both artists have been around a few years but both are new to me. Joanna Newson's "&lt;a href='http://www.amazon.com/Have-One-Me-Joanna-Newsom/dp/B0034C263A'&gt;Have One On Me&lt;/a&gt;" reminds me a lot of Kate Bush and JRR Tolkien. Kate because of the emotionality, visuals, and complex musicality, Tolkien because of the focus on the natural world. Even if she mostly sings of love, this is love on a farm, or in the mountains. She sings of the wind and the rain, and it's lovely. Particularly the track "In California".&lt;br/&gt;&lt;br/&gt;&lt;a onclick='return amz_js_PopWin(this.href,&amp;apos;AmazonHelp&amp;apos;,&amp;apos;width=700,height=600,resizable=1,scrollbars=1,toolbar=0,status=1&amp;apos;);' target='AmazonHelp' href='http://www.amazon.com/gp/product/images/B003BEE0F8/ref=dp_image_0?ie=UTF8&amp;amp;n=5174&amp;amp;s=music'&gt;&lt;img height='160' width='160' border='0' onmouseover='' alt='This Is Happening' id='prodImage' src='http://ecx.images-amazon.com/images/I/516hLO5CbYL._SL500_AA300_.jpg' onload='if (typeof uet == &amp;apos;function&amp;apos;) { uet(&amp;apos;af&amp;apos;); }' style='float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;'/&gt;&lt;/a&gt;On the lighter side was a wonderful release by LCD Soundsystem, "&lt;a href='http://www.amazon.com/This-Happening-LCD-Soundsystem/dp/B003BEE0F8'&gt;This is Happening&lt;/a&gt;" containing my favorite dance track in a long time, "I Can Change". Just &lt;i&gt;try&lt;/i&gt; listening to that track without moving some part of your body. And of course the single "Drunk Girls" is hilarious (check out the video - it's insane &amp;amp; quite funny).&lt;br/&gt;&lt;br/&gt;Oh, a few last things. I finally picked up my own copy of Joni Mitchell's "Ladies of the Canyon". It's still as good as when my parents used to play it, and it stands up really well to the test of time, too. Also, Arcade Fire did a decent job with their 2010 release, "The Suburbs". In all honesty I find Arcade Fire to be a bit mediocre, a bit boring, but nothing really objectionable. The New Pornographers released an album ("Together") that I was into for a while, but then realized that all those deep lyrics were really just free association nonsense and rapidly lost interest. Really good music, though. (I wish whoever writes the lyrics for them would get their shit together (or adopt The Books' method of overdubbing stuff that is obviously nonsense). The track "We End Up Together" &lt;i&gt;should&lt;/i&gt; be a rousing anthem, but instead it's just nonsense. I felt betrayed when I realized I'd been duped!)&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-8179709252001708373?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/8179709252001708373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=8179709252001708373' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8179709252001708373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8179709252001708373'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/12/2010-year-of-music.html' title='2010: The year of music'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6062526670183983814</id><published>2010-12-14T14:37:00.001-08:00</published><updated>2010-12-14T14:38:58.578-08:00</updated><title type='text'>Quantum mysticism and other syrupy nostrums</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;"History abounds with religious enthusiasts who have read spiritual portent into the arrangement of the planets, the vacuum of space, electromagnetic waves and the big bang. But no scientific discovery has proved so ripe for spiritual projection as the theories of quantum physics, replete with their quixotic qualities of uncertainty, simultaneity and parallelism. [What the Bleep do we Know] abandons itself entirely to the ecstasies of &lt;b&gt;quantum mysticism&lt;/b&gt;, finding in this aleatory description of nature the key to spiritual transformation. As one of the film's characters gushes early in the proceedings, “The moment we acknowledge the quantum self, we say that somebody has become enlightened." A moment in which "the mathematical formalisms of quantum mechanics [...] are stripped of all empirical content and reduced to a set of syrupy nostrums""&lt;br /&gt;&lt;br /&gt;-Margaret Wertheim&lt;br /&gt;&lt;br /&gt;(Margaret: thank you, thank you, thank you.)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-6062526670183983814?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6062526670183983814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6062526670183983814' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6062526670183983814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6062526670183983814'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/12/quamten-mysticism-and-other-syrupy.html' title='Quantum mysticism and other syrupy nostrums'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6509379799126260190</id><published>2010-12-13T17:47:00.001-08:00</published><updated>2010-12-13T18:59:15.813-08:00</updated><title type='text'>How to install ICU on OSX</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;The readme makes this very difficult to suss out. Here you go:&lt;br /&gt;&lt;br /&gt;Installed &lt;a href='http://site.icu-project.org/'&gt;ICU&lt;/a&gt; (International Components for Unicode) by hand on my Mac. The readme is incredibly obtuse. Hopefully this will save you pain. Here are the instructions:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;tar xzvf icu4c-4_4_2-src.tgz&lt;br /&gt;cd icu/source&lt;br /&gt;chmod +x runConfigureICU configure install-sh&lt;br /&gt;./runConfigureICU MacOSX&lt;br /&gt;make&lt;br /&gt;sudo make install&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-6509379799126260190?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6509379799126260190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6509379799126260190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6509379799126260190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6509379799126260190'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/12/how-to-install-icu-on-osx.html' title='How to install ICU on OSX'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-4958323048442545636</id><published>2010-12-09T19:13:00.001-08:00</published><updated>2010-12-09T19:18:34.587-08:00</updated><title type='text'>A smorgaspost</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I haven't posted in a while (and I see that when I did I was in rather a bad mood; poor GRRM!) and there's a lot to talk about:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Geeking out with Clojure, a functional language.&lt;/li&gt;&lt;li&gt;Geeking out with Legos. More about that later.&lt;/li&gt;&lt;li&gt;Geeking out with Plants Vs. Zombies.&lt;/li&gt;&lt;li&gt;Geeking out with Java: OSX, Eclipse, and Google App Engine.&lt;/li&gt;&lt;li&gt;Geeking out: issues with Linode&lt;/li&gt;&lt;li&gt;Geeking out: making a decision about PHP and WordPress&lt;br/&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;img style='max-width: 800px; float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;' src='http://t1.gstatic.com/images?q=tbn:ANd9GcSFnu24wYjSAVpdfOm7Lrzn_VRwDJZ1r05HAhR-VyRKfhBZzkHMLw'/&gt;Clojure&lt;/b&gt; is neat, but it's so general that it's hard to get your brain around the fact that, really, you can do whatever you want with it. The number of patterns in Lisp/Clojure are immense - even more in Clojure because it's a dynamic functional language. The two things I want to write in clojure are: a completely dynamic webapp framework, which basically starts off life as a network aware REPL and kinda "grows" from there. When you install it, you "regrow" the system. Your apps "grow" too. Of course this should run on App Engine and *never* have to be redeployed. The other thing I really want to write is a GUI app that takes a two dimensional bitmap and interprets it in arbitrary ways: strings, numbers, etc. I'd like to "grow" that into a full-fledged text editor. The community is really great, btw. And I like that the logo is at once geeky and hippy (that's a &lt;i&gt;lambda&lt;/i&gt; in there, baby!)&lt;br/&gt;&lt;br/&gt;&lt;b&gt;&lt;img style='max-width: 800px; float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;' src='http://t2.gstatic.com/images?q=tbn:ANd9GcSWTX5qdNJsWUWn8kib6LVL1vg0LFyJLrzupubVrO1IdFJnlWeC'/&gt;Legos&lt;/b&gt; somehow I got the itch to buy some of their Star Wars kits. I used to love building things with Legos as a kid - specifically spaceships. I would build them and then throw them in the air (I loved the wind rushing past their "hulls") and then when they hit the ground I'd not touch anything, observing carefully what had happened. Depending on my mood I would either do minimal repair, or I'd try to make it even stronger. A fun game. But these newfangled kits are nothing like that: the X-Wing was ~350 pieces and there were maybe 40 "normal" Legos in there. Maybe. The other 310 were customized, you'll-never-figure-out-how-to-use-this-in-anything-else sorts of pieces. The AT-AT was 1200 pieces, and the ratio was about the same (although, in fairness the AT AT was a motorized beast that required some custom bricks.) It's hard for me not to draw a parallel between this sorry state of affairs and computer science: it's become cliche to treat "Legos" as some sort of monicker for standardized interchangability. What irony that Legos are no longer standard or interchangable. And this is probably for two very simple reasons: the models look better with more custom bricks, and you're more likely to buy more Legos if you aren't tempted to "roll your own". As I was building the models I kept thinking "why did they make that brick? They could have used these other two together..." which is something I also think about when building software. Weird.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;&lt;img style='max-width: 800px; float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;' src='http://t1.gstatic.com/images?q=tbn:ANd9GcRTu9cQdA7rXTVse2rLZQazO7hDZMeTnu06VPEEdkRSRxfT3VRq'/&gt;Plants Vs Zombies&lt;/b&gt; is the clear "runner up" in the "great casual game wars of 2010" (the winner being Angry Birds, of course). PvZ is a really good take on the tower game genre. I think I saw it for the first time on a demo PC at Costco. Anyway, apart from needing some more balancing (Gloom Shroom is WAY overpowered) it's a great game. It's also an interesting exploration of the interdependency of a team - each individual contributes different things during the game (and different things during different phases of the game), and it would be foolish for one plant to claim that they are better than any other plant. For sure, there are some plants which are more valuable, in that they would be more expensive to replace. It's hard not to draw the parallels to building a business, a team, and seeing that team change and grow.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;&lt;img style='max-width: 800px; float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;' src='http://t1.gstatic.com/images?q=tbn:ANd9GcQnHp1RKyLwn95gqPSBjd0uaQB2A1bPjHM5UwtuGNQpykt649tzvg'/&gt;Java&lt;/b&gt; is still my mainstay (and increasingly Google App Engine) and ironically all this work with Clojure has made me, if anything, even more fond of the old beater language/environment/coffee that is Java. To that end I actually spruced up my environment (OSX and Eclipse) a bit. For Eclipse mainly consisted of updating the OSX developer library (for javadocs and JDK source), adding TLD files to my GAE projects (without them the JSP editor complains when you use JSTL). While I was at it I reinstalled macports (which had somehow got corrupt) and spruced up my .bash_profile to fix my prompt and ls defaults. I also installed ForkLift - which is a nice Finder (and CyberDuck) replacement, and a Clojure plugin for Eclipse (which is shockingly stable). This all fits in nicely with my newfangled "Workspace" philosophy, which I may write about later.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;&lt;img style='max-width: 800px; float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;' src='data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBhQSERUTEBIVFBIWFiAXFxgWGBseIBchHxocGBsYHx0YJCYfIBopGRQeHy8gKyc1LCwsGSAxQTAsNSYrLCkBCQoKDgwNGg8PGjUkHiQ1Lis1MC4uNDEzNSk0NjU1NTU1LTU0LCkvLC0pNS80LzQwLjAxLzUpLDU1MiwuLCwpLP/AABEIAGwAeAMBIgACEQEDEQH/xAAcAAEAAgIDAQAAAAAAAAAAAAAABQcEBgIDCAH/xABAEAABAwIEAwUEBgYLAAAAAAABAAIDBBEFEiExBkFRBxNhcYEUIjKRQnKhscHRIyQzYpLhCBUXJkNSdIKy0vH/xAAaAQEAAwEBAQAAAAAAAAAAAAAAAwQFBgIB/8QAKREAAgICAQIFBAMBAAAAAAAAAAECAwQRIQUxElFxgfBBocHxEyRhkf/aAAwDAQACEQMRAD8AvFERAFi12JxQjNNIyMdXOA+9RHH0kraCZ8D3MewB12mxsCMwv5XVDvnLzmeS53VxJPzKinZ4eCrfkfxPWi5MT7WKSPSLPOf3BYfxOso3DO2JjnkVMBjYTo5js9vrCwPqFVy5xQudo1pPkoJXNct6M+WbYuW9I9E4Zi8NQzPBI2RvVp28xuD5rMXn7DaGWN4kZKYnjmw6/Pb71dnC9a6WljfI7M8ggnTWxI5aX0SjMrun4IvksYvUK8ibrj3XP+EqiIrhpBERAEREAREQBERAY+IUolikjOz2Fp9QR+K80uiLSWndpLT5g2P3L08vPvHWHdziFQ21g5/eN8Q73rjwuSFBcuzKGbHhSMPBYmueQ8XsLi/n/NT4FttAtdwV9ph4gj7P5LY1y3Utq72ON6jtXewVn8DO/U2eBd/yKrBWVwAf1T/e78FL0d/2H6P8FvoL/tP0f4NkREXVnbBERAEREAREQBERAFpvabiWHxU4GIhxLr913bSZLjctOw3G5styWgdsuGiSiZIRfu5Re/Rwyn7bLzLsR2vUG2tlO4VijHytyXFn6B1r2va+ml7dFs+JYvFAP0rwDybu4+QGqrytwt0Zzx3IGum7V00WHS1Dz3bS9xPvOJ09XFZOThV3SVkpaS+dzAyen03yVsp6iu/7+huWFdpEUdQDNS95T8xms8fvAfCfqn5q/eG8cp6uBstG4Oi2FhbKRu0t5EdFQGEcExx+9ORK/p9Efi71+S2x/afHhNMYxCZJpDeNvwsAAAuSPHkB8kxMjHVqpoj7/OWSYOXjK5Y+PHz5+csuSeYMa57zZrQSSeQGpPyVK8c/0gg28WFtzHYzyDQfUYd/N3yUJgnb/Oe9jr2NkjkBAdEMrori1gNnNHz8Su/EuGqPEmd7E4B5/wASPr0e3r56rTnZ4Gt9jYsuVbW1wR/CHb5V05y1o9qiJ1JsJG+R2I8CPUK8uFOOaTEWF1JKHOAu6N2j2ebTy8Rp4rzhS9mcomLZ3tEQ2cw3Lx4A7equvsoweOES90wMaA1unO9ySTuToq7za3cqY8t/YrPqFTvjRDlv7FhoiK6aAREQBERAFDcY4aZ6GeNou4xktAF7ke8LeNwplF8a2j5JbWjzBbqtmwq3csygAW2Giiu0viyI4lIwUxgyOLJHk/tHA2z5RoBpvub6rOwKcGC9xlBOt9Lb3v0WD1StqpepyXV6ZRrXqSS0vtIw57xFIxpc1gcHEcrkEG3TxX3iDtAay7KWz3c5D8I+qOfnsprh/E5KiEPliLCdLnZ/iAdbKvhYttMldPj/AD6kGFiXYso5E1peT7lWYfh0k7wyJhc49OXiTsArR4K4R9ldnc9zpSPeDScoHlz8ypOjoY4gRExrMxucotcrceAcNe6fvS39GGltzsSdLeKmnm2ZF6phwt8/PItT6jbl5MaK1qO+fP8ARCChfNKGRNLnHkPvPQKx+F8B9liLXOzPcczrbDS1h+akKTDo4s3dsDcxubc/5eCyVoY2DGqx2y5k/sa2J02NFruk9ye/ZBERaJqhERAEREAREQFBdruBNNfKHDSRrZGnmCRlJHq1Vi6gqb+yszuaTmDW7O8f/dl6c7QeCPbmCSI2qIwQ2+zxvkPQ32P5qo8IY6Od0b2lrwC1zToQRyKo5FkqYSklvXJkZVs8ZSkltd1vzMHh3gRkNn1FpJNw36Lf+x+xWPwxgLKvvWOJa4NBY4cje23MeCiaOifK8MjaXOPIff4BWTwtwwKUFznZpXCxtsOdh181i4f82VkK2fKX/PYw8FX5uUrbOYrfp6Ig8D7P3Zr1RGVp0a0/H435Dw38lvEMIY0NaA1oFgBsFzRdDTj1078C5Z1OPiVY+/AuX3f1CIinLQREQBERAEWgYtjUzeI6SmbK4U7qVz3Rg+6XXkGY9T7o+S5YBxDHPi9S6LEXSxthINLkcBGWODXPuRbfpqcx5BAb6i0w9sOFWYfbG+/t7r9Nbe9pp6rZKrHYI4PaZJmNp8od3hcMpB2IPO99LboDPWscT8DR1UjJmERzt0LrXD27WI6jkfRcsB7RqCtk7qmqWvl3DSHNLrb2zAX9F3cR8d0VCQ2rqGxvcLhupdbrZoJA8SvE4RnFxl2ZHZXG2DhNbTM/B8EjpmZYxr9Jx3d5/kpBVz2Z8VOrK7FHe0GWnZJH3Fz7rWnvfhGlthfyUz/avhnfdz7bHnvlvrlvt8dsvrey+whGEfDFaR9hCNcVGC0kbai+A31C66mqbG0ukcGtHMr0eztRYFDjkMzssbw529rEeuq65eJKdrshlFwbHew9dkBJosWqxOOPLneAH/CeRsL77bLGZxLTkEiVtm73uPkDugJNFi0GJxzAmJ4dbfw9CiAr3Gj/AHqov9E775Vj4bGBxLiAaAB7EDoAP8munNWFXcO0808VRLC108P7N5vdvy39eqM4dpxUPqREBUSM7t77m7m6e7vb6I5ckBV/ZfgsEnD07pIY3OcJszi0EmwOXU66cui1iodfBMHM+Y0bas9/uQB3hte3LLnV7YZw5T08Bp4ImsgOa7BexzfFub6r5S8MU0dN7IyBns2v6IjM3U3PxX5m6ArDtEqaSSrwtuGmF1UKlpHcZdI9N8mw52PIOXLhqppm49iZxIxtnzDuDPa2T90v0vly+nqrEwPgeio3mSlpY4pDpmAufEAuuQPALljvBlHWODqumjlc3QOIsbdLtsbeCAp6kfmi4kNCQWksLe6tYszSZ8uXS2XNt4rowmjdPhTIBVYOyB7A052uEzXE7k/F3mY72t6K7MD4UpaMyGkp2Q97bPlvZ1r20On0j81HP7M8MMhlNDDnJufd0/h+H7EBlcPQ+w0NPDVzNL42CMv1s4ja19dB9y6eJ3DvqYyfsMxzdL6Wv6fipyqoI5AGyMDgDcA8lznpmvble0Ob0I0QGBUyxlkggLDL3TsuS17W8PGyhsPlpxQkOLM2U3BtfNrbx6LYaPCIYjmjja13Ub/auEmBwF2cxMLr3vb8NkBrXdEw0TZBcF+x6XFh5WUhWUrP6wiGVtjGTaw396xU7PQseWl7QSw3b4H08kfRMMgkLRnaLB3QdPtQELhbA2uqA0ADK3Qen5opqOiY17pA0B7hZx6ogP/Z'/&gt;Linode&lt;/b&gt; has annoyed me. They deleted my images when the CC I had on file failed. This upsets me, but not as much as you'd expect: I didn't have anything too heavy running on the host. I'm not even sure if I want a VPS anymore. On one hand, it's nice to have a persistent host with a stable IP address completely under your control somewhere in the universe. There's just so many things you can do with it (not the least of which is to install the Dropbox daemon so that you have an offsite backup not controlled by Dropbox). But Linux sysadmin is not my forte or interest, those stable IP addresses are like honey to hackers. I'm not sure if I'm going to reup or if I'm just going to settle for the much-less-general-but-super-easy-to-administer Google App Engine. The bottom line is that, unless you're a control freak, you don't need your own host for even the most involved websites - so why bother?&lt;br/&gt;&lt;br/&gt;&lt;img style='max-width: 800px; float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;' src='http://t2.gstatic.com/images?q=tbn:ANd9GcTnFPS7C3_o4XlJ12-hguC2pASqnEu1cKkQx_M7QMwJJF34DTqjaQ'/&gt;Making a decision about &lt;b&gt;PHP and WordPress&lt;/b&gt;. I've pretty much made a decision to avoid this technology stack. It's a justifiably popular solution for lightweight CMS that most websites need. This isn't to say that there's anything wrong with it, per se, it's just that there is only so much I want to learn. I actually really admire PHP's directness and the fact that it's purpose-built. And Wordpress has a pretty amazing bang-for-the-buck ratio, especially when you take into consideration available templates. I guess I just don't like munging HTML on the server anymore. If you want to munge HTML, do it on the client, with JavaScript, the way God intended. The server should really be just a dumb, RESTful data store used by the DOM to populate itself. (Interestingly it is theoretically possible to write a WP template that does things this way...tempting!)&lt;br/&gt;&lt;br/&gt;&lt;img style='max-width: 800px; float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;' src='data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBhAPERQUDxQWFRQVFxgYFBgXFxQYGxUXGBQWFR0XGBUXGyYeFxskHRkWJC8gJScpLiwsFx8xNTAqNSYsLCkBCQoKDgwOGg8PGjAkHx8sKS8sLzUpKSksLSksLCkpLi4qNTQsLCwvLDUsLCwtLyksLCw1LCotLCkqLSosLCwsKf/AABEIAIwAiQMBIgACEQEDEQH/xAAbAAEAAgMBAQAAAAAAAAAAAAAABQYBAgQDB//EAEMQAAIBAgMFBQUFBgENAAAAAAECAwARBBIhBQYxQVETImFxkQcygaHBI1JykrEUQmKy0eEVFhckJTRTY3OCorPw8f/EABoBAAMBAQEBAAAAAAAAAAAAAAACAwQBBQb/xAAnEQADAAEEAgAFBQAAAAAAAAAAAQIDERIhMQRBIlFhcYETMlKRof/aAAwDAQACEQMRAD8A+41g1mq3v9t44LBu6+8QQvhp/wDPWniHdKV7OU9Fqeu0974onMUStNKPeVMoCfjdiFXy1PhUfLvji4xmfBEr/BMGb8pQX9a23B3eWHDI8gzSOM7E695tSfp5AVa7Uzcp6Jai6N+yv7u78YTHuY4iyygXMbizWGhOmhsasNRGD3Yw8OIedFs8hu3if6eHCttq7xR4dhHZpJWFwi2uB95ixAUcNSaS3Ous8IeJp8ErWaqc+/8AFA6ri4pIQ3B+66/Erwq0JMrKGBBUi4INwQdbg9KnuX9FKx1CTa7PSlRB3hRj9kjOL2zCwB8r6keNdGA2zHMxUXDjXKeNuo61NZ4bS176+v2F2s76xUdtLb0UDBCGeQi4RACbfeNyAo8SRUJL7RoBIIhFKZT+59mp68WcD0NapxXXSJukuzffHe2TZ6giNWzEBbk6kkDW1rcfGrHg5i6Kx4kAnl8jXz72qz54sObWzOhtpp3xpV2xO1YsLArynSwCgC7Mx4KqjiTWWa+KtfWgmPdV0vsSNKquL38WCzYjDypGTbMCj2/EEJt86m/8RZwrQIJY3VWV1cahgTcAjUaDnzqipM01jqUm12SFKUpiYr577ZcO7YWNl90MVb/qAIJ+K/OvoVce19lx4qF4pRdXFj1HQjoQatgyfp5FT9CXO6Wjg3M2guIwUDr9wBvBl7pHqKkcftBYEzOGI6IjOT8FFfLtnR7R2DKyiMz4Zjchf5gOKtbzBtVvwu/+HnWxgxNzxUwt+vCmyYkq1nlHJvjns64d98K8yQrn7SS9lK2tYa5rnu1VdzcSMRtXFmTUqq5QfBmv8z8q8cJs+afbCYgQGOFc3ErfUcwpIHrXZtzdfE4LHDHYBQ4YntYibXze9Y9CdfA1DyJU1Lj8mvxaTi5t6N9fgs2+uyUxODlVgO6M6noV10+Fx8apm6W1ZTseRLm8byRof4dbAeRuPhU9tTbGKxsDRQwGEyCzM7KxAPHKiE3PiSBXdsnc5IMF+zjQ8b8e9rqevE38zwrF5GKskUp7aLTkUYlFfPU7N04UGEhKjigJPXSoTfBv2aeCaPQ9og053OUj4i/rXpsXHz4IGCaFmUE5GUrax1tqRpW0+zJcfiY5JRliiN1Xx6k8zx4cOvSeSXmiFpo00/toQl7WyC2Tj/8AXkyYjTOto83AkEsLX6qdPKntSwY7fCNBYYjOLZeOVXBzG3ADXXxqc3rg2bPIFmUvMnARozuo5Xyjui/UiqXu7vAuExr/AOIK+WQjK7j3cugJGt062Ohr6GNae+Vyl18+NODC+PhfWpN+1ZiUwxPNk/mFa7840rjMAhIy3Q2JsCSGUXIBtrbW1dntM2XicT2H7PGHVSGJzdDfTwtzr03q3XfamEjdV7LERe6pNwR90sANdLg8jXiOa1ppe0a/Cczmrfwn7/Gh2Y/d3EY5DHiWCxafZxgomnC7Hvv/ANo8KsGxdlJhIUij91BZfAdBVJ2JvdtSNRDicIHde6JDIFvbS7WDXPiB8KvmBldkBktmPGwIHwB1t5/LhV50Hyqp4bWn06OmlKU5EUpSgDzmK2Je1gLm/CwqkbL2sQ0zyRnLJE82HDx5VHZ5jkQ/vAp2beZNXllvxryxGDSRCjAFSpU8tGGU2I4adKpFJJprsSpb6ZVod6pO6o7AZmhAcZsi9rG7ZTrqylR0uHHCttqbakkwUMubsy8yqxV+zUrmdSRIfdVrAg9CKsLbIhKopQWQ5lHjlKXP3tCeNdDQqRYgEDkQLelPvjVNITZXOrKsu2ZYo0ETRuSs7szytNbsgpyh1te9+HK9bjeqRpFW0YDOiZbtns0Ha9oDe2W5sNOR15VZkw6DgoHHgBz41xtsOIyiQ5iQQwXM2QMFyghOHAnThz41xXPtA5r0yAwW8sxWPuoVAwwa5dnPbjkxPEdTe9dWxtvT4tJQFUHssyZSLqzZgEYZib6DvWHPTSrEIF6DlyHLh6USBVvlAFzc2AFz1NuJoeSf4nVFL2fMfZ7tfDK86Y1hHP2pbLL3Qb6Wu2lxa2vwqW3+kweKwzQw5JZzbsxGVbJqLszLoi2vxterNtDdfC4hs0kaluthf9K9MFu/BDoi2HG2lr+QAFNWWXf6i7OqHptG7uHaPCwo+pVFHoLVI0tWaz9lDXLW1KUAKUpQApSlACsVmsUAV/eze5cAqjLnkcHIOAFrC7HpqNBVQ2TvviFlEs7loicsq2FoweDqOQHPwv0rf2rN9vAP+G/861V9mzgGx4MLV6mDBDxatdmPJkavT5H3NGBAINwdQetbVStwtuWvhJDqgzQE/vR/c81/QjpV0rzskOK2s1TSpaozSlKQYUpSgBSlKAFKUoAUpSgBSlKAFYrNKAPlXtbktiYf+Uf/ACf2qmxz2q1+1u5xkQH+5HzkauLdvcx5rNNdUHLma9zDc48CdHlZN1ZWkaYOSWRkbD37VCGQjkw6+B1B86+oxbTxEir3FjNhmuc1jbWwGlvOuTAbPjhULEoH6nzNd9rCvOz5FkfRsxQ4XZ4vEx9+R28jlHotc8mGi4G1/Fjf5muHakk04ZMO+Tlm5segPIeNVPEbAZe8SWI0a+pv1qKRRsviRumsTsvgTmU/A/SpLZ+1e0OSQZJBrbkw6qedUDZmOkgtYkj7p1H9qs6uJ0DIbMNVPNWFcaOqi0VmuTZeN7aMMdGGjDow0NddTKClKUAKUpQApSlACtJZQoLMbAC5Nb1G7cbuKPvMAfIa/Sg4yo7YRMTiO2K+6oRAegLG5HUk1NYWPKoHhTKOlbGVRxIHmQKty+CPHZ7xEA61y7b2gsMRZmC3soJ6n/010wMDzBHL1FVv2hi8cS8jJr+WnxwqtSxclOYbRJbNZcmZSCLaWN7mtcVEoiYHUsCAPrUBsNezAYGwvYjlw6dasLYiPiQxPlTZcex6BjvctWV+fDlLX51Ibu4nK5Q8GHzH9v0rm2pKXe9rLawH6mtdlH7ZPOojlv2Q+Sd15OoceY7p+lTlV/Df7VF+B/pVgpK7Kz0KUpSnRSlKAFYZgNTURvXtmTB4V5o07QrbQmwAJtmNuQr49tfeTG40/bynJ9xO6noPe+N61YPGrNyujPm8icXZ9Q2z7Q8HhyVjYzSD92PUD8T+6PnVH2zvljcXYXEKA3VY/ev4udfS1R+ztlpkzMedso0v4gnj8KkVx8cfdjADHgFBZz6Xat0+Pjx+tWQeZ2uCLkwOKYXlmdF6ySOL+SjvH0rkMWHTiHnb+MlU/KDmPqKmJdnYqViOzMfUy6H8g19a7NmblRMw7ZmkPEj3V9Bx9ao82OVz/hCseSnxwT+5R/0GHyP8xrffLAtNhwUFyjBvhwNSeFgWJQkYCqosANABXuACCDqP1FeZv+Pcjdt1nayn7E2ZJZXYi33QenI2/Sp04tB7yEeVjXLLh3wzEpqh9PI/1rXGbYTJ3U+0PAcvMnpRdu3qwiVK0RHY2cvIxtZRoo8Op8a69gwZpQeSgn6CuCKNnNhdmPz/AKVZsJh1w0RLHXix+gpBjv2YM2JJ5JH82P8AQVO18Sx29B/aGdSw10ZWKsPIjiPAgjSrnuRvpPi5uxcdooQsZLBWWxAAa2jX6i3DhVcni3M7/RPH5EVW0vdKwKzWQ1ClKUAaSwq6lWAKkWIOoIPIg8aqOL9luBc3TtIvBH0+Aa9quNKeclR+16CVE12ipYf2Z4JffMsg6NIwHotqn9m7Ew+GFoIkT8IFz5nia7qUVkqu2dUTPSI/aeyEn14MODfQ9RUC+DfDG7o1uF17y+fUfGrdWKVMGtSqx4+NuDCvcTL1FTc+zoZPfjRvNR+tcb7sYY8EK/hZh9abcc2nEZVOht8q5DsfDsbhR8CalP8AJSDrJ+c1vFuzAv3z5u30o3I5tZGKIYNFABPIasfqa9m3dOLQjE5kQjuorWYeLMOfh41NYbZ0UXuIB4219eNdNc3fIbaUf/NHgb3LzEdM4/XLVl2Ju7hsEpXDRhL+8dSzW6sdTUnSmrLdLSmcUTPKQpSlTHFKUoAUpSgBSlKAFKUoAUpSgBSlKAFKUoAUpSgBSlKAFKUoA//Z'/&gt;Speaking of &lt;b&gt;Google App Engine&lt;/b&gt; - what a great product. Dealing with some Linode drama I have come to realize the costs and benefits of running your own host, and what a great job the GAE team has done making deploying and managing your apps as easy as can be. They have lots of nice touches, like the ability to deploy in-active versions for testing, and full text search on logs - all through the web. This is all stuff that you can do with linux/apache/tomcat but it takes a lot of work to setup and maintain. Kudos to GAE.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-4958323048442545636?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/4958323048442545636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=4958323048442545636' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4958323048442545636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4958323048442545636'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/12/smorgaspost.html' title='A smorgaspost'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-7341285430652825012</id><published>2010-11-28T17:31:00.001-08:00</published><updated>2011-05-18T15:40:18.912-07:00</updated><title type='text'>Knowing and No'ing</title><content type='html'>&lt;div&gt;&lt;br /&gt;The delicate art of saying "no" to people when they are looking for technical help, especially at parties.&lt;br /&gt;&lt;br /&gt;The thing is, I'm pretty smart. I'm no Einstein but I can hold my own when it comes to math, science, computers and most nerdy things. I have a physics BS from a not-too-shabby school (UC Irvine) and I've been using computers since the Apple IIe first came out. (That's like, 25 years).&lt;br /&gt;&lt;br /&gt;It's pretty cool to know all the stuff I know. It's useful. I can Do Stuff.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;The thing that gets me down, though, is that when people realize how much I know, then they want my help. Usually they want my help fixing their computer. Now, this is something I used to do 15 years ago. But it is unreasonable for a conversation to turn, as if on a dime, from something fun that we are both enjoying to what basically boils down to getting grilled on all manner of technical matters. &lt;br /&gt;&lt;br /&gt;Generally, I like helping people, and I like explaining how things work. But not all the time, and not on demand, and certainly not in the kind of detail that people seem to want, and not at a social event.&lt;br /&gt;&lt;br /&gt;One bitter irony is that even if I suck it up and try to answer the question, whatever information I give them will soon be forgotten, and their problem won't actually be fixed. The bottom line is that they are not getting the help that they need, nor am I getting to enjoy myself.&lt;br /&gt;&lt;br /&gt;This is something I don't understand. Upon finding out that someone is a hairdresser, do you start asking them for advice about your hair? Or if a person is a lawyer, for advice on a case you're involved in? Or a doctor about your ailments? Why is it then so acceptable, in a social situation, to start asking a programmer about computers?&lt;br /&gt;&lt;br /&gt;The bottom line is that it isn't acceptable. If you really want my help with something, you can hire me to fix your problem, and it will get fixed (assuming it's in scope of what I do, which is &lt;strong&gt;custom software&lt;/strong&gt;, not computer repair). I'll even be happy to explain what I did, why, and the technologies behind the solution, much like a good doctor would. But what I will not do is talk about work at a social event to satisfy idle curiosity.&lt;br /&gt;&lt;br /&gt;There are two exceptions to this: first, if you are yourself an experienced geek wanting to debate&amp;nbsp; some esoteric idea, and if I'm in the mood for the discussion, great. Second, if you are not a geek but want to debate about either the philosophy or politics of technology, then that's cool, too. But I do not want to discuss why you can't sign into your AOL account or how your Dell laptop has gotten slower over time and do you have a virus and how do you clean it off and will it require a reformat of the hard-drive. &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-7341285430652825012?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/7341285430652825012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=7341285430652825012' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7341285430652825012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7341285430652825012'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/11/knowing-and-no.html' title='Knowing and No&amp;#39;ing'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-7670116182788363818</id><published>2010-11-26T16:23:00.001-08:00</published><updated>2010-11-29T15:49:50.538-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='writing'/><title type='text'>Publishing an ebook on Amazon - 2010 edition</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;A friend asked me to publish an ebook for him. I agreed.&lt;br /&gt;&lt;br /&gt;In initial Google search turned up a lot of (expensive, in terms of wasted time) dead-ends:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://askville.amazon.com/sell-ebooks-amazon/AnswerViewer.do?requestId=2277616"&gt;Askville&lt;/a&gt; - where Steve Weber (who writes books and a &lt;a href="http://www.weberbooks.com/"&gt;blog&lt;/a&gt; on self-publishing) tells you you need an ISBN block, a mobi-pocket account, and the mobi-pocket software. circa 2006? NO LONGER ACCURATE&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.fonerbooks.com/2005/07/how-to-obtain-isbn-number_05.html"&gt;Fonerbooks&lt;/a&gt; - where someone very nicely lays out the ISBN landscape, and how to deal with the &lt;a href="https://commerce.bowker.com/isbnsan/standards/cgi-bin/isbn.asp"&gt;Bowker&lt;/a&gt; monopoly, and the connection to "&lt;a href="http://www.booksinprint.com/bip/"&gt;Books in Print&lt;/a&gt;". crica 2005 (but apparently still valid). Bowker reminds me strongly of ARIN!&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.lightningsource.com/"&gt;LighteningSource&lt;/a&gt; - which is really a dead-end for me because I don't want print-on-demand.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Could it really be this hard to self-publish?! Not too terribly surprised, but a little disappointed, I set to work following the steps described in #1. Block of 10 ISBNs, $250, check. I dutifully downloaded the (Windows-only) &lt;a href="http://www.mobipocket.com/en/DownloadSoft/tutorial.asp?Language=EN"&gt;mobi-pocket creator&lt;/a&gt; - which looks like it hasn't been touched since Windows 95 was hot stuff.&lt;br /&gt;&lt;br /&gt;The manuscript was in a combination of (custom) InDesign and EPS - which I (imperfectly, I'm sure) converted to PDF. I dutifully added some meta data, generated the file, and then tried to publish via the Creator interface. I waited expectantly...&lt;br /&gt;&lt;br /&gt;...to find out that mobi-pocket accounts are deprecated, and the entire process has been stream-lined and simplified.&lt;br /&gt;&lt;br /&gt;It's called the &lt;a href="https://dtp.amazon.com/"&gt;Amazon Digital Text Platform&lt;/a&gt; and you don't need an ISBN (it's optional), you don't need to download conversion software, and you can use your existing Amazon user account. (Granted you have to add some data, like your Social Security number and a mailing address for royalty checks, but still...)&lt;br /&gt;&lt;br /&gt;I had to fill out some metadata again, but it only took about 15 minutes to setup the account and upload the PDF of the manuscript. Amazon now says that the book is "in review" and theoretically you'll be able to buy it on Kindle any time now.&lt;br /&gt;&lt;br /&gt;[Update: the book is published]&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-7670116182788363818?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/7670116182788363818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=7670116182788363818' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7670116182788363818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7670116182788363818'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/11/publishing-ebook-on-amazon-2010-edition.html' title='Publishing an ebook on Amazon - 2010 edition'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6940047225298939416</id><published>2010-11-17T10:26:00.000-08:00</published><updated>2010-11-17T10:27:18.091-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>An Application Programmers Appeal</title><content type='html'>My fellow application programmers,&lt;br /&gt;&lt;br /&gt;Have you ever noticed how  sometimes you learn on the run, slapping together code from working  examples, and other times you take your time, really study the  technology, savoring it and understanding its complexity? Have you  noticed that there are some things which are far more amenable to one  than to the other?&lt;br /&gt;&lt;br /&gt;What if &lt;i&gt;all&lt;/i&gt; learning starts out as "on the run" learning? You  pull something into a project to make your life easier, to abstract  away something that you don't want to do. You don't want to become an  expert. If you can  adapt an example its a good sign: you are playing to  the libraries strengths, and don't really need to learn much about it  for it to be useful. JodaTime might be a good example, or any of the  Apache Commons.&lt;br /&gt;&lt;br /&gt;Sometimes you pull something in and it works, but it leaves you  feeling a little uncomfortable. There's just too much about it that you  don't understand. It's a nagging itch that you want to scratch: what  exactly is going on in there? Personally, I had this feeling with log4j -  a deceptively simple little library with a surprising amount of depth.  (And actually I'm still not entirely clear how commons logging,  java.util.logging, and log4j all mesh together, even though I'm pretty  sure we're talking about like 20 small classes).&lt;br /&gt;&lt;br /&gt;Over time there are these "idea" technologies which just don't make  sense unless you know the idea behind them. Spring is perhaps the best  example of this. Learning the control flow of a Spring app without prior  knowledge would be like learning French from a French dictionary. It  seems like there are lots of idea tools out there, and more every day.  Most of them are NOT amenable to quick uptake.&lt;br /&gt;&lt;br /&gt;It would seem like most library authors would enjoy having you  become an expert in their library, to become passionate about it, to  understand it's delicate intricacies - especially the idea-driven tools.  But often this just doesn't happen. Why not? Because when it does it is  by persistent necessity rather than inclination. Consider Spring:  people learn it because they use it for project after project. It is a  persistent feature of the application landscape. It pays to learn it,  and to learn it very well. But Sax? Or Java IO? Or Swing? You might need  it occasionally, but there's no reason to dig in. Ignoring these  libraries is a smart play.&lt;br /&gt;&lt;br /&gt;The technology that seems to do the best are those rare gems which  are both easy to adopt when you're in a hurry,  which are broadly useful  across a lot of projects, and which reward the student as they get  deeper into it.&lt;br /&gt;&lt;br /&gt;These observations drive a few conclusions. First, for an  application programmer, be kind to yourself and recognize when you're  running and gunning, and when you're taking your time to savor the  moment. We will always experience a combination of both modes, and  neither mode is better than the other, so don't berate yourself for not  taking the time to learn that library better or using it to it's full  potential. You didn't have time, and 99% of the other users didn't have  time either.  Second, for the library author, recognize and embrace  those two modes because they are both important. Too often you make it  difficult for us to use your libraries, expecting us to know magic  incantations (class casts, method chains, constants) to accomplish  straight-forward tasks. I have no doubt that the complexity is necessary  to handle edge cases: but that's not why I'm using the library! I'm  using it for the core case. Give me a utility class and mark it clearly  as such (oh boy, nothing slows people down like trying to figure out  dueling utility classes, abstractions on top of abstractions done with  different idioms within the same project, and finding out that they were  just facades over the *real* library). For God's sake use package level  JavaDocs liberally to explain how the pieces go together with simple  example code, and make some reference to applicable utility class in the  lower level classes.&lt;br /&gt;&lt;br /&gt;It's not easy being a Java programmer, and it never will be. Our  language's expressivity is inherently (and intentionally) limited in the  hopes that the compiler and other programmer tools can make our  programs more error free. This trade-off between safety and freedom  makes it all the more important that our libraries be incredibly  well-designed, because we just don't have the linguistic freedom to mold  your library to our liking.&lt;br /&gt;&lt;br /&gt;Sincerely,&lt;br /&gt;(Java)Josh&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-6940047225298939416?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6940047225298939416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6940047225298939416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6940047225298939416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6940047225298939416'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/11/application-programmers-appeal.html' title='An Application Programmers Appeal'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-3123999071155861485</id><published>2010-10-11T18:44:00.001-07:00</published><updated>2010-10-11T18:44:17.947-07:00</updated><title type='text'>Going gung-ho on the yaught</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I feel good being rather more gung-ho about boating. Replacing an engine using the main mast and main sheet block, and, today, jumping into the marina water to remove a prop shaft...well, lets say that not everyone does things this way. John and I (well, mostly John) did it this way. It's good.&lt;br/&gt;&lt;br/&gt;The cool part about it all is feeling less trepidation about things. Most boaters are vaguely uncomfortable with the true innards of their boats: the through-hulls, the packing glands, the ball valves, the bilges. The thinking is that if you ignore it, and nothing goes wrong, then you're fine. If someone tells you something is wrong on haul-out then you just pay them to fix it.&lt;br/&gt;&lt;br/&gt;It's a little different for a restoration. I know what a packing gland is because I've removed one. I know exactly how much water will come into the boat if you take it off, because I've seen it. I know what a cutlass bearing is because it's a pain in the ass to pull a prop shaft through one. I know how zinc is mounted to a prop shaft because I've been underwater holding my breath to disassemble one. I know how sharp a prop is because I've had to manhandle one to get the prop shaft out.&lt;br/&gt;&lt;br/&gt;And now I have to figure out a way to replace a cutlass bearing &lt;i&gt;underwater&lt;/i&gt;. Based on&lt;a href='http://forums.sbo.sailboatowners.com/showthread.php?t=107374&amp;amp;page=3'&gt; info from the internet&lt;/a&gt;, I don't think it can be done. But it doesn't mean I'm not gonna try. I don't see why those instructions can't be executed underwater - with the exception of the dremel tool, which can easily be substituted. &lt;br/&gt;&lt;br/&gt;I just need one of those hull cleaner's machines that forces water down to the diver. Or maybe I can build one myself. How hard could it be? Just need a regulator and an air pump.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-3123999071155861485?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/3123999071155861485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=3123999071155861485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3123999071155861485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3123999071155861485'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/10/going-gung-ho-on-yaught.html' title='Going gung-ho on the yaught'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-7988042199230696371</id><published>2010-10-11T13:11:00.001-07:00</published><updated>2010-10-11T13:11:20.827-07:00</updated><title type='text'>A way to improve corporate ecological responsibility</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I propose a simple law who's purpose is to align the interests of executives with the interests of the communities in which their companies have great effect. If your company releases "safe" waste water, you must swim in it. If your company releases "safe" exhaust, you must breath it. If your company provides "healthy" food, you must eat it. I propose that there be spot checks (in the case of eating) and surprise drills (in the case of breathing and swimming) to avoid gaming the system.&lt;br/&gt;&lt;br/&gt;This would also make a very entertaining reality-TV show, similar to "Undercover Boss" (which is a great idea, BTW). Imagine the old white executive having to put on a speedo and swim in the muck he's been releasing. Tell me executives wouldn't take a more...personal interest in making sure of the truth of their environmental impact!&lt;br/&gt;&lt;br/&gt;(This idea was inspired by the gloop I saw in the riverbed behind the DWP power plant in Seal Beach. I thought to myself, &lt;i&gt;wow, if the execs had to swim in that, it would be a lot cleaner.&lt;/i&gt;)&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-7988042199230696371?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/7988042199230696371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=7988042199230696371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7988042199230696371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7988042199230696371'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/10/way-to-improve-corporate-ecological.html' title='A way to improve corporate ecological responsibility'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-2700461863562421988</id><published>2010-09-10T14:50:00.001-07:00</published><updated>2010-09-10T15:16:56.151-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='happy'/><category scheme='http://www.blogger.com/atom/ns#' term='philosophy'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Don't like the idea of burning Korans? Here's what you can do.</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Don't like the idea of &lt;a href="http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CB4QqQIwAA&amp;amp;url=http%3A%2F%2Fabcnews.go.com%2FUS%2Fterry-jones-church-turns-media-circus%2Fstory%3Fid%3D11606661&amp;amp;rct=j&amp;amp;q=koran&amp;amp;ei=eKaKTIuEFIKqsAOzteGeBA&amp;amp;usg=AFQjCNFkPl1U_jI_QBxYIt8s_F98Exqvug&amp;amp;sig2=AjyzJw54vdJJWM-1cGntew&amp;amp;cad=rja"&gt;pastor Terry Jones burning the holy book believed in by like a billion people&lt;/a&gt;? Well, we can't really stop him, and we shouldn't - he's exercising free speech. But we can offset the loss:&lt;br /&gt;&lt;br /&gt;Sep 11 2010 is now &lt;big&gt;&lt;big&gt;&lt;big&gt;&lt;big&gt;&lt;b&gt;Print a Koran Day&lt;/b&gt;&lt;/big&gt;&lt;/big&gt;&lt;/big&gt;&lt;/big&gt;.&lt;br /&gt;&lt;br /&gt;Here is the &lt;a href="http://www.facebook.com/pages/Print-a-Koran-Day/130013737046601?ref=sgm"&gt;Facebook Page&lt;/a&gt;. Please like, comment, and print!&lt;br /&gt;&lt;br /&gt;Jones will burn 200 Korans. How many can we print? Then we can find our local mosque and give them a replacement. Together we can offset the hate of one man, and show that we value and respect those who's beliefs differ from our own.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-2700461863562421988?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/2700461863562421988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=2700461863562421988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/2700461863562421988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/2700461863562421988'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/09/don-like-idea-of-burning-korans-here.html' title='Don&amp;#39;t like the idea of burning Korans? Here&amp;#39;s what you can do.'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-4756214456895738761</id><published>2010-09-06T16:42:00.001-07:00</published><updated>2010-09-06T16:42:30.168-07:00</updated><title type='text'>How to Jailbreak your iPhone - with mistakes.</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I had some spare time today, and I wanted to upgrade my iPhone to iOS4. I had heard that jailbreakme.com was making it super easy to do. So I let iTunes 10 upgrade my iPhone to iOS 4.0.2. &lt;br/&gt;&lt;br/&gt;Big mistake. Jailbreakme.com doesn't work with 4.0.2, only with 4.0.1. Of course, you can't know that until it's too late.&lt;br/&gt;&lt;br/&gt;Most people at this point would be screwed - you're upgraded, and the only way to use your phone is to go to AT&amp;amp;T with your tail between your legs and ask for a 2 year contract. Nicely. Luckily, I had, at some point, saved something called an "SHSH" with Cydia for iOS 3.1, which will allow me to &lt;a href='http://www.iphonedownloadblog.com/2010/08/16/how-to-downgrade-iphone-4-0-2-to-4-0-1/'&gt;downgrade&lt;/a&gt; to 4.0.1, and continue using my T-Mobile prepaid SIM card like God intended.&lt;br/&gt;&lt;br/&gt;I haven't yet recovered, and I might not recover. In which case I'll have to forcibly switch to Android. Oh well.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-4756214456895738761?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/4756214456895738761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=4756214456895738761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4756214456895738761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4756214456895738761'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/09/how-to-jailbreak-your-iphone-with.html' title='How to Jailbreak your iPhone - with mistakes.'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-5309838768806398716</id><published>2010-09-05T20:44:00.001-07:00</published><updated>2010-09-05T20:47:13.033-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computers'/><category scheme='http://www.blogger.com/atom/ns#' term='culture'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='writing'/><title type='text'>A drawback to writing your own word-processor</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;So I wanted to write a word-processor whose native format was plaintext or close to it. This was to support version control, portability, and tool unification. I hacked something together in an evening and have used it for a couple of stories. To get a PDF you do this:&lt;br/&gt;&lt;ol&gt;&lt;li&gt;Write the story in Textile. Eclipse has an almost nice WYSIWYG editor for this.&lt;/li&gt;&lt;li&gt;Load the story into my Viewer, which is a simple Ajax application that renders textile, applies CSS and generally gets it ready for printing.&lt;/li&gt;&lt;li&gt;Print to PDF&lt;/li&gt;&lt;/ol&gt;This is actually not as bad as it sounds, and I have to say it's really nice to format a story (or any printed document really) using CSS. It's also really nice to write a story using the same tools I use to code. Code folding and syntax-highlighting is useful in stories, too! (Would be nice to define a "Convert to first person" refactoring?)&lt;br/&gt;&lt;br/&gt;The big drawback is that, after printing, it's almost impossible to integrate edits made in pen back into the plaintext. It's a drawback I just didn't expect, which makes it interesting! With an ordinary word-processor you have 1-1 page correspondence, and you locate the edit &lt;i&gt;spatially&lt;/i&gt;. This is totally lost with my method, and it's a deal breaker. &lt;br/&gt;&lt;br/&gt;The only way is to scan the text for the nearest heading and then for paragraph breaks and then keywords. It's slow and difficult.&lt;br/&gt;&lt;br/&gt;Interestingly, this is also something of a problem with Google Docs, which also does not render page breaks.&lt;br/&gt;&lt;br/&gt;One work-around is to render the textile text in the same shape as the printed page. I haven't tried this and I don't want to talk myself out of it as a solution, but it seems like this would be pretty difficult to do correctly. Another work-around would be to actually do the editing within the browser. Of course, there the problem is that I'm no longer using friendly tools.&lt;br/&gt;&lt;br/&gt;For now the roll-your-own open technology wordprocessor for stories is on the backburner. But who knows? I might resurrect it.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-5309838768806398716?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/5309838768806398716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=5309838768806398716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/5309838768806398716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/5309838768806398716'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/09/drawback-to-writing-your-own-word.html' title='A drawback to writing your own word-processor'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-949489352467890491</id><published>2010-07-13T15:06:00.001-07:00</published><updated>2010-07-13T15:08:14.330-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='science'/><title type='text'>Lovely science coverage in the NTY: Seashells</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Just a quick mention. The NYT has a photo-heavy article on seashells, vaguely related to a book named, "The Book of Shells" by M. G. Harasewych and Fabio Moretzsohn. I like the elegant &lt;a href='http://www.nytimes.com/slideshow/2010/07/12/science/071210Shells-10.html'&gt;Crispate Scissurelle (Anatoma Crispata)&lt;/a&gt; and the stunningly beautiful &lt;a href='http://www.nytimes.com/slideshow/2010/07/12/science/071210Shells-12.html'&gt;Matchless Cone (Conus Cedonulli&lt;/a&gt;. &lt;br/&gt;&lt;br/&gt;Looking at these pictures, I couldn't help but think about complexity how recursion so beautifully addresses such problems. Recursion gives you simplicity &lt;i&gt;and&lt;/i&gt; complexity: that there is some small amount of code being executed to create these shapes, ordering vast numbers of molecules into a coherent shape.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-949489352467890491?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/949489352467890491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=949489352467890491' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/949489352467890491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/949489352467890491'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/07/lovely-science-coverage-in-nty.html' title='Lovely science coverage in the NTY: Seashells'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-3718626251877768818</id><published>2010-07-09T14:01:00.001-07:00</published><updated>2010-07-14T13:19:50.681-07:00</updated><title type='text'>An important lesson for American innovation: will we listen?</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;NTP Inc. (&lt;a href='http://en.wikipedia.org/wiki/NTP,_Inc.'&gt;wiki&lt;/a&gt; - they don't have a website) "holds a number of patents but doesn't manufacture any products" according to the Wall Street Journal (&lt;a href='http://online.wsj.com/article/BT-CO-20100709-708815.html'&gt;wsj.com&lt;/a&gt;). And it has filed suite against Apple, Google, HTC, LG, Microsoft and Motorola over wireless email. Blackberry has already settled a similar case with NTP for $612.5 million.&lt;br/&gt;&lt;br/&gt;With the priviso that I know only as much about this case as was reported in the WSJ, I'd say we have something to learn. When I say "we" I mean "congress" and when I say "lesson" I mean "patent reform".&lt;br/&gt;&lt;br/&gt;In the beginning, an artisan could make money by selling products. This was fine as long as the product was difficult to make: there was no point in protecting the design when the method of manufacture was the barrier-to-entry for competitors.&lt;br/&gt;&lt;br/&gt;Over time, the ability to manufacture or copy a device has become easier and easier. Artisans, now called engineers, were less encouraged to innovate because, at best, they would only be able to produce a few of the items before the design was copied. &lt;br/&gt;&lt;br/&gt;And so the patent system was invented to protect intellectual property independent of the specific devices. It accomplishes this by protecting the idea behind the design of a product. If a product is created with the same backing idea as another, then it's fair game for a lawsuit.&lt;br/&gt;&lt;br/&gt;What's happening now is that people are taking out patents on ideas they do not intend to develop into products. They then attack the companies that turn the idea (which is almost always independantly derived) into an economically viable product. This creates a society which rewards documenting ideas, and badly punishes executing an idea. So, if we want to live in a world of thumb-twiddlers, by all means, carry on.&lt;br/&gt;&lt;br/&gt;It seems to be happening more with software patents, but I'm sure it's happened during the entire history of the patent system. It's hard for me to imagine that the patent system doesn't have some provision limiting remedies to those who never bother to turn an idea into a product, viable or not.&lt;br/&gt;&lt;br/&gt;The other problem with the system is complexity. Patent law is complex. Proving prior art is notoriously complex. Patent's should be simpler to get, to verify, and to litigate over. The IP system in this country needs a serious overhaul.&lt;br/&gt;&lt;br/&gt;Why am I concerned about it? I'm an independant inventor of no great note. The entities most at risk are those with deep pockets: companies like the defendants in the NTP Inc. lawsuit. If anything I'm more likely to benefit from patent trolling myself!&lt;br/&gt;&lt;br/&gt;This might sound naive, but I'm against patent trolling because it's bad for society. Yes, I want to invent things and get paid for it (and get paid handsomely!). But I want to do it fairly: by getting a patent, and either developing it or shopping around for licensees. I wouldn't be able to live with myself if I filed a patent and sat on it for a few years until someone else came up with the same idea and made millions, and then I come out of the woodwork with a lawsuit. "Ha!" I say, "I have a patent on that!"&lt;br/&gt;&lt;br/&gt;Here are some related links:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;&lt;a href='http://www.wcl.american.edu/pijip/go/patent'&gt;http://www.wcl.american.edu/pijip/go/patent&lt;/a&gt; American Unviersity"&lt;a class='blue' href='http://www.wcl.american.edu/pijip/'&gt;Program on &lt;br/&gt;Information Justice and Intellectual Property&lt;/a&gt;" likes to file briefs with the Surpreme Court on the topic.&lt;br/&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.eff.org/issues/patents'&gt;http://www.eff.org/issues/patents&lt;/a&gt; The EFF is against software patents altogether, a position which I don't agree with.&lt;br/&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.law.com/jsp/article.jsp?id=1202462729156'&gt;http://www.law.com/jsp/article.jsp?id=1202462729156&lt;/a&gt; An overview of the pending Patent Reform Act and why it's unlikely to pass. Alas, the issue of patent trolling is not addressed in the Act.&lt;br/&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-3718626251877768818?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/3718626251877768818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=3718626251877768818' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3718626251877768818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3718626251877768818'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/07/important-lesson-for-american.html' title='An important lesson for American innovation: will we listen?'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-4858100395966126094</id><published>2010-07-02T18:44:00.001-07:00</published><updated>2010-07-02T18:48:36.442-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computers'/><category scheme='http://www.blogger.com/atom/ns#' term='stuff'/><category scheme='http://www.blogger.com/atom/ns#' term='writing'/><title type='text'>A writers printer</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://reviews.cnet.com/laser-printers/brother-hl-2140/4505-3159_7-32847622.html?tag=also'&gt;&lt;img width='200' src='http://i.i.com.com/cnwk.1d/sc/32847622-2-200-0.gif' alt='Brother HL-2140'/&gt;or&lt;/a&gt;&lt;a href='http://reviews.cnet.com/laser-printers/samsung-ml-1630/1805-3159_7-32638991.html?tag=also'&gt;&lt;img width='191' height='143' src='http://i.i.com.com/cnwk.1d/sc/32638991-2-440-OVR-1.gif'/&gt;or&lt;img width='184' height='138' src='http://i.i.com.com/cnwk.1d/sc/33949161-2-440-OVR-1.gif' class='toolTipElement' lrgimg='http://i.i.com.com/cnwk.1d/sc/33949161-2-1333-OVR-1.jpg' lrgheight='1000' lrgwidth='1333' initimg='http://i.i.com.com/cnwk.1d/sc/33949161-2-440-OVR-1.gif'/&gt;or&lt;/a&gt;&lt;a href='http://h10010.www1.hp.com/wwpc/us/en/sm/WF05a/18972-18972-3328059-14638-3328066-4110394.html'&gt;&lt;img width='170' height='145' border='0' src='http://h10003.www1.hp.com/digmedialib/prodimg/lowres/c02053616.jpg' alt='HP LaserJet Pro P1100 Printer series - Black and White Laser Printers'/&gt;or&lt;/a&gt;&lt;a href='http://reviews.cnet.com/laser-printers/brother-hl-2140/4505-3159_7-32847622.html?tag=also'&gt;&lt;a href='http://www.costco.com/Browse/Product.aspx?Prodid=11542501&amp;amp;whse=BC&amp;amp;Ne=4000000&amp;amp;eCat=BC%7C84%7C54023%7C3002&amp;amp;N=4015993&amp;amp;Mo=2&amp;amp;pos=0&amp;amp;No=0&amp;amp;Nr=P_CatalogName:BC&amp;amp;cat=3002&amp;amp;Ns=P_Price%7C1%7C%7CP_SignDesc1&amp;amp;lang=en-US&amp;amp;Sp=C&amp;amp;ec=BC-EC10616-Cat54023&amp;amp;topnav='&gt;&lt;img width='171' height='171' border='0' alt='HP OfficeJet H470WBT  Mobile Color Inkjet  Printer with Battery' src='http://content.costco.com/Images/Content/Product/281681.jpg' name='ProductImage'/&gt;or&lt;a&gt;&lt;img width='179' height='179' border='0' alt='Canon PIXMA™Compact iP100 Portable Photo Printer' src='http://content.costco.com/Images/Content/Product/351254.jpg' name='ProductImage'/&gt;&lt;/a&gt;&lt;/a&gt;&lt;br/&gt;&lt;/a&gt;&lt;br/&gt;These are all small, monochrome laser printers, around the $150 mark, with the exception of the last two which is $330 and battery powered, and $230 without a battery, but very small. (I love the idea of taking a printer with me to the coffee shop!)&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-4858100395966126094?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/4858100395966126094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=4858100395966126094' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4858100395966126094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4858100395966126094'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/07/writers-printer.html' title='A writers printer'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-1915876460905851343</id><published>2010-07-01T14:50:00.001-07:00</published><updated>2010-07-01T14:51:59.384-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computers'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>A great upgrade</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://www.newegg.com/Product/Product.aspx?Item=N82E16822148591&amp;amp;Tpk=hybrid%20ssd' class='noline' id='pclaImagePreviewLink' target='_blank'&gt;&lt;img style='float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;' src='http://images17.newegg.com/is/image/newegg/22-148-591-Z04?$S180W$' alt='Seagate Momentus XT 500GB 2.5&amp;quot; SATA 3.0Gb/s with NCQ Solid State Hybrid Drive -Bare Drive' title='Seagate Momentus XT ST95005620AS 500GB 7200 RPM 2.5&amp;quot; SATA 3.0Gb/s with NCQ Solid State Hybrid Drive -Bare Drive' id='pclaImagePreview'/&gt;&lt;/a&gt;I'm super happy about an upgrade I did last night, and encourage everyone out there to consider it. I installed a &lt;a href='http://www.newegg.com/Product/Product.aspx?Item=N82E16822148591&amp;amp;Tpk=hybrid%20ssd'&gt;Seagate Momentus X25 hybrid SSD drive&lt;/a&gt; ($145 incl tax from NewEgg) into my uni-body Mac Book. It was slightly more involved (and expensive) than I expected, but I am so pleased with the result.&lt;br/&gt;&lt;br/&gt;My first attempt at upgrading involved a no-name USB to SATA cable thing. It didn't work - the drive would mount for a few minutes then forcibly unmount, with or without the external powersupply. I wasted a few hours with this approach.&lt;br/&gt;&lt;br/&gt;&lt;a href='http://www.newegg.com/Product/ImageGallery.aspx?CurImage=22-136-581-TS&amp;amp;ISList=22-136-581-V01%2c22-136-581-V02%2c22-136-581-V03%2c22-136-581-V04&amp;amp;S7ImageFlag=1&amp;amp;Item=N82E16822136581&amp;amp;Depa=0&amp;amp;WaterMark=0&amp;amp;Description=Western%20Digital%20My%20Passport%20SE%201TB%202.5%22%20USB%202.0%20Ultra-portable%20External%20Hard%20Drive%20for%20Mac%20Model%20WDBABW0010BSL-NESN' class='noline' id='pclaImagePreviewLink' target='_blank'&gt;&lt;img style='float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;' src='http://images17.newegg.com/is/image/newegg/22-136-581-TS?$S180$' alt='Western Digital My Passport SE 1TB 2.5&amp;quot; USB 2.0 Ultra-portable External Hard Drive for Mac' title='Western Digital My Passport SE 1TB 2.5&amp;quot; USB 2.0 Ultra-portable External Hard Drive for Mac' id='pclaImagePreview'/&gt;&lt;/a&gt;The right way to do the upgrade is with a backup-restore. Which requires a third hard-drive. For this I purchased a "&lt;a href='http://www.newegg.com/Product/Product.aspx?Item=N82E16822136581&amp;amp;cm_re=western_digital_passport-_-22-136-581-_-Product'&gt;Western Digital My Passport SE 1TB 2.5" USB 2.0 Ultra-portable External Hard Drive for Mac Model WDBABW0010BSL-NESN&lt;/a&gt;" (say that 10x fast!). It was not cheap at $200 from Best Buy (including tax). But it's a small, pretty little device that doesn't need an external power supply. I then used Time Machine to do a complete backup, which took 7 hours for 230GB of data.&lt;br/&gt;&lt;br/&gt;Physical installation was tougher than most laptops, but not by much. You need a tiny philips head and a torx T-6 tool. It's pretty straightforward and took about 10 minutes.&lt;br/&gt;&lt;br/&gt;To restore &lt;i&gt;&lt;b&gt;you need your startup disk&lt;/b&gt;&lt;/i&gt;. This is a critical piece and I bet lack of it will stymie many would-be upgraders. Select Utilities|Restore from Time Machine Backup, and wait. I was a bit freaked out by the extended white screen on boot, but apparently that's normal. Restore took about 5 hours.&lt;br/&gt;&lt;br/&gt;This drive is freakin' fast. My whole machine is noticeably snappier. I didn't want to buy the external USB drive, but I'm kinda glad I did: it's a nice bit of insurance. (I was slightly tempted to get a Time Capsule, which includes an 802.11n router with a 1TB drive, but decided against because of the $340 price tag, and the almost certainly slower performance.)&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-1915876460905851343?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/1915876460905851343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=1915876460905851343' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1915876460905851343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1915876460905851343'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/07/great-upgrade.html' title='A great upgrade'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-2033490406856476250</id><published>2010-06-23T11:30:00.000-07:00</published><updated>2010-06-23T11:45:24.496-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='culture'/><category scheme='http://www.blogger.com/atom/ns#' term='snark'/><title type='text'>It's Good to be the King</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i.usatoday.net/communitymanager/_photos/game-on/2010/06/22/albertx-inset-community.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 230px; height: 179px;" src="http://i.usatoday.net/communitymanager/_photos/game-on/2010/06/22/albertx-inset-community.jpg" alt="" border="0" /&gt;&lt;/a&gt;They're getting married! She's 32, blond, Olympic swimmer hot. He's 52 and looks like a jowly accountant. How did they hook up?&lt;br /&gt;&lt;br /&gt;I don't know the story, but I'm guessing that being the fantastically wealthy prince of friggin' Monaco didn't hurt &lt;a href="http://en.wikipedia.org/wiki/Albert_II,_Prince_of_Monaco"&gt;his&lt;/a&gt; chances.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://content.usatoday.com/communities/gameon/post/2010/06/prince-albert-of-monaco-to-wed-olympic-swimmer/1"&gt;&lt;b&gt;Prince  Albert of Monaco to wed Olympic swimmer Charlene Wittstock&lt;/b&gt;&lt;/a&gt; the  headline reads. It should read, "It's Good to be the King."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-2033490406856476250?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/2033490406856476250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=2033490406856476250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/2033490406856476250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/2033490406856476250'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/06/its-good-to-be-king.html' title='It&apos;s Good to be the King'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6274872521857168995</id><published>2010-06-21T16:25:00.001-07:00</published><updated>2010-07-14T13:22:51.623-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='chess'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>The Smartphone Age is a great time to learn chess!</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I'm excited to report that the portable chess problem has been solved, and the solution is called a "smartphone" (aka iPhone 3GS). As a result, there is no reason not to learn this fabulous game.&lt;br/&gt;&lt;br/&gt;My reintroduction to the game was made by my iPhone courtesy of Deep Green, but only really deepened with &lt;a href='http://www.shredderchess.com/iphone'&gt;&lt;img width='45' height='47' style='float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;' src='http://www.shredderchess.com/templates/shredder/images/headlogo.gif' id='logo' alt='Shredder Computer Chess'/&gt;Shredder Chess&lt;/a&gt; (a total steal at $7.99 - the desktop version starts at $50) particularly thanks to  the puzzle feature. "Puzzles" are generally mid-game problems with solutions from 1 to 8 moves in length. They are fantastic "aha!" teaching moments, and they are fun to solve. I've learned more about forks, time, and pinning from these puzzles than in years of casual play. I can apply these lessons directly to my normal games.&lt;br/&gt;&lt;ul&gt;&lt;li&gt;&lt;a href='http://www.shredderchess.com/iphone/chess-puzzle.html'&gt;Click here&lt;/a&gt; to get a sense of a shredder chess puzzle (updated daily).&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.shredderchess.com/iphone/play-chess.html'&gt;Click here&lt;/a&gt; to play against shredder free online.&lt;/li&gt;&lt;/ul&gt;The great innovation here is two fold. First, portable computer chess finally has found a great platform: the smart phone. Most people's interest in chess isn't high enough to justify a separate device, which have been sold for years. But it's enough to sustain an app on a phone you carry anyway. Forget Doodle Jump - play chess when you're waiting around for something! The second innovation is Shredder Chess' concept of a Chess puzzle.&lt;br/&gt;&lt;br/&gt;Chess puzzles  highlight the beautiful parts of a chess game. Openings are  about memory and style, end games about mathematical certainty. But  mid-game situations are where that big advantage is won or lost,  and so where the game is won or lost even if it takes another 30 moves to knock over the king.&lt;br/&gt;&lt;br/&gt;Shredder's software execution is all but perfect, particularly the ability to play the puzzle then switching to play the position against the computer, allowing you to test out alternate theories &lt;i&gt;from both sides&lt;/i&gt;. That is, the solution to the puzzle is only the start. You can regress the game and ask the all-important question: I beat my opponent this time. How could he have avoided this fate?&lt;br/&gt;&lt;br/&gt;Without a single word, these puzzles say so much! What a perfect way to learn the game: rather than memorize and apply the insights of masters, this method encourages you to make your own insights, which in turn makes the game in a very rewarding game of discovery rather than a boring game of regurgitation or application of theory. The insight of masters are invaluable, but to really appreciate them you must have your own framework of understanding. (Many Go teachers say that you should play at least 100 games of Go,  before studying theory for this very reason.)&lt;br/&gt;&lt;br/&gt;I should add that while you generally don't have to play out the puzzle game to it's end, I often do, as my end game is (was?) a big weakness. I might be up a queen and still lose in my rush to end it. But now I really understand the significance of a passed pawn and the slipperiness of the King and the need to be thoughtful and careful even when you have an enormous power advantage. Carelessness kills.&lt;br/&gt;&lt;br/&gt;I can't say enough about Shredder on the iPhone, but there is one thing missing: openings. Very few of the puzzles occur in the opening, and most of those take advantage of fairly obvious opponent mistakes. Shredder has a cool feature where it identifies and names your opening. But it would be nice if it had an "opening drill" feature to help you memorize openings (and understand their implications for the rest of the game).&lt;br/&gt;&lt;br/&gt;Not to take away anything from the amazing and innovative new kinds of games like &lt;a href='http://www.gamezebo.com/iphone-games/doodle-jump/review'&gt;Flight Control&lt;/a&gt;, &lt;a href='http://www.gamezebo.com/iphone-games/doodle-jump/review'&gt;Doodle Jump&lt;/a&gt;, &lt;a href='http://www.pocketgamer.co.uk/r/iPhone/Angry+Birds+%28iPhone%29/review.asp?c=17385'&gt;Angry Birds&lt;/a&gt;, or &lt;a href='http://dailymobile.se/2009/08/13/iphone-game-spider-the-secret-of-bryce-manor/'&gt;Spider&lt;/a&gt; but why not kill two birds with one stone (or two stones with one bird, if you play Angry Birds). Chess is an aristocratic game of kings. It's good for the brain and a lot of fun, and perfect on this platform.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-6274872521857168995?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6274872521857168995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6274872521857168995' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6274872521857168995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6274872521857168995'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/06/learning-chess-in-smartphone-age.html' title='The Smartphone Age is a great time to learn chess!'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-352453763180250417</id><published>2010-06-20T23:19:00.001-07:00</published><updated>2010-06-21T16:41:34.762-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='computers'/><category scheme='http://www.blogger.com/atom/ns#' term='stuff'/><title type='text'>Kinda tempted to build a gaming computer</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;a href="javascript:fnHardlineProductView('1218152062935',%20'9693859','false','cat13506')"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://www.bestbuy.com/site/Compaq+-+Presario+Desktop+with+AMD+Athlon%26%23153%3B+II+Dual-Core+Processor/9693859.p?id=1218152062935&amp;amp;skuId=9693859"&gt;&lt;img alt="9693859 Angle Large" src="http://images.bestbuy.com/BestBuy_US/images/products/9693/9693859_rb.jpg" style="float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;" height="260.0" width="183.0" align="top" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="javascript:fnHardlineProductView('1218152062935',%20'9693859','false','cat13506')"&gt;&lt;br /&gt;&lt;/a&gt;A cheap, good gaming PC for $430. Really, just to play Portal 2, Counter Strike:Source, and maybe some old stand-by's like Supreme Commander and Ultima III in the Apple IIe emulator. (It may be a $60 card but it will drive my 30" Cinema at full resolution.)&lt;a target="_blank" id="pclaImagePreviewLink" class="noline" href="http://www.newegg.com/Product/Product.aspx?Item=N82E16814133306"&gt;&lt;img id="pclaImagePreview" title="PNY VCGGT2405G5XEB GeForce GT 240 512MB 128-bit GDDR5 PCI Express 2.0 x16 HDCP Ready  Video Card" alt="PNY GeForce GT 240 VCGGT2405G5XEB Video Card" src="http://images17.newegg.com/is/image/newegg/14-133-306-Z01?$S180W$" style="float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-352453763180250417?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/352453763180250417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=352453763180250417' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/352453763180250417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/352453763180250417'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/06/kinda-tempted-to-build-gaming-computer.html' title='Kinda tempted to build a gaming computer'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-168574301753618056</id><published>2010-06-17T12:39:00.001-07:00</published><updated>2010-06-17T12:39:42.321-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>The Oil Spill War.</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;The oil spill is a major threat to the United States. It is correct for the federal government to act to act to mitigate this threat to us all. It is important for Obama to remain clear on this objective. BP has unwittingly triggered an attack on US soil, and they can and should help with defense, but it's our collective interest at stake, and we must take the lead.&lt;br/&gt;&lt;br/&gt;This is a battle with three objectives:&lt;br/&gt;&lt;ol&gt;&lt;li&gt;Stop the flow.&lt;/li&gt;&lt;li&gt;Cleanup the mess.&lt;/li&gt;&lt;li&gt;Don't get distracted.&lt;/li&gt;&lt;/ol&gt;&lt;b&gt;Stop the flow&lt;/b&gt;. Cap it, divert it or plug it. And don't stop trying until you succeed. One solution would be to ask every oil company in the world to come and drill into the field and drain it as quickly as possible. Make this a condition of ever doing business in the US again. Oh, and make sure that your blowout preventers are working.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Cleanup the mess&lt;/b&gt;. Use booms and sponges to keep floating crude away from shore. Figure out a way to sieve dispersed oil from seawater (fund a research project). Enlist locals help cleaning the coast.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Don't get distracted&lt;/b&gt;. By the blame game. By flow calculations. By political calculation. By philosophical positions. By questions of prevention. By principles. By critics. This is by far the most important objective, because without it all other objectives will not be met.&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-168574301753618056?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/168574301753618056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=168574301753618056' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/168574301753618056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/168574301753618056'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/06/oil-spill-war.html' title='The Oil Spill War.'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-3905694562657876626</id><published>2010-06-16T12:18:00.001-07:00</published><updated>2010-06-17T12:42:33.988-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>9 ways to write native iPhone apps with JavaScript</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;img width='200px' align='left' src='http://dl.dropbox.com/u/4566368/iphone.gif' style='margin-right: 14px;'/&gt;John Resig &lt;a href='http://ejohn.org/blog/iphone-javascript-apps/#postcomment'&gt;writes about iPhone JavaScript development&lt;/a&gt; back in November 2008. Here are the projects he mentions. (status as of June 2010 in brackets):&lt;br/&gt;&lt;ol&gt;&lt;br/&gt;&lt;li&gt;&lt;b&gt;&lt;a href='http://www.jiggyapp.com/'&gt;JiggyApp&lt;/a&gt;&lt;/b&gt; requires a jailbroken iPhone [offline]&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href='http://inexdo.com/JSCocoa'&gt;JSCocoa&lt;/a&gt;&lt;/b&gt; "full bridge" for doing full bore Cocoa programming in JavaScript. My take: kind of like Swig but instead of Java/C it's JavaScript/Obj-C. Written by &lt;a href='http://parmanoir.com/'&gt;Patrick Geiller&lt;/a&gt;. [online. moderately active]&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href='http://phonegap.com/'&gt;PhoneGap&lt;/a&gt;&lt;/b&gt; adds some native functionality (accel, gps, but no magnetometer) to an app . Also has great documentation - a &lt;a href='http://building-iphone-apps.labs.oreilly.com/ch07.html'&gt;free O'Reilly book "iPhone Apps"&lt;/a&gt; (which talks about cached webapps, too). Targets Android and Blackberry, too. [online. active]&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href='http://ejohn.org/files/WebTouch.zip'&gt;WebTouch&lt;/a&gt;&lt;/b&gt; is basically a "blank" iPhone app with a single WebKit instance. John likes this one the best. &lt;a href='http://github.com/mocra/webtouch/tree/master'&gt;Code&lt;/a&gt;. &lt;a href='http://drnicwilliams.com/'&gt;Author&lt;/a&gt;. &lt;a href='http://drnicwilliams.com/2008/11/10/to-webkit-or-not-to-webkit-within-your-iphone-app/'&gt;Blog&lt;/a&gt;. [online. inactive]&lt;/li&gt;&lt;/ol&gt;From the comments:&lt;ol&gt;&lt;li&gt;&lt;a href='http://cappuccino.org/learn/tutorials/objective-j-tutorial.php'&gt;Capuccino/Objective-J&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Use "Transfer and View" apps like Dropbox or Files - see &lt;a href='http://www.leancrew.com/all-this/2008/11/local-html-and-javascript-on-the-iphone/'&gt;this blog post&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;QuickConnect - an Xcode template.  &lt;a href='http://sourceforge.net/projects/quickconnect/'&gt;Code&lt;/a&gt; and &lt;a href='http://tetontech.wordpress.com/'&gt;blog&lt;/a&gt;. Development started 4 years ago?! [online. active.]&lt;/li&gt;&lt;li&gt;&lt;a href='http://motherapp.com/'&gt;MotherApp&lt;/a&gt; - generates an Objective C application from JavaScript (presumably). [online. active. commercial]&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.big5apps.com/' rel='nofollow'&gt;Big5 &lt;/a&gt;is an app store app that somehow lets you tap into native functionality. Now &lt;a href='http://github.com/holtwick/big5app'&gt;open source&lt;/a&gt; at github. The readme points users to phonegap.&lt;/li&gt;&lt;/ol&gt;Not really sure what the state of the field is today, but PhoneGaps documentation (courtesy O'Reilly) is pretty huge.Summary: &lt;a href='http://github.com/holtwick/big5app'&gt;PhoneGap&lt;/a&gt; is the winner. But I really like the transfer and view concept, and JSCocoa for doing desktop development.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-3905694562657876626?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/3905694562657876626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=3905694562657876626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3905694562657876626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3905694562657876626'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/06/9-ways-to-write-native-iphone-apps-with.html' title='9 ways to write native iPhone apps with JavaScript'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-1002521781288548061</id><published>2010-06-15T20:56:00.001-07:00</published><updated>2010-06-15T21:12:58.274-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>The Otter Style JavaScript Convention</title><content type='html'>&lt;script src="http://gist.github.com/440144.js?file=otter.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;img src="http://nationalzoo.si.edu/Animals/PhotoGallery/NorthAmerica/photos/20040326-206otter.jpg" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-1002521781288548061?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/1002521781288548061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=1002521781288548061' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1002521781288548061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1002521781288548061'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/06/otter-style-javascript-convention.html' title='The Otter Style JavaScript Convention'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-4829449678500309911</id><published>2010-06-12T16:47:00.001-07:00</published><updated>2010-06-21T16:41:59.327-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='review'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Make yourself happy and avoid the Nexus One</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;img style="max-width: 800px; margin-right: 20px;" src="http://dl.dropbox.com/u/4566368/n1.png" align="left" /&gt;In the end, there are two reasons I cannot recommend this phone:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The display is unreadable in sunlight. If you like the outdoors, like I do, this is a deal breaker. (If you're a vampire, read #2)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The buttons along the bottom of the Nexus One &lt;i&gt;do not work&lt;/i&gt;. Or rather, do not work all the time, which is actually worse from a usability standpoint.&lt;/li&gt;&lt;/ol&gt;Regarding the first point, it is astounding to me that anyone would sell an electronic device that completely fails in sunlight. The sun remains the world's most important light source, and to make something that doesn't work in the sun is outrageously stupid. Only those who never leave a building should consider this phone, and that includes using it in your car. And I don't like to disrespect the sun on general principle.&lt;br /&gt;&lt;br /&gt;(I can't help but wonder what this implies about the Google culture and possible vitamin D deficiencies there.)&lt;br /&gt;&lt;br /&gt;As for the second point, well, the buttons gotta work. Every time you hit a button and it doesn't work, your expectations are blown, and you cause feelings of fear and anxiety in the user. They are small feelings. But they add up. Eventually, the user is all but flinching before touching a key. They look for ways to avoid touching the offending keys. This is usability 101. But you have to stab, cajole, pray, and otherwise beg the shitty Nexus One buttons to register a tap.Absolutely unacceptable. Apple has shown how to do great touch UI with an absolute bare minimum of buttons. The back|menu|home|search buttons on the Nexus One are worse than useless: they actually eroded myexperience to the point where I  just don't want to use the phone anymore.&lt;br /&gt;&lt;br /&gt;And since point 1 rules out all users except vampires, that means point 2 is going to mean Google has to deal with a lot of pissed off vampires. Maybe someone can get Stephanie Meyer to chronicle the inevitable vampire assault on Mountain View. In the meantime, I'm selling my Google stock.&lt;br /&gt;&lt;br /&gt;I'm sorely tempted to eat the $45 restocking fee and return the thing, but I need an Android device for a business project (which doesn't rely on the display, luckily). So I'm gonna keep it, but I'm not gonna like it.&lt;br /&gt;&lt;br /&gt;(For the record, there are three good things about the Nexus One: Google Voice, Live wallpaper, and strong syncing tools. And, to be honest, when you turn the brightness all the way up the indoor display is quite fetching.)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-4829449678500309911?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/4829449678500309911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=4829449678500309911' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4829449678500309911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4829449678500309911'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/06/make-yourself-happy-and-avoid-nexus-one.html' title='Make yourself happy and avoid the Nexus One'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-8553020234900622936</id><published>2010-06-12T00:45:00.001-07:00</published><updated>2010-06-12T00:45:48.717-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='law'/><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><category scheme='http://www.blogger.com/atom/ns#' term='philosophy'/><title type='text'>Imponderables in the geekosphere</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;What happens when you combine &lt;a href='http://www.dmv.ca.gov/pubs/vctop/d11/vc23123.htm'&gt;this law&lt;/a&gt; with &lt;a href='http://www.thinkgeek.com/gadgets/cellphone/8928/'&gt;this gadget&lt;/a&gt;?&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-8553020234900622936?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/8553020234900622936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=8553020234900622936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8553020234900622936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8553020234900622936'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/06/imponderables-in-geekosphere.html' title='Imponderables in the geekosphere'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6732929290611126963</id><published>2010-06-11T18:27:00.001-07:00</published><updated>2010-06-21T16:43:07.131-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='happy'/><category scheme='http://www.blogger.com/atom/ns#' term='boat'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><title type='text'>The Joy of Shopvac</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Yesterday I bought a small ShopVac  from Sears [correction: it's a Craftsman brand. But like Kleenex, the brand name is  also used as the generic]. It's a 2 gallon, 1.5 hp model that cost me $25 + tax. And it's awesome. It is surprisingly powerful.&lt;br /&gt;&lt;br /&gt;Why? Because it solved a hard problem: cleaning my bilge. And it will solve other problems, like cleaning my cushions and the deck. And I can use it to inflate the Avon. And it's small enough to put anywhere.&lt;br /&gt;&lt;br /&gt;Fantastic.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-6732929290611126963?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6732929290611126963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6732929290611126963' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6732929290611126963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6732929290611126963'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/06/joy-of-shopvac.html' title='The Joy of Shopvac'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6451707970529517576</id><published>2010-06-10T19:46:00.001-07:00</published><updated>2010-06-21T16:43:20.483-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='philosophy'/><category scheme='http://www.blogger.com/atom/ns#' term='love'/><title type='text'>A practical guide to "spreading the love"</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Lots of people talk about "spreading the love", but what do they mean and how do you do it?&lt;br /&gt;&lt;br /&gt;Online, the first step to spreading the love is to filter. You read positive items, items that are useful to others, and ignore everything else. The actual love still needs to be spread, so send the link in one of myriad ways. Make them feel special, and that you're thinking of them. The love has been spread! Good job!&lt;br /&gt;&lt;br /&gt;If this sounds good to you, read on. Realize that we read things for all sorts of reasons. To stay informed, to grumble, to reinforce our preconceived notions of how the world works, to waste time, to learn about a topic. This becomes clear when you observe yourself as you read: some items create feelings of hope, delight, or wonder; others create dread, fear, or pain.&lt;br /&gt;&lt;br /&gt;Offline, "spreading the love" can take the form of an extra generous tip, a compliment, or a smile.&lt;br /&gt;&lt;br /&gt;One of the most interesting things about it is that, if you are in a good mood and resolve to "spread the love" you will find a practical way to do it, and believe me, it will make a difference.&lt;br /&gt;&lt;br /&gt;There is limited love that one can spread on a computer: recognize this limit when you reach it and close the thing down!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-6451707970529517576?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6451707970529517576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6451707970529517576' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6451707970529517576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6451707970529517576'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/06/practical-guide-to-love.html' title='A practical guide to &amp;quot;spreading the love&amp;quot;'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-2554648404860073409</id><published>2010-06-02T17:57:00.001-07:00</published><updated>2010-06-02T17:57:20.309-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='happy'/><title type='text'>The cutest thing I've ever seen in my life</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div class='youtube-video'&gt;&lt;object width='640' height='385'&gt;&lt;param value='http://www.youtube.com/v/CVmGBoPx6Ms&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xd0d0d0&amp;amp;hl=en_US&amp;amp;feature=player_embedded&amp;amp;fs=1' name='movie'&gt; &lt;/param&gt;&lt;param value='true' name='allowFullScreen'&gt; &lt;/param&gt;&lt;param value='always' name='allowScriptAccess'&gt; &lt;/param&gt;&lt;embed width='640' height='385' allowscriptaccess='always' allowfullscreen='true' type='application/x-shockwave-flash' src='http://www.youtube.com/v/CVmGBoPx6Ms&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xd0d0d0&amp;amp;hl=en_US&amp;amp;feature=player_embedded&amp;amp;fs=1'&gt; &lt;/embed&gt; &lt;/object&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Courtesy &lt;a href='http://cuteoverload.com/tag/kittens/'&gt;CuteOverload.com&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-2554648404860073409?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/2554648404860073409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=2554648404860073409' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/2554648404860073409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/2554648404860073409'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/06/cutest-thing-i-ever-seen-in-my-life.html' title='The cutest thing I&amp;#39;ve ever seen in my life'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-7121981338721260819</id><published>2010-06-01T21:17:00.001-07:00</published><updated>2010-06-01T21:19:34.647-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>A great album - Kate Bush: Hounds of Love</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://www.amazon.com/Hounds-Love-Kate-Bush/dp/B00004R7TP' target='AmazonHelp' onclick='return amz_js_PopWin(this.href,&amp;apos;AmazonHelp&amp;apos;,&amp;apos;width=700,height=600,resizable=1,scrollbars=1,toolbar=0,status=1&amp;apos;);'&gt;&lt;img height='300' width='300' border='0' style='float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;' onload='if (typeof uet == &amp;apos;function&amp;apos;) { uet(&amp;apos;af&amp;apos;); }' src='http://ecx.images-amazon.com/images/I/316352SPPXL._SL500_AA300_.jpg' id='prodImage' alt='Hounds of Love' onmouseover=''/&gt;&lt;/a&gt;&lt;a href='http://www.amazon.com/Hounds-Love-Kate-Bush/dp/B00004R7TP'&gt;The Hounds of Love&lt;/a&gt;, &lt;a href='http://en.wikipedia.org/wiki/Kate_Bush'&gt;Kate Bush&lt;/a&gt;'s 1985 tour de force, has been a favorite album of mine for many years. It is still as good today as it was in 1994 or so when I first heard it. The second side (titled "The Ninth Wave") is by far my favorite part of the album, and contains two of my most played tracks: The Morning Fog and Watching you Without Me.&lt;br/&gt;&lt;br/&gt;Kate is known as a meticulous producer, and it shows. Every second of this album is impeccably produced, and the sound quality is amazing. Normally I would scoff at good production as being rather pointless - the music is what matters, after all. But Kate's music is so intricate that it requires this kind of careful treatment to be heard. Indeed, I can imagine that Bjørk  would really benefit from production like this. (Actually, so would Sigur Rós, where bad production actually ruined &lt;a href='http://en.wikipedia.org/wiki/%C3%81g%C3%A6tis_byrjun' title='Ágætis byrjun'&gt;Ágætis byrjun&lt;/a&gt; for me after I started catching all the artifacts on relistens.)&lt;br/&gt;&lt;br/&gt;Do yourself a favor and buy this album today. It's amazing. &lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-7121981338721260819?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/7121981338721260819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=7121981338721260819' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7121981338721260819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7121981338721260819'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/06/great-album-kate-bush-hounds-of-love.html' title='A great album - Kate Bush: Hounds of Love'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6151626107671909654</id><published>2010-05-31T17:34:00.001-07:00</published><updated>2010-05-31T17:38:00.432-07:00</updated><title type='text'>How to *really* rock the vote on Memorial Day</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;It's an absolutely picture perfect Southern California memorial day: sunny, bright, and warm. Unusually, we don't even have any smog. Which is a great time to get some clarity about a political change that I support: military service as a condition of the vote. &lt;br/&gt;&lt;br/&gt;This is a fairly radical position, and it's not seriously discussed on the national stage. So let me explain. First of all, it's not &lt;i&gt;that&lt;/i&gt; radical. Compulsory military service, or &lt;a href='http://en.wikipedia.org/wiki/National_service'&gt;national service&lt;/a&gt;, is common throughout the world:  &lt;a href='http://en.wikipedia.org/wiki/Austria' title='Austria'&gt;Austria&lt;/a&gt;, &lt;a href='http://en.wikipedia.org/wiki/Denmark' title='Denmark'&gt;Denmark&lt;/a&gt;, &lt;a href='http://en.wikipedia.org/wiki/Finland' title='Finland'&gt;Finland&lt;/a&gt;, &lt;a href='http://en.wikipedia.org/wiki/Conscription_in_Germany' title='Conscription in Germany'&gt;Germany&lt;/a&gt;, &lt;a href='http://en.wikipedia.org/wiki/Greece' title='Greece'&gt;Greece&lt;/a&gt;, &lt;a href='http://en.wikipedia.org/wiki/Guyana' title='Guyana'&gt;Guyana&lt;/a&gt;, &lt;a href='http://en.wikipedia.org/wiki/Israel' title='Israel'&gt;Israel&lt;/a&gt;, &lt;a href='http://en.wikipedia.org/wiki/Iran' title='Iran'&gt;Iran&lt;/a&gt;, &lt;a href='http://en.wikipedia.org/wiki/Malaysia' title='Malaysia'&gt;Malaysia&lt;/a&gt;, &lt;a href='http://en.wikipedia.org/wiki/Mexico' title='Mexico'&gt;Mexico&lt;/a&gt;, &lt;a href='http://en.wikipedia.org/wiki/Norway' title='Norway'&gt;Norway&lt;/a&gt;, the &lt;a href='http://en.wikipedia.org/wiki/Republic_of_China' title='Republic of China'&gt;Republic of China&lt;/a&gt; (Taiwan), &lt;a href='http://en.wikipedia.org/wiki/Russia' title='Russia'&gt;Russia&lt;/a&gt;, &lt;a href='http://en.wikipedia.org/wiki/Singapore' title='Singapore'&gt;Singapore&lt;/a&gt;, &lt;a href='http://en.wikipedia.org/wiki/Military_of_South_Korea' title='Military of South Korea' class='mw-redirect'&gt;South Korea&lt;/a&gt;, &lt;a href='http://en.wikipedia.org/wiki/Sweden' title='Sweden'&gt;Sweden&lt;/a&gt;, &lt;a href='http://en.wikipedia.org/wiki/Switzerland' title='Switzerland'&gt;Switzerland&lt;/a&gt; and &lt;a href='http://en.wikipedia.org/wiki/Turkey' title='Turkey'&gt;Turkey&lt;/a&gt; all do it. Israel is particularly commendible for conscripting women as well as men.&lt;br/&gt;&lt;br/&gt;Military service does two things that are useful for voters: first, it organizes them in the largest single organizational structure our nation has. This teaches people to work coherently in large numbers, which is a good basis for acting coherently when it comes time to national votes. Second, and more importantly, our service men are putting their life on the line to achieve this countries geopolitical goals. That's a more important and more meaningful contribution than tax dollars, and should be rewarded with something more meaningful, like the vote. The most i&lt;br/&gt;&lt;br/&gt;It is hard to imagine veterans putting up with the kind of vitriolic non discourse that dominates today's landscape. Veterans know that talk is cheap, it's easier to be a critic than to act, and that actions mean something, even if you get it wrong. They understand that honor isn't an abstract, useless thing, that without honor organizations fall apart. The vitriol will die off because the demand will disappear.&lt;br/&gt;&lt;br/&gt;This is a long term play. It will take at least a generation for the effects to fully be felt. But it's an experiment that's worth making.&lt;br/&gt;&lt;br/&gt;A hearty salute to all our soldiers out there, domestic and abroad. Kick some ass!&lt;br/&gt;&lt;br/&gt;Peace.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-6151626107671909654?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6151626107671909654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6151626107671909654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6151626107671909654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6151626107671909654'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/05/how-to-really-rock-vote-on-memorial-day.html' title='How to *really* rock the vote on Memorial Day'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6801910835798019088</id><published>2010-05-30T10:22:00.001-07:00</published><updated>2010-05-30T15:13:31.352-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><category scheme='http://www.blogger.com/atom/ns#' term='snark'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='celebrity'/><title type='text'>When hot girls sing.</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;When you like someone you put up with a lot. If your girl likes to sing, and she's bad at it, you let the girl sing anyway. No harm. But for some reason, &lt;span style='background-color: rgb(255, 255, 102);'&gt;Barnes &amp;amp; Nobles&lt;/span&gt; believes that &lt;span style='background-color: rgb(255, 255, 102);'&gt;Him &amp;amp; Her&lt;/span&gt; needs to be played while I shop. This is odd because I'm pretty sure is dating &lt;span style='background-color: rgb(255, 255, 102);'&gt;Zoey Daschenal&lt;/span&gt; (lead singer of Him &amp;amp; Her) neither Barnes nor Noble, or the awkward young man in the music section, so it's not clear why they are doing this.&lt;br/&gt;&lt;br/&gt;(Perhaps to avoid having to play &lt;span style='background-color: rgb(255, 255, 102);'&gt;Vampire Weekend&lt;/span&gt;? &lt;i&gt;That&lt;/i&gt; I understand.)&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-6801910835798019088?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6801910835798019088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6801910835798019088' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6801910835798019088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6801910835798019088'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/05/him-her-is-music-you-only-put-up-with.html' title='When hot girls sing.'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-3154716300425507750</id><published>2010-05-29T14:12:00.001-07:00</published><updated>2010-05-30T15:15:05.384-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='boat'/><title type='text'>Of Sailboats and Pianos</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Sailboats are nice because they are fun to sail. It's nice to own one because you have control - if you want to change something, you can.&lt;br/&gt;&lt;a id='apf0' href='http://www.google.com/imgres?imgurl=http://www.reflexivity.us/blog/sailboat.jpg&amp;amp;imgrefurl=http://www.reflexivity.us/blog/archives/2007/08/gone-sailing.html&amp;amp;usg=__j9b4e3qG96juuT-rYxYt-QPl-S4=&amp;amp;h=744&amp;amp;w=1019&amp;amp;sz=52&amp;amp;hl=en&amp;amp;start=1&amp;amp;sig2=aYIB6YTgYYQe3H5S2-KSNg&amp;amp;itbs=1&amp;amp;tbnid=4V1-t3F5YquNOM:&amp;amp;tbnh=110&amp;amp;tbnw=150&amp;amp;prev=/images%3Fq%3Dsailboat%26hl%3Den%26safe%3Dactive%26client%3Dfirefox-a%26hs%3DbvT%26rls%3Dorg.mozilla:en-US:official%26tbs%3Disch:1&amp;amp;ei=t4IBTN_5PMG78gbCuYisBA'&gt;&lt;img width='150' height='110' id='ipf4V1-t3F5YquNOM:' src='http://t2.gstatic.com/images?q=tbn:4V1-t3F5YquNOM:http://www.reflexivity.us/blog/sailboat.jpg' style='border: 1px solid rgb(204, 204, 204); padding: 1px; vertical-align: bottom; float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;'/&gt;&lt;/a&gt;&lt;br/&gt;My boat is a 1972 35' Ericson. And I just had a mechanic tell me that I shouldn't bother fixing it (the engine is seized). Why? Because the engine, fiberglass and gelcoat things I want to fix are 'tradesman jobs' and that I shouldn't bother.&lt;br/&gt;&lt;br/&gt;This kind of "can't do" attitude get's me down. It's un-American. Economies of scale are, at some level, great - they are an incredible way to inject large amounts negentropy into the world. Think about how cheap it is to buy a piano! But they also seem to set expectations way too high. It's like, "if it can't be factory fresh, I don't want to bother!"&lt;br/&gt;&lt;br/&gt;Tuning a piano correctly is beyond most laymen. But it only needs to be done once in a while, and is relatively cheap. What if we kept pianos submerged in salt-water? Then it might not be worth it to own pianos at all!  Factories that produce big, dead things aren't really doing us much good: maybe inexpensive durable goods are a poison pill. &lt;b&gt;&lt;i&gt;Factories simultaneously raise our expectations of our stuff, and reduce our ability to understand our stuff.&lt;/i&gt;&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;&lt;a id='apf2' href='http://www.google.com/imgres?imgurl=http://chrisk.name/rtimages/piano.png&amp;amp;imgrefurl=http://chrisk.name/rt.html&amp;amp;usg=__OnBeKUWcNtDZ0PxEVaK9LRthSR8=&amp;amp;h=768&amp;amp;w=1024&amp;amp;sz=452&amp;amp;hl=en&amp;amp;start=3&amp;amp;sig2=TVI_9QLMZhjfvzSZcVO3RQ&amp;amp;itbs=1&amp;amp;tbnid=PQaZV-LWsvv1fM:&amp;amp;tbnh=113&amp;amp;tbnw=150&amp;amp;prev=/images%3Fq%3Dpiano%26hl%3Den%26safe%3Dactive%26client%3Dfirefox-a%26hs%3D7uT%26sa%3DX%26rls%3Dorg.mozilla:en-US:official%26tbs%3Disch:1%26prmd%3Dbisv&amp;amp;ei=moIBTJDDG4O78galtdGxDQ'&gt;&lt;img width='150' height='113' id='ipfPQaZV-LWsvv1fM:' src='http://t1.gstatic.com/images?q=tbn:PQaZV-LWsvv1fM:http://chrisk.name/rtimages/piano.png' style='border: 1px solid rgb(204, 204, 204); padding: 1px; vertical-align: bottom; float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;'/&gt;&lt;/a&gt;So, I have to consider the question seriously: is it even worth it to own a boat? Is the mechanic's assertion correct, that a boat is something you spend $150,000 on, put it in the water for 10 or 20 years and then throw it away? &lt;br/&gt;&lt;br/&gt;No. I don't really buy this &lt;i&gt;can't do&lt;/i&gt; attitude. I think it's possible to maintain my boat. It doesn't have to be perfect. It just needs to be relatively safe and get me in and out of the slip. The gelcoat and fiberglass needs to be watertight and functional, not perfect. Basically, I'm content to let the super-high standards set at the factory go by the wayside and gain some skills maintaining and repairing my own stuff.&lt;br/&gt;&lt;br/&gt;The way out is simple: ditch that downer mechanic, and figure out another way. And so I have: I'm going to pull out the old Universal Atomic 4 engine and put a electrical engine in. I'm very excited about this. It's really a perfect solution. Electric motors are light (about 30lbs for the motor itself) and efficient. It even does regenerative power from the rotating prop when you're under sail - a very cool form of wind power. It's good for the environment. It's quiet and there are very few moving parts to maintain. Pop on some solar panels (Costco has a 60w deal for only $270 right now) and I'm set.&lt;br/&gt;&lt;br/&gt;I can do it, and I will.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-3154716300425507750?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/3154716300425507750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=3154716300425507750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3154716300425507750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3154716300425507750'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/05/of-sailboats-and-pianos.html' title='Of Sailboats and Pianos'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-5926644879466717218</id><published>2010-05-29T13:50:00.001-07:00</published><updated>2010-06-08T18:52:22.558-07:00</updated><title type='text'>Goodbye Facebook, Hello Facetime</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I finally deactivated my Facebook account. Been thinking about it since &lt;a href='http://javajosh.blogspot.com/2010/02/facebook-leaning-toward-evil.html'&gt;Facebook patented the "newsfeed"&lt;/a&gt;.I feel good about it already. I really enjoy seeing what people are up to in the world, and reconnecting with old friends, but at some point Facebook became an oppressive force in my life, and now it's time to go. The recent privacy problems are just another reason to ditch the service.&lt;br/&gt;&lt;br/&gt;A great deal of Facebook is actually recreated in the open with FriendFeed (&lt;a href='http://friendfeed.com/javajosh'&gt;friendfeed.com/javajosh&lt;/a&gt;), which creates a kind of open newsfeed which other FriendFeed users can comment on, like, etc. Recommended.&lt;br/&gt;&lt;br/&gt;Here are some other ways to stay in touch:&lt;br/&gt;&lt;ol&gt;&lt;li&gt;Phone or Text (562) five four six-3882 (or 562 54 METTA). &lt;br/&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://friendfeed.com/javajosh'&gt;Everything (friendfeed.com/javajosh)&lt;/a&gt;. Most of my online activities go here, particularly the media I consume. It's better than a Facebook Newsfeed, actually.&lt;/li&gt;&lt;li&gt;&lt;a href='mailto:javajosh@gmail.com'&gt;Email (javajosh@gmail.com)&lt;/a&gt;. Tried and true. Personally, I really dig email. Way better than Facebook Messaging: it's search-able, universal, and far more private, reliable, and flexible.&lt;/li&gt;&lt;li&gt;Chat (javajosh@gmail.com, Skype/javajosh). I'm not a big chatter, though. Would much rather just have a quick phone conversation.&lt;br/&gt;&lt;/li&gt;&lt;li&gt;Link sharing (&lt;a href='http://delicious.com/javajosh'&gt;delicious.com/javajosh&lt;/a&gt;, &lt;a href='http://google.com/reader/shared/javajosh'&gt;google.com/reader/shared/javajosh&lt;/a&gt;). Sharing links is an easy way for me to say, "Hey, this is neat!". Kind of takes the place of Twitter.&lt;br/&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.blogger.com/javajosh.blogspot.com'&gt;Blogging (javajosh.blogger.com)&lt;/a&gt;. Replaces "Notes" in Facebook, but more general and flexible.&lt;br/&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.youtube.com/user/thesimpaticos'&gt;YouTube&lt;/a&gt;, GoodReads (&lt;a href='http://www.youtube.com/user/thesimpaticos'&gt;goodreads.com/javajosh&lt;/a&gt;), last.fm (&lt;a href='http://www.last.fm/user/ablation'&gt;last.fm/user/ablation&lt;/a&gt;). Find out what videos I've watched, books I've read, and music I've listened to.&lt;br/&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.flickr.com/photos/jaakel/'&gt;Flickr&lt;/a&gt; (&lt;a href='http://www.flickr.com/photos/jaakel/'&gt;flickr.com/jaakel&lt;/a&gt;). Photos I've taken. This account has languished recently, alas. It's time to change that. Or not. I may start using Picasa Web Albums (&lt;a href='http://picasaweb.google.com/javajosh'&gt;picasaweb.google.com/javajosh&lt;/a&gt;) instead (partly because I can't stand the URL I got with Flickr - thanks sis!) Actually, photos are one area where I think facebook does a better job, although I bet these other services will do a good job catching up.&lt;/li&gt;&lt;li&gt;Twitter: not for me.&lt;/li&gt;&lt;/ol&gt;&lt;br/&gt;I hope that, in the end, leaving Facebook will &lt;i&gt;improve&lt;/i&gt; my connections with others. One things for certain, I look forward to reconnecting with my blog,&lt;br/&gt;which has a far more spacious &amp;amp; open feel to it. Here, I feel free to write&lt;br/&gt;what I like, rather than the pithy, tiny, and ultimately pointless&lt;br/&gt;quips that the Facebook format seems to encourage and reward. Ah, a new, old day has dawned.&lt;br/&gt;&lt;br/&gt;Keep in touch,&lt;br/&gt;Josh&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-5926644879466717218?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/5926644879466717218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=5926644879466717218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/5926644879466717218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/5926644879466717218'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/05/goodbye-facebook-hello-facetime.html' title='Goodbye Facebook, Hello Facetime'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-8336885184845394148</id><published>2010-05-16T19:40:00.001-07:00</published><updated>2010-05-16T19:40:40.163-07:00</updated><title type='text'>Career choice: vigilante!</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I'm going to take off my liberal hat for a while and rant about something. I read stories about &lt;a href='http://www.cnn.com/2010/CRIME/05/14/california.gardner.sentencing/?hpt=Sbin'&gt;admitted scumbags &lt;/a&gt;getting life in jail, and it  ticks me off. What a waste. That visceral angry part of me demands true justice. Someone should have hunted him down long ago - but instead we have a civilized trial and spend $10m to keep him secure and alive for the rest of his life. &lt;br/&gt;&lt;br/&gt;At least dump him in Iraq and let him defuse IEDs. With a pair of pliers and a smile.&lt;br/&gt;&lt;br/&gt;Oh! To be a dark avenger stalking the evildoers of the night in righteous vengeance! To clean the streets of rapists and senseless drive-by shooters! &lt;br/&gt;&lt;br/&gt;You know, like Batman. &lt;br/&gt;&lt;br/&gt;The immune system of our society is ponderous, slow, and unfocused. The body of law that police are expected to enforce and the legal system is expected to prosecute is so complex that actual enforcement is not only impossible, but would be counter-productive if everything was perfectly enforced. Regarding minor criminal acts, we are not a nation of laws, but a nation of discretionary enforcement which is too often abused.&lt;br/&gt;&lt;br/&gt;Far better than a lone vigilante would be a simplified body of law, something that can be enforced and prosecuted swiftly. &lt;i&gt;Speed&lt;/i&gt; is essential because justice, like inspiration, is perishable.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-8336885184845394148?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/8336885184845394148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=8336885184845394148' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8336885184845394148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8336885184845394148'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/05/career-choice-viglante.html' title='Career choice: vigilante!'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-1617151905140586311</id><published>2010-05-09T17:49:00.001-07:00</published><updated>2010-05-09T17:49:03.863-07:00</updated><title type='text'>Why require login to unsubscribe from spam?</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I think most people create a lot of accounts in this Internet world. Most of these accounts are silly because there is no data of interest, and nothing to protect. Two such accounts, like those at Auctiva and JBoss.org, both spam you when you sign up for an account, and both require a log in and manipulation of email preferences. Of course, I don't remember these accounts, and, really, I don't want to go to that amount of trouble. Which means I hit the spam button in Gmail, which is easy, quick, but makes it possible, if not likely, that neither companies newsletters will make it even to legitimate customers. Which is something I &lt;i&gt;know&lt;/i&gt; neither company wants.&lt;br/&gt;&lt;br/&gt;Come on people. Make it easy to unsubscribe (like, a single click). It's a Good Idea.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-1617151905140586311?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/1617151905140586311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=1617151905140586311' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1617151905140586311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1617151905140586311'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/05/why-require-login-to-unsubscribe-from.html' title='Why require login to unsubscribe from spam?'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-1978137919509164371</id><published>2010-05-04T14:58:00.001-07:00</published><updated>2010-05-04T14:58:34.882-07:00</updated><title type='text'>A cure for motion sickness</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I am quite pleased to report that my motion sickness is cured, and I hope that this cure can be applied to other cases. I'm fairly certain that there are many kinds of motion sickness, so let me describe mine and how I (inadvertently) treated it. If the treatment helps you, please let me know!&lt;br/&gt;&lt;br/&gt;My motion sickness, first and foremost, prevented me from reading in a car, or any moving object. This could be a considerable problem, particularly when faced with navigating maps - the effort to concentrate on a map would cause nausea within two minutes or so, and take perhaps five to dissipate. I experienced this profoundly while on recent trip to New Zealand traveling in the back of a camper van.&lt;br/&gt;&lt;br/&gt;Occasionally, my motion sickness would attack me while sailing - but usually not within many hours of being on the water. And usually I would vomit once or twice and then be fine. The one exception is one time when I had a touch of flu, and was sick within an hour of being on the water (and violently ill the entire 12 hour journey - which is a story for another time). Reading of any sort, or any concentrated activity, especially below decks, would cause a wave of nausea.&lt;br/&gt;&lt;br/&gt;That's the extent of it: I have never been motion sick on a roller coaster, and never on a large plane, or on a large ship. (Well, I did feel a bit sick when the pilot of a small plane showed me some acrobatics, but that hardly counts!)&lt;br/&gt;&lt;br/&gt;(Why not Dramamine? I found out early on that I despise Dramamine more than I despise being motion sick - Dramamine makes me feel sleepy without allowing me to go to sleep, keeping me in this incredibly uncomfortable in-between state that feels awful. I would only use it in exceptional circumstances, like that 12-hour torture sail mentioned above.)&lt;br/&gt;&lt;br/&gt;Anyway, I've been living on a small sailboat for about 4 months now, and recently discovered that, somehow, my motion sickness has all but gone! I can read in the car! Heck, I could even write stuff in my laptop in the back of a taxi (which would normally be even more nausea inducing than reading)! I'm quite pleased about this and can't wait to test the limits of my newfound tolerance.&lt;br/&gt;&lt;br/&gt;So that's it! Live on a boat for a while, and maybe that will help your motion sickness. If it does, I'd love to hear from you.&lt;br/&gt;&lt;br/&gt;(My guess is that the constant motion while sleeping on a boat conditions the body to respond in a more normal way to small motions. I say "all but gone" because I can feel the discomfort begin while, for example, reading in the car. but it never gets past discomfort into full-blown nausea. It's like the waves are still breaking on the beach but they just aren't strong enough to get past the boardwalk).&lt;br/&gt;&lt;br/&gt;Hope this helps!&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-1978137919509164371?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/1978137919509164371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=1978137919509164371' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1978137919509164371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1978137919509164371'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/05/cure-for-motion-sickness.html' title='A cure for motion sickness'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-9152120764001725836</id><published>2010-04-17T14:50:00.001-07:00</published><updated>2010-04-17T14:50:57.156-07:00</updated><title type='text'>Something wierd about the iPad</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I'm a gadget guy: I love toys and electronics and shiny things that run on electricity in general. I often feel an unaccountable lust for objects I see on New Egg and in the Fry's ads in the back of the sports section. "$88 for 4G of RAM? Wow! I must have it!" I think, forgetting for the moment that I don't even own a desktop PC. The same thing happened when I saw the 30" Cinema display: it was simply gorgeous, and I had to have it, even though I didn't have a computer to drive it's insane resolution. And I felt the same way about the iPhone - and I actually bought it.&lt;br/&gt;&lt;br/&gt;So, the weird thing about the iPad is that it inspires no such feelings of lust in me. It's weird because, by rights, it &lt;i&gt;should&lt;/i&gt; inspire such feelings. It has all the traits: it's a neat toy and it's a solid metal block that has a computer inside of it. But there is no stirring in my brain's gadget-passion center.&lt;br/&gt;&lt;br/&gt;(I've had this strange experience once before, with World of Warcraft. By rights, I should have been badly addicted to the game, but it was merely &lt;i&gt;meh&lt;/i&gt;.)&lt;br/&gt;&lt;br/&gt;I think the thing that gets me about the iPad is that I don't need it. I've never been in a situation where I thought to myself "Gosh, I wish I had a tablet right now." I own a tablet, actually, the IBM X10. It's really good for a very narrow range of tasks, mostly drawing and note-taking. The only feature of the iPad I have actually wanted is 10 hour battery life and the very light weight. Indeed, it would make an interesting "world traveler's device". Except, of course, netbooks are cheaper, more robust (clamshell protects screen), and have a built-in keyboard and useful ports (like USB and SD card slots). Indeed, with iPhone 4.0 including bluetooth keyboard support, the iPhone 3GS itself may be the best "world traveller's device" (especially if you buy downloadable maps). It's lighter than everything else and is a phone, and while it sucks for reading it's passable. And it's much better for watching movies than you'd expect.&lt;br/&gt;&lt;br/&gt;Truth be told, my gadget-lusting brain is far more interested the Kindle and Nook. They have even better battery life, include lifetime 3G connectivity, and make reading digibooks relatively painless. I'm not real happy about page transitions, so maybe the next revision. I'm also very not excited about having to rebuy my physical books.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-9152120764001725836?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/9152120764001725836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=9152120764001725836' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/9152120764001725836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/9152120764001725836'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/04/something-wierd-about-ipad.html' title='Something wierd about the iPad'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6165865828886171038</id><published>2010-04-10T18:25:00.001-07:00</published><updated>2010-04-10T18:25:34.060-07:00</updated><title type='text'>How I learned to stop worrying and love Apple's iThing developer restrictions</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;At first blush, Apple is confusing. On one hand, I like the polish of their products. Apple makes some of the very finest producty products - shiny, smooth metal objects that have computers in them. I love that. On the other hand, Apple is being very restrictive about what I make and, now, &lt;a href='http://theflashblog.com/?p=1888'&gt;how I make it&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;As a developer, I want to play with the insides of these metal objects. I want to break it apart, see how it works, and write code that runs on it. Part of the reason is that I see my software as a shiny metal object, and Apple promises to help me create that effect, both inside and out. In fact, not only does my app get to run on a shiny object, my app can be purchased through a shiny store. So the entire user experience is shiny! This is an opportunity that no other software platform gives me. It is absolutely unique.&lt;br/&gt;&lt;br/&gt;It doesn't bother me that Apple is restricting it's developers on how they write their software, because the best mobile apps are ones written for bare metal. It's the only way to squeeze the most performance per watt from an app. For years, programmers have been decrying the fact that we just push around abstractions, and have lost the art of Deep Knowing, and rely on ever increasing PC specs to make up for sloppy coding practices. Well, guess what: now Apple is &lt;i&gt;forcing&lt;/i&gt; you to know their devices inside and out before you write code for them. Everyone already knows you have to be a low-level programmer to write the shiniest possible apps, and Apple is simply forcing us to code The Right Way.&lt;br/&gt;&lt;br/&gt;Of course, it's the uniqueness of Apple's product (not just the iThings but the entire shiny end-to-end user experience) which gives them the leverage to do it The Right Way. But since it's really just forcing us to do what we already know is right, why worry?&lt;br/&gt;&lt;br/&gt;And also, of course, Apple gleefully realizes that as programmers learn the iThing environment they will be loath to abandon their hard-won skills and may even be tempted to write native apps for OSX. &lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-6165865828886171038?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6165865828886171038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6165865828886171038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6165865828886171038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6165865828886171038'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/04/how-i-learned-to-stop-worrying-and-love.html' title='How I learned to stop worrying and love Apple&amp;#39;s iThing developer restrictions'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-8187310860810043384</id><published>2010-04-01T11:10:00.001-07:00</published><updated>2010-04-01T11:10:13.845-07:00</updated><title type='text'>Hamid Karzai declares war on the US; the US "fully supports" the move</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='left'&gt;&lt;small&gt;Kabul, Afghanistan&lt;/small&gt;. The nation of Afghanistan is rejoicing today at their leader's decision to declare war on the US. Incensed by the occupation of his country by "foreign devils" Karzai has asked the US for an increase in troop levels, but the US has declined. "President Karzai already has 100,000 US troops under his command. It's not that we don't want to help him prosecute his war against us, but we're already stretched thin, and don't hav&lt;img width='180' height='270' alt='00000afghanistan' src='http://mydailyclarity.com/wp-content/uploads/2009/05/00000afghanistan.jpg' title='00000afghanistan' class='alignleft size-full wp-image-3936' style='float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;'/&gt;e the resources to spare," said secretary of state Hillary Clinton. "President Karzai is taking an incredibly brave and principled stand, and we wish we could give him more support."&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;US troops stationed in Afghanistan were circumspect. "I'm not real happy about fighting against other Americans, but hey, what the commander in chief says, goes. Besides, I'm kind of looking forward to a stand-up fight, for once," said Leuitenent Commander JP Whitmore, 3rd division.&lt;br/&gt;&lt;br/&gt;Defense contractors have been quick to assure both sides of the impending battle of their unwavering, fair-minded support. "We pledge to show no favoritism to the US troops in Afghanistan or to the US troops which are preparing to attack them," said CEO David J. Lesar of Halliburton. To so do so, he said would be "unfair to the taxpayer as much as to the troops themselves." He did add that it would be convenient if both sides of the battle would use the same logistical pipeline. "If both sides rearm and refuel from the same depot, we could see unprecedented efficiency improvements&lt;img width='301' height='220' alt='pakistan-political-map-v2' src='http://mydailyclarity.com/wp-content/uploads/2009/02/pakistan-political-map-v2.gif' class='size-full wp-image-2572 aligncenter' style='float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;'/&gt;," said Raytheon chief William H. Swanson. "Getting those supply lines in place is a major headache," he added, "and we would hate to duplicate effort unnecessarily." "This is an unprecedented opportunity to show how efficent war can get," echoed GE CEO Jeffrey R. Immelt. "It just doesn't get any better than this."&lt;br/&gt;&lt;br/&gt;Joint Chiefs of Staff Chairman Michael Mullen in a press conference this morning, "No matter what happens, we will prevail in this conflict." He continued, "They know our strengths, they know our weakness, they are highly trained and professional, just like us. We are fighting for basic human freedoms," looking confused for a moment he continued, "but of course we do not abandon our allies, especially when helping them to fight for freedom against an oppressive, imperialist occupation. Our support of Karzai is unwavering and he will be victorious with our unwavering help," pausing for a moment, "and we will also bring Karzai down without mercy," he concluded.&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-8187310860810043384?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/8187310860810043384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=8187310860810043384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8187310860810043384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8187310860810043384'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/04/hamid-karzai-declares-war-on-us-us_01.html' title='Hamid Karzai declares war on the US; the US &amp;quot;fully supports&amp;quot; the move'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-8971690469298586461</id><published>2010-03-09T17:27:00.001-08:00</published><updated>2010-03-09T17:27:06.980-08:00</updated><title type='text'>A capitalist defence of socialized medicine.</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;The American healthcare system is broken. My first-person experience is that it is merely broken (long wait times; exorbitant fees; healthcare professionals who are more concerned with billing data than symptoms). Poll data and 3rd party anecdotes suggest that it is &lt;i&gt;severely&lt;/i&gt; broken (coverage is denied; rates increased beyond reason, arbitrarily). The twin problems facing healthcare are: 1) poor, expensive care and 2) unreliable insurance coverage.&lt;br/&gt;&lt;br/&gt;I believe in capitalism and in the ability for markets to correct themselves. In this case, the capitalist response is (correctly) that I should be shopping for a better doctor and I should be shopping for a better health insurance provider. I have found that, in both cases these products are extremely complicated, the markets are completely opaque. Insurance shopping is left to the professionals (called agents or brokers). On the care side, actually shopping for a good doctor is largely left to word-of-mouth (there are no brokers). It is impossible for me to find good care &lt;i&gt;at any price&lt;/i&gt;. It is impossible for me to shop for healthcare services based on price - I have found that the front desk will quote a price, and then later offer a cash discount. It is not practical to ask every provider for every procedure via the phone. It is impossible for me to predict what any insurance company will cover in advance. It seems like this is a problem too big for me to fix. Or rather, it's a problem that outstrips the utility of it's solution.&lt;br/&gt;&lt;br/&gt;When lots of people have the same problem, and no individual seems able to fix it on their own (or rather it is cost prohibitive for each individual to solve the problem), it makes sense to cooperate and solve it together. The first thing you might do is look at other places and see how they solved the problem. Look at France, or Hawaii. In both cases people seem happy with their care; certainly I would appreciate the act of just getting healthcare without going through the rigamarole of providing billing information.&lt;br/&gt;&lt;br/&gt;That said, I think the Hawaii system should be rolled out on a state-by-state basis. I don't want the federal government involved. I would like each state to take a good hard look at Hawaii and see if they can swing it. So thats it, a capitalist defense of socialized medicine.&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-8971690469298586461?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/8971690469298586461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=8971690469298586461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8971690469298586461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8971690469298586461'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/03/capitalist-defence-of-socialized.html' title='A capitalist defence of socialized medicine.'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-3599257227700785979</id><published>2010-02-26T14:54:00.001-08:00</published><updated>2010-02-26T14:54:40.748-08:00</updated><title type='text'>Facebook, leaning toward evil.</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://www.computerworld.com/s/article/9162978/Facebook_s_news_feed_patent_may_be_game_changer_?taxonomyId=16'&gt;Facebook has patented the news feed.&lt;/a&gt; The opportunity for mayhem is incredible.&lt;br/&gt;&lt;br/&gt;This patent is just wrong. It would be like a newspaper patenting narrow columns. It's not right. They already have a strangle-hold on my data. This is the last straw. I'm leaving Facebook.&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=c6a3250a-71b8-891f-89ae-aa7974edcca6' alt='' class='zemanta-pixie-img'/&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/12275906-3599257227700785979?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/3599257227700785979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=3599257227700785979' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3599257227700785979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3599257227700785979'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/02/facebook-leaning-toward-evil.html' title='Facebook, leaning toward evil.'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-7645676389398236715</id><published>2010-02-22T10:31:00.001-08:00</published><updated>2010-02-22T10:31:50.272-08:00</updated><title type='text'>Change always hurts</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;It's funny how people vote for politicians advocating "Change" and then when it comes to actually changing, people balk. This is for a good reason: all change hurts &lt;i&gt;somebody&lt;/i&gt;.&lt;br/&gt;&lt;br/&gt;Take health care reform. That's a big change, and it will surely hurt insurance companies. I am not being flippant: insurance companies have investors who want to make a profit, and those investors could very well be me or you thanks to the 401(k) investment. Health care reform, in it's current incarnation, will also cost more money, and increasing the size of the government, hurting the taxpayer's wallet. The hope is that such a change will improve people's lives, overall. &lt;br/&gt;&lt;br/&gt;I voted for Obama, but I have to admit his healthcare reform initiative took me by unhappy surprise. With all the crap going on the world, and with the US already bleeding money thanks to two thankless wars, why now? Why not wait until the wars are over, we stop bleeding money, and can make these changes &lt;i&gt;without&lt;/i&gt; making the government any larger than it already is?&lt;br/&gt;&lt;br/&gt;I want smaller government, not larger. I think there are very few Americans of any party that want a larger government. This is not a matter of principle, it's a matter of practicality: the federal government already appears to be a hulking, wasteful lumbering thing. Rewarding the government for a job poorly done is no way to spend resources. If the government were more effective, doing only those things which require a fierce concentration of power and resources, then I would be more open to giving it more money.&lt;br/&gt;&lt;br/&gt;Change is always painful. We just have to be smart in judging whether some pain now will yield benefits in the future. The interesting thing is that, if you take virtually *any* historical decision, even ones that we now perceive as good, or even great, you will find enormous opposition. The creation of central park was going to bankrupt New York. Desegregation was going to destroy America. Entering world war 2 was going to bankrupt us and needlessly entangle us in world affairs. Landing on the moon was going to be a wasteful misuse of government resources, and probably kill the astronauts. Revolt against Britian was needless, and going to end in utter defeat.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=2d8b45e2-098d-80e5-bb9a-f852711c7563' alt='' class='zemanta-pixie-img'/&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/12275906-7645676389398236715?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/7645676389398236715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=7645676389398236715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7645676389398236715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7645676389398236715'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/02/change-always-hurts.html' title='Change always hurts'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6075393359962085417</id><published>2010-02-06T13:06:00.001-08:00</published><updated>2010-02-06T14:26:14.135-08:00</updated><title type='text'>Unintended Consdequences of Lightwieght Activism</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;About a year ago I took a stand against membership cards. I found out today that my small act of rebellion changed the policies of a major corporation, derailed one of it's marketing campaigns, and got someone fired.&lt;br/&gt;&lt;br/&gt;The relatively recent rash of "membership cards" at virtually every retail store was troubling to me. On a superficial level, I was annoyed at having to carry all of these cards just to get the ordinary price. It was clear to me that, rather than enabling "discounts" these cards actually just warded off penalties - non-carriers are penalized for not having one, or not presenting it. On a deeper level, I knew the true purpose of these cards and it bothered me: they give the store a valuable database not only of personal contact details, but also behavior data. You are what you buy, and these companies can learn a lot about you from your spending habits. While the use of this information would normally be innocuous, it frightens me. At no time in history were such complete records possible to keep on a such a wide scale. It's not clear how they can be misused.&lt;br/&gt;&lt;br/&gt;One day, while at the local Ralph's, it occurred to me that I could solve both concerns at once. I could register a card with a fake name and address, an easy-to-remember phone number (562 500 5000), and then encourage others to use that phone number as well. This was an act of lightweight activism. And today I found that it was far more successful than I hoped. Indeed, it got someone fired.&lt;br/&gt;&lt;br/&gt;According to Mary, my checkout clerk today, around 30 people at the one store were using the number. It was directly because of this, according to her, that they discontinued the free gas initiative. And finally, a checkout clerk was fired for suggesting that a customer who had forgotten their card use the number. She said all of this with a quivering lip, and was obviously very angry with me. "So YOU are the one who registered that number!" she began accusingly.&lt;br/&gt;&lt;br/&gt;(Of all the accusations I found the "free gas was discontinued because of you" the most interesting. I put a fake name, "Guy Faux" and a fake address "123 Main St. Seal Beach" so I never received anything from Ralphs. I suppose if they just printed unnamed vouchers some lucky person at or near that address was getting a lot of free gas. I expected the mail to get returned to sender.)&lt;br/&gt;&lt;br/&gt;I too am angry that someone got fired over this, but for very different reasons. The clerk got fired for helping a customer. That's just wrong. I can totally understand that the company does not want it's employees systematically undermining any system, no matter how ill-concieved. But to fire someone over this? Why isn't Mary angry with management? They are the ones who did the firing! Heck, I never told any of the clerks to share the number. It just sort of caught on.&lt;br/&gt;&lt;br/&gt;An act of rebellion, someone lost their job, many people protected their privacy for a short time, a random person got free gas. All of this because I picked a fake number and encouraged a few people to use it. Wow. What a strange world we live in.&lt;br/&gt;&lt;br/&gt;For the record, I advocate doing away with these ridiculous cards entirely. Places like Trader Joe's need to be commended for not imposing on their customers like this. If you agree you can act by doing something like what I did, but perhaps on a smaller scale. Figuring out what the public needs and wants should be up to the "feel" of the store manager, not the output of an OLAP data center that then dispatches impersonal orders around the globe.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=7f2d4c0c-6f9d-803b-a7d0-6d30bd353d00' alt='' class='zemanta-pixie-img'/&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/12275906-6075393359962085417?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6075393359962085417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6075393359962085417' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6075393359962085417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6075393359962085417'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/02/how-to-change-world-with-fake-phone.html' title='Unintended Consdequences of Lightwieght Activism'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6376380525943635029</id><published>2010-01-06T19:33:00.001-08:00</published><updated>2010-01-06T19:33:50.283-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>An Exciting Time for Democracy</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://www.youtube.com/usdccand'&gt;The proposition 8 trial will be posted to YouTube&lt;/a&gt;! What a wonderful way to show some transparency!&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=5ef3ea5d-9b41-8962-b536-1aa4e8ba2aa6' alt='' class='zemanta-pixie-img'/&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/12275906-6376380525943635029?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6376380525943635029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6376380525943635029' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6376380525943635029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6376380525943635029'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/01/exciting-time-for-democracy.html' title='An Exciting Time for Democracy'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-7172148745988911030</id><published>2010-01-06T14:28:00.001-08:00</published><updated>2010-01-06T14:28:21.427-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data'/><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><title type='text'>Why Basecamp is Evil</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;It's the old wound: they hold your data hostage. Over at &lt;a href='http://basecamphq.com/'&gt;basecamp&lt;/a&gt; there is an export option, but it doesn't include uploaded files. Which I presume means that links to files will break. I guess the good news is that data hostage taking isn't just for Big Heartless Corp anymore.&lt;br/&gt;&lt;br/&gt;In all fairness, I don't think &lt;a href='http://37signals.com/'&gt;37signals&lt;/a&gt; intended to be evil. It just sort of turned out that way: their tools and data are so tightly coupled that it would be very difficult to extract one from the other. (And one could argue that the tools &amp;amp; data are themselves tightly coupled to the runtime: Ruby on Rails hosted on Amazon EC2.).&lt;br/&gt;&lt;br/&gt;I think the idea is that you want to make tools to help your users organize their information, but that doesn't require the tool to make further use of the organization that they have worked so hard to create.&lt;br/&gt;&lt;br/&gt;Of course, if I was really smart I'd write a little program that pulled apart the finite state machine that is basecamp - normal recursive wget will not work because of the ajax.&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=25843a4d-11c4-8223-8f16-d1865edfcf09' alt='' class='zemanta-pixie-img'/&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/12275906-7172148745988911030?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/7172148745988911030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=7172148745988911030' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7172148745988911030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7172148745988911030'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/01/why-basecamp-is-evil.html' title='Why Basecamp is Evil'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-2506149178534761150</id><published>2010-01-06T14:02:00.001-08:00</published><updated>2010-01-06T14:02:52.773-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>How to solve "cannot connect" problem with VMWare Fusion after Migration Assistant</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;'The problem:&lt;br/&gt;&lt;blockquote&gt;&lt;font face='Times New Roman'&gt;I recently used the Migration Assistant to move my applications and data over to &lt;br/&gt;the a new machine from my old MacBook.&lt;br/&gt;&lt;br/&gt;Everything works fine, except for VMWare Fusion. When I attempt to start either&lt;br/&gt;my Windows XP or Ubuntu images, VMWare complains, "vmware fusion cannot&lt;br/&gt;connect to the virtual machine. Make sure you have access rights..." and&lt;br/&gt;so on.&lt;br/&gt;&lt;br/&gt;I did a search through your knowledge base for both the error message&lt;br/&gt;and "migration assistant". No luck. I did a Google search too, and there&lt;br/&gt;are many people with this same problem. The resolution that apparently&lt;br/&gt;works is to reinstall VMWare. But I figure I'd check with you first.&lt;/font&gt;  &lt;/blockquote&gt;&lt;br/&gt;Here's the answer from tech support (which was rather prompt!):&lt;br/&gt;&lt;blockquote&gt;&lt;font face='Times New Roman'&gt;You may need to reinstall Fusion but hopefully not just yet.&lt;br/&gt;Try these steps first to repair the permissions of the virtual machine filles:&lt;br/&gt;&lt;br/&gt;  1. Log in as a user with administrative rights.&lt;br/&gt;  2. Navigate to Documents-&amp;gt;Virtual Machines (or wherever you saved your VM files)&lt;br/&gt;  3. Right-click the .vmwarevm file that corresponds to the name of the virtual machine you want to work with and choose    "Get Info".&lt;br/&gt;  4.  Unlock the padlock at the bottom of the window using your administrator password.&lt;br/&gt;  5. From "File &amp;amp; Extension" remove the .vmwarevm extension.&lt;br/&gt;  6. Close the "Get Info" window.  This file now displays as a folder.&lt;br/&gt;  7. Right-click the folder and choose "Get Info"&lt;br/&gt;  8. Under "Sharing &amp;amp; Permissions" beside your user name and "Everyone" ensure the Privilege is set to "Read &amp;amp; Write".&lt;br/&gt;  9. Click the gear next to + - at the bottom of the window and choose "Apply to enclosed items".&lt;br/&gt; 10. From "File &amp;amp; Extension" re-add the .vmwarevm extension to the end of the file name.&lt;br/&gt; 11. Close the "Get Info" dialog.&lt;br/&gt; 12. Restart your Mac.&lt;br/&gt; 13. Launch VMware Fusion and run the virtual machine.&lt;br/&gt;&lt;br/&gt;If your issue has been resolved by this email please let me know.&lt;br/&gt;&lt;br/&gt;If you have any questions please feel free to contact me by responding to this email.&lt;br/&gt;&lt;br/&gt;Regards,&lt;br/&gt;&lt;br/&gt;Kellan Adamson&lt;br/&gt;Desktop Technical Support Specialist&lt;br/&gt;Global Support Services&lt;br/&gt;VMware Inc.&lt;/font&gt;&lt;/blockquote&gt;Here's my answer, based on the above:&lt;br/&gt;&lt;ol&gt;&lt;li&gt;Start Terminal&lt;/li&gt;&lt;li&gt;cd Doc[tab]/Virt[tab] (should yield something like cd Documents/Virtual\ Machines.localized/)&lt;/li&gt;&lt;li&gt;chmod -R o+rw *.vmwarevm&lt;/li&gt;&lt;/ol&gt;&lt;br/&gt;It works!&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=588465a1-fea5-836d-85e0-e3f95f1280a8' alt='' class='zemanta-pixie-img'/&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/12275906-2506149178534761150?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/2506149178534761150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=2506149178534761150' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/2506149178534761150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/2506149178534761150'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2010/01/how-to-solve-connect-problem-with.html' title='How to solve &amp;quot;cannot connect&amp;quot; problem with VMWare Fusion after Migration Assistant'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6358960350145136867</id><published>2009-10-17T12:20:00.001-07:00</published><updated>2009-10-17T14:08:03.906-07:00</updated><title type='text'>Becoming a Software Criminal</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Big companies like AT&amp;amp;T, Apple, and Microsoft encourage their users to break the rules, because they make unreasonable rules. Not only unreasonable, but hidden until it's too late. This post will describe two such cases. &lt;br/&gt;&lt;br/&gt;I became an iPhone criminal when I started my trip to New Zealand. I had spent over $400 on my iPhone 3GS and wanted to use it on my trip. However, the iPhone is locked to AT&amp;amp;T, and you cannot use it with an overseas carrier without unlocking the phone. This reasonable usage required that I go outside the law to jailbreak then unlock the phone.&lt;br/&gt;&lt;br/&gt;I became a Windows criminal when I switched to Mac, looking to move my legitamate Windows software to VMWare Fusion. This use is apparently prohibited by the Microsoft license agreement. And it's causing me problems right now because for some reason my Windows XP image is asking for activation, again. I did not know this, but if you buy a new PC with Windows on it, that copy of Windows is in some way &lt;i&gt;tied&lt;/i&gt; to the physical computer: if you trash that PC and keep the hard-drive, and put it in a new PC, you are in violation of the Microsoft license. Or, in my case, if you trash the PC and attempt to run the hard-drive image in a virtual machine, you are in violation of the license.&lt;br/&gt;&lt;br/&gt;And in both cases, because I've gone outside the law, it's more likely that I will continue to do so. In the iPhone case, I've installed Cydia, which is a gateway to all kinds of licit and illicit iPhone applications. So far I've only used it to unlock my phone and install some handy developer software (such as Mobile Terminal), but who knows? In the Windows case, I've had to hunt down an illegal, cracked copy of Windows even though I already have a legitimate copy. In the course of doing so, I've found a lot of other illegal software, and frankly I'm tempted to try some of it out. I haven't yet, but who knows?&lt;br/&gt;&lt;br/&gt;I begin to understand the marijuana "gateway drug" argument more clearly. It's true: if you have to break the law to do something harmless (like smoke pot) then you are more likely to break the law to do something less harmless (like smoke crack). The one action puts you in closer proximity to the latter action.&lt;br/&gt;&lt;br/&gt;In truth these are two examples of a much bigger problem: egregiously complex terms placed on an apparently simple transaction. You may think you're paying for one thing, but in truth you're getting much less, subject to incomprehensible restrictions. This is particularly a problem with loans, credit, and insurance, but increasingly electronic devices and software. There needs to be some legally imposed upper-limit on the complexity of terms! Complexity breeds disagreement, but even worse it shifts the balance of power to the party that understands the terms the best, which is usually the party that imposed the terms, which is the manufacturer or vendor. Ordinarily I would be in favor of letting the market sort this out, but I'm afraid this is a fundamental flaw in the market which is only now reaching fruition thanks to technology. Technology is making it possible to enforce these complex rules - the only reason it hasn't always been this way in every industry since the industrial revolution is that the cost of enforcement has been a limiting factor in all but a few contract types.&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=6fb833aa-96d0-8b25-89ca-8a9145e53d35' alt='' class='zemanta-pixie-img'/&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/12275906-6358960350145136867?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6358960350145136867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6358960350145136867' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6358960350145136867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6358960350145136867'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/10/becoming-software-criminal.html' title='Becoming a Software Criminal'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-9071537261477288990</id><published>2009-10-04T17:41:00.001-07:00</published><updated>2009-10-04T17:41:51.567-07:00</updated><title type='text'>Running out of disk space in the age of the cheap terabyte - avoiding data clutter.</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;b&gt;&lt;big&gt;&lt;big&gt;Running out of space&lt;/big&gt;&lt;/big&gt;&lt;/b&gt;&lt;br/&gt;Running out of drive space these days is like New Zealand running out of sheep. It's hard to believe it's even possible, but today I got a "running low on space" warning on my laptop. It's an upgraded 180G 7200rpm drive. I only had about 500MB free. What on earth was going on?&lt;br/&gt;&lt;br/&gt;The first thing I did was empty the trash. That helped a little (I had almost 5,000 items in there). But I was still very low on space.&lt;br/&gt;&lt;br/&gt;I needed to get some idea as to what was going on. So I fired up Terminal, ran &lt;font face='monospace'&gt;du&lt;/font&gt; (including the &lt;font face='monospace'&gt;du * -k | sort -nr &lt;/font&gt;variant), &lt;font face='monospace'&gt;df&lt;/font&gt;, and wasn't really the wiser. I needed something visual. So I downloaded &lt;a href='http://jgoodies.com/freeware/jdiskreport/'&gt;JDiskReport&lt;/a&gt; (actually I couldn't remember the name so I &lt;a href='http://www.google.co.nz/search?q=visualize+disk+usage'&gt;googled "visualize disk usage"&lt;/a&gt; which brought up a &lt;a href='http://lifehacker.com/219058/geek-to-live--visualize-your-hard-drive-usage'&gt;lifehacker.com article&lt;/a&gt; which reminded me of the project...) JDiskReport is a fantastic tool for seeing where your space has gone (and the guy who wrote it, Kars Lentzsh is a very talented Java Swing programmer as well.)&lt;br/&gt;&lt;br/&gt;Turns out that, while I do have 70G of movies, and 14G of music (yes, a small amount but I actually &lt;i&gt;own&lt;/i&gt; all of my music) the first surprise was Vmware Fusion: 16G of virtual machines! And really, I don't even use it all that much: I have an older XP image with IE 5.5 on it for testing. And an Ubuntu image for the same reason. Really, these should be 2G apiece, and one 10G image could be deleted. Easy fix.&lt;br/&gt;&lt;br/&gt;The biggest surprise was my iMovie "events" folder: 30GB used. First, I have a lot of footage. Second, iMovie adds a lot of meta-data (in one case I had 1G of thumbnail data alone - for a one hour video). Third, raw video footage is very large. It is highly compressable, but compressing this stuff is not part of my workflow. I used iMovie to export a tiny version of a 1 hour video, then deleted the source files. The original was 4.8G. The exported video was 34MB! (It took about 10min to compress. I might also try using &lt;a href='http://handbrake.fr/'&gt;HandBrake&lt;/a&gt; to do the transcoding.) I can look forward to getting this down to around 200MB, I hope. But it will take time.&lt;br/&gt;&lt;br/&gt;And then there are about 12G of photos floating around in various places.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;&lt;big&gt;&lt;big&gt;How did this happen? &lt;/big&gt;&lt;/big&gt;&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;Cleaning the mess up is great, but if I don't figure out why it happened it's just going to happen again. Despite the increasing amount of storage, the tools I have to generate new data is increasing even faster. I have about 5 devices capable of producing photographs and video: two cameras, a flip video, my cell phone and a webcam. All of this new data is dutifully sync'd to my laptop (a process I wrote about &lt;a href='http://javajosh.blogspot.com/2009/08/iphoto-sucks-2009-edition.html'&gt;earlier in an article on iPhoto&lt;/a&gt;), but then (apparently) the data just sits there, and problems like these arise. &lt;br/&gt;&lt;br/&gt;Of course, this data shouldn't just sit there. It should be doing something useful, or it should get deleted. (The utility of data generally goes down over time. But that's ok because flickr, youtube, and facebook don't ever delete your data. It's their business to keep your data as informational as possible, so that's to your benefit.)&lt;br/&gt;&lt;br/&gt;Should you have more photos on your hard-drive than on your favorite sharing service, or less? Most people would say more, I say less! Put the good photos on Flickr, and only keep the great ones locally. (Same with videos and youtube). If it's not good or great, it's deleted. Even if you decide to keep it your work isn't done - for example, you need to compress the video. (And you may want to compress the local photos you keep if you shoot RAW).&lt;br/&gt;&lt;br/&gt;(Two unavoidable factors may keep more data on your pc than on the net in the short run. First, you may have a limited connection. This will make uploading even smaller files very slow. In the worst case, you're completely offline. Not much you can do there but wait, knowing that your data clutter is only temporary. Second, you may need to compose your story a bit, putting together the narrative and cleaning up the source data, and make decisions about what's good, what's great, and what's trash. That takes time! But being aware of all this work you're creating before hitting "Record" might make you more cautious. It might also inspire you to cull out your work before uploading to your PC!)&lt;br/&gt;&lt;br/&gt;How much to keep? I don't know, but I do know that about 95% of my photos are pretty bad. So I'd say 4 photos and one very short video per event day are good, and half (or less) are great. That's about 40MB uploaded, 20MB (max) kept on the hard disk. That's still quite a lot to upload over a bad connection, but doable with reasonable broadband.&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=51ad025c-4be7-82c4-8250-b358b7cc0b9b' alt='' class='zemanta-pixie-img'/&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/12275906-9071537261477288990?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/9071537261477288990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=9071537261477288990' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/9071537261477288990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/9071537261477288990'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/10/running-out-of-disk-space-in-age-of.html' title='Running out of disk space in the age of the cheap terabyte - avoiding data clutter.'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6989094718681907600</id><published>2009-09-19T17:54:00.001-07:00</published><updated>2009-09-19T18:04:47.451-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nz'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Unlocking the iPhone 3GS - Overseas</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;The iPhone 3GS has the potential to be the traveler's best friend: it has a great camera, now a very good video camera, a good sound recorder, and lots of handy travel apps. And it even has a GPS and a compass!&lt;br/&gt;&lt;br/&gt;But travel requires that the iPhone be offline quite a lot more often than when used as a daily device. The reasons are several. Countries don't have data networks, let alone 3G data networks. They may not even have ubiquitous wifi, let alone ubiquitous, free wifi which is the norm in the LA area at least. Even ordinary internet access may be restricted or expensive.&lt;br/&gt;&lt;br/&gt;I learned all of these lessons the hard way. Newly arrived in Aukland, New Zealand I had some time to kill before the next leg of my journey and sought out a coffee shop and a quiet corner to take care of some iPhone unlocking. Frankly, I had never considered doing this before my big trip, as I'd been pretty satisfied with the default service of both AT&amp;amp;T and the Apple Store applications. But, I wanted to be able to use my phone as a phone here, so I set about learning about the process.&lt;br/&gt;&lt;br/&gt;This took much longer to understand than I expected; it appears that this is still a very fringe activity for a very mainstream device. The best resource for hacking the iPhone 3GS was on &lt;a href='http://www.iphonehacks.com/2009/07/stepbystep-guide-to-jailbreak-iphone-3gs-running-iphone-os-30-using-redsn0w-mac.html'&gt;iphonehacks.com&lt;/a&gt;. This has a lot of detailed instructions and good links (although I may have had to find a different link for the ipsw file IIRC). In addition, one of the steps ended up costing me about NZ$25 in coffee. :) Here are the steps, in brief:&lt;br/&gt;&lt;ol&gt;&lt;li&gt;Jailbreak the device. This allows you to install non-Apple approved applications on the phone.&lt;/li&gt;&lt;li&gt;Unlock the device. This allows you to use non-AT&amp;amp;T carriers.&lt;br/&gt;&lt;/li&gt;&lt;li&gt;Install the new SIM card.&lt;/li&gt;&lt;li&gt;Enjoy and send metta to the clever programmers who made this possible. And send metta to apple for making a nice device. &lt;br/&gt;&lt;/li&gt;&lt;/ol&gt;redsnow is the name of the program that jailbreaks your device. For most people this is a minor inconvenience. ultrasnow is the name of the unlock program, which itself is an unauthorized application. Cydia is another unauthorized application that is used to install ultrasnow. The wrinkle with the iPhone 3GS is that Apple made some change to OS 3.1 which makes it harder to jailbreak, so you have to downgrade to OS 3.0, then do the jailbreak. An extra step, but no biggie. [If someone had written just that paragraph I would have been saved a lot of furrowed-brow time. I hope someone finds that useful.]&lt;br/&gt;&lt;br/&gt;One step seemed simple enough: to restore 3.0, just download a file from Apple. And so I started. When the download just stopped, I was a bit taken aback. But then I realized, ah, they meter the internet here! This file was 300MB and the coffee shop had a 50MB limit on internet usage (using these neat little paper cards with codes you had to type). Problem solved few lattes later (the guy was kind enough to give me two cards per coffee) I had the file. But by then I had to leave, and didn't want to mess something up by rushing.&lt;br/&gt;&lt;br/&gt;At my final destination I set about completing the jailbreak. Dutifully following instructions, I did it! Now, time to unlock. Ah, but here is the wrinkle: Cydia requires the internet to download ultrasnow, and there was no wifi here! And of course, no data network. Without data my iPhone had turned into a fancy digital camera, able to sync to my computer only.&lt;br/&gt;&lt;br/&gt;I still haven't completed the unlock because of the lack of wifi. Yes, there may be a way to download the package and install it manually. And if worse comes to worst I'll do that.&lt;br/&gt;&lt;br/&gt;The &lt;b&gt;moral of the story&lt;/b&gt; is: jailbreak and unlock your iPhone &lt;i&gt;before&lt;/i&gt; leaving on your trip! Then you can easily pick of a pre-paid SIM card, pop it in and be happy. I'm not sure I would actually do this, but there have been several times a wifi router would have really come in handy for both my iPhone and my computer.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;As a postscript I'd say that the iPhone has one standout feature for basic travelling: the video camera. Not only is it very good quality, it is neatly compressed and ready to upload. The videos on my compact are HUGE for their size. The iPhone 3GS is a big let-down, however, when it comes to battery life, and nothing sucks down the iPhone's battery like video. It is best used in short spurts (like flickr's "long photos"). And when you're overseas this actually means you will bring: a charger, a wall adapter, and a cable. I'm super glad I got the battery extender from Mophie before I left. $80 well spent.&lt;br/&gt;&lt;br/&gt;The iPhone is also a big let-down for almost every other travel application. The voice recorder is excellent for journaling, but doesn't geocode and clips are hard to share (use Evernote instead). You can read books and watch movies on the thing, but that's not too common for me. There is no really good way for someone to give you their contact details, or to jot down a bunch of tips someone is giving you. It's good for keeping lots of contact information around, but only if the battery didn't die. It is, of course, a very good MP3 player. :)&lt;br/&gt;&lt;br/&gt;The underlying reason for this lack, I think, is that most iPhone apps just aren't designed for feature-rich, extended, offline, and unplugged operation. They are designed for commuters who have 3G or Wifi all the time and keep it plugged into the computer they are working on most of the time.&lt;br/&gt;&lt;br/&gt;Phones are easy to borrow. Computers are even easy to borrow. If I had the choice between having:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;handy small atlas, a cheap pad of paper, and a pen&lt;/li&gt;&lt;li&gt;iPhone 3GS&lt;/li&gt;&lt;/ul&gt;And I was on the road, I would choose the former. Now that I think about it, it's pretty easy to borrow a pen, too.&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=26375420-40ff-8933-a7d6-8ae5e97a573e' alt='' class='zemanta-pixie-img'/&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/12275906-6989094718681907600?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6989094718681907600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6989094718681907600' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6989094718681907600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6989094718681907600'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/09/unlocking-iphone-3gs-overseas.html' title='Unlocking the iPhone 3GS - Overseas'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-419689310570919948</id><published>2009-09-19T17:12:00.001-07:00</published><updated>2009-09-19T17:12:05.302-07:00</updated><title type='text'>Meditating, Still</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;My enthusiasm for the meditation technique of Vipassana has been renewed by this wonderful experience, this place, and these selfless people, and I am more determined than ever to maintain my practice.&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=48354ea9-1957-8da8-b5ae-73fe09969e92' alt='' class='zemanta-pixie-img'/&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/12275906-419689310570919948?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/419689310570919948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=419689310570919948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/419689310570919948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/419689310570919948'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/09/meditating-still.html' title='Meditating, Still'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-8988833855247454804</id><published>2009-08-09T21:09:00.001-07:00</published><updated>2009-08-09T21:09:25.165-07:00</updated><title type='text'>iPhoto sucks, 2009 edition</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;iPhoto still sucks. A quick google for "iPhoto sucks" gives a variety of hits&lt;br/&gt;&lt;ul&gt;&lt;li&gt;he &lt;a href='http://lifehacker.com/software/iphoto/ask-the-readers--iphoto-alternative-189846.php'&gt;lifehacker article asking for replacement ideas&lt;/a&gt; from 2006&lt;/li&gt;&lt;li&gt;&lt;a href='http://thelastminute.typepad.com/blog/2005/03/iphoto_sucks.html'&gt;the random typepad post&lt;/a&gt; (when will bloggers learn to include author and date on all of their articles?). &lt;br/&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;First, let's review the primary reason why iPhoto still sucks: it doesn't use the file system. It stores everything in a huge, monolithic file called, by default, "iPhoto Library". This is a HUGE interoperability problem:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Other programs can't read, modify, delete iPhoto photos. &lt;/li&gt;&lt;/ul&gt;Anytime all of my data is glommed into a single, multi-gigabyte clump I start to worry about data integrity issues - I don't want a single bit flip to make my entire library go bad!&lt;br/&gt;&lt;br/&gt;There are some alternatives:&lt;br/&gt;&lt;br/&gt;Perhaps the biggest new tool on the scene is&lt;big&gt;&lt;img width='80' height='50' alt='Organize' src='http://picasa.google.com/images/organize.jpg' style='float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;'/&gt; &lt;big&gt;&lt;a href='http://picasa.google.com/mac/'&gt;Picasa for Mac&lt;/a&gt;&lt;/big&gt; &lt;/big&gt;(&lt;span class='sysreq'&gt;Requires: Mac OS X 10.4.9&lt;/span&gt;+, Intel CPU&lt;span class='sysreq'&gt;, 256MB RAM&lt;/span&gt;&lt;span class='sysreq'&gt;, 100MB available hard disk space)&lt;/span&gt;. Picasa is Google's free, previously Windows-only entry into the desktop photography organization space. It's a very good program, except that it &lt;i&gt;&lt;b&gt;crashes all the time&lt;/b&gt;&lt;/i&gt;, and use the Windows version extensively on my Sumi, my Thinkpad T43 running XP. Picasa works with both file-oriented photos and iPhoto's custom file-system (however, Picasa is read-only on iPhoto library).&lt;br/&gt;&lt;br/&gt;Another alternative is &lt;big&gt;&lt;big&gt;&lt;a href='http://www.adobe.com/products/creativesuite/bridge/'&gt;Adobe Bridge&lt;/a&gt;&lt;/big&gt;&lt;/big&gt;. "Adobe® Bridge CS4 is a powerful, easy-to-use media manager for visual people, letting you easily organize, browse, locate, and view creative assets." Bridge also has &lt;i&gt;&lt;b&gt;primitive&lt;/b&gt;&lt;/i&gt; &lt;a href='http://blog.epicedits.com/2008/03/26/your-guide-to-adobe-bridge-importing/'&gt;&lt;b&gt;&lt;i&gt;import capabilities&lt;/i&gt;&lt;/b&gt;&lt;/a&gt; - it will get your photos and movies off your device, but it doesn't do duplicate detection or offer the option to delete source files when you're done. It's a very low level utility, but does have very sensible folder naming conventions.&lt;br/&gt;&lt;br/&gt;There is another program that comes with OSX called &lt;a href='http://paininthetech.com/2007/01/03/mac-os-x-image-capture'&gt;&lt;big&gt;Image Capture&lt;/big&gt; &lt;/a&gt;which is very primitive but at least offers to delete source files when you're done. This is great when you need to &lt;a href='http://forums.macrumors.com/showpost.php?p=8195740&amp;amp;postcount=25'&gt;delete data from your iPhone and don't want to click delete 200 times&lt;/a&gt;. Image Capture is very nice, but it doesn't separate data according to the date it was taken, unlike Bridge.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;&lt;big&gt;&lt;big&gt;Sharing.&lt;/big&gt;&lt;/big&gt;&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;Eventually, any content of value is going to be shared. But how? Where? For photos the four major options are: &lt;a href='http://www.flickr.com/photos/jaakel/'&gt;Flickr&lt;/a&gt;, &lt;a href='http://picasaweb.google.com'&gt;Picasa Web Albums&lt;/a&gt;, &lt;a href='http://facebook.com'&gt;Facebook&lt;/a&gt;, and &lt;a href='http://dropbox.com'&gt;Dropbox&lt;/a&gt;. For videos, there's basically just &lt;a href='http://youtube.com'&gt;YouTube&lt;/a&gt; and Dropbox (although Flickr does allow for short videos to be posted).&lt;br/&gt;&lt;br/&gt;I have the most experience with &lt;b&gt;Flickr&lt;/b&gt;. You can pay to have a Pro account ($25/year) which allows unlimited uploads at any resolution. Flickr has a highly developed community of photographers (although they are playing around with video, it's still primarily about photos), and some really nice sharing options (like embedding slide shows in your blog). Unlimited storage is pretty cool but in practice you don't want to be posting crap so you don't really use all of it. The only reason to go Pro is to make sure you get full resolution. You can get photos to Flickr in 3 ways: through the web, through the Uploadr, and through email. Email is the best option, because it's the most flexible (you can email from Picasa or the iPhone for example).&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Picasa Web Albums&lt;/b&gt; is newer and quite compelling, especially if you use Picasa. The integration with the desktop client is extremely good, and lets you sync edits and add watermarks automatically. Photos default to private (although you can &lt;a href='http://picasaweb.google.com/javajosh'&gt;share public photos&lt;/a&gt; as well). Honestly, if the Picasa Mac client was more stable, I wasn't already invested in Flickr, and Facebook wasn't such a tempting alternative I'd be using this product.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Facebook Photo Sharing&lt;/b&gt; is something that I really want to learn more about. I've seen other people sharing photos, tagging people in the photos, and commenting - both of which are great features. But I have questions. For example, is it possible to post public photos so that non-facebook users can see them [answer: yes, but only via URL]? Is there a way to upload more than one photo at once (e.g. a desktop uploader?) [answer: yes, there's a &lt;a href='http://apps.facebook.com/picasauploader/'&gt;Picasa Facebook Plugin&lt;/a&gt;] Is it possible to upload via email [yes, but not to an album]? Are tags supported you can only tag people]? Is it possible to download your photos once uploaded [only by right-clicking]? What are the maximum filesizes supported [looks like about 600px]? Is the original maintained (e.g. is it suitable for archiving?) [no]. Basically, this is great for snapshots with people in them.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Dropbox&lt;/b&gt; is a very basic option, best used for long videos that won't fit on YouTube (which is limited to 10minutes, I think), for audio recordings, or for anything else that's not a photo or a small video. The great thing about Dropbox is the flexibility: it's really just a net accessible file system. You don't get any nice things like tagging or flash viewers or anything. But on the plus side you can share whatever you want, no matter how big, as easy as a file copy. Very good for audio and video.&lt;br/&gt;&lt;br/&gt;&lt;big&gt;&lt;big&gt;&lt;b&gt;My Process, or, What I do&lt;/b&gt;&lt;/big&gt;&lt;/big&gt;&lt;br/&gt;&lt;br/&gt;When I take photos with my &lt;b&gt;Nikon D90&lt;/b&gt; (a "semi-pro" DSLR) I almost always sync with my Mac by just putting the SD card into a reader connected to the Mac - this is both faster and more battery efficient than connecting the camera up directly with a USB cable (although it's probably harder on the SD card and camera). You can configure which program runs to sync photos: I'm using Adobe Bridge currently, but both iPhoto and Picasa can do an import. (I use Bridge because I like it's file naming better, but I do miss duplicate detection). I import into a sub-folder of Photos called D90 - it turns out it's handy to organize by device. Then I boot up Picasa which detects the new photos, and do my basic editing there. Occasionally I start up Photoshop. Then I post to Flickr via Picasa's built-in email interface.&lt;br/&gt;&lt;br/&gt;For my &lt;b&gt;iPhone 3GS&lt;/b&gt; I sometimes post directly through the phone: you can email photos and videos, or post videos to YouTube or to Facebook (with the Facebook iPhone app) over wifi or 3GS. Otherwise I sync photos and videos (but not audio, alas) with Adobe Bridge, as with the D90. Unfortunately I haven't figured out how to do a bulk delete on the iPhone Camera Roll! The immediacy of getting data off of the device and onto the net immediately is wonderful, if a little slow. I am &lt;i&gt;certain&lt;/i&gt; that this is the way of the future. &lt;i&gt;&lt;b&gt;Audio is quite tricky&lt;/b&gt;&lt;/i&gt;, alas. The iPhone 3GS offers a new "Voice Memos" app (it may be available on any iPhone 3.0 phone). Audio is &lt;i&gt;only&lt;/i&gt; sync'd via iTunes (see the Voice Memos smart list). Then you have to export as MP3 files, if you want to share (right click, "Create MP3 Version" - the iPhone records &lt;a href='http://en.wikipedia.org/wiki/MPEG-4_Part_14#.MP4_versus_.M4A_file_extensions'&gt;m4a audio&lt;/a&gt;.) Another option is to email the audio file, but this is of limited utility unless you only want to share with one other person. [An interesting alternative to Voice Memos audio is &lt;a href='http://evernote.com/'&gt;Evernote&lt;/a&gt;. Evernote is time limited (10min) and very low quality compared to voice memo but it does OTA sync with the Evernote servers, is geocoded on save, and you can store text alongside the audio and you can share the audio if you want.]&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Flip Video&lt;/b&gt; has it's own proprietary syncing application. Unfortunately it is modelled on iPhoto: data gets plopped into a monolithic application which then needs to be exported. If you just want to burn DVDs and send to YouTube you may never need to export. Of course, I find myself using the Flip much less now that I have the iPhone 3GS. [Is it possible to use Image Capture for the Flip?]&lt;br/&gt;&lt;br/&gt;&lt;big&gt;&lt;big&gt;&lt;big&gt;&lt;b&gt;Making Art&lt;/b&gt;&lt;/big&gt;&lt;/big&gt;&lt;/big&gt;&lt;br/&gt;&lt;br/&gt;My true goal is to use this data to say something about the world, to share an insight about the world. The best photography can certainly stand on its own, and a title and/or description is enough. For that, Flickr and YouTube are enough. However, more often than not I find myself wanting to say more, to embed these images and videos and audio into a more comprehensive document, to make a multimedia essay. Flickr and YouTube, along with a blog (like &lt;a href='http://blogger.com'&gt;Blogger&lt;/a&gt;) is perfect for this. Both services provide nice Flash viewers for the content, which can be embedded in the post (see "&lt;a href='http://javajosh.blogspot.com/2009/07/short-trip-important-lessons.html'&gt;Short Trip, Important Lessons&lt;/a&gt;" for a simple example).&lt;br/&gt;&lt;br/&gt;&lt;big&gt;&lt;big&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;/big&gt;&lt;/big&gt;&lt;br/&gt;&lt;br/&gt;The best bang for the buck, in my opinion, is using Bridge (or Image Capture) to get the photos off your camera into an actual filesystem, then use Picasa to upload to Flickr and YouTube, and then use Blogger to write great posts, embedding assets as needed. However, there's a bit of a marketing problem. You can link people to your post from Facebook. However, this has the important drawback that a) people can't be tagged and b) it seems like people are not often willing to look at links. People like photos, but they like them native to Facebook.&lt;br/&gt;&lt;br/&gt;Working offline is tricky. If you don't have an internet connection then you can't upload your resources, which you can't embed in your essay. In this case you can fall back on classic HTML authoring techniques: make a folder for your essay, placing all your assets in that folder alongside an index.html file. When you are online, put the assets up first, adapt the post for the new URLs, then post the essay. (I've never seen that kind of functionality in an offline blog authoring tool, so you have to do it by hand.)&lt;br/&gt;&lt;br/&gt;But, overall, avoid iPhoto because it makes everything else harder.&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=5db117df-ab9b-8d3a-9b45-06e742aceb71' alt='' class='zemanta-pixie-img'/&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/12275906-8988833855247454804?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/8988833855247454804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=8988833855247454804' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8988833855247454804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8988833855247454804'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/08/iphoto-sucks-2009-edition.html' title='iPhoto sucks, 2009 edition'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6343218893795863783</id><published>2009-07-29T13:03:00.001-07:00</published><updated>2009-08-09T16:02:53.907-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='forsale'/><category scheme='http://www.blogger.com/atom/ns#' term='motorcycle'/><title type='text'>Selling my motorcycle. [SOLD]</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Alas, I am selling my motorcycle. It's been a great bike and a lot of fun. But I won't be able to ride for some time and it's a beautiful summer and I don't want to see it go to waste.&lt;br/&gt;&lt;br/&gt;Asking $4400 - which is a really great price for this bike in great shape and all the extras. Call me at 562 331 7169 if you're interested or want to take a test ride.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='youtube-video'&gt;&lt;object width='400' height='300'&gt; &lt;param name='flashvars' value='offsite=true&amp;amp;lang=en-us&amp;amp;page_show_url=%2Fphotos%2Fjaakel%2Ftags%2Ftriumph%2Fshow%2F&amp;amp;page_show_back_url=%2Fphotos%2Fjaakel%2Ftags%2Ftriumph%2F&amp;amp;user_id=10797369@N00&amp;amp;tags=triumph&amp;amp;jump_to=&amp;amp;start_index='&gt; &lt;/param&gt; &lt;param name='movie' value='http://www.flickr.com/apps/slideshow/show.swf?v=71649'&gt; &lt;/param&gt; &lt;param name='allowFullScreen' value='true'&gt; &lt;/param&gt;&lt;embed width='400' height='300' type='application/x-shockwave-flash' src='http://www.flickr.com/apps/slideshow/show.swf?v=71649' allowfullscreen='true' flashvars='offsite=true&amp;amp;lang=en-us&amp;amp;page_show_url=%2Fphotos%2Fjaakel%2Ftags%2Ftriumph%2Fshow%2F&amp;amp;page_show_back_url=%2Fphotos%2Fjaakel%2Ftags%2Ftriumph%2F&amp;amp;user_id=10797369@N00&amp;amp;tags=triumph&amp;amp;jump_to=&amp;amp;start_index='&gt; &lt;/embed&gt;  &lt;/object&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;table width='580' cellspacing='1' cellpadding='3' border='1' align='Left'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th colspan='2'&gt;&lt;br/&gt;General information&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width='25%' valign='top'&gt;&lt;b&gt;Model:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Triumph Thunderbird Sport - Yellow&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width='25%' valign='top'&gt;&lt;b&gt;Year:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;1999&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width='25%' valign='top'&gt;&lt;b&gt;Category:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Naked bike&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width='25%' valign='top'&gt;&lt;b&gt;Crashes:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Rear-ended in 2005; professionally repaired to stock by OC Triumph, Santa Ana. This was a minor accident and did not affect the frame or any other major systems. There are two small scratches on the exhaust.&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width='25%' valign='top'&gt;&lt;b&gt;Upgrades:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;ol&gt;&lt;li&gt;Upgraded cam shaft&lt;/li&gt;&lt;li&gt;Upgraded to off-road exhaust&lt;/li&gt;&lt;li&gt;Hand-warmers&lt;br/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td valign='top'&gt;&lt;b&gt;Accessories&lt;/b&gt;&lt;br/&gt;&lt;/td&gt;&lt;td valign='top'&gt;&lt;ol&gt;&lt;li&gt;Corbin Leather Saddle&lt;br/&gt;&lt;/li&gt;&lt;li&gt;Genuine Triumph Windscreen&lt;/li&gt;&lt;li&gt;Genuine leather Triumph Panier&lt;/li&gt;&lt;li&gt;HJC Helmet&lt;/li&gt;&lt;li&gt;Leather riding gloves (large)&lt;br/&gt;&lt;/li&gt;&lt;li&gt;Bike cover&lt;/li&gt;&lt;li&gt;Extra set of rear-view mirrors in black&lt;br/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign='top'&gt;&lt;b&gt;Service History&lt;/b&gt;&lt;br/&gt;&lt;/td&gt;&lt;td valign='top'&gt;April 2009 did a major preventative maintenance:&lt;br/&gt;&lt;ol&gt;&lt;li&gt;Full tune up&lt;/li&gt;&lt;li&gt;New wires and plugs&lt;/li&gt;&lt;li&gt;Fork seals and oil replaced&lt;/li&gt;&lt;li&gt;Carbuerator cleaned and adjusted&lt;/li&gt;&lt;/ol&gt;All other maintenance records are available.&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th colspan='2'&gt;&lt;a name='ENGINE'&gt;Engine and transmission&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width='25%' valign='top'&gt;&lt;b&gt;&lt;a href='http://www.bikez.com/jargon/index.php#Displacement'&gt;Displacement&lt;/a&gt;:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;885.00 ccm (54.00 cubic inches)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width='25%' valign='top'&gt;&lt;b&gt;Engine type:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;In-line three&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width='25%' valign='top'&gt;&lt;b&gt;Stroke:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width='25%' valign='top'&gt;&lt;b&gt;Power:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;82.00 &lt;a href='http://www.bikez.com/jargon/index.php#horsepower'&gt;HP&lt;/a&gt; (59.9  &lt;a href='http://www.bikez.com/jargon/index.php#kilowatt'&gt;kW&lt;/a&gt;)) @ 8500 &lt;a href='http://www.bikez.com/jargon/index.php#Revolutions'&gt;RPM&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width='25%' valign='top'&gt;&lt;b&gt;Cooling system:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Liquid&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width='25%' valign='top'&gt;&lt;b&gt;Gearbox:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;6-speed&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width='25%' valign='top'&gt;&lt;b&gt;Transmission type&lt;br/&gt;final drive:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Chain&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th colspan='2'&gt;&lt;a name='PHYSICAL'&gt;Physical measures&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width='25%' valign='top'&gt;&lt;b&gt;Dry weight:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;224.0 kg (493.8 pounds)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width='25%' valign='top'&gt;&lt;b&gt;&lt;a href='http://www.bikez.com/jargon/index.php#Wheelbase'&gt;Wheelbase&lt;/a&gt;:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;1,580 mm (62.2 inches)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th colspan='2'&gt;&lt;a name='CHASSIS'&gt;Chassis and dimensions&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width='25%' valign='top'&gt;&lt;b&gt;Front brakes:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Dual disc&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width='25%' valign='top'&gt;&lt;b&gt;Rear brakes:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;Single disc&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th colspan='2'&gt;&lt;a name='SPEED'&gt;Speed and acceleration&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width='25%' valign='top'&gt;&lt;b&gt;Top speed:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;165.0 km/h (102.5 mph)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width='25%' valign='top'&gt;&lt;b&gt;Power/weight ratio:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;0.3661 HP/kg&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th colspan='2'&gt;&lt;a name='OTHER'&gt;Other specifications&lt;/a&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width='25%' valign='top'&gt;&lt;b&gt;Fuel capacity:&lt;/b&gt;&lt;/td&gt;&lt;td&gt;17.00 litres (4.49 gallons)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th colspan='2'&gt;&lt;a name='FURTHER'/&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=3adc042d-f0d1-8e71-b24a-d83fb0650784' alt='' class='zemanta-pixie-img'/&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/12275906-6343218893795863783?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6343218893795863783/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6343218893795863783' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6343218893795863783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6343218893795863783'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/07/selling-my-motorcycle.html' title='Selling my motorcycle. [SOLD]'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6419029974778355783</id><published>2009-07-23T20:18:00.001-07:00</published><updated>2009-07-23T21:10:33.255-07:00</updated><title type='text'>Short trip, important lessons</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;As a test run of a longer, world-spanning adventure, this 10-day trip to DC and NC has been a success. I've met with obstacles, adventure, and even peril on this relatively short excursion. And, something I didn't expect but should have, I've had a lot of new ideas about how the world works. Travel is not just an opportunity to experience new things, but it's a chance to observe what remains the same.&lt;br /&gt;&lt;br /&gt;&lt;big&gt;&lt;b&gt;The Mechanics of Travel&lt;/b&gt;&lt;/big&gt;&lt;br /&gt;First things first: lessons on the mechanics of travel. By tickets early. Check the tickets carefully or you will end up at the wrong gate, or at the wrong time. TSA hires morons to both write and implement security policy - just get through it quickly and try not to think. A map is the most important thing in a new place. Do not rely completely on technology to replace maps, phone, camera, etc: batteries run out and signals don't go everywhere, even in big cities. Also, it's tricky to use multiple apps on an iPhone. Even if you get a big room, don't unpack everywhere. Talk to strangers. Eat well. All problems go away with sufficient money: remember that travel is primarily a cost optimization problem, not a survival problem.&lt;br /&gt;&lt;br /&gt;Relax, but keep moving forward. Be adventurous. Sometimes it's lonely on the road, but it passes.&lt;br /&gt;&lt;br /&gt;&lt;div class='youtube-video'&gt;&lt;object width='425' height='344'&gt;&lt;param value='http://www.youtube.com/v/6H31_D-ZkKk&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6' name='movie'&gt; &lt;/param&gt;&lt;param value='true' name='allowFullScreen'&gt; &lt;/param&gt;&lt;param value='always' name='allowscriptaccess'&gt; &lt;/param&gt;&lt;embed width='425' height='344' allowfullscreen='true' allowscriptaccess='always' type='application/x-shockwave-flash' src='http://www.youtube.com/v/6H31_D-ZkKk&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6'&gt; &lt;/embed&gt;           &lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Seek out local advice, but take it with a grain of salt. Often locals don't know as much about the area as a good guide book (I've learned a lot about my hometown through guide books!).&lt;br /&gt;&lt;br /&gt;&lt;big&gt;&lt;b&gt;Washington, DC: shattering a caricature&lt;/b&gt;&lt;/big&gt;&lt;br /&gt;Washington, DC is unique in that it is the nerve-center for the world's most powerful nation, a place through which trillions of dollars flow and momentous decisions made every day. And yet, for all that, it is still a city. People need to eat and live and laugh. The trash must get collected. And it's a city in the midst of a great deal of natural beauty: one can get lost in the woods within easy walking distance of the capitol building. I think I had grown to think of DC as merely the steps of the Capitol Building, and the Oval Office, and some vague "inside the beltway" place. But it is a real city with a real heart. Like DC, many places exist only in caricature, and I hope to change that.&lt;br /&gt;&lt;br /&gt;&lt;big&gt;&lt;b&gt;Raleigh, North Carolina: alive and real&lt;/b&gt;&lt;/big&gt;&lt;br /&gt;For me, the principal reason to visit North Carolina are the important people who live here, my family. It has been a great pleasure and privilege to stay at my sister's family's beautiful home and reconnect with my nieces. This will always be my chief (and happy) memory of this place, I think. But another facet of this place will always stay with me, I think: I have never been in a place so dense with life. Everywhere is endless life. It is almost oppressive in it's liveliness, as if there is no room for thought because that would take away from the bustling business of getting on with it. And yet the pace of human life here is undeniably slower than either DC or LA. I like the fact that, for the most part, the people here are concerned with what's in front of them, rather than the unreliable (and dangerously distracting) abstractions that preoccupy more "sophisticated" people.&lt;br /&gt;&lt;br /&gt;&lt;div class='youtube-video'&gt;&lt;object width='400' height='300'&gt; &lt;param name='flashvars' value='offsite=true&amp;amp;lang=en-us&amp;amp;page_show_url=%2Fphotos%2Fjaakel%2Ftags%2Fnc%2Fshow%2F&amp;amp;page_show_back_url=%2Fphotos%2Fjaakel%2Ftags%2Fnc%2F&amp;amp;user_id=10797369@N00&amp;amp;tags=nc&amp;amp;jump_to=&amp;amp;start_index='&gt; &lt;/param&gt; &lt;param name='movie' value='http://www.flickr.com/apps/slideshow/show.swf?v=71649'&gt; &lt;/param&gt; &lt;param name='allowFullScreen' value='true'&gt; &lt;/param&gt;&lt;embed width='400' height='300' type='application/x-shockwave-flash' src='http://www.flickr.com/apps/slideshow/show.swf?v=71649' allowfullscreen='true' flashvars='offsite=true&amp;amp;lang=en-us&amp;amp;page_show_url=%2Fphotos%2Fjaakel%2Ftags%2Fnc%2Fshow%2F&amp;amp;page_show_back_url=%2Fphotos%2Fjaakel%2Ftags%2Fnc%2F&amp;amp;user_id=10797369@N00&amp;amp;tags=nc&amp;amp;jump_to=&amp;amp;start_index='&gt; &lt;/embed&gt;   &lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;big&gt;&lt;b&gt;&lt;br /&gt;The Why of Travel&lt;br /&gt;&lt;/b&gt;&lt;small&gt;Living alone for even a few days in a strange city creates a feeling of loneliness that I didn't expect. In the past I've traveled either with friends or, when traveling alone, to friends. And this is perhaps the most interesting effect of travel: when almost everything else changes, what is left is who you are. Identity in the absence of acquaintances and familiar places is a curious thing: without the reinforcement of others, identity becomes truer.&lt;br /&gt;&lt;br /&gt;But who are you? This question can most easily be approached by asking the question, "why am I here doing this right now?" While this is always a good question, it seems particularly poignant on the road. "Because I can" is certainly a valid answer: flexing your freedom is a reasonable thing to do, I think. But what is really in this for me? Is the benefit of a changing world worth the cost of discomfort and instability?&lt;/small&gt;&lt;/big&gt;&lt;br /&gt;&lt;br /&gt;My own answer is this: "&lt;i&gt;because I don't know what I will find&lt;/i&gt;." I am firmly in Rumsfeld's "unknown unknowns" territory. In a way, I am using myself as a guinea pig in a grand experiment and dis/comfort has little to do with it. I don't really know what I hope to find as I travel the world, but I have a great deal of confidence that I will find it. Perhaps it will be a strong set of insights, or ideas, or inspiration that I can use directly or indirectly to help others through my professional work. Or perhaps I'll stumble onto a culture or people that resonate strongly and beckons me to become a part of it. Or perhaps I will fall in love and start a family. These are only possibilities, and chances are whatever I find will not fit neatly into any category.  If this short trip was any indication, the lesson is bound to be profound.&lt;big&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/big&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align='left' class='zemanta-pixie'&gt;&lt;img class='zemanta-pixie-img' alt='' src='http://img.zemanta.com/pixy.gif?x-id=372b1006-fe10-8223-8d26-090693ff4575'/&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=dc753421-c4f9-8a79-9126-1992fbeed72d' alt='' class='zemanta-pixie-img'/&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/12275906-6419029974778355783?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6419029974778355783/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6419029974778355783' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6419029974778355783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6419029974778355783'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/07/short-trip-important-lessons.html' title='Short trip, important lessons'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6873845519470256175</id><published>2009-06-18T13:27:00.001-07:00</published><updated>2009-06-18T13:27:36.115-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='meditation'/><title type='text'>The value of silence</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;There is irony in writing about silence. To promote something with it's opposite is rather cheeky. But in meditation today I was reminded of it's key importance. When you sit and try to think only of the breath, for example, the mind revolts because the breath is a prison. The reality of breath is less far less interesting than the experiences the mind can produce for itself.&lt;br/&gt;&lt;br/&gt;But there is value in staying in this prison for a while. Within this prison very little is happening. It is peaceful - with the key exception of the revolted, and revolting mental reaction. It's true that some matters of real interest can arise, observation of unusual and subtle sensation. However,  it is essentially sensory deprivation. This forces the cluttered mind to clean itself up, to deal only with what is right in front of it. This is a very useful skill for those moments when one really needs to pay attention, for example when learning a new skill or sizing someone up. "Now" is the only time your mind receives new information.&lt;br/&gt;&lt;br/&gt;Once you begin to pay attention to the prison, it is not quite what it seems. The breath is complex. The mind seeing the breath is complex. Against the backdrop of a chaotic mind this complexity is lost, but against a backdrop of relative peace this subtlety shines and is fascinating. And it is shocking how quickly and violently "normal" thoughts can break into this new-found idyllic world, literally tearing it apart.&lt;br/&gt;&lt;br/&gt;Speech is almost always part of disruptive "normal" thoughts. A more subtle form of speech occurs, some call it "noting" - this is the process of simply naming what you find. It can also occur that questions arise "What is this?" or "Am I doing this right?" or "Is this really a sensation?". These mental verbalizations don't seriously disrupt the experience. However, words do prevent forward progress.&lt;br/&gt;&lt;br/&gt;With practice, it is possible to eliminate all verbalizations, even the subtle ones. This is done by simply realizing when you're doing it, and stopping. Even in mid sentence. If one sets a special intention to eliminate words, it becomes relatively easy to do in only a few sittings. And one finds the meditations more meaningful and interesting.&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-6873845519470256175?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6873845519470256175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6873845519470256175' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6873845519470256175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6873845519470256175'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/06/value-of-silence.html' title='The value of silence'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-3005945936529487908</id><published>2009-06-18T13:02:00.001-07:00</published><updated>2009-07-23T20:21:38.621-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Security wisdom from years ago</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;The security of a signal is inversely proportional to the distance between the sender and receiver.&lt;br/&gt;&lt;br/&gt;There are only two fundamental ways to control a signal: control the box or control the pipe. Clever encryption schemes make controlling the pipe impossible - therefore there will be economic and political pressure to control the box.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=2750e196-f765-801b-ac15-dbf723f900cd' alt='' class='zemanta-pixie-img'/&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/12275906-3005945936529487908?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/3005945936529487908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=3005945936529487908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3005945936529487908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3005945936529487908'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/06/years-ago.html' title='Security wisdom from years ago'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-1429322657969078708</id><published>2009-06-10T13:57:00.001-07:00</published><updated>2009-07-23T20:23:43.324-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Is money really the reason to eliminate the death penalty?</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;For years I've been against the death penalty for the simple reason that, if it ever turns out the judicial system made a mistake on a particular case, the sentence is irrevocable. That is, the death penalty implies a level of judicial reliability that is unattainable. My opposition to the death penalty is opposition to the idea of the infallibility of authority.&lt;a href='http://www.flickr.com/photos/7901271@N06/3735814127'&gt;&lt;img width='195' height='259' src='http://farm3.static.flickr.com/2503/3735814127_ca521c8035.jpg' style='float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;John van de Camp (former DA of LA and AG for CA) wrote an interesting LA Times opinion piece claiming that &lt;a href='http://www.gamereplays.org/community/index.php?showtopic=21858'&gt;the death penalty costs California $125m/year, and that it should therefore be eliminated&lt;/a&gt;. My reaction to this was a complex mix of happy surprise, doubt, and disgust. His claim is that California could save one &lt;i&gt;billion&lt;/i&gt; dollars in 5 years.&lt;br/&gt;&lt;br/&gt;Put in such stark terms, the elimination of the death penalty seems like a no-brainer. The generally conservative people in favor of death penalty also tend to be fiscally conservative, and this becomes "easy money". &lt;br/&gt;&lt;br/&gt;But I also have a hard time believing van de Camp's numbers. Why would it cost an extra $90k per  prisoner to have them on death row? Where does that money go? Could that possibly be true?&lt;br/&gt;&lt;br/&gt;If it is true, van de Camp's article becomes less of an argument against the death penalty and more an expose about the inordinate costs of doing some as simple as killing people. I mean, I don't want the state to kill people, but I also don't understand why it costs so much to do it.&lt;br/&gt;&lt;br/&gt;In truth, I think that van de Camp is right. In a way I'm glad the state is so incompetent that it makes this decision easy. I'd prefer it, of course, if the state was both competent AND wise. But if incompetence paths the path for wisdom, so be it.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;[Caption]&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=e58237b6-e2f1-8c1e-ac8e-5cf3753cc4d9' alt='' class='zemanta-pixie-img'/&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/12275906-1429322657969078708?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/1429322657969078708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=1429322657969078708' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1429322657969078708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1429322657969078708'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/06/is-money-really-reason-to-eliminate.html' title='Is money really the reason to eliminate the death penalty?'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2503/3735814127_ca521c8035_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-8436579267614104567</id><published>2009-06-09T14:35:00.000-07:00</published><updated>2009-06-09T14:36:02.032-07:00</updated><title type='text'>On Photography</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I really like it when people like my photography. For example, someone favorited and asked me to share this beach ball shot.&lt;a href='http://www.flickr.com/photos/jaakel/14757364/'&gt;&lt;img height='333' width='500' class='reflect' onload='show_notes_initially();' title='' alt='a beach ball, yay! by you.' src='http://farm1.static.flickr.com/14/14757364_a14f7946c7.jpg?v=0' style='float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;And I've had other photos requested for books and the like.&lt;br/&gt;&lt;br/&gt;But lately, my output has reduced significantly. A big part of this was the theft of my camera equipment. However, even having since replaced it, I've noticed the puzzles of light, color, focus, depth-of-field, subject don't seem to hold my interest. I certainly appreciate other people's work a lot more these days - I am particularly impressed with technical, commercial photography (which, I know, doesn't get a whole lot of love. but I don't understand why. Making things look like their Platonic ideal is interesting, difficult, and beautiful). However, I am less drawn to the art than I was.&lt;br/&gt;&lt;br/&gt;And now I am leaving on an extended trip around the world. Photos (and perhaps videos) are expected. That is why I'm renewing my Flickr pro account. However, I'm also going to return my fancy D90 gear (thanks Costco!). I just don't want to lug a lot of heavy equipment. Some of my favorite travel photography was off of a P&amp;amp;C camera - and I know why: the odds of the camera being there is inversely proportional to it's size and weight.&lt;br/&gt;&lt;br/&gt;Perhaps most importantly, documenting the experience should never ever eclipse having the experience.&lt;br/&gt;&lt;br/&gt;So, with my beat up old SD400 (and water-tight enclosure!), I hope to apply what I've learned about photography, and increase my output once again.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-8436579267614104567?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/8436579267614104567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=8436579267614104567' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8436579267614104567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8436579267614104567'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/06/on-photography.html' title='On Photography'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-1011995707582881344</id><published>2009-05-06T00:58:00.001-07:00</published><updated>2009-05-06T13:30:06.848-07:00</updated><title type='text'>Where to discuss songs?</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;img border='0' style='float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;' src='http://image.allmusic.com/00/amg/pic200/drp400/p406/p40682a2u80.jpg' id='Picture'/&gt;I often seem to wonder about the meaning of songs, and would like to talk about them with others. Consider the track "&lt;a href='http://allmusic.com/cg/amg.dll?p=amg&amp;amp;sql=33:0c5txnrhld6e'&gt;Dragon Queen&lt;/a&gt;" from the latest album from &lt;a href='http://allmusic.com/cg/amg.dll?p=amg&amp;amp;sql=11:dpfexqq0ldfe'&gt;Yeah Yeah Yeahs&lt;/a&gt;, It's Blitz! It's a catchy track, but there are some indecipherable lyrics in there, and it sounds very much like another popular song which I can't quite identify. I think it would be fun to argue about the lyrics and identify the funk track that Karen O and friends are lifting.&lt;br /&gt;&lt;br /&gt;&lt;a href='http://allmusic.com'&gt;Allmusic&lt;/a&gt; has the &lt;i&gt;data&lt;/i&gt; on this track - how long it is, who made it, etc - but offers no forum for discussion.&lt;br /&gt;&lt;br /&gt;Where should such a form exist? Should it be a feature of an existing service (like allmusic), or should it be it's own thing? Should songs have a canonical URL? &lt;br /&gt;&lt;br /&gt;Some &lt;a href='http://en.wikipedia.org/wiki/Let_It_Be_%28song%29'&gt;songs&lt;/a&gt; are important enough to warrant a &lt;a href='http://en.wikipedia.org/wiki/Let_It_Be_%28song%29'&gt;wikipedia&lt;/a&gt; article, but Dragon Queen is really not one of them, I think. And besides, wikipedia is not appropriate for critical discussion. So for existing services, I think Wikipedia is out.&lt;br /&gt;&lt;br /&gt;A great place for online music discussion would be Allmusic - they already have all the facts handy, all that's needed is a new discussion feature. I'm not sure what their revenue model is, but traffic is always good. &lt;a href='http://en.wikipedia.org/wiki/Last.fm'&gt;Last.fm&lt;/a&gt; would be a nice place for this kind of musical discussion, too. Of course, if &lt;a href='http://www.google.com/'&gt;Google&lt;/a&gt; could somehow collect all the blog posts, tweets, and comments about the song from all corners of the web, that would be very impressive! &lt;a href='http://www.youtube.com/'&gt;YouTube&lt;/a&gt; is another option for music mecca, but the song has to have a video associated, and frankly the quality of youtube comments is so bad I wonder if this would be worth the cost.&lt;br /&gt;&lt;br /&gt;There are so many options for musical discussion, it's surprising it hasn't really happened yet.&lt;br /&gt;&lt;br /&gt;[&lt;b&gt;Update&lt;/b&gt;: it turns out that &lt;a href='http://www.last.fm/home'&gt;Last.fm&lt;/a&gt; is the place. It has all of allmusics info, and you can edit entries for artists, albums, and tracks, and &lt;i&gt;forum discussions&lt;/i&gt;. For example, here is the page for &lt;a href='http://www.last.fm/music/Yeah+Yeah+Yeahs/_/Dragon+Queen'&gt;Dragon Queen&lt;/a&gt;. Last.fm calls comments "shouts", and their OSX thick-client doesn't support them, which is why I missed them on my first look at Last.fm.]&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-1011995707582881344?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/1011995707582881344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=1011995707582881344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1011995707582881344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1011995707582881344'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/05/idea-world-needs-place-to-discuss-songs.html' title='Where to discuss songs?'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-7507479597787806867</id><published>2009-04-16T14:35:00.001-07:00</published><updated>2009-04-16T14:35:29.682-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Sending the wrong message about torture</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://www.nytimes.com/2009/04/17/us/politics/17detain.html?hp'&gt;Obama Rules Out Charging C.I.A. Agents in Interrogations - NYTimes.com&lt;/a&gt;&lt;br/&gt;&lt;blockquote&gt;The interrogation methods were among the Bush administration’s most closely guarded secrets, and what was released on Thursday afternoon marked the most comprehensive public accounting to date of a program that some senior Obama administration officials have said included illegal torture.&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;And Obama won't prosecute. This sends the wrong message to soldiers and operatives: that you don't need to use your judgment when carrying out orders. As long as you're just doing your job, you won't be held accountable. This is the wrong message, and I'm disappointed in Obama.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-7507479597787806867?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/7507479597787806867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=7507479597787806867' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7507479597787806867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7507479597787806867'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/04/sending-wrong-message-about-torture.html' title='Sending the wrong message about torture'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-8983589439317607003</id><published>2009-04-16T14:27:00.001-07:00</published><updated>2009-04-16T14:27:21.033-07:00</updated><title type='text'>Hi-Tech organization tips?</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I've been working assiduously through a wonderful book called "The Complete Idiot's Guide to Organizing your Life". It offers some wonderful advice and specific techniques to help define your goals, and then unclutter and streamline your stuff, your time, and your relationships to support those goals.&lt;br/&gt;&lt;br/&gt;The techniques, though, are not very high tech, and I think it's a worthy goal to adapt the book's advice to a modern suite of tools. For example, in building a "Life Management Center" (or the "helm of your ship", the author talks about filing systems primarily geared toward paperwork, and also focuses on using paper-based planners (in particular using the alphabetical section as an all-purpose database).&lt;br/&gt;&lt;br/&gt;Instead of a paper planner I want to use my iPhone. With one exception, the todo list, the iPhone is a great tool.&lt;br/&gt;&lt;br/&gt;I think there is a great deal of opportunity to write a book (or perhaps a series of posts) that applies these lo-tech concepts to hi-tech tools.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-8983589439317607003?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/8983589439317607003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=8983589439317607003' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8983589439317607003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8983589439317607003'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/04/hi-tech-organization-tips.html' title='Hi-Tech organization tips?'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-397265018015171748</id><published>2009-04-16T14:25:00.001-07:00</published><updated>2009-04-16T14:25:49.899-07:00</updated><title type='text'>LiveScribe vs. Windows Journal</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Bought a &lt;a href='http://www.livescribe.com/smartpen/index.html'&gt;LiveScribe pen&lt;/a&gt; yesterday. Here's what I wrote about it when I first discovered it:&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;&lt;small&gt;ARM 9, 2G Flash RAM, IR sensor in the tip, stereo microphone, OLED display - and a ball-point pen! $200. Position and velocity data apparently via coded dots on special paper (a mildly unfortunate requirement), can digitize notes associating audio with them for later playback. Desktop software does hand-writing recognition making notes searchable (this last feature is similar to Windows Journal). You actually draw the pen's interface if you need to interact with it; there are no buttons on the thing. Interestingly the company is going to ship a (Java) SDK for the device. Very interesting indeed - with a little custom software I'm thinking this could be an amazing tool for client consultations, or for marking up any printed material. Neat but probably useless demos include a piano you can draw and then play, and a foreign language dictionary that will pronounce a word you write in english in several different languages. Tablets are still better for illustration, though.&lt;/small&gt;&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;My tablet's battery has been flaky, it's WiFi hasn't been working right, and I gave my (very nice) voice recorder to my ex-girlfriend, so I decided to buy it for use as a note-taking tool. I've been using it pretty heavily for the last two days, and here are my first thoughts.&lt;br/&gt;&lt;br/&gt;This pen is perfect for taking notes in a meeting. The ability to record audio along with your notes is very powerful. I'm still getting the hang of this style of note-taking. Being able to store your notes and audio on a PC for backup, search and review is potentially useful, but I fear data-duplication. Luckily the desktop tools are read only so it's easy to treat the PC as a viewable backup, and the notebook/pen as the actual data.&lt;br/&gt;&lt;br/&gt;The pen is okay for &lt;a href='http://www.livescribe.com/cgi-bin/WebObjects/LDApp.woa/wa/CommunityOverviewPage'&gt;creating and sharing simple expository videos&lt;/a&gt;. Unfortunately you can only share these with the Windows version of Livescribe desktop.&lt;br/&gt;&lt;br/&gt;The tablet still wins for illustration and expository videos (just draw and talk, capture with Jing). It is not quite as convenient as you would think, though - you have to have some "dot paper" for the thing to work, so you need to have a notebook and a pen. Indeed, you can't use the pen as a simple voice recorder on it's own, because you have to have dot paper to make it start recording! I'm also concerned that eventually the paper buttons will become obscured and unusable.&lt;br/&gt;&lt;br/&gt;A more serious issue with Livescribe is integrating the data into the rest of my tool set. The data is not file-oriented. One is forced to use yet another tool to search and access proprietary data. (Windows Journal is slightly more file oriented). You can export PDF and AAC files from the Mac client, but this is a) inconvenient, b) duplicates data, and c) loses information about the capture (you couldn't recreate the video, for example). The closest thing to a "true backup" is, ironically, the SWF files used on the community site.&lt;br/&gt;&lt;br/&gt;An interesting tool, but in no way revolutionary.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-397265018015171748?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/397265018015171748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=397265018015171748' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/397265018015171748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/397265018015171748'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/04/livescribe-vs-windows-journal.html' title='LiveScribe vs. Windows Journal'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-2823171407649461420</id><published>2009-04-16T14:24:00.001-07:00</published><updated>2009-04-16T14:24:58.765-07:00</updated><title type='text'>Exploring the Blogosphere</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I am finding so many interesting people! It's quite exciting!&lt;br/&gt;&lt;br/&gt;Via &lt;a href='http://vedana.net/'&gt;Case&lt;/a&gt; I discovered Buster McLeod's &lt;a href='http://enjoymentland.com/'&gt;Enjoymentland&lt;/a&gt; - one man's exploration of happiness and satisfaction (with handy tips on &lt;a href='http://enjoymentland.com/2009/02/16/dress-dial-flower/'&gt;loosening your brain with three random words&lt;/a&gt;, theories like "&lt;a href='http://enjoymentland.com/2009/01/31/1-take-your-own-advice/'&gt;it is enjoyable to take your own advice&lt;/a&gt;", and an &lt;a href='http://enjoymentland.com/2009/01/31/currently-in-season/'&gt;interest in fresh produce&lt;/a&gt;). From there I learned about &lt;a href='http://avantgame.com/bio.htm'&gt;Jane McGonigal&lt;/a&gt;'s &lt;a href='http://avantgame.com/'&gt;Avantgame&lt;/a&gt; - one woman's exploration of why gaming makes us happy (via &lt;a href='http://blog.avantgame.com/2009/01/i-need-to-game-ify-writing-my-book.html'&gt;a post on "game-ifying" her attempt to write a book&lt;/a&gt;). In addition she is a very accomplished, attractive person living an apparently wonderful life. (And she has an &lt;a href='http://psychology.stanford.edu/%7Ekmcg/portfolio/index.html'&gt;identical twin sister Kelly&lt;/a&gt; who is an accomplished yoga teacher and writer (and also a PhD)).&lt;br/&gt;&lt;br/&gt;Frankly it feels good is to know that these people exist, that they are thinking, creating, and sharing themselves in all their quirky esoteric glory. I get the sense that anything is possible, that if I take the time to accurately describe my dream, patiently work toward it every day (while keeping my workspace neat!), that I really can achieve it. And meanwhile I should feel free to unabashedly blog about my own preoccupations no matter how odd they may be.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-2823171407649461420?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/2823171407649461420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=2823171407649461420' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/2823171407649461420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/2823171407649461420'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/04/exploring-blogosphere.html' title='Exploring the Blogosphere'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-7036309106516673571</id><published>2009-04-16T14:23:00.001-07:00</published><updated>2009-04-16T14:23:07.850-07:00</updated><title type='text'>These are the tools of our lives.</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Tool proliferation (and contraction) is a part of my life. I am an early adopter, partly because of my job, and partly because of my personality. I enjoy the new, and sometimes the new can be quite valuable.&lt;br/&gt;&lt;br/&gt;The distinction between software, hardware, website, and locally installed tools is not very important in the long run. From the mind's perspective, they are all equivalent: tools focus behavior, sacrificing generality for effectiveness. (This definition is as true for a screwdriver as for a word processor.)&lt;br/&gt;&lt;br/&gt;Here are some tools I've been using for some time, in no particular order:&lt;br/&gt;Evernote Basecamp Freshbooks Goodreads BetterWorld Dropbox Gmail Livescribe Namecheap Linode GCalendar GNews GReader Hulu Mail.app Adium Visio MSProject MSWord Photoshop Flash Flex Eclipse Netbeans Ant Maven Ivy EnterpriseArchitect JavaScript Firefox Safari ScribeFire Zotero Zing Gaim Skype Ubiquity TreeTabs Growl Terminal Bash Last.Fm Delicious Facebook Yelp YouTube MySpace Amazon NewEgg Meetup Q10 Costco VMWare Mercurial Git CVS SVN iPhone iTunes Twitter FriendFeed Firebug Blogger YahooMovies Kongregate CounterStrikeSource TurboTax NikonD90 Xcode WindowsXP OSX Wireshark Ableton Mbox2.&lt;br/&gt;&lt;br/&gt;There are many tools I haven't listed, but these are the ones off the top of my head. Some of these tools overlap each other. For example, I have more than one mail application, browser, IDE, programming language, note-taking and build tool. Some of these tools are relatively new to me, and I'm still using them. Some of them I hardly use at all, others I use daily. Some I used to use a lot more, but now hardly at all. Some are for business, some for pleasure.&lt;br/&gt;&lt;br/&gt;Some of these tools are platforms for other tools - but that is not really important. Indeed with Firefox, the nesting can go deeper: Greasemonkey and Ubiquity are Firefox plugins which can themselves be extended further.&lt;br/&gt;&lt;br/&gt;I think that tools say a lot about a person, but not everything. For example, I like good beer, good coffee, occasional yoga and a daily swim. There are few tools that would indicate these preferences (although a fancy tea set, a yoga mat and goggles/speedo would be a good hint!) But interestingly, tools give you an excellent idea of what that person likes to &lt;i&gt;make&lt;/i&gt;. And what someone likes to make is more important than what they like to consume, in my opinion.&lt;br/&gt;&lt;br/&gt;You could infer a lot of (correct) things about my professional life from my tool list. For example, that I do a fair bit of programming, in Java (and you might probably guess HTML CSS and JavaScript). The writing tools may give a hint that I'm experienced enough to get asked to write specifications. You could also tell I'm a blogger and a journaler. Although you may miss the fact that I'm an amatuer writer of fiction (Q10 is the hint there), you would probably get that I'm a fairly serious amatuer photographer (D90, Photoshop), and musician (Ableton, MBox2). But you probably wouldn't be tricked into thinking I'm a pro photographer or musician.&lt;br/&gt;&lt;br/&gt;But of course I may omit certain things. For example, I didn't list my pool cue, bow, soccer cleats or my huge WoW TCG collection. Admittedly these are relics of past activities, but it points out the risk of self-selecting a tool list. Perhaps a separate "tools in storage" could help one create an activity history for someone.&lt;br/&gt;&lt;br/&gt;The "tools of our lives" tend to cluster around particular activities, and this seems to be the most natural way to organize the tools. Activity drives tool usage, but occasionally the reverse happens. If I want to ride a motorcycle, I need to buy a motorcycle - the tool supports the activity. But sometimes a tool falls into my lap and I start using it. For example, Facebook is a great tool for staying in touch with friends, and so I may do more of that activity. Last.fm is a great tool for discovering new music, and I might spend more time listening to obscure tracks. I might be tempted to call these &lt;b&gt;promotional tools&lt;/b&gt; in that they promote certain activities by making them easier to do. Hulu/TV Watching is another promotional pair. These are tools which actually shape the time-budget of your life, and so you must be careful of these. These tools can open your eyes to new possibilities, but they can also distract you from the activities that matter to you.&lt;br/&gt;&lt;br/&gt;Many tools are geared toward eaking out productivity enhancements. These tools assume you already have a way to do something, and offer an alternative method which is faster, cheaper, or produces results of higher quality (or all three). I would consider e-tailers to be in this class of tool: they often make things easier to find, to order, and to pay for than traditional retailers. Most software-making tools are in this class. I would call these &lt;b&gt;productivity tools&lt;/b&gt;. Essentially all software libraries and frameworks fall into this category. A physical example would be an electric drill.&lt;br/&gt;&lt;br/&gt;There is another class of tools which offers insight into the world. They tend to be passive tools, that let the user look at things from a new angle, or provide information that would ordinarily be inaccessible. A newspaper is a classic example, or Google News. But also more technical tools like Wireshark or Firebug or LambdaProbe. IDEs like Eclipse or XCode also have many features of this sort, providing summaries of information. &lt;b&gt;Insight tools&lt;/b&gt; help you understand the world in a way that is useful to you. A physical example would be a flashlight.&lt;br/&gt;&lt;br/&gt;Tools can sometimes be hard to distinguish. Is &lt;i&gt;&lt;b&gt;TreeTabs&lt;/b&gt;&lt;/i&gt; (an excellent Firefox plugin) an insight, productivity, or even promotional tool? There is a case to be made for all three: insight because it lets you see which tabs are related to each other, productivity because it uses screen real-estate better and is more readable, and promotional because it tempts you to use far more tabs than before (with the unintended side-effect of making Firefox a lot less stable - but that's another story).&lt;br/&gt;&lt;br/&gt;The same sort of question can be asked of certain IDE and framework features. IDEs make physical artifacts relatively easy to manage (via search) and create (via refactoring tools) and so they unintentionally promote needless artifact creation. Many frameworks also promote the use of many very specialized physical artifacts to accomplish a single task, which has many undesirable side-effects. &lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-7036309106516673571?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/7036309106516673571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=7036309106516673571' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7036309106516673571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7036309106516673571'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/04/these-are-tools-of-our-lives.html' title='These are the tools of our lives.'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-4872427365473040408</id><published>2009-03-31T22:31:00.001-07:00</published><updated>2009-03-31T22:31:18.452-07:00</updated><title type='text'>Good Eats - French Toast</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://www.foodnetwork.com/recipes/alton-brown/french-toast-recipe/index.html'&gt;http://www.foodnetwork.com/recipes/alton-brown/french-toast-recipe/index.html&lt;/a&gt;&lt;br/&gt;&lt;a href='http://www.hulu.com/watch/58278/good-eats-french-toast'&gt;http://www.hulu.com/watch/58278/good-eats-french-toast&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=f160bb31-1906-8338-87c1-1c5551dc9faf' class='zemanta-pixie-img'/&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/12275906-4872427365473040408?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/4872427365473040408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=4872427365473040408' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4872427365473040408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4872427365473040408'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/03/good-eats-french-toast.html' title='Good Eats - French Toast'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-1358505627319730605</id><published>2009-03-26T11:22:00.001-07:00</published><updated>2009-03-26T11:24:53.398-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Splitting the Atomic User Interface</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;There is a war waging in the technosphere between those who favor thick clients (or rich clients as they are now called), and those who favor thin clients. Thin clients, and the server-mediated UI frameworks which support them, meet a singularly important requirement - to be understood by other programs, especially search engines. A large part of the utility of the internet is search, and search is only possible because web spiders can understand the simple structure of HTML and those internal relationships expressed as hyperlinks. These spiders cannot understand rich clients. Another increasingly useful part of the internet are mashups, where one application is used to decorate another with useful information. This, too, is rendered impossible by indivisible, atomic rich clients.&lt;br /&gt;&lt;br /&gt;Indivisability, or atomicity, is what you get with a binary image, or a Flash SWF, aJava applet, a Canvas element, or a big hunk of generative JavaScript (like GWT). These elements are basically inscrutable by other programs. The DOM comes to an abrupt stop, and so does all ability to index, manipulate, or extend. When one of these elements expands to consume the entire page, the utility of the internet goes down a little bit because now there is information locked away, inaccessible. The entire page becomes an atom, and completely inscrutible.&lt;br /&gt;&lt;br /&gt;And yet, these atomic technologies enable some truly beautiful interfaces, and in some cases are a joy to program with, so we don't want to give them up. Most applications should just use them and be happy, because 80% of searches are informational (as opposed to navigational or transactional - see &lt;a target="_blank" href="http://live.psu.edu/story/29879"&gt;http://live.psu.edu/story/&lt;wbr&gt;29879&lt;/a&gt;), and most of these programs are transactional (that is, getting the user to fill out a form).&lt;br /&gt;&lt;br /&gt;For informational rich clients, it's more complex. The bottom line is that you have to expose the information in the traditional way, too. This is less "cloaking" and more "exposing" internal state to the programs that need the info. Tacking on a trivial, non-beautiful HTML exposure of your data should be pretty easy, especially if your app is done in the SOFEA style. You have each page  redirect to your rich client internal anchor. This is a valid use of a server-side framework.&lt;br /&gt;&lt;br /&gt;This approach makes (almost) everyone happy. The data and it's relationship to external sites is exposed to search engines and mashups. The only person who is unhappy is the one who wants to use your UI in a mashup, along with the the data. But in the end, this is a minor impact. The importance of UI reuse is much less than the importance of information reuse.&lt;br /&gt;&lt;br /&gt;Another approach is for the atom to finally be divided - for the web spiders to break the UI atom and release it's power. Unfortunately, this demands a great deal of computational effort on the part of the spiders, and is not scalable. If Google uses 20 megawatts today, expect this to increase an order of magnitude to break all the UI atoms out there, repeatedly. And then expect some information to be lost or misrepresented. From the mashup side it's a better picture - it is possible to analyze a running Java Swing program, for example, and expose a containment hierarchy as a DOM structure. No doubt a similar possibility exists for Flash, etc. Of course, JavaScript already exposes itself as a DOM structure, so it's a bit ahead of the game.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-1358505627319730605?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/1358505627319730605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=1358505627319730605' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1358505627319730605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1358505627319730605'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/03/splitting-atomic-user-interface.html' title='Splitting the Atomic User Interface'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6370481933115883757</id><published>2009-03-07T23:39:00.001-08:00</published><updated>2009-03-07T23:39:23.723-08:00</updated><title type='text'>Two disturbing comments from Obama and a ramble about Afghanistan</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Obama made a &lt;a href='http://www.usatoday.com/news/topstories/2009-03-07-2873054939_x.htm'&gt;comment about the economy&lt;/a&gt; today that tough times are a "great opportunity". I agree, but I think that's a message that requires a subtle discussion or it risks sounding like an empty platitude. A platitude coming from someone as smart as Obama is chilling news indeed - it sounds like a last resort when all other options have been exhausted.&lt;br/&gt;&lt;br/&gt;The second &lt;a href='http://www.reuters.com/article/middleeastCrisis/idUSN07549330'&gt;comment about the Taliban&lt;/a&gt; is more serious: Obama is considering opening dialogue with moderate Taliban. I feel that to do so would be a critical error. The Taliban is a sworn enemy of the US, had harbored al queda, and needs to be eliminated. Granted, this is an emotional response, and I don't know the actual situation in Afghanistan. I know for certain my reaction is colored by a recent reading of The Kite Runner which depicts a Taliban which is wholly evil, a force of thuggish brutality and chaos, and which contains no moderate elements. Of course, that was a work of fiction and I may be mislead. But still, that is my instinct.&lt;br/&gt;&lt;br/&gt;This is different than having dialogue with Iran, which by all accounts is run by Islamic militants no less brutal than the Taliban regime (both are Shi'a, BTW), but hasn't yet attacked US soil. To be sure things are as tense as they could be - Iran is constantly threatening Isreal, a close ally, and threatening the US as well. Iran has a history of attacking Americans in incredibly cowardly ways. But - and this is a huge but - Iran didn't bring down the twin towers, or directly harbor those that did. So sure, send a diplomat to talk to Iran. But send a soldier to 'talk' with the Taliban.&lt;br/&gt;&lt;br/&gt;I am no expert on Afghanistan, but it seems that the problem is a real lack of focus. Armys are best at beating other armies in relatively short conflicts. It seems that the people of Afghanistan have been badly beaten down by first the Russians, then the Taliban, and the survivors are bound to be scarred, fearful, and unwilling to trust. And interpersonal trust is the key to a stable system. Nothing can get done when everyone is scheming to cheat their neighbor. And such people may not have the sophistication to understand the old "the tide raises all boats" sort of argument.&lt;br/&gt;&lt;br/&gt;It seems to be that the West would be well served by introducing a new sort of business, the nation building business. Given a set of resources, a certain culture, a tricky security situation, can you build a nation? Obviously the business would be well served by expatriots of the country in question, and success is measured in how quickly and completely stability is achieved. Incentives should be in place for employees to move to the target country, and integrate into the society. Nothing motivates someone to achieve peace than the prospect of living in a warzone. Competition could occur as different companies take responsibility for rebuilding different nations. As they would be directing vast sums of government treasure, they would need to submit detailed plans, and to detailed audits of their activities. They would need to be very high tech to remain high-functioning despite the scrutiny.&lt;br/&gt;&lt;br/&gt;One possible solution is the Genghis Khan solution. In his day, Temudjin's homeland of Mongolia was ruled by many small khans, or tribal cheiftans. Temudgin gradually won the loyalty of ever-larger groups of warriors by essentially offering them better working conditions (staying alive) and better compensation (a bigger cut of the spoils). Other clans would join him because they saw that their odds of winning battles and feeding their families would improve if they joined rather than fought.&lt;br/&gt;&lt;br/&gt;Rebuild-afghanistan.com could offer the Afghans the same choice Temudjin offered his fellow Mongols: join us, or your odds of surving and feeding your family go down. Let us tell you of the prospect of long term prosperity, a time when the fighting will end, and the land will flow with milk and honey. Our culture is your culture. We are muslims. We have families. We speak Farsi and eat kabob and fly kites in the winter. We are fierce warriors, and we are used to winning. So either join us and live a life of plenty, or run to the hills and take your chances against our military. It's your choice.&lt;br/&gt;&lt;br/&gt;The problem of course is that the west is viewed as evil. Demonstrating goodness is bound to be met with skepticism or violence. It is easy to imagine building a hospital, for example, and having it bombed. The irony is that you must build the 'good stuff' close by to be appreciated. And yet when it is close it is vulnerable, and it only takes a small group of people to decide to destroy it. There are always small minded khans who have only enough cleverness to manipulate their friends to maintain their power and authority. It is tribalism of the meanest kind, and those khans won't give up their power willingly, and they are happy to believe (and support) any story that helps them maintain their positions. I'm not sure if there is any solution other than to replace such people with leaders loyal to the overtaking regime.&lt;br/&gt;&lt;br/&gt;Finding such leaders is the tricky part. The irony is that such replacement leaders must be selfless - they are giving up a lot to take up the mantle of tribal power. Those with leadership ability are rewarded extremely well in the west, and yet don't have to face the prospect of murder - the job pays better and is less challenging. To give up the rewards and assume the risks of tribal leadership can only come out of selflessness. (of course some people might be drawn to the raw brutality of that sort of existance, but I imagine they would be in the minority.)&lt;br/&gt;&lt;br/&gt;Psychologically the opponent must be given something to think about rather than opposition. If opposition to authority is all they ever known, then it will be a difficult habit to break, even if the authority is demonstrably not evil. After all, if you get up every day and are driven by an abiding hatred of something, rather than say, ambition or even laziness, it's a different lifestyle. It's an easier life because you have a singular purpose: to destroy something. And too your own well-being and even that of your family can be ignored, and any discomfort blamed on the opposition. When you are faced with the prospect of building something, it's much harder. What to build? is a hard question because, by definition, the thing doesn't exist yet. It requires imagination and courage to build. But destruction only requires the basest literal thinking, and a gun. I think this was the point Goerge Orwell was trying to make in 1984. It may be that the tribes of Afghanistan (and to a lesser extent the Iraqis) are stuck in this sort of viscious cycle.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-6370481933115883757?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6370481933115883757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6370481933115883757' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6370481933115883757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6370481933115883757'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/03/two-disturbing-comments-from-obama-and.html' title='Two disturbing comments from Obama and a ramble about Afghanistan'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-7664540625022679281</id><published>2009-02-24T23:49:00.001-08:00</published><updated>2009-02-24T23:49:30.692-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><title type='text'>Book Review: The Kite Runner</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a style='float: left; padding-right: 20px' href='http://www.goodreads.com/book/show/77203.The_Kite_Runner?utm_medium=api&amp;amp;utm_source=blog_review'&gt;&lt;img src='http://ecx.images-amazon.com/images/I/51m925LY6uL._SL160_.jpg' border='0' alt='The Kite Runner'/&gt;&lt;/a&gt; &lt;a href='http://www.goodreads.com/book/show/77203.The_Kite_Runner?utm_medium=api&amp;amp;utm_source=blog_review'&gt;The Kite Runner&lt;/a&gt; by &lt;a href='http://www.goodreads.com/author/show/569.Khaled_Hosseini'&gt;Khaled Hosseini&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;  &lt;a href='http://www.goodreads.com/review/show/47110168?utm_medium=api&amp;amp;utm_source=blog_review'&gt;&lt;h3&gt;My review&lt;/h3&gt;&lt;/a&gt;&lt;br /&gt;  rating: 5 of 5 stars&lt;br/&gt;I cried 4 or 5 times reading this book. It is an incredibly heart-wrenching tale of cowardice, remorse, loss, good, evil, and ambiguous redemption. There are heroes in this book, but they do not succeed in the traditional way. Against violent opposition, saintly people die. It's enough to make you really want to believe in heaven.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;br/&gt;This book is also a badly needed humanization of Afghanistan, a reminder that there was a strong community living there before the Russians and then the Taliban destroyed what was there. &lt;br /&gt;  &lt;br/&gt;&lt;br/&gt;&lt;a href='http://www.goodreads.com/review/list/1967413-Josh-Readmore?utm_medium=api&amp;amp;utm_source=blog_review'&gt;View all my reviews.&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-7664540625022679281?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/7664540625022679281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=7664540625022679281' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7664540625022679281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7664540625022679281'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/02/book-review-kite-runner.html' title='Book Review: The Kite Runner'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-1197006014947911596</id><published>2009-02-20T00:02:00.001-08:00</published><updated>2009-02-20T00:02:30.180-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><title type='text'>Photo processing service needed</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Basically I need a service where I can mail in my film, have negatives developed, scanned, and then uploaded to Flickr into my account. A 5MB scan or higher would be good, with no correction. I don't care about getting the physical negatives back. Does a service like that exist?&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-1197006014947911596?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/1197006014947911596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=1197006014947911596' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1197006014947911596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1197006014947911596'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/02/photo-processing-service-needed.html' title='Photo processing service needed'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6547411276484076304</id><published>2009-02-19T11:26:00.001-08:00</published><updated>2009-02-19T11:26:03.940-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><title type='text'>Book Review: The Brief Wondrous Life of Oscar Wao</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a style='float: left; padding-right: 20px;' href='http://www.goodreads.com/book/show/297673.The_Brief_Wondrous_Life_of_Oscar_Wao?utm_medium=api&amp;amp;utm_source=blog_review'&gt;&lt;img border='0' src='http://ecx.images-amazon.com/images/I/41jZjwqcSfL._SL160_.jpg' alt='The Brief Wondrous Life of Oscar Wao'/&gt;&lt;/a&gt; &lt;a href='http://www.goodreads.com/book/show/297673.The_Brief_Wondrous_Life_of_Oscar_Wao?utm_medium=api&amp;amp;utm_source=blog_review'&gt;The Brief Wondrous Life of Oscar Wao&lt;/a&gt; by &lt;a href='http://www.goodreads.com/author/show/55215.Junot_D_az'&gt;Junot Díaz&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;  &lt;a href='http://www.goodreads.com/review/show/46871833?utm_medium=api&amp;amp;utm_source=blog_review'&gt;&lt;h3&gt;My review&lt;/h3&gt;&lt;/a&gt;&lt;br/&gt;  rating: 5 of 5 stars&lt;br/&gt;What an amazing book. I don't normally go for Pullitzer Prize winners, Oprah Book club stuff, but this book was amazing. The book is not fantasy or science fiction (although you could argue there's a dollop of urban fantasy) but there are quite subtle inside references throughout to LOTR, Dune, the Watchmen, and Akira. This was just the icing on a vibrant, multi-lingual narrative that was so juicy Jonot could have kept me interested describing how grass grows, in real time.&lt;br/&gt;&lt;br/&gt;Of course, the actual story was much more intense than the growing of grass. The central character, Oscar, is perhaps the ultimate nerd, the ultimate ne'er do well outsider, and Junot goes to great lengths to put him in his time and his circumstance, and manages to pull in 3 generations of his family and the terrible history of Trujillo and the Domincan Republic, and the life of DR immigrants in New Jersey.&lt;br/&gt;&lt;br/&gt;The narrative begins and ends with Oscar, but Junot does something only the best authors can - he interrupts his narrative, sometimes quite abruptly, introducing new characters who manage to hold one's interest even more than the last characters. What makes this even better is that the new characters are often younger versions of supporting characters in previous pages, and this time seen in a very different (always more sympathetic) light. It's as if he's explaining "how they got that way". This is particulary true of the mother, Beli, who is first presented as a terrible force in Oscar's life, hard and relentless, and later painted as a little girl, conceived at the tail end of her great families fall, taken in by monsters, saved by distant family, and destroyed by her powerful ability to love.&lt;br/&gt;&lt;br/&gt;I feel like I should say "This book changed my life" but really, it hasn't. I am relieved to report that this book does not have any life lessons, except perhaps for the oldy but goody that you should be grateful for what you have, especially something we take for granted, political freedom. Bush may have been bad, but let's face it, he was no Trujillo. I think that our own complaints sound very tinny and small next to the brutality in this book.&lt;br/&gt;&lt;br/&gt;Live your life, speak your mind, and maybe you can write a book like this someday, my love.&lt;br/&gt;  &lt;br/&gt;&lt;br/&gt;&lt;a href='http://www.goodreads.com/review/list/1967413-Josh-Readmore?utm_medium=api&amp;amp;utm_source=blog_review'&gt;View all my reviews.&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=6b475532-a9d9-4b15-8e2f-281332be168d' class='zemanta-pixie-img'/&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/12275906-6547411276484076304?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6547411276484076304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6547411276484076304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6547411276484076304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6547411276484076304'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/02/book-review-brief-wondrous-life-of.html' title='Book Review: The Brief Wondrous Life of Oscar Wao'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-6215977165702744511</id><published>2009-01-31T14:49:00.001-08:00</published><updated>2009-01-31T14:49:40.319-08:00</updated><title type='text'>An exciting time for Books</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;img src='http://lh4.ggpht.com/_22yJpHiEqpA/SYTVPnAt52I/AAAAAAAAATs/lo_bV_XF_ew/%5BUNSET%5D.jpg?imgmax=800' style='max-width: 800px; float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;'/&gt;&lt;br/&gt;I think this is an exciting time for books - to be a reader, an author, a publisher, or a retailer. There is a new focus on learning, which means reading. &lt;a href='http://barnesandnoble.com'&gt;Brick and mortar retailers&lt;/a&gt; have wisely made the bookstore a "destination" rather than a place to convert greenbacks into stacks of bound paper: bookstores are way more comfortable and fun than in my childhood. Online retailers have made any book accessible, and has given new life to the used-book market.&lt;br/&gt;&lt;br/&gt;And it turns out that books, and the people who love them, are a grand opportunity to &lt;a href='http://goodreads.com'&gt;network with books&lt;/a&gt;. It's like the days of Usenet rec.arts.sf.written, but much better. In particular, I get a great tool that helps me describe what I read, and what I thought, and based on that description can connect me to others. Usenet never did that.&lt;br/&gt;&lt;br/&gt;And internet retailing didn't stop with Amazon. &lt;a href='http://betterworld.com'&gt;People with great heart, skill, and determination&lt;/a&gt; are giving Amazon's book business a run for it's money.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-6215977165702744511?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/6215977165702744511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=6215977165702744511' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6215977165702744511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/6215977165702744511'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/01/exciting-time-for-books.html' title='An exciting time for Books'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_22yJpHiEqpA/SYTVPnAt52I/AAAAAAAAATs/lo_bV_XF_ew/s72-c/%5BUNSET%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-8470939132339151116</id><published>2009-01-31T14:41:00.001-08:00</published><updated>2009-01-31T14:41:56.439-08:00</updated><title type='text'>Spreading out, focusing in</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;img src='http://lh6.ggpht.com/_22yJpHiEqpA/SYTTjHJJenI/AAAAAAAAATo/thGLPZXcRBY/%5BUNSET%5D.png?imgmax=800' style='max-width: 800px;'/&gt;&lt;br/&gt;It seems that the internet has recently exploded with new services. Some of them are very compelling. Using them seems simple enough: sign up, start using it. Goodreads is my new favorite tool of this sort.&lt;br/&gt;&lt;br/&gt;However if you repeat this often enough, a few serious weaknesses arise. Most glaring is the need to remember usernames and passwords for each service. These are a hassle to remember. Each service has it's own interface, which is a double-edged sword - on one hand different data requires a different interface, but on the other it's a lot to learn. Also, each service has it's own data - your own content, and social graph data. This doesn't become an issue until you want to switch services or, ironically worst case, using two services side-by-side.&lt;br/&gt;&lt;br/&gt;Data-duplication in a Web 2.0 world is a nightmare.&lt;br/&gt;&lt;br/&gt;That's why Web 3.0 is going to be about focusing in. Aggregation is the first step. And indeed, perhaps that's the way to go - aggregate and integrate until your happy.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-8470939132339151116?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/8470939132339151116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=8470939132339151116' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8470939132339151116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8470939132339151116'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/01/spreading-out-focusing-in.html' title='Spreading out, focusing in'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_22yJpHiEqpA/SYTTjHJJenI/AAAAAAAAATo/thGLPZXcRBY/s72-c/%5BUNSET%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-4023496515753385465</id><published>2009-01-27T20:36:00.001-08:00</published><updated>2009-01-27T20:36:01.089-08:00</updated><title type='text'>Idea: Movie age disparity finder</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;It's weird how the movies pair really old guys with super young girls. I want to do a survey to see if the gap is trending up or down (I think it's trending up, big time). Inspired by Liam Neeson and Famke Jenson in Taken (12 years difference).&lt;br/&gt;&lt;br/&gt;Some of the information is out there: character name, actor name is on imdb. Actor birth date is also on IMDB, wikipedia, or other sources. What's harder is to know who is romantically linked to whom. I might have to ask the world for input on that one.&lt;br/&gt;&lt;br/&gt;To make it more fun, you can tell the site which characters you wished would have hooked up (but who didn't). It's a nice, fun, drag and drop exercise. A quick poll of teens at the coffee shop seemed to like the idea. &lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-4023496515753385465?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/4023496515753385465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=4023496515753385465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4023496515753385465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4023496515753385465'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/01/idea-movie-age-disparity-finder.html' title='Idea: Movie age disparity finder'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-1230927885077437781</id><published>2009-01-27T20:12:00.003-08:00</published><updated>2009-01-27T20:12:34.628-08:00</updated><title type='text'>The rise of internet bartering</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;That was odd. I wanted to install Stuffit 9 Premium (which has some nice features like segmentation) which is ordinarily $50 (but which somehow comes with the Mac?) and Smithmicro said it was free. But I had to accept an offer. This offer was brokered by a company called Trialpay - and I could select anything from a credit card sign up, a subscription to the Economist magazine, or a trial of "Blockbuster Total Access".&lt;br/&gt;&lt;br/&gt;Actually, I think this was extremely well done. Early attempts at this sort of thing were incredibly crude and offputting, often forcing the user to go through many pages of worthless offers. In this case they only had 6 pretty good offers.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-1230927885077437781?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/1230927885077437781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=1230927885077437781' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1230927885077437781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1230927885077437781'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/01/rise-of-internet-bartering.html' title='The rise of internet bartering'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-7122070934219938964</id><published>2009-01-27T20:12:00.001-08:00</published><updated>2009-01-27T20:12:04.372-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='animation exposition'/><title type='text'>The rise of great expository videos</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I've been seing more and more really great exposition on the internet, especially through videos. &lt;a href='http://www.vimeo.com/927062'&gt;Speed drawing&lt;/a&gt; is perhaps my favorite (and it's a very interesting and informative exercise to consider what it would take to create a "Speed coding" video!), but I've seen some very effective teaching videos (&lt;a href='http://www.youtube.com/watch?v=ok3ykR2GHCc'&gt;this one&lt;/a&gt; about recycling, the enviroment, and ecology from Japan).&lt;br/&gt;&lt;br/&gt;&lt;div class='youtube-video'&gt;&lt;object height='225' width='400'&gt;&lt;param value='true' name='allowfullscreen'&gt; &lt;/param&gt;&lt;param value='always' name='allowscriptaccess'&gt; &lt;/param&gt;&lt;param value='http://vimeo.com/moogaloop.swf?clip_id=2696386&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1' name='movie'&gt; &lt;/param&gt;&lt;embed height='225' width='400' allowscriptaccess='always' allowfullscreen='true' type='application/x-shockwave-flash' src='http://vimeo.com/moogaloop.swf?clip_id=2696386&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1'&gt; &lt;/embed&gt;                &lt;/object&gt;&lt;/div&gt;&lt;br/&gt;&lt;a href='http://vimeo.com/2696386'&gt;History of the Internet&lt;/a&gt; from &lt;a href='http://vimeo.com/picol'&gt;PICOL&lt;/a&gt; on &lt;a href='http://vimeo.com'&gt;Vimeo&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Now here is &lt;a href='http://www.readwriteweb.com/archives/video_history_of_the_internet.php'&gt;an interesting video&lt;/a&gt;. I really like this style of exposition - iconic, abstract, always in motion, with cool spacey music in the background. And of course a nice British accent doesn't hurt. The subject is rather interesting, too - the very early technical development of the Internet. But what is most interesting is the attempt to standardize the iconography with "PICOL icons". What's not clear is if this is just the author, Milah Bilgil, to "standardize" something, or if this attempt is real. Of course, standardizing the iconography isn't enough - would be authors also need good, inexpensive tools to play around with this stuff. It's not clear to me if Flash is overkill for this sort of thing, or if its "just right".&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-7122070934219938964?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/7122070934219938964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=7122070934219938964' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7122070934219938964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7122070934219938964'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/01/rise-of-great-expository-videos.html' title='The rise of great expository videos'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-1142563513034205446</id><published>2009-01-27T20:01:00.001-08:00</published><updated>2009-07-23T20:34:50.409-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='simpatico'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><category scheme='http://www.blogger.com/atom/ns#' term='webdesign'/><title type='text'>A really neat thing</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Sometimes it is hard to transform non-linear thoughts into linear text. This is one of those times. I've been struggling with the concept of "smoother" transitions from concept to implementation in software, such that information is not lost in the transition. Take, for example, the use of unusual typefaces in a web page. If you create a raster, you've lost information - the original text. &lt;br/&gt;&lt;br/&gt;The other day I ran across &lt;a href='http://www.mikeindustries.com/blog/sifr/'&gt;SIFR&lt;/a&gt;, which does in-place rasterization of type. This is consistent with smooth software development along ever decreasing entropy. Interestingly one of my favorite sites, &lt;a href='http://hulu.com'&gt;hulu&lt;/a&gt;, uses it.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Drag and drop of page elements - the ubiquitous use of absolute positioning!&lt;br/&gt;http://www.roxer.com/&lt;br/&gt;http://javajosh.roxer.com/ocjug (with domain support!)&lt;br/&gt;&lt;br/&gt;Oh, and here's one that uses sifr, called &lt;a href='http://doodlekit.com/home/prices'&gt;doodlekit&lt;/a&gt;. (really great site design, but requires a native plugin to work, which I am loathe to install. See the &lt;a href='http://www.techcrunch.com/2007/11/30/doodlekit-brings-advanced-functionality-to-easy-website-creation/'&gt;techcrunch review&lt;/a&gt; that puts it side-by-side with some other tools, including Google Pages). What's shocking is that they charge so much for their service. $14/mo is really too much for a one-time use of a tool, and occasional other uses. The free version sucks because it plops ads on your page. I basically think this is not a viable thing).&lt;br/&gt;&lt;br/&gt;But I love the idea of drag-n-drop through-the-web design.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=21cdaeac-488e-80dd-80f7-081b4e79276d' alt='' class='zemanta-pixie-img'/&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/12275906-1142563513034205446?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/1142563513034205446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=1142563513034205446' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1142563513034205446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1142563513034205446'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/01/really-neat-thing.html' title='A really neat thing'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-8179086370676014392</id><published>2009-01-27T19:53:00.001-08:00</published><updated>2009-01-27T20:44:45.587-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>How to design this code?</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I want to write a JavaScript function that effectively "widgetizes" a section of the DOM that contains other widgets. For the most part these widgets represent some sort of input from the user. In particular, text boxes, selects, and other Widgets. I've kind of done it, but there are a few niggles, some of which are rather philosophical. In the spirit of the interwebs, I'd like some input.&lt;br/&gt;&lt;br/&gt;Here is &lt;a href='http://www.javajosh.com/javajosh-composite-test.html'&gt;the code so far&lt;/a&gt;. Still needs onchange support, and...&lt;br/&gt;&lt;ol&gt;&lt;li&gt;How should the application programmer select the composite node? Passing an ID as a string is easy, but not very flexible. I'd rather accept an arbitrary DOM elt. A jQuery programmer is going to want a plugin, which means using an arbitrary selector. [&lt;b&gt;Update&lt;/b&gt;: Resig recently posted a bit of code that had to deal with this exact issue. He accepts both. It remains to be seen what this means to make this into a plugin.]&lt;br/&gt;&lt;/li&gt;&lt;li&gt;How should I determine if focus is trapped "inside" the composite? Currently I'm tagging all descendant elts with a unique tagging class, but I find this modification of the DOM distasteful. Am I being too picky - does it really matter if elements have an extra class? Is there a way, with jQuery or with basic JavaScript, to ask if a particular elt is an ancestor of another elt? One interesting possibility is to use the "offsetParent" property - apparently divs become offsetParent by default, although this approach might fail under certain layout circumstances.&lt;/li&gt;&lt;/ol&gt;Thanks.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-8179086370676014392?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/8179086370676014392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=8179086370676014392' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8179086370676014392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8179086370676014392'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/01/how-to-design-this-code.html' title='How to design this code?'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-4551508202481342917</id><published>2009-01-27T18:08:00.001-08:00</published><updated>2009-01-27T18:08:59.027-08:00</updated><title type='text'>The truth behind medical paperwork</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Someone I know asked me to join her at her therapy session today, primarily to discuss communication styles. I agreed. The councilor greeted me kindly, said how much good stuff she had heard, and then handed me a (rather thick) sheaf of papers to fill out. Needless to say, I was nonplussed. I smiled and asked her why it was necessary for me to fill out this paperwork, explaining that I have an aversion to such things, and after all this was a one time thing. She said it was for her "integrity" because this paperwork is required by her various associations. She also said that her lawyer said she must have it filled out. She questioned me about past experiences with paperwork - playing the 'why' game with me. At one point I asked her what she would do with the paperwork when I filled it out, and she said "Oh, I'll file it away for 8 years and then throw it away."&lt;br/&gt;&lt;br/&gt;So she wants me to do work that she'll then throw away. How respectful of my time and efforts!&lt;br/&gt;&lt;br/&gt;The truth is that paperwork serves only two purposes: to get the service provider paid, and to limit their liability. And because the payment often comes from a 3rd party (the insurance company), an inordinate amount of paperwork is required. Another, more egregious purpose behind paperwork is to limit the service providers liability. It is more egregious because lawyers have to guess how lawsuites might play out, and because they can go in many different directions, there's a lot of paperwork generated. Actually the more general way to put it is that paperwork should limit the eventual harm suffered by either party (although in some cases it increases harm, such as imposing punitive late fees). &lt;br/&gt;&lt;br/&gt;Repetative, unnecessary paperwork one of the worst symptoms of our medical system.&lt;br/&gt;&lt;br/&gt;One should justify paperwork, rather than justify not having paperwork. It's not easy to fill out a complicated form, especially if it's packed with technical jargon. The requested information is often not at hand, and even if it is, one has to painstakingly write it neatly in the boxes. Also, the action is asymmetrical, meaning that the service provider doesn't have to fill anything out for you, but you have to fill stuff out for them. It is demeaning because, as in my case, you are asked to do work that will eventually be thrown away. Paperwork is the worst kind of work - it's just rehashing known information into new blocks, and agreements that can't be fully understood.&lt;br/&gt;&lt;br/&gt;In this case there are privacy concerns which are substantial - what if I apply for medical insurance and the councelers billing department submitted my "claim" for pscyhological treatement such that my premiums got adjusted?  Or what if the billing department decides to bill me for the visit by accident?&lt;br/&gt;&lt;br/&gt;It makes me very sad that otherwise rational people let bearucratic habits trump their common sense. The fact is that I should have been able to sit in with my friend that one time without filling out any paperwork whatsoever, because the only potential harm was to my privacy, and I felt sufficiently covered by confidentiality priviledge.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-4551508202481342917?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/4551508202481342917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=4551508202481342917' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4551508202481342917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4551508202481342917'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/01/truth-behind-medical-paperwork.html' title='The truth behind medical paperwork'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-5260482387448568880</id><published>2009-01-19T21:26:00.001-08:00</published><updated>2009-01-19T21:26:18.146-08:00</updated><title type='text'>Here's a Live Feed of Obama's Inauguration</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div class='youtube-video'&gt;&lt;object height='296' width='512'&gt;&lt;param value='http://www.hulu.com/live/embed/kqDzjGqsvKQZKY1CUG_aDSkM_bxqboC5' name='movie'&gt; &lt;/param&gt;&lt;embed height='296' width='512' type='application/x-shockwave-flash' src='http://www.hulu.com/live/embed/kqDzjGqsvKQZKY1CUG_aDSkM_bxqboC5'&gt; &lt;/embed&gt;&lt;/object&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/12275906-5260482387448568880?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/5260482387448568880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=5260482387448568880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/5260482387448568880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/5260482387448568880'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/01/here-live-feed-of-obama-inauguration.html' title='Here&amp;#39;s a Live Feed of Obama&amp;#39;s Inauguration'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-142875433296176115</id><published>2009-01-12T15:02:00.001-08:00</published><updated>2009-01-12T15:02:17.279-08:00</updated><title type='text'>Why it isn't so surprising that "furniture" is the keynote speech at the Java Symposium</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;At first when I saw it on the schedule I thought it was a joke. Sure, the Java Symposium isn't exactly the biggest or best conference, but keynote speech about furniture? Really? But after thinking about it for a while, I realize that the issue is actually important enough for a keynote, even though I disagree with Neal's thesis. So why is &lt;i&gt;furniture&lt;/i&gt; is the subject of &lt;a href='http://javasymposium.techtarget.com/html/sessions.html?track=NL-830&amp;amp;ad=684018&amp;amp;Offer=JSemtssmem112h&amp;amp;asrc=EM_UTC_5541895&amp;amp;uid=2810894#NFordKeynote'&gt;Neal Ford's keynote&lt;/a&gt; at this year's &lt;a href='http://javasymposium.techtarget.com'&gt;Java Symposium&lt;/a&gt;? He will talk about "the frustrations of modern knowledge workers in their quest to actually&lt;br /&gt;get some work done, and solutions for how to guard yourself against all&lt;br /&gt;those distractions." He's going to rant against cubicles, save the everyday Joe Programmer from his frustrations, and I think that's great.&lt;br/&gt;&lt;br/&gt;But I'm not sure if I agree that a shared workspace is causing Joe Programmer's troubles. Sometimes I like being in a shared space. Sure, if I am hot on the trail of a great idea, and thick in the implementation, then yes, by all means, I want an office and a closed door. But alas, the opportunities for such development are relatively sporadic. The reason is that, once the code is done, working, and checked in, you get to describe it, support it, test it, explain it, defend it, tweak it, deploy it, demo it, profile it, document it, and discuss it. These other activities require communication and an office actually gets in the way of those tasks.&lt;br/&gt;&lt;br/&gt;Communication is the core benefit of being in a shared workspace. But sharing energy is another. The energy of the place can keep you going in the middle of the day when you might be sagging and loosing focus. It's kind of like working out in a room of people vs doing it yourself. Working in an office means you get some good peer pressure to at least pretend to work when you're sitting at your desk. This is why I, and many people I know, enjoy working in a coffee shop. In fact, I'll even dub this "&lt;b&gt;The Coffee Shop Effect&lt;/b&gt;".  (Of course, it works the other way around, too: if everyone is depressed about something, like a bad quarter, it's easy to get pulled down with everyone else. Luckily in a coffee shop people are usually jacked up on caffiene, and there is no shared earnings report, so that's nice.).&lt;br/&gt;&lt;br/&gt;I also want to point out that being in an office doesn't necessarily reduce distractions: IM and email have a way of ignoring physical barriers. I've yet to meet a product or project manager that shied away from opening the door at any time. Of course, it's possible to close the digital doors too, and coworkers no matter their title need to respect one's space, but an office alone doesn't solve these issues. E.g. it takes more than changing around furniture to cultivate a nice atmosphere.&lt;br/&gt;&lt;br/&gt;So basically I think that companies should provide both types of environments. There's a huge economic pressure to keep expensive programmers focused and productive for more hours in the day, but there is a certain maximum (for myself it's only possible to be in "the zone" for a max of 4 hours per day - when I go past that and look at my work, I have to admit it's not great). And for semi-focused work, a shared space is actually better and more fun.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-142875433296176115?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/142875433296176115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=142875433296176115' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/142875433296176115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/142875433296176115'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/01/why-it-isn-so-surprising-that-is.html' title='Why it isn&amp;#39;t so surprising that &amp;quot;furniture&amp;quot; is the keynote speech at the Java Symposium'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-853285707206590191</id><published>2009-01-07T15:09:00.001-08:00</published><updated>2009-01-07T15:09:13.422-08:00</updated><title type='text'>The rise of expository videos</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I've been seing more and more really great exposition on the internet, especially through videos. &lt;a href='http://www.vimeo.com/927062'&gt;Speed drawing&lt;/a&gt; is perhaps my favorite (and it's a very interesting and informative exercise to consider what it would take to create a "Speed coding" video!), but I've seen some very effective teaching videos (&lt;a href='http://www.youtube.com/watch?v=ok3ykR2GHCc'&gt;this one&lt;/a&gt; about recycling, the enviroment, and ecology from Japan).&lt;br/&gt;&lt;br/&gt;&lt;div class='youtube-video'&gt;&lt;object width='400' height='225'&gt;&lt;param value='true' name='allowfullscreen'&gt; &lt;/param&gt;&lt;param value='always' name='allowscriptaccess'&gt; &lt;/param&gt;&lt;param value='http://vimeo.com/moogaloop.swf?clip_id=2696386&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1' name='movie'&gt; &lt;/param&gt;&lt;embed width='400' height='225' allowscriptaccess='always' allowfullscreen='true' type='application/x-shockwave-flash' src='http://vimeo.com/moogaloop.swf?clip_id=2696386&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1'&gt; &lt;/embed&gt; &lt;/object&gt;&lt;/div&gt;&lt;br/&gt;&lt;a href='http://vimeo.com/2696386'&gt;History of the Internet&lt;/a&gt; from &lt;a href='http://vimeo.com/picol'&gt;PICOL&lt;/a&gt; on &lt;a href='http://vimeo.com'&gt;Vimeo&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Now here is &lt;a href='http://www.readwriteweb.com/archives/video_history_of_the_internet.php'&gt;an interesting video&lt;/a&gt;. I really like this style of exposition - iconic, abstract, always in motion, with cool spacey music in the background. And of course a nice British accent doesn't hurt. The subject is rather interesting, too - the very early technical development of the Internet. But what is most interesting is the attempt to standardize the iconography with "PICOL icons". What's not clear is if this is just the author, Milah Bilgil, to "standardize" something, or if this attempt is real. Of course, standardizing the iconography isn't enough - would be authors also need good, inexpensive tools to play around with this stuff. It's not clear to me if Flash is overkill for this sort of thing, or if its "just right".&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-853285707206590191?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/853285707206590191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=853285707206590191' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/853285707206590191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/853285707206590191'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/01/rise-of-expository-videos.html' title='The rise of expository videos'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-1901034699014090480</id><published>2009-01-04T19:38:00.001-08:00</published><updated>2009-01-04T19:38:06.633-08:00</updated><title type='text'>Just go see Wicked</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://www.wickedthemusical.com/'&gt;&lt;img width='588' height='346' src='http://www.wickedthemusical.com/img/wicked_splash.jpg' alt='http://www.wickedthemusical.com/img/wicked_splash.jpg' style='cursor: -moz-zoom-in; float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;(We had front row, center tickets at the Pantages with the original cast! The principles are great singers AND great actors - sitting that close you can see the real tears on Elphabas face. The story is really nothing like &lt;a href='http://www.amazon.com/Wicked-Life-Times-Witch-West/dp/0060987103'&gt;the book&lt;/a&gt;, but it's amazing all the same.)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-1901034699014090480?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/1901034699014090480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=1901034699014090480' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1901034699014090480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1901034699014090480'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/01/just-go-see-wicked.html' title='Just go see Wicked'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-889954596691195132</id><published>2009-01-04T19:12:00.001-08:00</published><updated>2009-01-27T20:04:38.469-08:00</updated><title type='text'>The true cost of evaluating EC2</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;img style='float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;' src='http://farm2.static.flickr.com/1061/3169441988_0c02721188.jpg'/&gt; Back in July I was evaluating Amazon's cloud computing platform, &lt;a href='http://aws.amazon.com/ec2/'&gt;EC2&lt;/a&gt;. I figured, why not? It's only $.10/CPU hour. Starting an instance, connecting with a browser, SSHing in would cost me less than a cup of coffee, and would be good practice. The experiment went along, I deemed EC2 too difficult to provision and use for my purposes, and forgot about it. &lt;br/&gt;&lt;br/&gt;Today I got an email from Amazon saying I owed them about $7 for web services. I vaguely remembered seeing this before. I always thought that it was saying that I owed $7 for that one time I tried the service out: way too much, of course, and something I kept meaning to call amazon and find out about. Today I read it more carefully: turns out I've been billed about &lt;b&gt;$7.50/month&lt;/b&gt; since I tried the service out. (Finding this out was much harder than it should have been: AWS billing and usage interface is truly awful. I ended up just doing a search in gmail for "amazon web services billing statement" and summing the amounts.)&lt;br/&gt;&lt;br/&gt;Concerned, I used Amazon's contact form (they don't have an actual email address). I received a form letter back explaining how to cancel EC2 and S3. This was odd for a couple of reasons - first, I didn't ask how to cancel anything, I asked to understand why I had been charged for the last 6 months. I also asked for instructions on how to figure out how much they have actually charged me for. Not having my questions answered, my first instinct was to reply to the email. Turned out that the "from" address doesn't accept email. Then I read carefully and clicked on a buried link within the email itself that "no, this did not answer my question", and clicked on link that asked them to call me. Much to my delight (and surprise), I was talking to a service rep within 2 minutes (via a neat 'click to call' service called &lt;a href='http://www.atg.com/en/ecommerce-optimization-services/estara-connections/index.jhtml'&gt;estara&lt;/a&gt; from &lt;a href='http://www.atg.com'&gt;atg&lt;/a&gt;). An apologetic, very nice women (Tessa) was completely unable to address me issue, she told me she'd have to forward my request to the web services team, as she wasn't able to help me.&lt;br/&gt;&lt;br/&gt;Lessons: I've already "cancelled" EC2 and S3 although since I had nothing provisioned I'm not sure what that means. Hopefully it will stop new charges, at least. I realize now how dangerous it is to allow Amazon to have my credit card number, and I've removed all banking and CC information from Amazon. If I had seen a growing amount due over the last few months I would have realized sooner something was wrong. But because they just pay themselves with my CC, it didn't register that I was getting a receipt, not a bill, all this time. Second, I'm concerned that someone may have my Amazon information. Third, I have to check my bank and cc statements more carefully. Finally, if I play with EC2 again it's going to be on a different Amazon account.&lt;br/&gt;&lt;br/&gt;It's still a mystery exactly what Amazon was billing me for: $7.50 is enough for 75 hours of a small instance, a wierd number. When I find out I'll update this post.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Update: &lt;/b&gt;6 Jan 2009 I finally received a response from "Luke":&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;&lt;font face='serif'&gt;Greetings from Amazon Web Services.&lt;br/&gt;&lt;br/&gt;I have been notified of your recent inquiry regarding your AWS charges. I have taken a look at your AWS account. These charge is due to a non-attached Elastic IP address associated with your account. Elastic IP addresses that are allocated to your account but are not associated with an EC2 instance will accrue a $0.01 charge per hour. You can view your Elastic IP addresses with this command:&lt;br/&gt;&lt;br/&gt;&amp;gt; ec2-describe-addresses&lt;br/&gt;&lt;br/&gt;Any elastic IP addresses that you associate with your account remain associated with your account until you explicitly release them. To ensure our customers are efficiently using elastic IP addresses, we impose a small hourly charge when these IP addresses are not mapped to an instance. When these IP addresses are mapped to an instance, they are free of charge. You can use the EC2 API command line tools to release the Elastic IP address with this command:&lt;br/&gt;&lt;br/&gt;&amp;gt; ec2-release-address &amp;lt;ip-address&amp;gt;&lt;br/&gt;&lt;br/&gt;I also see that you have closed your AWS account. These usage charges have ceased as of your account cancellation. Please note that any applicable charges for January 1 and 2 will be collected at the end of the month.&lt;br/&gt;&lt;br/&gt;Regards,&lt;br/&gt;&lt;br/&gt;Luke&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;Wow! What awful customer service on so many levels! First, their emails look like invoices, not charges. Second, they don't explain &lt;i&gt;anywhere&lt;/i&gt; what the charges are for. Third, when a customer goes to great lengths to find out what's going on, they don't offer to reverse the charges that obviously should never have been charged. Fourth, they never did answer one of my basic questions: how can I find out for myself what I'm being charged for? Fifth, they don't apologize or take note of the horrible messaging that started this whole mess. The icing on the cake is the last sentence, assuring me that I'll still be billed for the two days in January I didn't use the IP - gee, thanks, Amazon.&lt;br/&gt;&lt;br/&gt;I've responded with another email asking for a refund and complaining about their messaging and customer service. For God's sake, do NOT evaluate EC2 unless you really know what you're doing!&lt;br/&gt;&lt;small&gt;&lt;small&gt;&lt;small&gt;&lt;br/&gt;Month, Amount&lt;br/&gt;7 $1.32&lt;br/&gt;8 $6.51&lt;br/&gt;9$7.42&lt;br/&gt; 10 $6.53&lt;br/&gt;11 $7.45&lt;br/&gt;12 $7.42&lt;br/&gt;Total: $36.65&lt;br/&gt;&lt;br/&gt;&lt;/small&gt;&lt;/small&gt;&lt;/small&gt;[&lt;b&gt;Update&lt;/b&gt;: they refunded my $36.65. But I found a better bookstore, &lt;a href='http://betterworld.com'&gt;Better World Books&lt;/a&gt;.]&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-889954596691195132?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/889954596691195132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=889954596691195132' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/889954596691195132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/889954596691195132'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/01/true-cost-of-evaluating-ec2.html' title='The true cost of evaluating EC2'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm2.static.flickr.com/1061/3169441988_0c02721188_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-8416532316077980165</id><published>2009-01-04T17:28:00.000-08:00</published><updated>2009-01-04T17:52:28.080-08:00</updated><title type='text'>Buddha, women and the neutrality of meditation.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://z.about.com/d/buddhism/1/G/m/-/-/-/buddhawoman.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 124px; height: 170px;" src="http://z.about.com/d/buddhism/1/G/m/-/-/-/buddhawoman.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Got into a conversation today with my girl about Buddhism and women. It's disturbing lore, because &lt;a href="http://buddhism.about.com/od/buddhisthistory/a/buddhistwomen.htm"&gt;Buddhist nuns are treated as second-class citizens&lt;/a&gt; in the Sangha.&lt;br /&gt;&lt;br /&gt;And that's not ok with me.&lt;br /&gt;&lt;br /&gt;The real irony is that gender simply doesn't enter into the Buddhist description of suffering - there is no male suffering or female suffering. Indeed the solution, the eight-fold noble path, is often described as "universal". This inconsistency strikes me as incredibly unfair, not to mention inconsistent with the rest of the Buddhist teachings as I understand them. Even saying that he was "a man of his time", as the article linked to above does, doesn't excuse this inconsistency - although one could claim that he was taking a big enough risk by ignoring caste, and to take on sexism would stress his nascent movement beyond breaking. But that is being incredibly generous.&lt;br /&gt;&lt;br /&gt;According to this story, the Buddha exhibited the supernatural gift of seeing into the future. His judgment was based on this supernatural 'knowledge', which turned out to be false. This brings his conclusion into question. It is time that we separate the brilliant, accomplished experimental psychological insights from the cultural instincts far removed from modern reality. Meditation cultivates non-reaction, dispassion, and ego-lessness. It is genderless. I find it interesting that the Buddha's mistake was tied up with a supernatural power.&lt;br /&gt;&lt;br /&gt;There is some hope for those whom dogma matters: the five hundred years have more than elapsed, it is time for a new policy for women who would take vows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-8416532316077980165?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/8416532316077980165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=8416532316077980165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8416532316077980165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/8416532316077980165'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2009/01/buddha-women-and-neutrality-of.html' title='Buddha, women and the neutrality of meditation.'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-5476919752305133094</id><published>2008-12-16T19:08:00.001-08:00</published><updated>2008-12-16T19:08:57.716-08:00</updated><title type='text'>He-Man and the Masters of the Universe!</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Wow. It's amazing to watch these old cartoons again. It's pretty amazing to watch them and observe one's own reaction. The childish delight is still there, but it's buried under layers of critical thought. The overall affect is nostalgic but fundamentally unsatisfying.&lt;br /&gt;&lt;br /&gt;Hulu is now offering offsets in their embedded videos; here's the introduction of Cyclops and his gamma glasses:&lt;br /&gt;&lt;br /&gt;&lt;div class='youtube-video'&gt;&lt;object height='296' width='512'&gt;&lt;param value='http://www.hulu.com/embed/JnexUHgd3TriH3n3NShoPQ/182/201' name='movie'&gt; &lt;/param&gt;&lt;param value='true' name='allowFullScreen'&gt; &lt;/param&gt;&lt;embed height='296' width='512' allowFullScreen='true' type='application/x-shockwave-flash' src='http://www.hulu.com/embed/JnexUHgd3TriH3n3NShoPQ/182/201'&gt; &lt;/embed&gt;&lt;/object&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/12275906-5476919752305133094?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/5476919752305133094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=5476919752305133094' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/5476919752305133094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/5476919752305133094'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2008/12/he-man-and-masters-of-universe.html' title='He-Man and the Masters of the Universe!'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-3708115254249921079</id><published>2008-12-08T15:41:00.001-08:00</published><updated>2008-12-08T15:41:37.586-08:00</updated><title type='text'>A neat musical device: the TuneStudio</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;img style='border-width: 0px; height: 100px; width: 100px; float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;' alt='TuneStudio' src='http://www.belkin.com/images/product/F8Z109/THN1001_F8Z109.gif' onerror='replaceImg(this)' id='ctl00_ContentPlaceHolder1_imgPp_product'/&gt;Belkin TuneStudio combines a bunch of neat devices into one: it's a hard-drive audio recorder (using your iPod as the drive), it's a line mixer, microphone pre-amp,  a USB audio interface, and a condenser thrown in for good measure. It looks good and although it retails for $250 you can &lt;a href='http://www.costco.com/Browse/Product.aspx?Prodid=11289064&amp;amp;whse=BC&amp;amp;Ne=4000000&amp;amp;eCat=BC%7C79%7C80%7C64226&amp;amp;N=4018666&amp;amp;Mo=23&amp;amp;pos=5&amp;amp;No=2&amp;amp;Nr=P_CatalogName:BC&amp;amp;cat=64226&amp;amp;Ns=P_Price%7C1%7C%7CP_SignDesc1&amp;amp;lang=en-US&amp;amp;Sp=C&amp;amp;ec=BC-EC10610-Cat80&amp;amp;topnav=#'&gt;pick it up at Costco&lt;/a&gt; for a mere $180. &lt;br/&gt;&lt;br/&gt;I skimmed the &lt;a href='http://www.belkin.com/support/article/?lid=en&amp;amp;pid=f8z109&amp;amp;aid=14358&amp;amp;scid=0&amp;amp;fid=4369&amp;amp;fn=p75236tt_f8z109_tunestudio_guide_02-08.pdf'&gt;user manual&lt;/a&gt; and discovered a few shortcomings, though. It doesn't run on batteries and requires a 12v 1.25A power adapter - this thing sucks a surprising amount of juice! While it records 16 bit 44KHz stereo audio, it does not maintain a distinction between it's 4 channels - basically this is a 4 channel line mixer attached to a 2 channel (left and right) USB audio interface. (The audio gets recorded to the ipod as "Voice Memos" - which then sync to the PC via iTunes). You can't avoid doing the mixdown.&lt;br/&gt;&lt;br/&gt;Some might say that using an iPod as the hard drive here is gimmicky - Belkin could have released the exact same device with a built-in hard drive. But I think there's a legit reason to do it this way - this is a semi-casual device, and it's pretty neat to be able to use all that storage on your iPod as musical tape. How cool would it be to record a local band and then listen to the jam on your iPod on the way home? And as for making podcasts, it makes a lot of sense to preview your podcast on the target device. And also, it makes a lot of sense to get the audio onto the PC with iPod sync rather than connect a new device to the PC - it fits people's existing workflow better. Finally, it may be possible to couple the TuneStudio with some custom iPod software, providing an extensible and very powerful mixer platform based on, say, the iPod Touch. (When will Ableton port Live to the iPod Touch anyway?)&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-3708115254249921079?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/3708115254249921079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=3708115254249921079' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3708115254249921079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3708115254249921079'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2008/12/neat-musical-device-tunestudio.html' title='A neat musical device: the TuneStudio'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-1167265088985740006</id><published>2008-12-04T16:03:00.001-08:00</published><updated>2008-12-04T16:10:05.464-08:00</updated><title type='text'>Why Internet TV isn't mainstream yet: notes from the bleeding edge</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Using &lt;a href='http://www.hulu.com'&gt;hulu&lt;/a&gt; for about a year, and it generally rocks. Good replacement for cable/satellite television - I've been watching &lt;a href='http://www.hulu.com/house'&gt;House&lt;/a&gt;, &lt;a href='http://www.hulu.com/fringe'&gt;Fringe&lt;/a&gt;, &lt;a href='http://www.hulu.com/30-rock'&gt;30 Rock&lt;/a&gt;, and &lt;a href='http://www.hulu.com/the-colbert-report'&gt;The Colbert Report&lt;/a&gt; regularly. And the &lt;a href='http://www.hulu.com/watch/1404/saturday-night-live-snl-digital-short-natalie-raps'&gt;occasional&lt;/a&gt; &lt;a href='http://www.hulu.com/watch/37754/saturday-night-live-mary-poppins'&gt;SNL&lt;/a&gt; &lt;a href='http://www.hulu.com/watch/37752/saturday-night-live-the-lawrence-welk-show'&gt;skit&lt;/a&gt;. The big NBC morning and news shows are chopped up into topical pieces so you can just watch the interesting bits. Hulu provides a news feed of  videos, although this is a very active feed so it kind of dominates the "all feeds" mode in most news readers. Still not sure if it's possible to subscribe to a feed-per-show. Very good audio/visual quality. Very annoying if your network goes down or slow. Nice to link to and embed videos in the blog, facebook. It's just neat to be able to link to a completely new part of one's life: the TV one watches. Hulu (and services like it) allow you to comment on it, criticize it, share it. Unfortunately some videos expire, making those URLs useless after a time, and meanwhile your commentary does not expire which creates a problem large enough to be noteworthy. It's particularly bad with hulu because they only warn about expiration when it's approaching. YouTube does not suffer from this problem (for example, consider the music video "Ooh Yeah" - it &lt;a href='http://www.hulu.com/watch/44097/mvids-moby-ooh-yeah'&gt;expired on hulu&lt;/a&gt; but is &lt;a href='http://www.youtube.com/watch?v=Kd9VEcrtUG0'&gt;still live on youtube&lt;/a&gt;. OTOH YouTube audio and video quality is generally a lot worse than hulu, although this may be changingn with youtube's recent support for HD content). Really don't mind the Hulu commercials at all - they are short (15-30s) and, at least for TV episodes, they fit the narrative somehow (I remember feeling a bit awkward watching &lt;a href='http://www.amazon.com/Firefly-Complete-Nathan-Fillion/dp/B0000AQS0F'&gt;Firefly on DVD&lt;/a&gt; without commercials). It's cool to watch an hour show with 5 commercial breaks of only 15s each!&lt;br/&gt;&lt;br/&gt;Ripped DVD, and video podcasts. Ripping a DVD is actually really nice if you have the hard-drive space, and if you have the time (&lt;a href='http://handbrake.fr/'&gt;HandBrake&lt;/a&gt; takes at least 2 hours to rip a movie). The biggest benefit of this method is reliability - the movie won't skip or stop if your network becomes slow or unreliable. It's also convenient: you can use the excellent "&lt;a href='http://en.wikipedia.org/wiki/Front_Row_%28software%29'&gt;Front Row&lt;/a&gt;" application on the Mac (or the lesser &lt;a href='http://en.wikipedia.org/wiki/Windows_Media_Center'&gt;Windows Media Center&lt;/a&gt; on Windows) to watch these movies, which is currently not possible with Flash-based streaming players like Hulu or YouTube (one tip when using HandBrake with Front Row: plop your movies into the iTunes Movie folder so that they appear in the Front Row menu.) I've only watched a few video podcasts - I downloaded some iPhone SDK videos, but was actually annoyed (and continue to be annoyed!) that they appear in Front Row movie menu along side "Harry Potter and the Chamber of Secrets". The quality of these podcasts remind one that they are designed to be viewed on a video capable iPod, and not a large computer monitor. That said, there are some television shows made available in this format, such as the &lt;a href='http://www.msnbc.msn.com/id/26315908/'&gt;Rachel Maddow Show&lt;/a&gt; on MSNBC. A small drawback is that the iTunes store is the go-to place for this kind of content, and I still don't feel comfortable surfing the web with the iTunes store. One reason I don't like the iTunes experience, for example, is that I can't easily link to podcasts!&lt;br/&gt;&lt;br/&gt;Gaming. Gaming is more and more a viable alternative to passive TV watching. PC gaming is limited in the living room because of akward controls - the mouse/keyboard doesn't work on the couch. Ironically these are the controls that make PC games (and applications) so compelling. Modern consoles have many of the features of PCs (like wireless internet connectivity and web browsers) but the controls and interfaces are designed to work in the living room, a huge plus. The consoles are generally capable of movie and audio playback (the &lt;a href='http://en.wikipedia.org/wiki/Ps3'&gt;PS3&lt;/a&gt; is a very good blu-ray player, for example). I don't have a console in my apartment, in part because I don't have the space but also because adding another box would increase the complexity of my simple setup considerably. (Of course if everything supported &lt;a href='http://en.wikipedia.org/wiki/Hdmi'&gt;HDMI&lt;/a&gt; it would be a different story).&lt;br/&gt;&lt;br/&gt;Cable, Satellite, and TiVo. In some ways Hulu is like a TiVo - in both cases you can only watch stuff that's already been broadcast. In both cases you watch fewer commercials. And indeed TiVo addresses several weaknesses of Hulu: first, it doesn't depend on strong network connectivity AND it caches the entire show, which ensures smooth playback. Second, the interface and controls are designed for the living room. Of course, TiVo is very expensive (the box, the TiVo service, and the cable service all cost money - the latest TiVo costs $600), but Hulu is essentially free. Also, TiVo box is not a generally useful PC and so is limited to doing one thing only. And it's proprietary nature means you pay a lot more for storage than with a PC. There are some &lt;a href='http://en.wikipedia.org/wiki/Home_theater_PC'&gt;HTPC&lt;/a&gt; projects out there that are frankly rather exciting, but aren't really ready for primetime.&lt;br/&gt;&lt;br/&gt;&lt;a href='http://en.wikipedia.org/wiki/Apple_tv'&gt;Apple TV&lt;/a&gt;. I don't own it, but I think it's an interesting idea. Apple TV is a hybrid device: it distributes the PC "signal" to the living room (photos and music), but also serves as a signal source providing Hulu-like movies and TV shows - for a price. The ability to rent movies and TV shows with immediacy is an interesting idea, but one which obviously favors Apple's balance sheet. I think it's a bad proposition to spend $230 to give a company a turnstile in your living room; call me old-fashioned. It seems to me that the cable/TiVo solution is a better value, especially for those who watch a lot of TV. (Admittedly, most cable companies also put a turnstyle in your living room with Pay-Per-View!)&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br /&gt;[Update: what is &lt;a href='http://www.boxee.tv/index.php'&gt;boxee&lt;/a&gt;? I don't know but I've signed up for the alpha]&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-1167265088985740006?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/1167265088985740006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=1167265088985740006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1167265088985740006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/1167265088985740006'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2008/12/why-internet-tv-isn-mainstream-yet.html' title='Why Internet TV isn&amp;#39;t mainstream yet: notes from the bleeding edge'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-4099686193064192846</id><published>2008-11-13T16:39:00.001-08:00</published><updated>2008-11-13T23:41:59.727-08:00</updated><title type='text'>John Resig and what we can learn about Useful Blogging</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a href='http://ejohn.org/'&gt;John Resig&lt;/a&gt; is an inspiration. His blogis ultra-useful. It's clear, informative, and often cutting edge in theJavaScript/jQuery/browser space. His posts are often accompanied byhelpful graphs and, more often than not, usable code and workarounds. Ihave been a fan of jQuery since I started using it this summer, andhave continued to be impressed with it's creator's output. Even when heposts an &lt;a href='http://ejohn.org/blog/css3-template-layout/'&gt;opinion piece&lt;/a&gt;, it is on topic and respectful. The important question arises: what makes his blog so useful and how can we emulate it?&lt;br/&gt;&lt;br/&gt;Consider &lt;a href='http://ejohn.org/blog/accuracy-of-javascript-time/'&gt;a recent post about the accuracy of JavaScript timing&lt;/a&gt;. Now, an ordinary blogger would have posted something like "I ran across some odd results in my &lt;a href='http://dromaeo.com/'&gt;Dromaeo&lt;/a&gt;testing. Anybody know wassup?" But John went deeper, did a lot oftesting, graphed the results, and posted what he found. Heck, he evenincluded a graphic explaining normal distributions. (Basically,JavaScript timing in Windows/IE is very coarse - results are rounded tothe nearest 15ms.)&lt;br/&gt;&lt;br/&gt;By comparison my own blog is a bit of aramble. It's true that I'm not so single-mindedly interested in browserprogramming. My programming interests run the gamut from scalablesoftware architectures, front-end architectures, programmerproductivity, prototyping, web design, and data design. And of coursethere's a sizable amount of personal items in this blog stream. Buteven so I daresay the overall quality of the blog has much room toimprove.&lt;br/&gt;&lt;br/&gt;I would like to create a new blog that is more likeJohn's - focusing purely on my core technical interests, designed to beuseful and educational, rather than just an invitation to discuss. Itneeds a new, simpler URL - like javajosh.com/blog. Since I only haveabout 30 (valued) readers a month I don't think the transition would betoo bad. And I can always continue to post personal and "off topic"things to this blog. (An important question is what to do with on topicposts to the old blog, but I can tackle that one later.)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-4099686193064192846?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/4099686193064192846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=4099686193064192846' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4099686193064192846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4099686193064192846'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2008/11/john-resig-and-what-we-can-learn-about.html' title='John Resig and what we can learn about Useful Blogging'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-4245643957450154939</id><published>2008-11-12T15:22:00.000-08:00</published><updated>2008-11-12T16:19:51.991-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><category scheme='http://www.blogger.com/atom/ns#' term='simpatico'/><title type='text'>A demo of jMaki: yet another unnecessary abstraction</title><content type='html'>Doris Chen posted an &lt;a href="http://weblogs.java.net/blog/doris/archive/2008/11/building_rich_w_1.html"&gt;screencast of jMaki&lt;/a&gt; in use (with Netbeans and Glassfish). It's unnecessary because a) jMaki isn't a good idea, b) the tooling looks cumbersome, and c) the end result looked really bad.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jmaki.com/"&gt;jMaki&lt;/a&gt; isn't a good idea because it's a taglib that tries to normalize the use of many javascript libraries by abstracting over them. In principle it reminds me of Apache's &lt;a href="http://commons.apache.org/logging/"&gt;commons logging api&lt;/a&gt;, which is designed to abstract away the differences between Sun's logging API and log4j. This pattern of bad idea pervades the Java platform, unfortunately. Successful projects use succesful  implementations, not just APIs. It's important to know Tomcat, not just the servlet APIs, and it's important to know log4j, not the commons API. And it's important to know jQuery and it's UI plugins, not jMaki. To do real work you're going to have to know the underlying JavaScript library anyway, so why bother with an abstraction that will just get in the way?&lt;br /&gt;&lt;br /&gt;The Netbeans tooling looks rather cumbersome. I've been (re)reading &lt;a href="http://www.amazon.com/Design-Everyday-Things-Donald-Norman/dp/0385267746"&gt;Donald Norman's "The Design of Everyday Things"&lt;/a&gt; and was struck with how unruly Netbeans looked in the screancast. It's all the little things Doris has to do - find an obscure menu item to check that a plugin is installed, center the dialog box on her screen, search through a list of completely unrelated plugins to enable the one she wants, etc. Or when she drags a widget into the JSP and has to right-click and "format" the badly formatted text every time. Since when does dragging stuff create text? And why can't it format itself?&lt;br /&gt;&lt;br /&gt;The final blow was that the end result looked (and sounded) like crap. The fish eye widget was layed out wrong, and the google map was too large and also layed out wrong. Putting sound in the page was just a bad idea - that's like adding blinking text. (Just because you &lt;span style="font-style: italic;"&gt;can&lt;/span&gt; doesn't mean you &lt;span style="font-style: italic;"&gt;should&lt;/span&gt;!)&lt;br /&gt;&lt;br /&gt;Apologists would say (at least) that I'm nitpicking. At least the tools worked; and none of those things I mention are show stoppers, and any programmer who can't deal with a few tool quirks doesn't deserve his salary. And as for the end result looking bad, this was a programmer's demo, not a designer demo - it can all be fixed with some CSS edits later, done by a web designer.&lt;br /&gt;&lt;br /&gt;My response is this: the tools work, but encourage errors. They encourage small errors of setup and use. But they encourage a much larger error: the tooling's "map" of the system is not that of the programmer's (or at least not this programmers). I fail to see what a JavaScript abstraction has to do with SVN, and yet these things are presented together in a dialog. I fail to see how a collection of text is a "widget" or why dragging would create text. And yes, I fail to see why I  need a JavaScript abstraction in the first place that appears to do little more than substantially increase the complexity of my system.&lt;br /&gt;&lt;br /&gt;I feel that IDE's are little more than glorified text-editors, and begin to fail when they themselves introduce abstractions. In a subtle way, the tooling begins to dictate the programmer's mental model of the design- and runtime of his system. In this case, it's nice that Netbeans can easily add a taglib to your web project. But it's not nice that this capability is expressed as a "plugin". It should be expressed as a macro or script: a macro that adds a jar or two there, a line of code to web.xml there, and adds some new JSP specific snippets (particularly taglib declaration and taglib instances). It may even remind you that you'll have to redeploy to get the effect. One concrete difference between a plugin and a script abstraction is that the Netbeans plugin method requires that you select the "plugin" on project creation.&lt;br /&gt;&lt;br /&gt;The end result should look good because this kind of programming is all about the front-end. Widget positioning and sizing is not a trivial problem to be swept under the rug! Either jMaki or Netbeans needs to take better care to provide better defaults. And too, programmers are (hopefully) wary of these "slap it together" demos - everyone knows (or should know) that slapping stuff together is the easiest part of programming. It's fitting it all together professionally and solidly which takes time, effort and skill.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-4245643957450154939?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/4245643957450154939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=4245643957450154939' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4245643957450154939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4245643957450154939'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2008/11/uncomfortable-demo-of-jmaki.html' title='A demo of jMaki: yet another unnecessary abstraction'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-3367269259421417242</id><published>2008-11-12T12:46:00.000-08:00</published><updated>2008-11-12T12:48:28.792-08:00</updated><title type='text'>Illustrator Ninja</title><content type='html'>Here is 40 hours of illustration condensed into 7 minutes by the remarkable Chad Pugh:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="250" width="400"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=927062&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=&amp;amp;fullscreen=1"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=927062&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=1&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" height="250" width="400"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-3367269259421417242?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/3367269259421417242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=3367269259421417242' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3367269259421417242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/3367269259421417242'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2008/11/illustrator-ninja.html' title='Illustrator Ninja'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-4228533989540324467</id><published>2008-11-03T13:58:00.001-08:00</published><updated>2008-11-03T14:22:04.937-08:00</updated><title type='text'>iPhone Invisible Shield Review</title><content type='html'>&lt;div&gt;&lt;a href="http://www.flickr.com/photos/jaakel/3000088713/" title="Photo Sharing"&gt;&lt;img src="http://farm4.static.flickr.com/3235/3000088713_6f7a215809.jpg" alt="invisible shield" align="left" height="318" width="185" /&gt;&lt;/a&gt;I scratched the screen of my iPhone a bit on my keys, and resolved to get a screen protector. I purchased the &lt;a href="http://www.zagg.com/invisibleshield/apple-iphone-cases-screen-protectors-covers-skins-shields.php"&gt;Invisible Shield&lt;/a&gt; from amazon.com for about $12. I followed the directions closely, and almost immediately noticed a reddish discoloration, and some subtle mottling - not bubbles but subtle irregularities in texture. I also noticed that the touch sensitivity of the screen was reduced. On two occasions keys that I did not intend to press were pressed and held - and it was the backspace key (which resulted in the loss of two fairly long text messages). Last night I removed the Invisible Shield. The difference was remarkable - my iPhone screen was brighter than it had been in 3 months, and the touch screen deliciously responsive. It was like getting a new iPhone.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I estimate that the cost to produce what is essentially a sticker has got to be very small - less than $1, which makes the asking price of $12 very high. (products of this nature are generally marked up by a factor of 5 or 6 - 12 is very high).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Given all of this, I cannot recommend the Invisible Shield. Given the pace of technological progress, it is better to endure the occasional scratch and eventually replace the device, especially if the usability of the device is reduced by that protection. I think that my iPhone's screen can last 4-5 years if I can manage to avoid putting my keys in the same pocket as the phone!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is a photo of the removed Invisible Shield, clearly showing the reddish discoloration. Frankly, against the white napkin it looks much more dramatic than on an iPhone. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-4228533989540324467?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/4228533989540324467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=4228533989540324467' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4228533989540324467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/4228533989540324467'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2008/11/iphone-invisible-shield-review.html' title='iPhone Invisible Shield Review'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3235/3000088713_6f7a215809_t.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12275906.post-7724714968403724156</id><published>2008-09-13T19:40:00.001-07:00</published><updated>2008-09-13T19:40:05.234-07:00</updated><title type='text'>Having fun in Silverlake</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt;&lt;a href="http://www.flickr.com/photos/99594810@N00/2303002206/" title="photo sharing"&gt;&lt;img src="http://farm4.static.flickr.com/3127/2303002206_1776223c84_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/99594810@N00/2303002206/"&gt;_MG_1334small&lt;/a&gt;&lt;br /&gt;Originally uploaded by &lt;a href="http://www.flickr.com/people/99594810@N00/"&gt;Christian Garrido&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;I love the composition of this shot I found on flickr. A great moment.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12275906-7724714968403724156?l=javajosh.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://javajosh.blogspot.com/feeds/7724714968403724156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12275906&amp;postID=7724714968403724156' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7724714968403724156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12275906/posts/default/7724714968403724156'/><link rel='alternate' type='text/html' href='http://javajosh.blogspot.com/2008/09/having-fun-in-silverlake.html' title='Having fun in Silverlake'/><author><name>josh</name><uri>http://www.blogger.com/profile/09140949936435640406</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/img/101/5275/320/buddy_small.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3127/2303002206_1776223c84_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
