Login | Sign Up
Lend a hand.
jobs bidding, jobs underway
Back to Worklist
#11762
LoveViewer: Add patch update capability
  • StatusWORKING
  • CreatorPhilip
    Runner Philip
    MechanicPera
  • Notes

    I want to be able to update my loveviewer by downloading only the changes, not a whole new viewer.

    Create a new installer that gets only the binary installer diff between my current version and the latest version (or whatever best-practice approach folks are now using for this). Make "Check for Updates" an option in the viewer File and Help menus, and also check for updates automatically when the viewer is started.

    Successful completion of this project means I can download the new installer, launch it, and watch it work for the first time by only making a small download!

Comments
  • Andres  2 mnths, 10 days ago
    That's a really interesting one, thanks for thinking of it :)
  • Philip  1 mnth, 24 days ago
    Pera - actually I am looking for a feature for endusers that ONLY downloads the bits that changed, so you don't have to re-download the installer file. So this isn't something that can be done with SVN.
  • Pera  1 mnth, 24 days ago
    Hi Phillip,
    That is exactly what the proposal indended - endusers can download only bits that changed. The confusing part was probably showing the command lines in the description. The enduser will never have to see those svn commands, the commands will be hidden behind the standard gui.
    I'll be glad to demonstrate the benefits of this approach.
  • Yani  1 mnth, 24 days ago
    There isn't a way to add bits or remove bits from a binary/executable file. What we could do is check for a new version and download the new version. When the user is ready, he/she will install the new setup. That's how skype works.
    If we have used DLL's and only a DLL file or a few dlls have been updated then we can only download these few files.
  • Pera  1 mnth, 24 days ago
    Correct, Yani. That is where my proposed way of updating only modified files jump in. By "bits", I did not in any way reffed to bits of binary file, sorry for that :) What I had in mind were files that are stored in directory after the installation (binaries, libs, other supporting files).
  • Yani  1 mnth, 24 days ago
    The best example I can give is those patches/cracks available. The original executable is being disassembled, the place for change has been found and then the new code is being injected there.
    Our source is written in c++. 1 line of c++ translates to many lines of machine language(1:many ratio).
    1 assembly line translates to 1 line of machine language(1:1 ratio).
    My opinion is that while it is possible it will be very difficult for engineers to create such feature and also the error margin is too high.
  • Yani  1 mnth, 24 days ago
    @Pera I agree with what you wrote, you are on the right track.
  • Pera  1 mnth, 24 days ago
    Sorry for not posting the whole concept here in comments, but only in the bid from where it got erased.

    So, I proposed the following:

    - 3 new directories are made in SVN tree, one for OSX, one for Windows and one for Linux.

    - Each directory holds all files (binaries, libs, images, configs, etc). Not the installer, but actual files contained within. Did I already say not installer, but unpacked files :)

    - For initial install the download is only about 50k, which will set up install directory and download files from the repository (do not confuse source code repository with this "installation" repository, althou the technology behind both is the same - SVN).

    - On the next run, simple "svn update" will check and update enything that was changed in the meantime in the "installation" repository. This command is invisible to enduser, who will only see nice progress bar in a window.

    - SVN uses zlib for compression of everything it passes through the socket, so no worries about that.

    - Yes, it is possible to write the whole updater app and system from scratch, but the lovemachine repository is already SVN - it will be a waste of resources not to use it.
  • Pera  1 mnth, 24 days ago
    Support data taken from SnowGlobe OSX version:


    dmg_installer_size = 52M

    installed_size = 171M

    number_of_installed_files = 4223

    largest_file = 69M (gzipped 22M) [llplugin/libllqtwebkit.dylib]

    second_largest_file = 41M (gzipped 14M) [LoveViewer]
Bids
Who Bid Amount Done In
*name hidden* $ *** 1 mnth, 3 days ago
Fees
Who Amount Description Date Paid
Philip $ 40.00 Design 06/29/2010 No
Pera $ 280.00 Accepted Bid 07/30/2010 No
Total $ 320.00

Click to see a breakdown of how this amount was calculated.