> Sometimes I get so confused that I erase entire files
OT, but just this week my wife did something that really got me thinking about how far computers haven't come in terms of usability.
I heard her say "O crap" from behind her macbook, and out of habit I came to assist.
For some reason unknown to both of us, she had pasted the text of an email into a document called "thesis.docx", and then saved it.
The text was completely unrelated to "thesis.docx", which of course was not backed up.
Now, I love my wife deeply. And she is no fool. On the contrary, she is a graduate student.
Moreover, I completely understand how something like this can happen. We have two small children, and it was the end of the day. It is just too much to expect of the human mind that one should not say something one doesn't mean.
I felt guilty on behalf of my profession that this was the best we had to offer. Microsoft word on a macbook, and your penultimate version of a file is not backed up. It truly is intolerable.
So, while I have had some of my greatest highs using emacs macros, I somehow feel that the brilliant tooling made by developers for developers never quite percolates into userland.
Sometimes I am boiling a stew, and while I am preparing another dish on the side, for some unknown reason I put the raw eggs on the stew instead of the fry pan.
Pans have been there for centuries, and there is nothing preventing me from throwing stuff in the wrong place, nor undo the eggs in the stew. It's so intolerable, and I feel so ashamed and guilty on behalf of all the pan makers.
Not. We are in a field where we can prevent a lot more stuff to happen than in the real world (and the real world is soooo broken...). We should try our best to make the state of usability and fool-proofness advance as much as we can, and surely there must already be something that would help your wife's case. But we should also be more realistic when voicing expectations.
No, no, no. This is why reasoning by analogy can lead you astray. We have enough control over the world of software that the problem described above should not exist. This control does not exist in the real world, but it does in software.
Do we have enough control over software to make it impossible for someone to delete something and make it unrecoverable when they will later realize they should not have done so?
Not impossible, no. But we absolutely have enough control over software to make it highly improbable for someone to accidentally delete something important and make it unrecoverable.
His problem (or his wife's) is solvable, even right now. She could use time machine, dropbox works as well, using a versionning system would also work, she could switch to an editor that supports infinte undos, dozens of other solutions exist.
But all these require preparation, settings and some care. It could get better, even 'magical', but it would be an achievement that should not be taken for granted.
Btw we could make a pan for stew that checks if you are adding eggs to it, but no one would want the tradeoffs IMO.
> "thesis.docx", which of course was not backed up.
Something I find hard to belive from a woman whose husband is reading hacker news.
'thesis' and 'not backed up' are forbidden to appear in the same sentense by "the Universe(tm)". This law is enforced by _always_ deleting the contents of 'thesis'.
Clipboard manager. Set to record X selections too. That does it for me. Every bit of text I select is copied to clipboard, just below the value currently held there. In this case I'd have the full content of the docx file as a second item in my clipboard manager list with an email as a first one. I set the size of the clipboard items list to 500, just in case.
I couldn't live without some kind of clipboard manager. It was Ditto on Windows and klipper now on Linux. Dunno about Mac OS, but I bet there is something with similar functionality. It adds another layer of protection to Ctrl-Z everywhere and undo-tree-mode in Emacs. As a programmer I deal with text all the time and I need to be able to recover as much as possible if I make a mistake and this (clipboard manager + undo-tree + version control + normal undo) is the most robust system I could find.
For this purpose I set very large history in tmux and I almost never use terminal outside tmux anyway. The panes and windows in my tmux are very long-lived, but when I decide to close one I need to go through it's history and manually extract interesting/important bits. It's annoying and automating this would be really nice though.
Time Machine is perhaps the most elegant, least intrusive backup software ever. And it's free with OS X. I can't recommend it highly enough, especially for someone in your wife's position.
I'm a loyal unix guy but as a millenial without much actual hands-on experience with VMS I always love to hear anecdotes like that :) The first time I read about it was in Clifford Stoll's Cuckoo's Egg where it seemed as if there was constant competition between UNIX/VMS folks over which was the more sophisticated/elegant operating system - mostly good hearted competition of a more civilized age of course ;)
I vividly remember the one encounter I had with it's weird shell where I had to re-configure an application running on an Alpha machine which had a consecutive uptime of something like 12 years...
One of humanity's biggest enemies to progress are "Not invented here" and the cult of youth. It's often better to start with a blank slate ("being ignorant") because amongst other things like simply having a different perspective (worth 100 IQ points ~Alan Key) it helps with actually starting to build something. Eventually though we should still be aware of what we as a collective have learned already.
To be fair I think Github folks should know their history so this project might be one of the exceptions - looking forward to it! <3
Only in the same sense that public-key cryptography in the 1990s solved the problem of secure electronic communication between two parties. Creating the technology is on big hurdle; getting enough people to adopt it so that it's actually useful is sometimes a bigger hurdle.
I wouldn't say "solved", as it's still pretty easy to accidentally overwrite old versions, but it was a step in the right direction. VMS is full of good ideas that never went anywhere.
It's not her fault. One should be able to undo file system changes. Bell Labs solved this long ago by storing every file version forever http://en.wikipedia.org/wiki/Fossil_(file_system)
Storage is cheap
No, storage is not cheap! It may be if you're only counting files like "thesis.docx" that involves directly the user, but in reality we have a lot of programs that do automatic file operations and that would be nothing but storage trashing not to count the performance handicap.
But then considering that the unfortunate loss of data happened after an already lengthy sequence of manual actions, I wouldn't be surprised if the "o crap" would come after a longer sequence that involves disabling whatever should have been prevented the unpleasant events. I'm sorry for the loss, but I don't find my profession responsible more than I would find a car designer/engineer responsible for a car accident caused by driver's deficient attention.
Although really software should be idiot friendly and default to not letting you delete stuff by accident. As an aside I've managed to delete my code more than once in a similar manner in PyScripter which makes me feel rather silly but is quite easily done.
As mentioned time machine is a great feature, but doesn't OS X auto save files you're working on with its versions? You might want to double check that it hasn't got past versions saved.
Except that Microsoft Mac software neither follows OS X conventions (e.g. putting Office system files in the user's doc dir) nor implements many of the important features (e.g. leveraging the automatic file versioning introduced three years ago in OS X Lion).
The file revision history is - to the best of my knowledge - an OS X API that applications have to use (opt in). I don't think it comes "for free" with an OS upgrade, unless you mean Time Machine.
It's easy. Right there in the File menu near the Save command is Revert To, which leads to a submenu with Previous Save and Browse All Versions... options. The latter uses the slick Time Machine UI (http://support.apple.com/kb/ht4753).
Except, per my other comment, Microsoft doesn't bother writing Mac software that works like Mac software. It's kind of like running Java desktop software (actually worse)... neither native feel nor integrated with the OS like other Mac apps.
As you say "Microsoft doesn't bother writing" and his girlfriend uses MS Word on OS X if I understood. Can she then use that feature to recover her work after she had done the "Save" from the MS Word or not?
No, she's probably not going to be able to recover her lost work. What OP and others are trying to point out is that OS X has support for saving revisions to documents if application developers (like Microsoft) would just take advantage of it.
Why even give users control of the data? No, that should rest squarely with the file system and ait should never delete things unless it is running out of space.
Even worse, Mac apps are trending towars the "save as you go" model of Google Docs, which has the one advantage of you don't lose your work if an app crashes but if you started editing the wrong document, or make some changes and then change your mind and want to revert back to the last saved version you are tearing your hair out. The latter happens to me much more often.
As evident from the comments above, one of OS X's biggest weak points is feature discoverability.
I love how OS X stays out of your way, but most regular users never get to take advantage of greater complexity. You have to be in the mindset of one of 'us' (reading every update to Apple's PR) to get a handle on everything OS X can do.
My 6-year old version of Word 2008 has an option to always make a backup of the previous version when saving, which (unfortunately in this case) is off by default.
When I started working on my thesis, I immediately set up my entire document directory for it to be in Dropbox. At the time I paid extra for versioning but now I think it'd built into even the basic model. This also saved my friend when she was in writeup and someone stole her Macbook.
Then this really isn't a usability issue, if you replace the entire contents of a document with the clipboard, then click or shortcut to save, then click or shortcut to quit the application, that's really a human issue. It's too many steps to be labelled as a usability problem.
> "that's really a human issue ... ⌘-Z should have been adequate."
I hope you don't work in usability.
I've made exactly the mistake described, several times. When making small changes to a bunch of files, it's common to go through the whole open-edit-save-close sequence in a few seconds, and if you've got a few things open and someone's talking to you, it's easy to fuck up.
> I get it, but the convenience of things like ZFS and Time Machine have a cost. It takes time to implement such things and they take resources. And even then a failure is possible.
You need to weigh the development cost of a feature against the cost to the user of not having it times the number of users. It is usually cheaper to make the software do the tricky stuff than to make your users do it.
I get it, but the convenience of things like ZFS and Time Machine have a cost. It takes time to implement such things and they take resources. And even then a failure is possible.
E.g. you decide to do some kind of Garbage Collect on a HD, because you lack disk space and you don't want to buy a disk, but you forgot to backup a file you deleted a month ago.
I'd break it into two categories. There's software that expects you to be an expert.
Then there's software that's designed to allow lay-people to get stuff done with the promise that it will hide the nasty things of the world from them.
Microsoft Word really is the perfect example of this. The main use-case it's built around is being a lovely place for a new user to write and print a small document. It captures users from this simple use-case, and then tries to upsell them to large document and multi-user scenarios with madness like mail-merge wizards and sharepoint.
The promise of Microsoft Word is to bring functionality to users while shielding them from the nasty realities of the world. It's reasonable to be vicious about it when it fails to protect the user from themselves.
What about when they accidently release private information because the information was at some point in the software. I'd rather a single backup system like time machine than every application reinventing the wheel with all the bugs that entails.
That's why it should be the file system storing backups, not the document itself.
One should also consider a logarithmic decrease in backups: while I'm writing, a backup of the state a few seconds ago is useful, but I don't need every second from weeks ago. Say the system keeps a backup of every few seconds for the last few minutes, every few minutes for the last few hours, every few hours for the last few days, every few days for the last few weeks, every few weeks for the last few months, every few months for the last few years--the odds are then pretty good that I'd be able to revert to a version I find useful, but not requiring an awful lot of versions.
Back of the envelope: 5 versions/minute for 5 minutes = 25 versions; 4 versions/hour for 8 hours = 24 versions; 3 versions/day for seven days = 21 versions; 4 versions/week for four weeks = 16 versions; 1 version/month for 4 years = 48 versions, so a grand total of 134 previous versions of a document, which really isn't that much space, particularly assuming efficient differencing algorithms.
Doesn't Word store old data in the .docx, for things like revision diffs and to make saving quicker? Unless the filesize is really small, there might be a way to extract the previous data... Maybe that was only in the old .doc format, though.
OT, but just this week my wife did something that really got me thinking about how far computers haven't come in terms of usability.
I heard her say "O crap" from behind her macbook, and out of habit I came to assist.
For some reason unknown to both of us, she had pasted the text of an email into a document called "thesis.docx", and then saved it.
The text was completely unrelated to "thesis.docx", which of course was not backed up.
Now, I love my wife deeply. And she is no fool. On the contrary, she is a graduate student.
Moreover, I completely understand how something like this can happen. We have two small children, and it was the end of the day. It is just too much to expect of the human mind that one should not say something one doesn't mean.
I felt guilty on behalf of my profession that this was the best we had to offer. Microsoft word on a macbook, and your penultimate version of a file is not backed up. It truly is intolerable.
So, while I have had some of my greatest highs using emacs macros, I somehow feel that the brilliant tooling made by developers for developers never quite percolates into userland.