Девиртуализация
Sep. 23rd, 2004 04:35 pmНесколько дней назад в ABBYYевой маршрутке я в лицо познакомилась со своей френдом по имени
baghera. А сегодня в маршрутке был еще и
asd, с которым я тоже дружила (френжила?) пока только виртуально.
Оба -- замечательные.
Отчасти, например, потому, что а) показали мне столовую, б) не послали меня подальше, когда я за едой завела нудеж об хранении и синхронизации файлов.
В процессе нудежа был озвучен такой вопрос. Ясно, что запросы на подтверждение удаления (а также переименования, копирования и т.д.) пользователь, как правило, подтверждает совершенно машинально, потому что привык к ним. Реализована ли где-нибудь такая мулька: запрос выглядит каждый раз по-разному -- то красный, то зеленый, то крупным шрифтом, то мелким, -- чтобы он действительно привлекал к себе внимание? Если да, то где? Если нет, то нужна ли такая возможность?
Оба -- замечательные.
Отчасти, например, потому, что а) показали мне столовую, б) не послали меня подальше, когда я за едой завела нудеж об хранении и синхронизации файлов.
В процессе нудежа был озвучен такой вопрос. Ясно, что запросы на подтверждение удаления (а также переименования, копирования и т.д.) пользователь, как правило, подтверждает совершенно машинально, потому что привык к ним. Реализована ли где-нибудь такая мулька: запрос выглядит каждый раз по-разному -- то красный, то зеленый, то крупным шрифтом, то мелким, -- чтобы он действительно привлекал к себе внимание? Если да, то где? Если нет, то нужна ли такая возможность?
no subject
Date: 2004-09-23 06:26 pm (UTC)Это означает, что такой undo будет не откатом во времени, а именно "обратным действием" -- простая метафора не работает.
no subject
Date: 2004-09-23 07:02 pm (UTC)Пусть бы уже, действительно, пришел какой-нибудь лесник в духе Беркгаута и меня прогнал.
no subject
Date: 2004-09-23 08:47 pm (UTC)Вообще же:
1. Как правило, undo устроен не так. Потому что обычно состояние системы большое, а изменение маленькое. Представь себе, что ты редактируешь мегабайтный файл и стерла в нем букву. Так, как ты описываешь, придется хранить текущее состояние файла плюс такое же огромное предыдущее (и так на всю глубину undo). На самом деле достаточно запомнить, что это была за буква и где стояла.*
2. Видимо, идея undo в принципе хорошо подходит далеко не ко всем программам. Она идеальна, когда есть активный пользователь и пассивные данные, с которыми он работает и которые не меняются без его ведома. А как только начинается взаимодействие с внешним миром, undo теряет смысл. Что такое, например, undo в чате?
3. Как только система становится многопользовательской, даже обычные файлы оказываются активной средой -- с ними работают другие.
---
*Примечание для программистов: с другой стороны, редактор может быть построен на каких-нибудь Окасакинских (http://www-2.cs.cmu.edu/~rwh/theses/okasaki.pdf) структурах -- и тогда, действительно, достаточно сохранять копию, и больших потерь не будет, поскольку большая часть структуры разделяется.
no subject
Date: 2004-09-24 01:46 pm (UTC)Унду в системе типа uupc -- чтобы равносильно стиранию письма перед отправкой, пока оно лежит-копится в спуле. %-)
no subject
Date: 2004-09-23 07:56 pm (UTC)Ну, например, можно ввести понятие "общение с внешним миром". То есть, все действия, приводящие к выдаче некоторого внешнего воздействия (внешнего по отношению к выч. системе и пользователю), не могут быть откатываемыми (или могут быть, но только в той части, которая "осталась" внутри выч. системы). Тогда все действия, "пересекающие" границы "выч. система + один ее пользователь" объявляются внешними воздействиями и их результаты не откатываются. Пример - в /tmp лежал файл, пользователь 1 его стер, пользователь 2 решил его открыть и обломался, пользователь 1 отменил удаление файла. Файл обратно появился, но пользователь 2 уже успел обломаться.
no subject
Date: 2004-09-23 08:52 pm (UTC)Кроме того, одно неотменимое действие закрывает доступ ко всем отменимым, которые были до него.
Беркгаут, ау! Сне-гу-роч-ка!
no subject
Date: 2004-09-27 10:22 am (UTC)no subject
Date: 2004-09-27 10:57 am (UTC)А нельзя так: Вася стирает файл, а он на самом деле остается гдубоко в системе -- в последней версии. Потом Петя открывает файл на запись, а ему система говорит: знаешь, файл я тебе открыть могу, но вообще-то его Вася уже стер. Хочешь -- восстанавливай, редактируй. Петя говорит: давай, хочу. Потом Вася говорит системе: а восстанови-ка мне файл! А система ему: тебе как, в твоей версии, как было перед удалением, или в Васиной новой? Дальше разбираются Петя с Васей лично.
no subject
Date: 2004-09-27 12:15 pm (UTC)Грубо говоря, в качестве примера могу привести переставление стула в комнате из одного положения в другое. Что, никогда не случалось видеть, как муж переносит обратно стул, который ты 10 минут назад оттуда переставила? И что, в итоге работа кончается, и начинается перетягивание стула?
Я, впрочем, не имел в виду, что система достанет Пете файл, удаленный Васей. Я имел в виду, что система расскажет Пете, что файл удален. Если Петя знает, что он там был, и имеет право его восстановить - результатом будет восстановленный файл, и Васе скажут "ваш файл восстановлен еще вчера". Если не имеет права (в нашем исходном примере, с /tmp - не имеет) - он может вступить во взаимодействие с Васей уже на этом этапе. Если этого почему-то не получилось, он может попробовать еще раз послезавтра - вдруг Вася завтра решит его восстановить?
совсем в дебри ущли
Date: 2004-09-27 08:25 pm (UTC)Re: совсем в дебри ущли
Date: 2004-09-28 01:41 pm (UTC)Re: совсем в дебри уШли
Date: 2004-09-28 01:46 pm (UTC)...Если этого почему-то не получилось, он может попробовать еще раз послезавтра - вдруг Вася завтра решит его восстановить?
Это же общее рассуждение, а не про конкретною ситуацию.
Re: совсем в дебри уШли
Date: 2004-09-28 02:54 pm (UTC)> Это же общее рассуждение, а не про конкретною ситуацию
Для опровержения общего утверждения достаточно единственного контрпримера. Программа пятого класса современной неплохой школы.
переход на личности
Date: 2004-09-28 06:28 pm (UTC)Re: переход на личности
Date: 2004-09-28 06:43 pm (UTC)