topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Sunday December 15, 2024, 5:12 pm
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Author Topic: Software AutoUpdater -- Experimental Software Autoupdating  (Read 21026 times)

justice

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,898
    • View Profile
    • Donate to Member
updater.pngSoftware AutoUpdater -- Experimental Software Autoupdating
What is it?
Did you ever wish Windows Update worked for more programs? Do you use a lot of software from small vendors and wish you could update them quicker? Then maybe this will help.

Inspired by Mouser's Find and Run Robot and his frequent new alpha releases I have created a software updater program.

  • Configuration on a per application basis through ini files
  • Decentralised, after installation developers can easily spread new versions to end users (or users can provide the ini files)
  • Automatic checking and downloading of newer versions of software for end users

Whether or not this program will actually be useful depend on developers picking it up and users having the same dream as me.

As it is based on Autohotkey it can easily be extended for example with installation AHK scripts. Functionally it is more to prove auto-updating can be done and brings great benefit.

How it works
People can install a .ini file in the Apps\ folder for each application they want to keep up to date. a sample ini file has the following configuration:
[Updates]
Title=Test Software
IniURL=http://amasan.co.uk/downloads/updater/Apps/test.ini
URL=http://amasan.co.uk/downloads/updater/test.exe
LastCheck=Wed, 02 May 2007 13:55:24 GMT

The Title line is optional for display purposes. The IniURL pair points to the same ini file online -- updated by the developer or third party (the program then knows where to look for updates as well as being able to move ini files). the URL pair points to the latest executable. LastCheck is systemgenerated, so don't include it.

The auto updater will compare the last-modified header of the URL to a value it writes in the local ini file of the last check of the program, if the file is newer then the previous check it will download it and run it so the user can upgrade. Afterwards it will write out the time of the update to the ini file.

I'm curious to see what you think of it. I wish it could update itself, but because the executable is in use while updating I have not solved this. Also I wish to make it possible to provide a redirect as a url, less updating for the developer (untested so might already be possible)

Suggestions, implementation issues an comments are very welcome. See the source etc, it is the first public version and will probably have some bugs.
« Last Edit: May 02, 2007, 10:42 AM by justice »

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 40,914
    • View Profile
    • Mouser's Software Zone on DonationCoder.com
    • Read more about this member.
    • Donate to Member
Re: Software AutoUpdater -- Experimental Software Autoupdating
« Reply #1 on: May 02, 2007, 01:46 PM »
very very cool.
i can see only a few possible issues:
1) would be nice if you could solve the inuse issue especially when it needs to shutdown a program before installing new version.
2) checking the last-modified header of url is very very clever.. but i wonder if it means that on each update check the actual exe is requested from the server and "sent" (thus eating bandwidth? or tricking server stats into thinking there was a download?)  maybe you could have it check one file (like a dummy 0 length file) and then download the real one.  developer would have to update dummy file of course when the exe is updated.

justice

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,898
    • View Profile
    • Donate to Member
Re: Software AutoUpdater -- Experimental Software Autoupdating
« Reply #2 on: May 02, 2007, 01:50 PM »
I hope to solve 1) I have not looked into it yet.
But regarding 2: I use the httpqueryinfo script from http://www.autohotke...orum/topic10510.html  to query the http headers. I do not just it requests the whole .exe but will double check tomorrow. MAybe you can tell from the link, it's quite technical (calling .dlls)

lanux128

  • Global Moderator
  • Joined in 2005
  • *****
  • Posts: 6,277
    • View Profile
    • Donate to Member
Re: Software AutoUpdater -- Experimental Software Autoupdating
« Reply #3 on: May 02, 2007, 10:19 PM »
looks promising, how can i adapt the ini file to check Farr's alpha version? :)

lanux128

  • Global Moderator
  • Joined in 2005
  • *****
  • Posts: 6,277
    • View Profile
    • Donate to Member
Re: Software AutoUpdater -- Experimental Software Autoupdating
« Reply #4 on: May 03, 2007, 09:54 PM »
thanks, justice.. it works fantastically.. :Thmbsup: here's the screenshot.. :)

ws-farr-alpha-1.png

justice

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,898
    • View Profile
    • Donate to Member
Re: Software AutoUpdater -- Experimental Software Autoupdating
« Reply #5 on: May 04, 2007, 03:06 AM »
A small thing to note is that the first time you run an update for a program it doesn't have any 'last check' information, so currently after adding an ini the latest version is  downloaded.

I can't assume that the software is up to date when installing the ini file (why would someone download an updater if their software is up to date). However it's not ideal either. One way to solve it is to compare to the real executable's version, but this would mean more information needed to be added to the ini's.

I'd be interested in hearing other approaches about this.  :)

vevola

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 104
  • VeVoLa
    • View Profile
    • Donate to Member
Re: Software AutoUpdater -- Experimental Software Autoupdating
« Reply #6 on: May 04, 2007, 03:53 AM »
Filehippo offers something similar, but only for the software they provide.

What is it?
The Update Checker will scan your computer for installed software, check the versions and then send this information to filehippo.com to see if there are any newer releases. These are then neatly displayed in your browser for you to download.

http://www.filehippo.com/updatechecker/

