avva: (Default)
[personal profile] avva
Грубер хорошо пишет в недавней записи (англ.) об окошках с новыми документами в любых приложениях. Нет в наше время никакой причины для того, чтобы данные терялись, если приложение упало или по какой-то причине убито. Сохранять надо все, что пишет (рисует, строит, что угодно) пользователь, в фоновом режиме, каждую минуту (например). Это касается "неназванных" еще документов в той же мере, как и существующих файлов.

Date: 2009-02-21 07:21 pm (UTC)
From: [identity profile] lair.livejournal.com
Потому что если ваш диск вращается со скоростью 7200 оборотов в минуту, то ближайший свободный сектор в худшем случае окажется в районе головки записи через 8,3 миллисекунды
Это если считать, что надо записать один сектор. А если нет? А если свободные сектора не рядом? А если кроме записи нужно что-то еще сделать?

Я не знаю, что такое лайтрум, но если теоретически запись событий в реальном времени возможна, а он не укладывается, значит, он либо неправильно спроектирован, либо неправильно написан, либо операционная система, с которой он используется ("Виндоуз", надо полагать?), не в состоянии обеспечить таую запись.
Я что-то не вижу теоретической возможности записывать в реальном времени произвольное количество произвольных событий.

Системы реального времени обычно все-таки проектируются под конкретную задачу; я не думаю, что вам удастся заставить всех программистов, пишущих приложения под широко распространенную ОС, писать все их программы как системы реального времени.
(deleted comment)

Date: 2009-02-21 07:43 pm (UTC)
From: [identity profile] lair.livejournal.com
Вполне достаточно для того, чтобы записать символ с клавиатуры или описание мазка кисти.
Угу. Если вы хотите писать журнал действий - вам даже хватит. Проблема в том, что для создания нужного experience (все всегда сохранено) иногда нужно сохранять состояние.

Вы слышали что-нибудь про операционные системы реального времени общего назначения (general purpose real time), типа QNX?
Слышал.
(deleted comment)

Date: 2009-02-21 08:00 pm (UTC)
From: [identity profile] lair.livejournal.com
Текущее состояние документа, будь то текст или рисунок или что-угодно, определяется его состоянием в любой предыдущий момент времени (snapshot) и внесёнными изменениями, которые суть действия.
...только в том случае, если каждое действие детерминированно.

Если Вы слышали про QNX, тогда Ваше высказывание о том, что систему реального времени можно создать только для выполнения конкретной задачи, выглядит немного странно.
"A RTOS facilitates the creation of a real-time system, but does not guarantee the final result will be real-time; this requires correct development of the software."

Date: 2009-02-21 11:39 pm (UTC)
From: [identity profile] salas.livejournal.com
А зачем в редакторе (текстовом, графическом, каком угодно) недетерминированные действия?

Date: 2009-02-21 11:42 pm (UTC)
From: [identity profile] lair.livejournal.com
Во-первых, [livejournal.com profile] avva пишет о любых приложениях, а не только о редакторах. Например, в банальном приложении, осуществляющем захват аудио-потока (кстати, это аудио-редактор) содержимое файла после нажатия кнопки "Запись" недетерминировано.

Во-вторых, даже в текстовом редакторе есть недетерминированная операция: вставка текущей даты и времени.

Date: 2009-02-22 12:12 am (UTC)
From: [identity profile] salas.livejournal.com
Приложение, осуществляющее захват аудио-потока, как раз-таки более очевидно, чем текстовый редактор, должно сразу писать на диск — ему, в отличие от текстового редактора, может просто памяти не хватить. А если у нас на диске хранится кусок записи, определяющий изменения, то где же недетерминированность?

А что произойдёт, если после вставки даты и времени нажать undo и redo?

Date: 2009-02-22 12:16 am (UTC)
From: [identity profile] lair.livejournal.com
Приложение, осуществляющее захват аудио-потока, как раз-таки более очевидно, чем текстовый редактор, должно сразу писать на диск — ему, в отличие от текстового редактора, может просто памяти не хватить.
Должно-то должно, но в реальности там все сложнее, и пишет оно всяко не в итоговый файл, а в scratch-буфер.

