Quick thoughts about global undo...
If only I had time to give this the attention it deserves - but alas, I must soon get drunk. Neat Chris from anti-mega has brought into public attention that massive and aggravating UI problem that is what happens when you accidentally quit an application (like Safari) that allows you to have many different pseudo-documents open that are lost immediately without any kind of dialogue when the application quits. The reason I call them pseudo-documents is because the standard behaviour for something that you can edit in an application is to ask if changes should be saved before quitting. That's not the case with tabs in browsers. If you accidentally press Apple-Q instead of Apple-W (to close an individual tab), you lose all the pages that were currently open in the browser (and - because the windows you have had open recently doesn't map neatly onto the things in your history you can also lose all information about how to easily find out both what they were and any information about them).
Chris' answer to this problem is the OS-wide global-undo facility, where you could simply undo your quit. Hammersley's been talking about it too. I think this is the wrong approach - and not just because I think that it's not going to happen for the next ten years at least, even if it's possible - but also because I think there's a better way.
So here's my question: Why does your browser lose its current status when it quits? Or to put it more precisely, When I restart my browser, why doesn't it still have all the pages that were open in it when I last quit? Certainly this should be possible - and it would solve the problem (although it might be considered non-standard behaviour). NetNewsWire doesn't forget my subscriptions when I restart it - so why should my browser? (It's not a direct analogy, but it makes a point.)
I'm sure there are a number of privacy reasons why this kind of thing could be a problem, and it might break the 'session' / 'global' distinction if not handled appropriately - but you could make it a preference that people turned on or off on their own computers, with the sites refreshed when you logged back on again, perhaps? I mean, that should work, right?
Comments
Please stay on-topic, informative and polite. I reserve the right to remove comments for whatever vague capricious reasons seem reasonable at the time.
Alan Cooper's been demanding global undo for years now. I'd be glad to have it, even though "quitting an app" doesn't seem like something "undoable". I agree that showing the last known state of the browser on launch would be great.
→ Posted by: andrew at August 1, 2003 6:54 PM
I have been arguing this point for so long that I can't see straight. Opera is the *only* browser that has ever even offered this feature. It's seems so obvious -- I just don't understand why it's *always* overlooked. There isn't much that makes me angrier than when the browser (or OS) shits on itself and all the pages I had open die. In fact, it was Opera's ability to re-open all previously open pages, and this feature alone, that caused me to use that browser up until Safari 1.0 (Safari is just too good to not use anymore). I'll never understand the reasoning behind not incorporating this feature into all browsers.
→ Posted by: Justin Blanton at August 1, 2003 6:59 PM
I've been developing with Microsoft Visual Studio at work lately (please kill me) and it records the current state of a project when you close out of the app. Next time you open the project, it opens all the docs you had open when you last worked on it.
→ Posted by: jkottke at August 1, 2003 7:01 PM
I picked on Safari just because it caused me so much grief. The two Close Xs in Word cause the same problem, as the app only prompts if you have changes to be saved.
I think that many app creators don't think of their usage as creating information in itself, and therefore don't take the normal precautions from the creation tools, such as Visual Studio, Word or Photoshop.
Note that Are you sure? type dialogues don't help either, because you soon become trained to hit Yes.
I'm surprised that people can't get their heads around undoing a quit. It's just a key stroke, a mouse click, a change of states. One of the most compelling reasons for the global undo is that it solves one of the biggest computer fears - that doing something wrong will be bad for the computer (and, therefore, you). The fear of doing something wrong holds back so many people when learning how to do things. A consistent safety net is a good thing.
I'll apologise for re-inventing the Coop - much of his work is appropriate here, especially what's wrong with software:
Software forgets. Software is lazy. Software is parsimonious with information. Software is inflexible. Software blames users. Software wont take responsibility.
→ Posted by: Chris at August 1, 2003 7:25 PM
Firebird with the tabbrowser extensions will save all your tab info when you quit, quite nice.
As for a global undo, hell yeah that would be amazing. I'd also like to see a global function key, one that can only trigger OS level tasks, not application level tasks. Would allow you to constantly perform OS level shortcuts without worrying about conflicts with any particular programs shortcut set. The windows key on PCs seems ideal for this, but barely gets used, some Microsoft control issues most likely...
→ Posted by: Abe at August 1, 2003 7:38 PM
Journaled file systems are the first step toward global undo. Eventually, you will be able to save the state of your computer at any momment. This also allows nearly immediate startup, by quickly restoring the last saved state. Right now this will slow down a computer too much to be practical, but some day... Meanwhile, saving state in browsers would be handy, not just for restarting, but it would also open up interesting possibilities for sharing web browsing experiences.
→ Posted by: scott reynen at August 1, 2003 8:29 PM
I don't know if it's maintained te feature, but the last time I tested out Opera (a couple of years ago) it had a preference setting that allowed you to reopen the app and have it display the page that was open when you last quit.
→ Posted by: Sparky at August 1, 2003 10:05 PM
Also here is wishing there was a way to switch tabs in mozilla only using the keyboard.
→ Posted by: Jake of 8bitjoystick.com at August 1, 2003 10:36 PM
I believe MultiZilla for Mozilla adds this, as well as a number of other goodies, though they seemed determine to muck up the interface. Maybe some tweaking with that will get you what you need.
→ Posted by: Matt at August 1, 2003 11:42 PM
Don't know about regular Mozilla, but Ctrl-Tab (and Shift-Ctrl-Tab) works fine switching between tabs in Firebird. I do have the Tabbrowser extensions installed, though, so that might be where that feature comes from.
→ Posted by: Jim at August 2, 2003 12:55 AM
Galeon lets you save the state of your windows. Oh, and on the issue of global undo, ReVirt is a virtual machine implementation of linux, that lets you go back in time and see the state of the machine at previous times. It's not what you want, but you could build from it - and they claim it only takes a 15%-30% speed hit.
→ Posted by: Danny at August 2, 2003 6:22 AM
Note that being able to save your window states isn't the same as it just remembering. Let the never-tired, never-bored computers do the hard bits, the monotonous tasks mere humans forget. Better undo in browsers would be useful too - if I close one Safari window, rather than the whole program, there's still no way of getting it back.
→ Posted by: Chris at August 2, 2003 9:25 AM
Eventually, you will be able to save the state of your computer at any momment. This also allows nearly immediate startup
Uh, dude, buy a laptop, they've been doing that for years.
→ Posted by: rjp at August 2, 2003 7:45 PM
A replayable VM, like ReVirt, gets my vote as the best way to do this kind of thing.
I've been playing around with stuff like Linux software suspend and VMware, and keeping an eye on ReVirt and usermode linux. IMO the concept of emulating your entire working environment in order to use snapshots, rollback, and hardware sharing, is *incredibly cool*. No better way to use all that CPU power we now have on our desktops.
I hope ReVirt gets working soon -- it would provide an OS-wide global undo feature, helps massively against hacker attacks, and is generally incredibly cool. I'd install it on my desktop for sure ;)
BTW regarding URL-state-saving in browsers -- I'm pretty sure Mozilla *used* to have that, when it used to crash every 30 minutes. Doesn't seem to any more, although the tabbrowser feature mentioned above sounds pretty close. It really would be a nifty feature...
→ Posted by: Justin at August 2, 2003 8:56 PM
Eventually, you will be able to save the state of your computer at any momment. This also allows nearly immediate startup
Windows' Hibernate feature does this on any machine, not just laptops. As for "global undo," it's best implemented at the filesystem level. Products like clearcase already do this and have been doing so for years. Sure, they don't do physical memory dumps (and as such don't allow you do undo things that were only performed in memory in the first place), but that's what Hibernate is for.
→ Posted by: plix at August 3, 2003 8:47 PM
re: versioning in the filesystem -- yes, that's a solved problem now. I version pretty much all the important config/settings files on my machines using CVS and it works great.
But this is the thing -- consider *that* applied to the entire state of your machine. That's the "quantum leap" to take. VMWare are heading that way and I think it's a killer idea.
→ Posted by: Justin at August 4, 2003 12:24 AM
I totally agree with this. *Nothing* makes me angrier than having a bunch of windows and tabs open in Safari and losing all of them because of an unwanted quit. I have many weblogs (saved as a tab-group) that I check often, and the way I do it is to go through all the blogs and open interesting links in a new tab, then go thru all the tabs I've opened. Well, on more than one occasion I've been leaning back in my chair reading and reached for apple-W , only to hit apple-Q and - bam - all my pages are gone, and I have to go thru and find all the links again. Even a simple confirmation dialogue when quitting safari with open tabs would be enough to solve this problem. I'm tempted to learn how to use InterfaceBuilder just so I can add this feature myself.
→ Posted by: sam walker at August 4, 2003 1:41 AM
Undo is always better than a prompt ASKING you SOMETHING. Because as a routine users you just hit ok before you think an whoops its gone. It happens to all of us I guess and is natural.
Undoing a quit is easy: Just don't quit the app but hide the window instead.
Undoing a save/overwrite is easy: Just make a file system that keeps track of all the versions of a file, from create to publish. Oh I'd love that.
And about the browser: Yes it seems more logical that all tabs remain open until you decide to explicitly close them instead of just closing all when the browser closes. What has one to do with the other?
Global undo is not unrealistic! Who will have it first? Windows or Mac?
→ Posted by: Andreas at January 26, 2004 10:21 PM