The Infinite Version

As someone that manages the auto-update process of an application I have tried to mimic Google in the seamless updating process. The biggest problem is that Microsoft’s policy is that you cannot overwrite an EXE or DLL if its in use. This is more than likely core to the OS and the reason Google require a restart.

There was talk 3 years ago [1] about adding patching the Linux kernel for updates during run time [2], however if I recall it was rejected at the time due to the massive security threat it could have created. Imagine if a hacker got access to a function that allows you to rewrite any part of the kernel whilst its working. Effectively you could not be sure of anything any more.

[1] http://www.l0t3k.org/biblio/kernel/english/runtime-kernel-kmem-patching.txt
[2] http://lwn.net/Articles/311987/

“The update, still, needs to be triggered by the user. That’s one of the few things I hate about Chrome”

I couldn’t disagree more. Your average user does not care about updates and will not bother to apply them. Besides being a huge maintenance and support burden, this also poses security risks.

Chrome has the best update system out there… automatic, silent download, never bothers the user. This means they stay secure with no action on their part.

After so much hype and so many years Chrome is still not as popular as people as expected and not replaced Internet Explorer yet , infact Firefox has become the most popular browser now days and if you go with my experience my vote is definitely Firefox which is miles ahead to both IE and chrome. google needs to done something seriously to push chrome , let’s see…

Javin
10 examples of find command in Unix

Were I the only one cringing at the rotated 8 standing in for the ∞ (infinity) sign?

Interesting article nevertheless! I agree with the other commenters that being able to hold off on updating or rolling back updates is essential though.

I love that we are arguing about the etymology of zucchini on a programming site.

By the way, Jeff, your copyright needs updated.

It’s not 2009 anymore. :slight_smile:

Unfortunately Chrome’s auto-update doesn’t work so well when you have an overzealous proxy on your network which blocks all executables and other things that smell like them. My install is several versions behind because of this.

Web apps greatly benefit from releasing updates very often.

In Planbox (a web app providing Agile project management Saas) we decided to push presentation and business logic to the front-end in Javascript, and maintain a stable back-end API. Doing so allows us to push live changes to the UI anytime without causing grief to our users. A simple refresh in their browser gives them the newer version. Yet both older and newer versions work fine since the back-end API rarely changes.

This achievement greatly reduced testing time and increased our speed to deliver new functionality.

Yeah for releasing often!

@Martin Drapeau

“… we decided to push presentation and business logic to the front-end in Javascript…”

So users can potentially change your business logic while using your app? Smart move.

As for the discussion at hand, I still don’t understand how it is that we’re in 2011 and Windows can’t apply kernel updates without having to restart. It’s not the restart itself that’s the issue, but the fact that I have to reopen everything I had running after Windows has done its thing.

I don’t think it’s a problem of technology, more a problem that no-one has tried hard enough yet to implement the desired behaviour.

All those updates and Chrome still does not have the most essential of features: MRU tab ordering when pressing Control-tab!

Of course, the reason Chrome manages to auto-update itself is because it is installed into your home directory (i.e. under Documents and Settings or Users). This means every user on your computer has their own version. So while your version is up to date, less frequent users of the computer don’t benefit from those updates. Because of the restart issue, they’re always on the version that was installed last time around and perpetually unsafe.

On my laptop, I’ve installed Google Chrome for Ubuntu using Google repos and Update Manager bugs me every time I log in.

The technology still has a way to go. But, given Google’s track record, I don’t think it will take them long.

I hate automatic updates. If software changes constantly under your hands, there is no guarantee it will work tomorrow. And Google may also decide in future to push some spyware/adware to your computer.

Very interesting to see how on-line upgrades are becoming more mainstream; 10 years ago they were more of a curiosity, relevant to only specific industries.

My research group has been working on the technical problem of dynamically updating running software for quite a while. See our research page for details: http://www.cs.umd.edu/projects/PL/dsu/ If you want just one paper to read, check out http://www.cs.umd.edu/~mwh/papers/ginseng.pdf

Ksplice is doing limited dynamic updates for the Linux kernel: http://www.ksplice.com/

We’re developing a new implementation that should be less invasive and more backward compatible for application programs. It’s a fun area to work in!