А что произойдёт, если после вставки даты и времени нажать undo и redo?
Вставка того же текста. Потому что операция "вставка даты" рассматривается undo-механизмом как вставка фиксированного текста.

Date: 2009-02-22 12:28 am (UTC)
From: [identity profile] salas.livejournal.com
не в итоговый файл, а в scratch-буфер.

Как это влияет на тот факт, что запись на диске таки хранится?

операция "вставка даты" рассматривается undo-механизмом как вставка фиксированного текста.

Именно. И где же во вставке фиксированного текста недетерминированность?

Date: 2009-02-22 12:32 am (UTC)
From: [identity profile] lair.livejournal.com
Как это влияет на тот факт, что запись на диске таки хранится?
Буфер частично в памяти находится.

И где же во вставке фиксированного текста недетерминированность?
Чтобы вставка даты стала вставкой фиксированного текста, нужно заменить одну операцию в очереди на другую. А это, в свою очередь, обозначает, что подход "пишем операции, которые производит пользователь (кнопки и мышь)" более не применим.

Date: 2009-02-22 12:38 am (UTC)
From: [identity profile] salas.livejournal.com
>А это, в свою очередь, обозначает, что подход "пишем операции, которые производит пользователь (кнопки и мышь)" более не применим.

Кто-то, кроме вас, в этом треде пользовался понятием операции, определяемой только вызвавшей её кнопкой?

Date: 2009-02-22 12:44 am (UTC)
From: [identity profile] lair.livejournal.com
"Сектор содержит от 512 до 4096 байт. Вполне достаточно для того, чтобы записать символ с клавиатуры или описание мазка кисти. [...] Мы говорим не о произвольном количестве событий, а о событиях, исходящих от пользователя." (http://avva.livejournal.com/2042868.html?thread=59115508#t59115508)

Произвольную операцию невозможно записать на диск за 8 мсек, которые обсуждаются выше по треду. Хотя бы на примере вставки из клипбоарда (кстати, тоже недетерминированная операция) - потому что если в клипбоарде лежит картинка мегов на 800, то скинуть ее на диск за 8 мсек (чтобы превратить операцию в "вставка фиксированной картинки") вряд ли представляется возможным.

Следовательно, одно из двух. Или 8 мсек на запись, о которых идет речь в этом треде, либо запись произвольной операции (а не только создаваемых пользователем событий от устройств ввода).

Date: 2009-02-22 01:02 am (UTC)
From: [identity profile] salas.livejournal.com
Вставка 800М из клипбоарда — это вообще операция не на 8 мс, есть такое. Приложения, для которых именно такая операция типична, действительно заслуживают отдельного разговора.
(deleted comment)

Date: 2009-02-22 09:21 am (UTC)
From: [identity profile] lair.livejournal.com
"Уважаемый [livejournal.com profile] lair" десять лет работает прикладным программистом. Я не учу вас проектировать ОС, я просто говорю, что в программе сделать гарантированное сохранение текущего состояния за 8мсек нельзя.

Date: 2009-03-26 05:02 pm (UTC)
From: [identity profile] os80.livejournal.com
О чём можно говорить с человеком, не прошедшим флюорографию? :-)

Date: 2009-02-22 09:10 am (UTC)
From: [identity profile] lair.livejournal.com
Мало того, что это операцие не на 8 мс сама по себе, так еще и ее логгирование - не на 8 мс.

А "такое приложение" - это любой адекватный растровый редактор.
(deleted comment)

Date: 2009-02-22 09:13 am (UTC)
From: [identity profile] lair.livejournal.com
Конечно. Действия - это Ваши нажатия клавиш и движения мыши. Они детерминированы.
...только их результат для документа недетерминирован. Представьте себе, что я (в виндовом приложении) нажал ctrl-v. Клавиши детерминированы? Детерминированы. А результат? Конечно, нет - он зависит от состояния клипбоарда, который в вашем примере не отслеживается.

Или, скажем, я запустил (мышкой) макрос, который вставляет подпись с текущей датой. Тоже недетерминированная операция.

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 04:33 pm
Powered by Dreamwidth Studios