Thursday, May 22, 2008
Standardizing Software Updates
As shareware authors we've all written chunks of code that fire up an Internet connection when the software opens and silently check to see if a new version is available. Sometimes these can be a little annoying, Subversion has a habit of showing me a little popup window every single time that I use it to state that a new build has gone up, yes thanks guys but I really don't care that I'm a few dot releases behind!
Obviously a better design is needed here so i don't have to click the 'Ok' button, a simple status bar message in the main window would do it, but these are user interface issues and I digress!
After writing my last post on standardization of e-commerce providers it struck me that software updating is another place where standardization might be really useful. I'm usually a PC guy, but occasionally I see something that Apple have done very nicely and one of those is it's updater, which looks something like this.
The great thing about this is that all of your software updates are right there, in one place, easy to see and with details on what's in the update. Now as far as I'm aware the same type of global software updater for every piece of software doesn't exist for Windows. This is as you might expect, there's more Windows software out there and Microsoft have historically exerted less control over their application providers than Apple has. The closest thing I could find was this little app from VersionTracker which uses their online database to report updates.
Certainly on the right track but one star out of five on a download.com review doesn't exactly inspire confidence. I can understand why it only got one star too; there's no standard way of writing the update code and it's basically guessing using the name of the executable!
So what's needed is this. If all our PCs had on them a single XML file which listed the current software installed and how to get an update of it then we'd be set. The XML file would need:
- The name of the software
- The current version number
- The URL to check for updates
The next part is this, the URL which checks for updates brings back another URL file, and for this one you could actually use a PAD file. A PAD file (Portable Application Description) is an XML file with a bunch of information about the software, and it's widely used by independent software vendors. The important thing for our purposes here is that the PAD file has the current version number of the software, and also the URL of the installer and notes on what's changed in the latest version. If you couple this with the desktop file list above then that's all you need to build a global software updater!
What I like about this solution is that it's going to benefit all software developers. It's a single place for file data to be stored, and the actual application that does the updating is independent of the desktop XML file itself. Obviously it's going to need traction in the community to get going, and there would have to be agreement on where the file is stored and how applications should write to it but I think that it should benefit all. in addition, once this global software list is in place you should be able to start doing some really interesting things with it, but I'll leave all that for another post.
Obviously a better design is needed here so i don't have to click the 'Ok' button, a simple status bar message in the main window would do it, but these are user interface issues and I digress!
After writing my last post on standardization of e-commerce providers it struck me that software updating is another place where standardization might be really useful. I'm usually a PC guy, but occasionally I see something that Apple have done very nicely and one of those is it's updater, which looks something like this.
The great thing about this is that all of your software updates are right there, in one place, easy to see and with details on what's in the update. Now as far as I'm aware the same type of global software updater for every piece of software doesn't exist for Windows. This is as you might expect, there's more Windows software out there and Microsoft have historically exerted less control over their application providers than Apple has. The closest thing I could find was this little app from VersionTracker which uses their online database to report updates.
Certainly on the right track but one star out of five on a download.com review doesn't exactly inspire confidence. I can understand why it only got one star too; there's no standard way of writing the update code and it's basically guessing using the name of the executable!
So what's needed is this. If all our PCs had on them a single XML file which listed the current software installed and how to get an update of it then we'd be set. The XML file would need:
- The name of the software
- The current version number
- The URL to check for updates
The next part is this, the URL which checks for updates brings back another URL file, and for this one you could actually use a PAD file. A PAD file (Portable Application Description) is an XML file with a bunch of information about the software, and it's widely used by independent software vendors. The important thing for our purposes here is that the PAD file has the current version number of the software, and also the URL of the installer and notes on what's changed in the latest version. If you couple this with the desktop file list above then that's all you need to build a global software updater!
What I like about this solution is that it's going to benefit all software developers. It's a single place for file data to be stored, and the actual application that does the updating is independent of the desktop XML file itself. Obviously it's going to need traction in the community to get going, and there would have to be agreement on where the file is stored and how applications should write to it but I think that it should benefit all. in addition, once this global software list is in place you should be able to start doing some really interesting things with it, but I'll leave all that for another post.
Subscribe to:
Post Comments (Atom)
6 comments:
Or offering a branded edition of the blog? The blog so far has been very helpful.
Thanks, JackKlak
You really need bi-directional links between a site and a supporting blog. Link both websites through a prominent navigational item. You can also add in your latest blog posts on your website as a sidebar, this is something that we'll be doing with Iconico as soon as we have enough posts. You can also post links to relevent items in your blog sidebar and target affiliate pages in blog posts. As long as it's good relevent content then your site visitors will follow the links.
Thinking a little more about it it wouldn't be too hard for any platform to use the XML format that I've suggested above.
Post a Comment