You must be kidding! WordPress’s auto-update functionality stupidly requires the web server to specifically be the owner of the file for it to work, otherwise it asks for FTP credentials. I haven’t set up a FTP server in many years, and I probably won’t in the future unless it’s TFTP for a network install. Maybe it’s different for Windows servers. Also, to the person who blamed poorly coded plugins for WordPress updates breaking functionality: is there even any other kind of plugin? Almost all plugins I’ve seen have been made by junk developers who apparently don’t even turn warnings on when developing.

I no longer think of myself as using a specific version of Chrome, I just … use Chrome

Exactly. Chrome version no longer matters. The thing just works, and knowing that I’ll always be updated makes me feel… updated.

But that feature is quite difficult to apply to other browsers, and here I’d like to mention Internet Explorer. I’m sure IE could have make this as well. I can’t see any technical hurdles that couldn’t be surpassed. But IE is too important for too many business users. Too many apps, too many processes, are still dependant. So automatic updates aren’t “affordable”.

But this is I guess -I’m talking to you know, MS- one of the disadvantages of having forced all your users to use IE. Chrome had the freedom of a shiny, fresh start.

Offtopic: 1) Jeff, why do you use Typepad and not WordPress, any special reason? 2) You got time to read aaaall your blog comments??

Greetings and my deepest congrats. Your blog inspires. That is something few blogs can achieve.

I don’t get the fascination with Chrome especially since it lacks sidebars and a true NoScript plugin. The load time argument to me is silly. I load FF once and keep it open until I log out of the machine. Frankly, there are times when the uber-minimalist approach is annoying. I like that in FF4 and IE9 you can restore the menu bars or hide them as preferred.

The auto-updating sounds great when A: it works, B: nothing in the new version is undesirable and C: nothing in the new version breaks functionality. When the day comes that any of those are false, I think people will be less thrilled with the auto-updating.

But even Google hasn't figured out how to install an update while the browser is running. Yes, there are little alert icons to let you know your browser is out of date, and you eventually do get nagged if you are woefully behind, but updating always requires the browser to restart.
Actually, I'm on Linux Mint using the Chromium dev channel PPA, and I can update Chromium via the Update Manager just fine while it's running.
I don't get the fascination with Chrome especially since it lacks sidebars and a true NoScript plugin.
I really don't get the point of NoScript. Only allowing Javascript on whitelisted websites just seems stupid to me.

I was about to blog about Chrome’s terrible address bar search, where if I type in a word, it only looks at url terms in my history, and not the web page title (unlike Firefox, Safari, or most other browsers). I was about to take a screenshot demonstrating my point, only to find out it had been fixed.

The price to a developer of doing this kind of deployment is that you have to be doing continuous testing. The implication is that if you want the benefits of continuous deployment you have to pay the price of writing and maintaining lots of automated tests, or the alternate price of releasing software and then finding out that it’s broken and needs to be rolled back or fixed in a hurry.

With a web-based service you can get away with a lot more of the latter using gradual rollout, but with something like a browser I’m not sure how you could just say “oops” and roll back a release. I wonder if there’s a means of keeping the last couple of releases around on the client side, or pushing an “update” that’s really a rollback once enough people have gotten the update to reveal a bug that was missed before release?

I wonder how applicable this model is to smartphones, given that there is regulatory approval involved. FPGAs blur the line between hardware and software in a way that regulators are unlikely to comprehend…

“I really don’t get the point of NoScript. Only allowing Javascript on whitelisted websites just seems stupid to me.”

@TheSupremeNerd Then you evidently haven’t looked at what it does - or are unfamiliar with why it needs to do what it does. I can’t understand how anyone chooses the use the web without running NoScript - and that’s because I know exactly what it achieves and it’s something that should be inside every single browser.

Anyway, RE: version numbers… Mozilla have gone crazy with their versions. In the past month I’ve gone from the Firefox 4 Nightly to running Firefox 6 on Aurora (which is sort of like a release candidate). By the end of the year I’ll be running Firefox 1.4^5 at this rate. It makes Google Chrome’s update process seem positively arthritic.

It’ll only end in the tears, I’m sure…