<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: How software updates should work (Part 1)&#8230;</title>
	<atom:link href="http://kunal.kundaje.net/2007/07/how-software-updates-should-work-part-1/feed/" rel="self" type="application/rss+xml" />
	<link>http://kunal.kundaje.net/2007/07/how-software-updates-should-work-part-1/</link>
	<description>.technology.life.miscellany.</description>
	<lastBuildDate>Thu, 25 Feb 2010 05:48:07 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Geoff</title>
		<link>http://kunal.kundaje.net/2007/07/how-software-updates-should-work-part-1/comment-page-1/#comment-337</link>
		<dc:creator>Geoff</dc:creator>
		<pubDate>Sun, 22 Jul 2007 09:01:22 +0000</pubDate>
		<guid isPermaLink="false">http://kunal.kundaje.net/2007/07/how-software-updates-should-work-part-1/#comment-337</guid>
		<description>From the perspective of &quot;just a user&quot; sparkle is &quot;pretty much like firefox update&quot; in that it automatically lets you know when an update is available, downloads the update, extracts and installs the update and relaunches the application. I&#039;ve never had a broken app after a Sparkle update either.

It would be nice if it could do binary patching so you only got what you need but the other features like handling 10k client updates are probably less required as it isn&#039;t employed by applications with that kind of size though again that would be nice.</description>
		<content:encoded><![CDATA[<p>From the perspective of &#8220;just a user&#8221; sparkle is &#8220;pretty much like firefox update&#8221; in that it automatically lets you know when an update is available, downloads the update, extracts and installs the update and relaunches the application. I&#8217;ve never had a broken app after a Sparkle update either.</p>
<p>It would be nice if it could do binary patching so you only got what you need but the other features like handling 10k client updates are probably less required as it isn&#8217;t employed by applications with that kind of size though again that would be nice.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kunal</title>
		<link>http://kunal.kundaje.net/2007/07/how-software-updates-should-work-part-1/comment-page-1/#comment-336</link>
		<dc:creator>Kunal</dc:creator>
		<pubDate>Sun, 22 Jul 2007 07:35:59 +0000</pubDate>
		<guid isPermaLink="false">http://kunal.kundaje.net/2007/07/how-software-updates-should-work-part-1/#comment-336</guid>
		<description>Great points, Asa. =)

I&#039;m sure a lot of effort went into building the Firefox update system, and it clearly shows (kudos to you guys!). As you pointed out, there are so many different things that need to be taken into account to ensure that the update process is as smooth, unobtrusive, and error-free as possible, and I think that&#039;s part of the reason why few software vendors manage to get it just right.

Frameworks like Sparkle definitely have their place too. The ease with which it can be integrated into an existing application is fantastic (I just had a look at the docs). It looks like an appealing choice for smaller ISVs that don&#039;t quite have the time and resources to devote towards building custom update systems from scratch. I think this might actually be a good topic for a Part 3. ;)</description>
		<content:encoded><![CDATA[<p>Great points, Asa. =)</p>
<p>I&#8217;m sure a lot of effort went into building the Firefox update system, and it clearly shows (kudos to you guys!). As you pointed out, there are so many different things that need to be taken into account to ensure that the update process is as smooth, unobtrusive, and error-free as possible, and I think that&#8217;s part of the reason why few software vendors manage to get it just right.</p>
<p>Frameworks like Sparkle definitely have their place too. The ease with which it can be integrated into an existing application is fantastic (I just had a look at the docs). It looks like an appealing choice for smaller ISVs that don&#8217;t quite have the time and resources to devote towards building custom update systems from scratch. I think this might actually be a good topic for a Part 3. ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: e-piphany &#187; How software updates should work (Part 2)&#8230;</title>
		<link>http://kunal.kundaje.net/2007/07/how-software-updates-should-work-part-1/comment-page-1/#comment-335</link>
		<dc:creator>e-piphany &#187; How software updates should work (Part 2)&#8230;</dc:creator>
		<pubDate>Sun, 22 Jul 2007 07:13:48 +0000</pubDate>
		<guid isPermaLink="false">http://kunal.kundaje.net/2007/07/how-software-updates-should-work-part-1/#comment-335</guid>
		<description>[...] Comments Asa Dotzler on How software updates should work (Part 1)...Geoff on How software updates should work (Part 1)...Isaque on More Joost invitations...ofg on The [...]</description>
		<content:encoded><![CDATA[<p>[...] Comments Asa Dotzler on How software updates should work (Part 1)&#8230;Geoff on How software updates should work (Part 1)&#8230;Isaque on More Joost invitations&#8230;ofg on The [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Asa Dotzler</title>
		<link>http://kunal.kundaje.net/2007/07/how-software-updates-should-work-part-1/comment-page-1/#comment-332</link>
		<dc:creator>Asa Dotzler</dc:creator>
		<pubDate>Sat, 21 Jul 2007 23:10:07 +0000</pubDate>
		<guid isPermaLink="false">http://kunal.kundaje.net/2007/07/how-software-updates-should-work-part-1/#comment-332</guid>
		<description>Sparkle is nice. I&#039;m not really sure it&#039;s &quot;pretty much the same as the Firefox&quot; system. 

Does it offer binary patching so that you can download, say, a 100KB patch instead of a 5MB application? Does it have solid error handling so that there is literally no case where a user is left with a non-functional application? Does it support update checks from 100 million clients per day or downloads from 10 million clients per day? Does it throttle background downloading if the user is occupying the connection? Does it allow the client to store all live user data (like text typed in text areas, open tabs, form data, etc.) and restore it after the restart? Does it offer robust tools for managing the Appcast feeds and load balancing? 

Building a robust application update system is actually very complicated. That&#039;s why it&#039;s only done really well like the really big guys (see Microsoft and Apple which both have solid systems for their OS and their own apps) and those few organizations who make it a real priority for security and usability reasons like Mozilla. 

More and better updates systems are a good thing, Geoff, and I don&#039;t mean to sound overly critical of your comment but I do want to highlight that Firefox&#039;s update system is actually a lot more than what it first appears. And I&#039;m in no way trying to diss Sparkle. I appreciate that it exists and use it for my Adium updates all the time. It&#039;s a fine addition to the mix and has a pretty good feature set. I just wanted to point out that it&#039;s not &quot;pretty much&quot; the same as Firefox&#039;s system.  By the way, Firefox&#039;s system is also open source and available to others to modify and use, though it&#039;s clearly designed with Firefox and Thunderbird (and other Moz apps) as the primary consumer. 

- A</description>
		<content:encoded><![CDATA[<p>Sparkle is nice. I&#8217;m not really sure it&#8217;s &#8220;pretty much the same as the Firefox&#8221; system. </p>
<p>Does it offer binary patching so that you can download, say, a 100KB patch instead of a 5MB application? Does it have solid error handling so that there is literally no case where a user is left with a non-functional application? Does it support update checks from 100 million clients per day or downloads from 10 million clients per day? Does it throttle background downloading if the user is occupying the connection? Does it allow the client to store all live user data (like text typed in text areas, open tabs, form data, etc.) and restore it after the restart? Does it offer robust tools for managing the Appcast feeds and load balancing? </p>
<p>Building a robust application update system is actually very complicated. That&#8217;s why it&#8217;s only done really well like the really big guys (see Microsoft and Apple which both have solid systems for their OS and their own apps) and those few organizations who make it a real priority for security and usability reasons like Mozilla. </p>
<p>More and better updates systems are a good thing, Geoff, and I don&#8217;t mean to sound overly critical of your comment but I do want to highlight that Firefox&#8217;s update system is actually a lot more than what it first appears. And I&#8217;m in no way trying to diss Sparkle. I appreciate that it exists and use it for my Adium updates all the time. It&#8217;s a fine addition to the mix and has a pretty good feature set. I just wanted to point out that it&#8217;s not &#8220;pretty much&#8221; the same as Firefox&#8217;s system.  By the way, Firefox&#8217;s system is also open source and available to others to modify and use, though it&#8217;s clearly designed with Firefox and Thunderbird (and other Moz apps) as the primary consumer. </p>
<p>- A</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Geoff</title>
		<link>http://kunal.kundaje.net/2007/07/how-software-updates-should-work-part-1/comment-page-1/#comment-321</link>
		<dc:creator>Geoff</dc:creator>
		<pubDate>Fri, 20 Jul 2007 09:34:25 +0000</pubDate>
		<guid isPermaLink="false">http://kunal.kundaje.net/2007/07/how-software-updates-should-work-part-1/#comment-321</guid>
		<description>&lt;p&gt;On OS X there is a popular framework called Sparkle (http://sparkle.andymatuschak.org/) which a lot of apps include these days. Means a lot of applications have a really nice update system.&lt;/p&gt;
&lt;p&gt;Its so nice to use, you setup an AppCast RSS Feed, then when the application checks for updates it looks to the AppCast feed and if there is an update it automatically downloads the file, extracts it, verifies it, optionally shows you a changelog or release notes, and gives you the option to install and relaunch or just install.&lt;/p&gt;
&lt;p&gt;Clicking &quot;Install &amp; Relaunch&quot; copies the new version to the same location as the current .app file and then relaunches it.&lt;/p&gt;
&lt;p&gt;All in all pretty much the same as the Firefox one but any Cocoa application can make use of it.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>On OS X there is a popular framework called Sparkle (<a href="http://sparkle.andymatuschak.org/" rel="nofollow">http://sparkle.andymatuschak.org/</a>) which a lot of apps include these days. Means a lot of applications have a really nice update system.</p>
<p>Its so nice to use, you setup an AppCast RSS Feed, then when the application checks for updates it looks to the AppCast feed and if there is an update it automatically downloads the file, extracts it, verifies it, optionally shows you a changelog or release notes, and gives you the option to install and relaunch or just install.</p>
<p>Clicking &#8220;Install &amp; Relaunch&#8221; copies the new version to the same location as the current .app file and then relaunches it.</p>
<p>All in all pretty much the same as the Firefox one but any Cocoa application can make use of it.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
