Live data from Hacker News

Undo

sachagreif.com

31–40 of 100 posts

Re: Undo

#31

I would wager that the reason Undo isn't implemented more often is that it is very difficult. Executing a DELETE statement and deleting a bunch of data is simple. Implementing "undo" is more difficult, especially for browser based software. How long is the undo valid for? Can you undo every action? How many levels of undo do you support? Do you allow an undo for UPDATE's as well (updating a blog post to set it's cont…

You definitely can't undo sending an email notification so additional emails will have to be sent when an action is undone, which in the end will create more problems, annoy or confuse users.

Re: Undo

#32
"Undo" only makes good sense in an app where each user works in her own isolated sandbox. This is a common paradigm on the desktop (e.g. word processing), but less common on the web. As soon as Alice's transaction is visible to Bob, making it undo-able gets much more complex.

Re: Undo

#33
post #30

It's worth noting here, the two instances where the author wished for an "undo" (dropping a data database table and deleting a production server) are very different from what the rest of the article discusses (user-facing apps like Gmail, Photoshop). A database or IaaS application are typically used by administrators, and typically every action is rehearsed in the form of staging testing or automated tests. Furthermo…

It is true though that some of these cloud services should offer some way to enable an extra level before deleting. Azure, for instance, makes it quite easy to nuke a database or storage pool. I'd really prefer if there was a forced sign-in again for such rare options. IIRC, AWS has a 2FA option for deleting S3 buckets or something.

As for databases, always have BEGIN TRAN at the beginning of any commands, with a commented out COMMIT.

Re: Undo

#34

"Undo" only makes good sense in an app where each user works in her own isolated sandbox. This is a common paradigm on the desktop (e.g. word processing), but less common on the web. As soon as Alice's transaction is visible to Bob, making it undo-able gets much more complex.

This is a good point, but as the author points it, it feels so useful in Gmail.

Re: Undo

#35
post #25

Interesting write up. Thanks a lot for writing it Sacha. Okay, so I have a question. Isn't this just a property of the internet as a system? If we remember the history of human-computer interaction on 2D displays, we first really remember what led to the desktop GUI (Xerox Alto, all that stuff). This domain had tons of research poured into it (of which Raskin is a member) - including from the military, for usability…

Great points, I hadn't considered that angle while writing the post. Those are definitely hard problems to solve.

Re: Undo

#36

"Undo" only makes good sense in an app where each user works in her own isolated sandbox. This is a common paradigm on the desktop (e.g. word processing), but less common on the web. As soon as Alice's transaction is visible to Bob, making it undo-able gets much more complex.

This is a good point, but as the author points it, it feels so useful in Gmail.

Gmail undo is basically job cancellation, not really returning a changed state back to its original state.

Gmail can't "undo" once that job has been processed - in other words, when something has been actually done.

Re: Undo

#37

"Undo" only makes good sense in an app where each user works in her own isolated sandbox. This is a common paradigm on the desktop (e.g. word processing), but less common on the web. As soon as Alice's transaction is visible to Bob, making it undo-able gets much more complex.

How does Google Drive handle this?

Re: Undo

#38
post #25

Interesting write up. Thanks a lot for writing it Sacha. Okay, so I have a question. Isn't this just a property of the internet as a system? If we remember the history of human-computer interaction on 2D displays, we first really remember what led to the desktop GUI (Xerox Alto, all that stuff). This domain had tons of research poured into it (of which Raskin is a member) - including from the military, for usability…

REST could accomodate for undo quite fine. The server would just have to return a resource representing the action in the response. The client could then delete the action with another request, which would amount to an undo. This is analogous to the command pattern and would require more effort from the programmer, just like normal undo. You need to keep an action history and make sure that all actions are reversible.

Re: Undo

#39
Undo is hard, not a core competency for most companies, and most users don't care. In fact, many users don't want deletes to be undoable, they want deletes to be delete.

You could probably make a stronger case for improving deletes by overwriting the disk space with garbage and ensuring users that no derivatives were left around. That would be a selling point.

Imagine SnapChat with undo...

Re: Undo

#40

Undo is hard, not a core competency for most companies, and most users don't care. In fact, many users don't want deletes to be undoable, they want deletes to be delete. You could probably make a stronger case for improving deletes by overwriting the disk space with garbage and ensuring users that no derivatives were left around. That would be a selling point. Imagine SnapChat with undo...

Undo is hard? With web apps most developers complain that it's actually too hard to delete things so they use a delete flag instead...
Post reply on HN