<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/atom10full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://joeshaw.org/wp-atom.php">
	<title type="text">joe shaw</title>
	<subtitle type="text" />

	<updated>2009-01-06T03:36:14Z</updated>
	<generator uri="http://wordpress.org/" version="2.7">WordPress</generator>

	<link rel="alternate" type="text/html" href="http://joeshaw.org" />
	<id>http://joeshaw.org/feed/atom</id>
	

			<link rel="self" href="http://feeds.feedburner.com/joeshaw" type="application/atom+xml" /><entry>
		<author>
			<name>Joe</name>
						<uri>http://joeshaw.org</uri>
					</author>
		<title type="html"><![CDATA[giticular cancer]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/joeshaw/~3/503958994/588" />
		<id>http://joeshaw.org/?p=588</id>
		<updated>2009-01-06T03:36:14Z</updated>
		<published>2009-01-06T03:30:54Z</published>
		<category scheme="http://joeshaw.org" term="Uncategorized" /><category scheme="http://joeshaw.org" term="bzr" /><category scheme="http://joeshaw.org" term="dvcs" /><category scheme="http://joeshaw.org" term="git" /><category scheme="http://joeshaw.org" term="gnome" /><category scheme="http://joeshaw.org" term="wolf" />		<summary type="html"><![CDATA[I haven&#8217;t been on d-d-l for months now, but when someone mentioned how comically entertaining the whole DVCS survey thread was, I just had to catch up.
From my cursory understanding, it seems like the data would be stored as bzr repositories and then new code would be developed to export those repositories over the git [...]]]></summary>
		<content type="html" xml:base="http://joeshaw.org/2009/01/05/588"><![CDATA[<p>I haven&#8217;t been on <a href="http://mail.gnome.org/mailman/listinfo/desktop-devel-list">d-d-l</a> for months now, but when someone mentioned how comically entertaining the whole <a href="http://mail.gnome.org/archives/desktop-devel-list/2009-January/msg00003.html">DVCS survey thread</a> was, I just had to catch up.</p>
<p>From my cursory understanding, it seems like the data would be stored as bzr repositories and then new code would be developed to export those repositories over the git protocol, so that git users could use their own tools.</p>
<p>While it seems like a neat hack, and probably a worthwhile proof-of-concept, the idea that GNOME would switch to it seems completely insane to me.  There are lots of reasons why, many addressed in the thread:</p>
<ul>
<li>Why develop this code only for GNOME, instead of developing it with the support and blessing of upstream bzr and/or git?  There the collective experience of these communities could guide and influence the development.</li>
<li>There is basically only one person developing this software, resulting in a critical piece of GNOME infrastructure with a <a href="http://en.wikipedia.org/wiki/Bus_factor">bus factor</a> of 1.  This is very bad, and when you consider that the results of the survey strongly support Git, the vast majority of developers will be using it and would be inconvenienced if the system failed.</li>
<li>GNOME has a terrible track record of abandoned software &#8212; maybe it&#8217;s not actually any worse than other 10 year old large-scale open source projects &#8212; but it is very common.  I don&#8217;t have any data to back this up, but I feel that in a lot of ways this is even more true for infrastructure that most developers never see.</li>
<li>The git-over-bzr option was never an option in the DVCS survey, but if it were it seems like it would have rated extremely lowly.  There seems to be a <a href="http://mail.gnome.org/archives/desktop-devel-list/2009-January/msg00072.html">vocal opposition</a> to it in the thread.</li>
<li>This is an abstraction, and <a href="http://www.joelonsoftware.com/articles/LeakyAbstractions.html">abstractions are always leaky</a>.  wxWindows kinda sucks because it can&#8217;t emulate all windowing systems equally.  There is no way a git compatibility layer on top of a bzr repository will ever be as good as a native solution, just like git-on-svn isn&#8217;t as good as a pure git solution.</li>
<li>What happens when (not if, when) the git protocol changes in an incompatible way?  Will we be at the mercy of someone to hack and fix the compatibility layer?  Will the original author still be around and interested enough to do it, possibly years down the road?</li>
</ul>
<p>The last point, combined with the abandonware point earlier, are what concern me the most.  In the thread, <a href="http://mail.gnome.org/archives/desktop-devel-list/2009-January/msg00048.html">David Zeuthen asked Olav Vitters</a>:</p>
<blockquote><p>Then what happens when a new version of git with a new feature, incompatible with the git-serve kludge, is released? Then we&#8217;re screwed, right? And who gets to pay? We do. We&#8217;re stuck with an old version of git. Us. The very same people who very clearly said &#8220;git&#8221;, not &#8220;bzr&#8221;.</p></blockquote>
<p>Not the most politic way of saying it, but I think the point is valid.  When I read that, I had deja vu, because I had <em>just</em> read <a href="http://mail.gnome.org/archives/desktop-devel-list/2008-December/msg00008.html">this thread</a> from early December about Bugzilla, initiated by Olav:</p>
<blockquote><p>Subject: Reduced Bugzilla functionality for 6+ months &#8212; acceptable?</p>
<p>The GNOME Bugzilla is still using 2.20. Current stable upstream is at 3.2.<br />
[...]<br />
For that the proposal is that the following is not part of the initial<br />
upgraded bgo:<br />
 * The points system<br />
 * index.cgi UI mods<br />
 * Making a new favicon<br />
 * The infomessages on show_bug.cgi<br />
 * Layout modifications for attachment table and the login box<br />
 * duplicates.cgi modifications<br />
 * Fixing the comment headers<br />
 * Patch and keyword emblems<br />
 * delete-keyword.pl, mass-reassign-bugs.pl, and year-end-stats.pl<br />
 * describeuser.cgi
</p></blockquote>
<p>In other words, upgrade the GNOME Bugzilla installation to a new version of the upstream software, and break all of GNOME&#8217;s current customizations.  Is this not exactly what will happen eventually with the git kludge?  I can foresee history repeating itself here.  Bugzilla is pretty essential to GNOME, and degradation of service is undesirable.  But a degraded, unavailable or fractured source control system is unconscionable.</p>
]]></content>
		<link rel="replies" type="text/html" href="http://joeshaw.org/2009/01/05/588#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://joeshaw.org/2009/01/05/588/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://joeshaw.org/2009/01/05/588</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Joe</name>
						<uri>http://joeshaw.org</uri>
					</author>
		<title type="html"><![CDATA[best.  christmas present.  ever.]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/joeshaw/~3/495068042/573" />
		<id>http://joeshaw.org/?p=573</id>
		<updated>2008-12-25T20:40:50Z</updated>
		<published>2008-12-25T20:40:50Z</published>
		<category scheme="http://joeshaw.org" term="Uncategorized" />		<summary type="html"><![CDATA[On 20 December 2008 at 1:41 am, Brette and I welcomed our son Elliot into the world.  Both mom and baby are doing very well, and we&#8217;ve loved the last several days getting to know each other.

This is his &#8220;black power&#8221; pose.  Fight the man, little guy.
The previous day Brette, my mom and [...]]]></summary>
		<content type="html" xml:base="http://joeshaw.org/2008/12/25/573"><![CDATA[<p>On 20 December 2008 at 1:41 am, Brette and I welcomed our son Elliot into the world.  Both mom and baby are doing very well, and we&#8217;ve loved the last several days getting to know each other.</p>
<p><a class="imagelink" href="http://www.flickr.com/photos/joeshaw/3136352838/" title="Baby Elliot"><img class="imagecenter" src="http://farm4.static.flickr.com/3104/3136352838_873c17a2a1.jpg" width="374" height="500" alt="[A photo by Joe Shaw]" /></a>
<div class="imagecenter">This is his &#8220;black power&#8221; pose.  Fight the man, little guy.</div>
<p>The previous day Brette, my mom and I were joking around that the baby would almost certainly come the following day &#8212; still a few days before his due date &#8212; during the snowstorm that was expected to drop up to 15 inches of snow on Boston.  He didn&#8217;t disappoint.  We found ourselves walking to the birth center about half a mile away in the 4 or 5 inches that had fallen at that point on nearly deserted roads during Friday rush hour, stopping briefly whenever Brette had a contraction.</p>
<p><img class="imagecenter" src="http://farm4.static.flickr.com/3267/3136353040_37af7cf4b0.jpg" width="500" height="375" alt="[photo]" /></p>
<p>The birth went amazingly well and I am so proud of Brette.  All of the nurses and midwives at the birth center were talking about what a wonderful job she did, and I couldn&#8217;t agree more.</p>
<p>A few things I wanted to mention:</p>
<p>If you prefer to give birth in a hospital, or want a pre-scheduled <a href="http://en.wikipedia.org/wiki/C-section">c-section</a>, go for it.  Do whatever is most comfortable and appropriate for you.  But Brette and I wanted a natural childbirth without surgical intervention unless medically necessary, and for us the <a href="http://www.cha.harvard.edu/ob_gyn/birth_center.shtml">Cambridge Birth Center</a> was the perfect place.  Situated inside an old Victorian house, it sits across the street from the Cambridge Hospital.  The rooms are homey and comforting.  The only thing that annoyed us was the constant snow plowing going on just outside our window&#8230; but once things got down to business we weren&#8217;t paying attention to any of that.  The nurses and midwives were so wonderful and accommodating.  We were allowed to walk around, bring whatever food we wanted with us, got to sleep after the birth and go home the following afternoon.  Just a great experience.</p>
<p>Ok, this is important: get a <a href="http://en.wikipedia.org/wiki/Doula">doula</a>.  I think I was as helpful and comforting as I could be for Brette, but look, I don&#8217;t have a uterus.  I never have and probably never will.  But a doula does.  I don&#8217;t know physically what it&#8217;s like to give birth.  A doula very well may have gone through it herself.  But most importantly, they have training on ways to make the laboring woman more comfortable, and her entire job is to support and comfort.  Ours was fantastic, and I can&#8217;t imagine going through the birth without her.</p>
<p>Also many thanks to my mom, who has been with us for the past week.  She has helped us tremendously with keeping the house clean and orderly, making us food all the time, giving us a relief when we&#8217;ve been overwhelmed with E. at all hours, and sharing her experience with us.</p>
<p>Merry Christmas.</p>
]]></content>
		<link rel="replies" type="text/html" href="http://joeshaw.org/2008/12/25/573#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://joeshaw.org/2008/12/25/573/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://joeshaw.org/2008/12/25/573</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Joe</name>
						<uri>http://joeshaw.org</uri>
					</author>
		<title type="html"><![CDATA[your personal rate of return is -50.2%]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/joeshaw/~3/483210941/561" />
		<id>http://joeshaw.org/?p=561</id>
		<updated>2008-12-13T18:15:04Z</updated>
		<published>2008-12-13T01:37:47Z</published>
		<category scheme="http://joeshaw.org" term="Uncategorized" /><category scheme="http://joeshaw.org" term="favicon" /><category scheme="http://joeshaw.org" term="greasemonkey" /><category scheme="http://joeshaw.org" term="mad photoshops skillz" /><category scheme="http://joeshaw.org" term="market" /><category scheme="http://joeshaw.org" term="poor house" /><category scheme="http://joeshaw.org" term="wolf" />		<summary type="html"><![CDATA[Market got you down?

Feel like the Google Finance favicon doesn&#8217;t accurately reflect the year you&#8217;ve had?  Well, I can help!  This Greasemonkey script will correctly replace the favicon with one more representative of the ongoing collapse of the entire financial system.

Enjoy it while you can!  Pretty soon you&#8217;ll have to sell your [...]]]></summary>
		<content type="html" xml:base="http://joeshaw.org/2008/12/12/561"><![CDATA[<p>Market got you down?</p>
<p><img class="imagecenter" src="http://joeshaw.org/junkbarn/market.png" alt="Nosedive" /></p>
<p>Feel like the <a href="http://finance.google.com">Google Finance</a> favicon doesn&#8217;t accurately reflect the year you&#8217;ve had?  Well, I can help!  <a href="http://joeshaw.org/junkbarn/oh-god-my-money.user.js">This Greasemonkey script</a> will correctly replace the favicon with one more representative of the ongoing collapse of the entire financial system.</p>
<p><img class="imagecenter" src="http://joeshaw.org/junkbarn/favicon-fix.png" alt="Much better" /></p>
<p>Enjoy it while you can!  Pretty soon you&#8217;ll have to sell your computer and move to the poor house.</p>
<p><em>Update:</em> Unlike the lame duck administration, I welcome oversight on my activities!  <a href="http://secretlyironic.com/">Aaron</a> suggests that the icon should be red instead of green.  I agree with him.  The red represents two things: (1) the financial value of your dwindling retirement nest egg and (2) the rage you will feel when a callous loan servicer refuses to renegotiate the terms of your mortgage and forecloses on your home.  At least you could probably move back in with your parents.</p>
<p>The new change is now live.</p>
]]></content>
		<link rel="replies" type="text/html" href="http://joeshaw.org/2008/12/12/561#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://joeshaw.org/2008/12/12/561/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://joeshaw.org/2008/12/12/561</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Joe</name>
						<uri>http://joeshaw.org</uri>
					</author>
		<title type="html"><![CDATA[i called it]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/joeshaw/~3/438364182/559" />
		<id>http://joeshaw.org/?p=559</id>
		<updated>2008-10-31T19:22:19Z</updated>
		<published>2008-10-31T19:22:19Z</published>
		<category scheme="http://joeshaw.org" term="Uncategorized" />		<summary type="html"><![CDATA[I predict the rays-phillies world series to be the least watched since the invention of television.
&#8211; Me, on October 20.
It was the least-viewed Series by a significant amount.
&#8211; NY Times, on October 30.
I&#8217;ve said it before and I&#8217;ll say it again: they should not play summer or fall baseball in Florida.
]]></summary>
		<content type="html" xml:base="http://joeshaw.org/2008/10/31/559"><![CDATA[<blockquote><p>I predict the rays-phillies world series to be the least watched since the invention of television.</p></blockquote>
<p>&#8211; <a href="http://twitter.com/joeshaw/status/967404939">Me, on October 20.</a></p>
<blockquote><p>It was the least-viewed Series by a significant amount.</p></blockquote>
<p>&#8211; <a href="http://www.nytimes.com/2008/10/31/sports/baseball/31ratings.html">NY Times, on October 30.</a></p>
<p>I&#8217;ve said it before and I&#8217;ll say it again: they should not play summer or fall baseball in Florida.</p>
]]></content>
		<link rel="replies" type="text/html" href="http://joeshaw.org/2008/10/31/559#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://joeshaw.org/2008/10/31/559/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://joeshaw.org/2008/10/31/559</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Joe</name>
						<uri>http://joeshaw.org</uri>
					</author>
		<title type="html"><![CDATA[welcome to hope springs]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/joeshaw/~3/434900522/547" />
		<id>http://joeshaw.org/?p=547</id>
		<updated>2008-10-28T17:11:37Z</updated>
		<published>2008-10-28T17:03:02Z</published>
		<category scheme="http://joeshaw.org" term="Uncategorized" /><category scheme="http://joeshaw.org" term="association browser" /><category scheme="http://joeshaw.org" term="beagle" /><category scheme="http://joeshaw.org" term="wolf" />		<summary type="html"><![CDATA[Karl, 
There is no code for the Association Browser, unless that&#8217;s changed in the year since I&#8217;ve been gone.  I remember the idea was first devised during a series of brainstorming meetings among the desktop hackers, probably in 2004, and Jimmac (I think?  Maybe Garrett) created this first-pass mockup one day:

There may have [...]]]></summary>
		<content type="html" xml:base="http://joeshaw.org/2008/10/28/547"><![CDATA[<p><a href="http://www.qdh.org.uk/wordpress/?p=245">Karl</a>, </p>
<p>There is no code for the Association Browser, unless that&#8217;s changed in the year since I&#8217;ve been gone.  I remember the idea was first devised during a series of brainstorming meetings among the desktop hackers, probably in 2004, and <a href="http://jimmac.musichall.cz/">Jimmac</a> (I think?  Maybe <a href="http://linuxart.com/log/">Garrett</a>) created this first-pass mockup one day:</p>
<p><a href="http://joeshaw.org/association-browser.png"><img src="http://joeshaw.org/association-browser.png" alt="Association browser mockup" class="centerimg" width="500" /></a></p>
<p>There <em>may</em> have been an internal wiki page about it, but certainly no code.</p>
<p>The idea with the association browser was that you&#8217;d have a &#8220;focal object&#8221; (in this case, &#8220;Brand Grub&#8221;) and you&#8217;d see items directly related to that object in a way that was appropriate for that data.  This was somewhat similar to how <a href="http://nat.org/dashboard">Dashboard</a> worked &#8212; each piece of data looked different and specific to its type: emails looked different than documents and addressbook contacts, for example.  But unlike Dashboard, this would be a fully-fledged application you could use to navigate your data.  If you wanted to shift your focal object, say from &#8220;Brand Grub&#8221; to &#8220;Bilbo Baggins&#8221;, you could do that easily&#8230; I think we called that &#8220;rotating&#8221;.</p>
<p>The purpose of showing this in my old <a href="http://joeshaw.org/beagle-guadec2006/">GUADEC talk</a> was to illustrate the kinds of interesting applications people could build on top of <a href="http://beagle-project.org">Beagle</a> beyond the obvious and boring all-encompassing search tools.  Unfortunately I don&#8217;t think that&#8217;s happened.  From my perspective, both Beagle and <a href="http://www.gnome.org/projects/tracker/">Tracker</a> ended up focusing <em>way</em> too much on the backend (storage and retrieval of metadata just aren&#8217;t that interesting to most people) and not enough on making users&#8217; lives easier.</p>
<p>So there you have it.  The &#8220;code&#8221; for the association browser.  Next time, feel free to <a href="mailto:joe@joeshaw.org.removethis">email me</a> about it first.</p>
]]></content>
		<link rel="replies" type="text/html" href="http://joeshaw.org/2008/10/28/547#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://joeshaw.org/2008/10/28/547/feed/atom" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://joeshaw.org/2008/10/28/547</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Joe</name>
						<uri>http://joeshaw.org</uri>
					</author>
		<title type="html"><![CDATA[separated at birth?]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/joeshaw/~3/422994827/543" />
		<id>http://joeshaw.org/?p=543</id>
		<updated>2008-10-16T20:03:35Z</updated>
		<published>2008-10-16T19:58:56Z</published>
		<category scheme="http://joeshaw.org" term="Uncategorized" /><category scheme="http://joeshaw.org" term="godzilla" /><category scheme="http://joeshaw.org" term="mad photoshops skillz" /><category scheme="http://joeshaw.org" term="mccain" /><category scheme="http://joeshaw.org" term="wolf" />		<summary type="html"><![CDATA[
]]></summary>
		<content type="html" xml:base="http://joeshaw.org/2008/10/16/543"><![CDATA[<p><img src="http://joeshaw.org/junkbarn/separated-at-birth.png" alt="separated at birth?" /></p>
]]></content>
		<link rel="replies" type="text/html" href="http://joeshaw.org/2008/10/16/543#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://joeshaw.org/2008/10/16/543/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://joeshaw.org/2008/10/16/543</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Joe</name>
						<uri>http://joeshaw.org</uri>
					</author>
		<title type="html"><![CDATA[auuuuuuugh]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/joeshaw/~3/403281043/537" />
		<id>http://joeshaw.org/?p=537</id>
		<updated>2008-09-26T00:30:23Z</updated>
		<published>2008-09-26T00:29:37Z</published>
		<category scheme="http://joeshaw.org" term="Uncategorized" /><category scheme="http://joeshaw.org" term="2008 election" /><category scheme="http://joeshaw.org" term="alaska" /><category scheme="http://joeshaw.org" term="palin" /><category scheme="http://joeshaw.org" term="wolf" />		<summary type="html"><![CDATA[As Putin rears his head and comes into the air space of the United States of America, where do they go? It&#8217;s Alaska. It&#8217;s just right over the border. It is from Alaska that we send those out to make sure that an eye is being kept on this very powerful nation, Russia, because they [...]]]></summary>
		<content type="html" xml:base="http://joeshaw.org/2008/09/25/537"><![CDATA[<blockquote><p>As Putin rears his head and comes into the air space of the United States of America, where do they go? It&#8217;s Alaska. It&#8217;s just right over the border. It is from Alaska that we send those out to make sure that an eye is being kept on this very powerful nation, Russia, because they are right next to, they are right next to our state.</p></blockquote>
<p>(<a href="http://www.cbsnews.com/blogs/2008/09/25/couricandco/entry4478088.shtml">CBS News</a>)</p>
]]></content>
		<link rel="replies" type="text/html" href="http://joeshaw.org/2008/09/25/537#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://joeshaw.org/2008/09/25/537/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://joeshaw.org/2008/09/25/537</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Joe</name>
						<uri>http://joeshaw.org</uri>
					</author>
		<title type="html"><![CDATA[fix for pwnage &#8220;failed to enter dfu mode&#8221; error]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/joeshaw/~3/340294286/532" />
		<id>http://joeshaw.org/?p=532</id>
		<updated>2008-10-16T02:38:40Z</updated>
		<published>2008-07-20T01:52:51Z</published>
		<category scheme="http://joeshaw.org" term="Uncategorized" /><category scheme="http://joeshaw.org" term="iphone" /><category scheme="http://joeshaw.org" term="pwnage" /><category scheme="http://joeshaw.org" term="twitter" /><category scheme="http://joeshaw.org" term="wolf" />		<summary type="html"><![CDATA[The Twittersphere is going crazy over the new iPhone Pwnage 2.0 tool and lots of people are getting the &#8220;Failed to enter DFU mode&#8221; error.  The solution to this is to open a terminal and run:
mkdir ~/Library/iTunes/&#8221;Device Support&#8221;
And then Pwnage should run happily.
]]></summary>
		<content type="html" xml:base="http://joeshaw.org/2008/07/19/532"><![CDATA[<p>The <a href="http://search.twitter.com/search?q=dfu+mode">Twittersphere is going crazy</a> over the new iPhone <a href="http://blog.iphone-dev.org/post/42858313/thanks-for-waiting">Pwnage 2.0 tool</a> and lots of people are getting the &#8220;Failed to enter DFU mode&#8221; error.  The solution to this is to open a terminal and run:</p>
<blockquote><p>mkdir ~/Library/iTunes/&#8221;Device Support&#8221;</p></blockquote>
<p>And then Pwnage should run happily.</p>
]]></content>
		<link rel="replies" type="text/html" href="http://joeshaw.org/2008/07/19/532#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://joeshaw.org/2008/07/19/532/feed/atom" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://joeshaw.org/2008/07/19/532</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Joe</name>
						<uri>http://joeshaw.org</uri>
					</author>
		<title type="html"><![CDATA[talk about a &#8220;very narrow viewpoint&#8221;]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/joeshaw/~3/333991739/531" />
		<id>http://joeshaw.org/?p=531</id>
		<updated>2008-07-13T18:35:56Z</updated>
		<published>2008-07-13T03:47:43Z</published>
		<category scheme="http://joeshaw.org" term="Uncategorized" /><category scheme="http://joeshaw.org" term="google" /><category scheme="http://joeshaw.org" term="open source" /><category scheme="http://joeshaw.org" term="protobufs" /><category scheme="http://joeshaw.org" term="protocol buffers" /><category scheme="http://joeshaw.org" term="wolf" /><category scheme="http://joeshaw.org" term="xml" />		<summary type="html"><![CDATA[I just came across this boneheaded blog post about Google&#8217;s newly open-sourced Protocol Buffers:
They claim they could not use XML because ‘it isn’t going to be efficient enough for this scale’. WTF??? If this statement came from someone else, I would understand, but these guys are supposed to KNOW markup.
Speed in a system in [sic] [...]]]></summary>
		<content type="html" xml:base="http://joeshaw.org/2008/07/12/531"><![CDATA[<p>I just came across this <a href="http://www.oreillynet.com/xml/blog/2008/07/google_hates_xml.html">boneheaded blog post</a> about Google&#8217;s newly open-sourced <a href="http://code.google.com/apis/protocolbuffers/">Protocol Buffers</a>:</p>
<blockquote><p>They claim they could not use XML because ‘it isn’t going to be efficient enough for this scale’. WTF??? If this statement came from someone else, I would understand, but these guys are supposed to KNOW markup.</p>
<p>Speed in a system in <i>[sic]</i> NOT just optimizing loops in code! It is the architecture: messaging, storage, and re-use. Yes, XML can be fat, but so can any other language. And if they took the time to improve the processing libraries instead of creating their own special methods, we would ALL benefit on projects that used XML, not just this so-called ‘protocol’.</p></blockquote>
<p>And he had the audacity to title the post <i>Google hates XML</i>.</p>
<p>While the author is right that any attention paid to improving the performance of widespread XML libraries would be widely beneficial, he completely ignores protobuf&#8217;s strengths, aims, and specific use cases.  I suspect he didn&#8217;t bother to read any of the <a href="http://code.google.com/apis/protocolbuffers/docs/overview.html">documentation</a>.  After all, when you&#8217;re dealing with XML, everything looks like a nail.  Or something like that.</p>
<p>Protobufs aren&#8217;t aimed at replacing the widespread utility of using XML for publishing data widely or providing human readable document formats.  I don&#8217;t think anyone is suggesting that we replace HTML with this.  They&#8217;re for (mostly) well-defined interfaces and serializing data in a compact and low-latency way.  The author at one point suggests:</p>
<blockquote><p>I bet I could make XML run circles around their system just by simplifying their schema. I once invented a technique called ‘XmlZip’ that would transform long element names and attributes to smaller symbols for faster transfer - why not try that?</p></blockquote>
<p>But he obviously didn&#8217;t read the <a href="http://code.google.com/apis/protocolbuffers/docs/encoding.html">section on encoding</a>:</p>
<blockquote><p>Let&#8217;s say you have the following very simple message definition:</p>
<p><code>message Test1 {<br />
&nbsp;&nbsp;required int32 a = 1;<br />
}</code></p>
<p>In an application, you create a Test1 message and set a to 150. You then serialize the message to an output stream. If you were able to examine the encoded message, you&#8217;d see three bytes:</p>
<p><code>08 96 01</code></p></blockquote>
<p><i>Three bytes!</i>  You can&#8217;t do <i>anything</i> in XML in three bytes.  The simplest XML document you can have, which conveys no information, is 4 bytes: <code>&lt;a/&gt;</code>. That same message definition would look something like this in XML:</p>
<blockquote><p><code>&lt;?xml version="1.0"?&gt;<br />
&lt;Test1&gt;<br />
&nbsp;&lt;int32 value="150" /&gt;<br />
&lt;/Test1&gt;</code></p></blockquote>
<p>That&#8217;s 61 bytes by my count, and even if you did condense it down to a tight, humanly-unreadable XML, you won&#8217;t get anywhere near 3 bytes.  And if your messages really are that small, the gzip compression overhead is counterproductive and actually results in a bigger file.  (82 bytes, from my testing.)  If the messages were large enough that gzip compression did buy you size, you&#8217;d suffer additional latency because of the CPU time used to decompress.</p>
<p>When you&#8217;re talking about pushing huge amounts of data on a near-saturated gigabit ethernet link, an order of magnitude makes a big deal.</p>
<p>Protocol buffers aren&#8217;t going to replace XML &#8212; they&#8217;re not even really aimed at the same problem &#8212; but they are a better solution for certain use cases.  Such a huge part of software development is using the right tool for the job, and just because XML <i>can</i> solve the problem doesn&#8217;t mean it <i>should</i> by default.  Do the research and weigh the pros and cons.  Otherwise, like using an O(n^2) sorting algorithm when there are vastly better alternatives, it&#8217;s just lazy programming.</p>
]]></content>
		<link rel="replies" type="text/html" href="http://joeshaw.org/2008/07/12/531#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://joeshaw.org/2008/07/12/531/feed/atom" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://joeshaw.org/2008/07/12/531</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Joe</name>
						<uri>http://joeshaw.org</uri>
					</author>
		<title type="html"><![CDATA[i&#8217;ve done my part &#8212; complaining &#8212; and it worked]]></title>
		<link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/joeshaw/~3/333807418/530" />
		<id>http://joeshaw.org/?p=530</id>
		<updated>2008-07-13T18:35:05Z</updated>
		<published>2008-07-12T21:50:08Z</published>
		<category scheme="http://joeshaw.org" term="Uncategorized" /><category scheme="http://joeshaw.org" term="browser sync" /><category scheme="http://joeshaw.org" term="gnome" /><category scheme="http://joeshaw.org" term="google" /><category scheme="http://joeshaw.org" term="mozilla" /><category scheme="http://joeshaw.org" term="novell" /><category scheme="http://joeshaw.org" term="online desktop" /><category scheme="http://joeshaw.org" term="open source" /><category scheme="http://joeshaw.org" term="weave" /><category scheme="http://joeshaw.org" term="wolf" />		<summary type="html"><![CDATA[Toward the end of my time at Novell, I was looking into a browser sync system for the GNOME Online Desktop.  As I am a lazy hacker, the ideal solution at the time for me would have been for Google to open source its nice browser sync extension and then adapt it to the [...]]]></summary>
		<content type="html" xml:base="http://joeshaw.org/2008/07/12/530"><![CDATA[<p>Toward the end of my time at Novell, I was looking into a browser sync system for the <a href="http://live.gnome.org/OnlineDesktop">GNOME Online Desktop</a>.  As I am a lazy hacker, the ideal solution at the time for me would have been for Google to open source its nice <a href="http://www.google.com/tools/firefox/browsersync/">browser sync extension</a> and then adapt it to the online desktop myself.  I tapped <a href="http://blog.rlove.org/2007/08/from-worst-named-to-best.html">my contacts inside Google</a> to see if open sourcing it was in the cards.  <a href="http://markmail.org/message/scqfhyylbi4zn545">It wasn&#8217;t.</a></p>
<p>When I saw that the extension was being discontinued (and slowly-but-surely being replaced by <a href="http://labs.mozilla.com/2008/06/major-update-to-weave-prototype-02-development-milestone/">Mozilla Labs&#8217; Weave</a>) and that it wasn&#8217;t immediately open sourced, I was furious!  I planned a blog entry raking them over the coals, how could they abandon a perfectly useful piece of code, blah blah blah.  It never happened, because I suck at blogging (remember, me=lazy).</p>
<p>Imagine my pleasure today when I came across their <a href="http://google-opensource.blogspot.com/2008/07/open-sourcing-browser-sync.html">announcement open sourcing the extension</a>.  I hope people can take the code &#8212; mainly the Mozilla folks for Weave and the GNOME folks for online desktop &#8212; and more quickly build a high quality system.  I am still looking for a way to sync my extensions between browsers!</p>
<p>And because false hubris is a cornerstone of this blog in addition to self-deprecation, I&#8217;d just like to say that it&#8217;s wonderful to see that the &#8220;additional pressure&#8221; I alluded to in my email has finally succeeded in ending the 11 month closed-source tyranny that began when I first heard of this extension last July.  While I can&#8217;t <i>prove</i> that I single-handedly open sourced the extension, I know it to be true deep down in my heart.  Hooray!</p>
<p>Task #1 is to <a href="http://gburt.blogspot.com/2008/07/tabtastic-banshee.html">add</a> <a href="http://www.barisione.org/blog.html/p=134">some</a> <a href="http://davyd.livejournal.com/255065.html">tabs</a> to it.</p>
]]></content>
		<link rel="replies" type="text/html" href="http://joeshaw.org/2008/07/12/530#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://joeshaw.org/2008/07/12/530/feed/atom" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://joeshaw.org/2008/07/12/530</feedburner:origLink></entry>
	</feed>
