
The four essential laws of software updates - philltopia
http://philltopia.com/blog/2009/07/12/the-four-essential-laws-of-software-updates/
======
derefr
Why is this necessary at all? Why does every program have its own updater,
some of which are even _resident_? Why can't the OS just do all of this for
us? Linux and the BSDs have package managers, but there's a solution just as
easy for the rest/majority:

Both Microsoft Update and Apple Software Update could be modified, very
simply, to read updates for additional software from signed RSS feeds, and
queue them into a background downloading service (on Windows it's called BITS,
I'm sure OSX has an equivalent) when they see them. There would need be no
central repository; each software package installed would simply install a
subscription, and a public key for checking against it. The updates would all
be installed in the operating system's "update mode" that starts after
shutdown, negating any worry of updating a running program. It wouldn't even
need to trouble the download centers themselves—the RSS subscriptions could be
torrent containers, and every PC could be configured to serve as a peer.

Now, if it were _me_ , I'd move the Mobile App Store from iTunes to Software
Update on OSX and make it into a Multi-platform App Store, and create a
similar store for Windows in their own update service... but that's perhaps,
as they say on the Internets, "too much win."

~~~
bodhi
Sparkle (<http://sparkle.andymatuschak.org/> ) seems to be becoming a de-facto
standard on OSX, and I'd say it does a pretty good job when judged against the
points in the article.

I think the update-at-shutdown isn't such a great idea, most programs don't
need the computer to be restarted after they update.

~~~
potatolicious
Sparkle is just awesome - and I really wish Apple had the guts to roll this
sort of thing (if not simply roll Sparkle in) as a standard recommendation for
all apps.

The problem isn't so much that apps are rolling their own updaters, it's the
fact that these updaters are often extremely heavy-weight but aren't
justifiably so.

------
philltopia
Disclaimer: I'm a newbie blogger and member of HN (though I've been reading it
for a while, I just joined a week ago). But any comments, criticism, or advice
you might have are all definitely welcome. Thanks!

~~~
mahmud
An OK article. But if you have seen most _good_ usability and UI design texts,
they cite actual applications. You have your own, prototype, "hopefully not
your application" dialog boxes as examples. If you can't find real-world
examples of the problems you're fixing, maybe they're not that big of a deal?
(which they ARE, you just haven't been researching this long enough, I am
guessing.)

I clicked on the link hoping to find technical information on automatic
software updating, like:

<http://www.cl.cam.ac.uk/~pes20/update-popl-2005.pdf>

<http://citeseer.ist.psu.edu/old/hicks01dynamic.html>

~~~
philltopia
It's not that I didn't have anything in mind (I did, and, in earlier drafts,
used some), it's that I felt this got the point across faster and simpler.
Using the examples I gave _and_ real-life screenshots felt too much like
flamebait for my taste. I definitely see your point though.

~~~
mahmud
That's OK, welcome to HN and I would love to read you next article.

Cheers!

------
extension
Law Five: Finish the job - Hopefully not your program: "Update has been
downloaded. Have fun installing it. Bye!" - Dunce: Wordpress

Law Six: Stay alive - Hopefully not your program: "Software updated. Go have a
coffee while I tear down all your work and restart myself." - Dunce: Firefox,
Windows

Law Seven: Get with the times - Hopefully not your program: "You can't install
that, it's brand new! Play it safe and use this two year old beta with many
known vulnerabilities." - Dunce: Ubuntu

(I gave up on the formatting, sorry)

~~~
philltopia
Wait, what's wrong with Wordpress's update mechanism? I've only used it for a
short while but I've been nothing short of amazed how simple and easy it is
(two button presses), compared to years of downloading packages, diffing
files, uploading files, running database upload scripts, fixing errors, and so
on under phpBB/IPB/MediaWiki.

~~~
extension
So it does. Somehow I missed it when trying to upgrade a friend's blog.

------
samlittlewood
A good reason to make sure your nightly (or whatever) build process generates
deliverable installers as early as possible, and then conduct all deployments
(test, demo, beta etc.) via these installers. Stress points soon get removed.

Throwing a finished executable over the wall to some poor sod at -1 week away
from ship date may deliver a poor experience.

------
yycom
Essential laws?