Dr-Leech

  • Member
  • Joined in 2006
  • **
  • Posts: 151
  • Psychedelic Coder
    • View Profile
    • site
    • Donate to Member
Re: Software AutoUpdater -- Experimental Software Autoupdating
« Reply #7 on: May 06, 2007, 04:20 PM »
Nice, but I'm too lazy to configure each file manually.
FileHippo thing is fine.

justice

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,898
    • View Profile
    • Donate to Member
Re: Software AutoUpdater -- Experimental Software Autoupdating
« Reply #8 on: May 16, 2007, 10:07 AM »
Hmm do you think I should focus on developers supporting and supplying the 'configuration' (big word for some as simple as what it is) file or make it as easy as possible for end-users to add in apps? Would be interesting to hear.

For example one way of doing it would be for smallware authors to provide a latest.php link like discussed in another thread and an ini file themselves. (fully decentralised auto update)
Another way would be for me to have a database with application configuration files (semi centralised auto update) that can be recognised.
Or add in a possibility for end users to specify  download locations to monitor (manual personal update)

Dr-Leech

  • Member
  • Joined in 2006
  • **
  • Posts: 151
  • Psychedelic Coder
    • View Profile
    • site
    • Donate to Member
Re: Software AutoUpdater -- Experimental Software Autoupdating
« Reply #9 on: May 16, 2007, 10:56 AM »
The problem with expect to developers to create a latest.php file is that not everyone will remember to update the version each time new software version is ready (except if they're using some automated versioning software like Trac).

Another good thing should be create a collaborative website like http://osx.iusethis.com/ for Mac apps, where the user (or developer) can add the latest version and download link, and using something to validate the information (a voting system Digg like?, or maybe a wiki correction system?) then the system will output all results (query based) in one file that can be accesed with your program and the download links directly (or page to go and download).

I can help in the website if you want.

Perry Mowbray

  • N.A.N.Y. Organizer
  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 1,817
    • View Profile
    • Donate to Member
Re: Software AutoUpdater -- Experimental Software Autoupdating
« Reply #10 on: May 21, 2007, 10:17 PM »
After finding Wakoopa I've been thinking about this too...

The problem with Wakoopa is that the "newest" version is based on what users are currently running. So if everyone is using an old version, that's what's going to display as newest, but it's not: it's just the most popular.

Another good thing should be create a collaborative website like http://osx.iusethis.com/ for Mac apps, where the user (or developer) can add the latest version and download link, and using something to validate the information (a voting system Digg like?, or maybe a wiki correction system?) then the system will output all results (query based) in one file that can be accesed with your program and the download links directly (or page to go and download).
p in the website if you want.

That crossed my mind too (and even wondered if it might not fit within the DonationCoder framework somehow: we've done lots of reviews, had lots of discussion and made some recommendation... it didn't seem that much more to formalise that into something that could be updated with links to latest files etc). We don't want to reinvent the software download wheel.

I didn't know if there was too much competition between the different software download sites to organise some sort of standardised format?

I wondered if each software record could then have links to reviews, discussions and even justice's ini files?

justice

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,898
    • View Profile
    • Donate to Member
Re: Software AutoUpdater -- Experimental Software Autoupdating
« Reply #11 on: May 22, 2007, 01:25 AM »
That actually sounds like a microformat in the making perry. Very interesting comment.

Perry Mowbray

  • N.A.N.Y. Organizer
  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 1,817
    • View Profile
    • Donate to Member
Re: Software AutoUpdater -- Experimental Software Autoupdating
« Reply #12 on: May 22, 2007, 09:11 AM »
That actually sounds like a microformat in the making perry. Very interesting comment.

What a great read: thanks for posting it. I've done some reading on the Semantic Web before, but this was a surprise (as it wasn't just theoretical)

What a great way to host, scrape and package... Is it possible here??

Cavalcader

  • Charter Member
  • Joined in 2006
  • ***
  • Posts: 194
  • Live Long & Prosper
    • View Profile
    • Donate to Member
Re: Software AutoUpdater -- Experimental Software Autoupdating
« Reply #13 on: June 22, 2007, 08:54 AM »
We don't want to reinvent the software download wheel.

I didn't know if there was too much competition between the different software download sites to organise some sort of standardised format?
-Perry Mowbray (May 21, 2007, 10:17 PM)

Exactly -- it's already been established for years in XML format. It grew out of the old BBS "VENDINFO.DIZ" files, designated the Portable Application Description (PAD). Here's the homepage with specs, examples and links to support utilities: http://www.asp-shareware.org/pad/
My Linguistic Profile:
  40% General American English
  30% Yankee
  20% Dixie

What Kind of American English Do You Speak?
« Last Edit: June 22, 2007, 10:07 AM by Cavalcader »

justice

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,898
    • View Profile
    • Donate to Member
Re: Software AutoUpdater -- Experimental Software Autoupdating
« Reply #14 on: June 22, 2007, 09:18 AM »
Mouser is working on DCUpdater which by the looks of things will incorporate the features in this program. :)

justice

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,898
    • View Profile
    • Donate to Member
Re: Software AutoUpdater -- Experimental Software Autoupdating
« Reply #15 on: July 12, 2007, 03:21 AM »
I'm discontinuing software updater in favour of dcupdater ;) It does all and will do much more than an AHK script can do.  :Thmbsup: