OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 18:32

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 60 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
СообщениеДобавлено: Воскресенье, 08 Январь, 2023 18:02 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
Oleg N. Cher писал(а):
А вот что если пользователь не хочет сохранять изменение в исходнике? Он быстро попробовал что-то на коленке, изменив готовый исходник, даже не собираясь это сохранять? Я, кстати, часто так делаю.
а для этого придумана операция «отмена», которая в прозрачно персистентной системе должна тоже сохраняться, и исчезать только по явному требованию пользователя. для удобства в эту последовательность можно добавить закладки, и операцию «отменить всё до последней закладки».

Oleg N. Cher писал(а):
Нет. "Сохранить" нужно. Не надо делать из пользователя дурака. Хочет сохранить - сохранит сам.
а необходимость вручную сохранять документы делает из пользователя мартышку, которая занимается тем, что машина отлично может сделать сама. вы просто привыкли к тому, что костыль «сохранить» — это нечто неотъемлемое. а оно просто костыль, и вполне заменяется более гибкой системой structured undo/redo (которая, кстати, почти прозрачно даёт пользователю возможность иметь несколько версий документа, и переключаться между ними).

впрочем, это мы уже ушли в обсуждение совсем другого вопроса, о Красивой Персистентной Системе Будущего. извините.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 08 Январь, 2023 20:45 
Аватара пользователя

Зарегистрирован: Вторник, 28 Август, 2007 00:55
Сообщения: 520
Откуда: Украина, Днепропетровская обл.
arisu писал(а):
а для этого придумана операция «отмена», которая в прозрачно персистентной системе должна тоже сохраняться, и исчезать только по явному требованию пользователя. для удобства в эту последовательность можно добавить закладки, и операцию «отменить всё до последней закладки».
Ага, то есть, пользователь, который не желает сохранять исходник, должен получить эту фичу катком и отсчитывать сколько операций Undo/Redo надо откатить до того состояния исходника, который ему нужен? Да это Вы предлагаете делать из юзера счастливую мартышку, которая получила всегдашное сохранение, и потом закладки из Undo/Redo и наборы закладок из Undo/Redo, а потом наверное иерархии Undo/Redo, которые будут складываться во вложенные. И всё это вместо простой и логичной операции "сохранить". Мдя уж...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 08 Январь, 2023 21:58 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
какая такая неподъёмная разница между «попечатали, закрыли, открыли заново» и «поставили временну́ю закладку, попечатали, откатились к временно́й закладке»? ну, кроме той, что во втором случае пользователь уверен: никакие его изменения не потеряются в любом случае, даже если он случайно закроет документ, а потом передумает и решит, что изменения таки имело смысл сохранить. в этом случае он откроет документ опять и накатит сохранённое redo.

вы, видимо, никогда не работали с системами, обладающими прозрачной персистентностью и structured undo, поэтому мыслите в терминах «чтение, сохранение, и пошаговая отмена» вместо того, чтобы думать в терминах «состояние документа во времени». save/load — это кривой костыль для фиксации состояния документа в какой-то момент времени, причём этот костыль позволяет сохранить только одно состояние (без переименования). прозрачная персистентность и structured undo же такого ограничения не имеют. более того: с ними вы можете восстановить документ не только по закладкам, но и на любое время по часам; например: «среда, сделай мне это так, как оно было вчера в три часа дня!»

при этом среда сама помнит все деревья изменений и позволяет легко по ним навигировать. пользователю не надо сохранять 100500 промежуточных копий документа под разными именами, а потом искать среди них нужный. пусть машина делает работу, с которой отлично справляется, мы за этим машины и придумывали.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 09 Январь, 2023 21:01 
Аватара пользователя

Зарегистрирован: Вторник, 28 Август, 2007 00:55
Сообщения: 520
Откуда: Украина, Днепропетровская обл.
Я не хочу работать с системами, обладающими прозрачной персистентностью и structured undo, особенно если их будете проектировать Вы. :shock: Шутка. Почти.

Вы предлагаете пользователю вместо его файла сохранять временную закладку с последовательностью Undo/Redo. Лишняя сущность.

Я мыслю в терминах "чистый исходник, который надо сохранить" и "грязный исходник, где я специально накосячил, чтобы посмотреть что будет". И я очень сильно не хочу считать количество Redo, сохранять временную закладку или что-то в этом роде. Меня устраивает "вот это я сохраню, а вот это нет". Я лучше знаю что мне нужно сохранить, а что нет. И не хочу поручать это более или менее тупой машинной (беспощадной) логике. Без переусложнения задачи для мозга в виде лапши Redo.

«среда, сделай мне это так, как оно было вчера в три часа дня!» - тут я уже возьму Git. Для 99% случаев среда в три часа дня не нужна.

100500 промежуточных копий документа я не сохраняю. Git с этим справляется лучше.

Вы мне напоминаете образ "быстро прибежал, нашкодил как сам знал и на всех обиделся за непонимание" ;) Время нас рассудит. Но мне Ваши наборы временных закладок лапши Undo кажутся избыточными. Не требуется ничего лучше того, что есть в Word или Sublime.

А Вы зачем выносите на обсуждение, если не прислушиваетесь к мнениям, расходящимся с Вашими?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 09 Январь, 2023 21:17 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Есть САПР системы, где сохранения дерева операций по созданию какой-нибудь дивной конструкции очень здорово хранить. В целом, если такая функциональность будет продумана и проработана на базе Блэкбокса - это супер. Есть сомнения, что это надо именно "из коробки", и именно для текстов. А также и то, что это надо для всех файлов ODC по дефолту, так как многие совсем не текстовые файлы могут быть весьма и весьма внушительного размера, и операций над ними может быть много много. И поэтому он разрастётся до каких-то неимоверных размеров.

То есть получается, что речь идёт про какой-то частный случай работы с Stores.Store. Интересная стратегия, очень любопытно было бы подобный проект поверх Блэкбокса посмотреть для применения в разработке какой-то САПР системы. Кстати на Блэкбоксе какая-то такая система для VAG вроде бы и была когда-то сделана. Может кто-то помнит?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 09 Январь, 2023 21:27 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
я в этом направлении (structured undo, и временны́е деревья) думаю потихоньку. конечно, там нужен механизм opt-out (или opt-in, это не так важно), и какой-то способ сохранять дельты (то есть, научить actions сохраняться), чтобы не тормозило при обычной работе. ожидать полноценной реализации от меня в ближайшее время, конечно, не стоит, там думать много надо. но надо таки будет попробовать как-нибудь выкатить PoC, хотя бы для текстов — чтобы люди могли вживую механизм пощупать. а то на пальцах объяснять сложно: это как пытаться человеку, привыкшему к visual studio, объяснить, что такое компонентная среда.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 09 Январь, 2023 21:32 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
Oleg N. Cher писал(а):
Вы мне напоминаете образ "быстро прибежал, нашкодил как сам знал и на всех обиделся за непонимание" ;)
я совершенно не обижаюсь. если вас задели мои слова про то, что «вы, видимо, не работали» — простите, такой цели не было. это просто моё предположение.

Oleg N. Cher писал(а):
Но мне Ваши наборы временных закладок лапши Undo кажутся избыточными. Не требуется ничего лучше того, что есть в Word или Sublime.
«visual studio отлично справляется с функцией IDE, ничего лучше нам не надо!»

Oleg N. Cher писал(а):
А Вы зачем выносите на обсуждение, если не прислушиваетесь к мнениям, расходящимся с Вашими?
потому что я вообще почти никогда не прислушиваюсь к мнениям, только к аргументам.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 09 Январь, 2023 22:43 
Аватара пользователя

Зарегистрирован: Воскресенье, 09 Декабрь, 2018 15:14
Сообщения: 113
Откуда: Equestria
Придется как минимум делать Stores.Operation как расширение Stores.Store. И заставлять абсолютно везде делать операции сохрянемыми. Хорошо так отломает совместимость с кучей существующего кода и, возможно, усложнит его создание. Это опционально не получится. Фича прикольная, но сомнительная, мне кажется оно не стоит усилий и поломки хоть какой-то совместимости с другими ящиками.
А модели где это реально надо и так могут при желании сделать сохранение операций над собой. Можно упростить, конечно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 09 Январь, 2023 23:27 
Аватара пользователя

Зарегистрирован: Вторник, 28 Август, 2007 00:55
Сообщения: 520
Откуда: Украина, Днепропетровская обл.
arisu писал(а):
потому что я вообще почти никогда не прислушиваюсь к мнениям, только к аргументам.
"Только к аргументам, которые я считаю убедительными, а мало ли чего я считаю". Делать проще и понятнее, чтобы мозг юзера не путался в Redo, а был свободен для задачи - это не аргумент? Так это для Вас не аргумент. Хорошо, что тогда аргумент?

Между прочим, я не исключаю полезности персистентных состояний, просто не в контексте работы программиста или наборщика текстов, где это нужно по минимуму. Когда-то на пишущих машинках печатали, и это было большим прогрессом. Машинка с трёмя засунутыми листами вперемешку с копиркой ошибок не прощает, так ведь аккуратнее работать учились (поэтому). А попытка всех осчастливить автосохранением - ну как-то сомнительно. Аргументации не вижу ;)

А что плохого в явном сохранении документа? Забыл сохранить - среда напомнит. Специально не сохранил - среда не будет мешать. А то мне уже в кошмарном сне снится как я буду обманывать автосохранялку, чтобы не считать количество Undo. Аргумент жеж ;)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Январь, 2023 00:19 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
Oleg N. Cher писал(а):
Делать проще и понятнее, чтобы мозг юзера не путался в Redo, а был свободен для задачи - это не аргумент?
нет. вы не доказали, что это проще и понятней, а только постулировали. привычней — да. но привычка — далеко не всегда показатель того, что существующее решение лучше других. для того, чтобы это доказать, нужны натурные тесты с персистентной системой в BBCB. пока что это невозможно в связи с отсутствием оной. поэтому данное утверждение является вашим мнением, но не аргументом.

Oleg N. Cher писал(а):
Аргументации не вижу ;)
потому что у меня её тоже почти нет (за исключением замечания об умножении сущностей ниже) — в связи с тем, что см. выше. поэтому и надо сделать: практика — критерий истины.

Oleg N. Cher писал(а):
А что плохого в явном сохранении документа?
то, что у нас вместо одной сущности «документ» — появляется две: сам документ, и его образ на диске. умножение сущностей без нужды. они разные, потому что образ на диске не сохраняет полное состояние документа.

Oleg N. Cher писал(а):
чтобы не считать количество Undo.
я совершенно не понимаю, откуда у вас взялась идея «считать количество undo». если вы так любите именно сохранения — то какая для вас разница, нажать кнопочку «сохранить на диск», или нажать кнопочку «сохранить временну́ю метку»? вы можете дать этой метке имя, никаких проблем. вот вам ваше сохранение, откат к которому здесь будет равносилен загрузке с диска. с той только разницей, что вы не потеряете ваши эксперименты: они останутся в другой ветке, и вы всегда сможете к ним вернуться, если захотите. или вайпнуть эту вре́менную ветку, если она вам больше не нужна.

p.s.: дело в том, что я реализовывал подобную систему для некоторых специфических нужд. поэтому я не просто воображаю, как она должна работать, а реально с ней работал. но предъявить её я не могу, поэтому надо сделать заново, на базе BBCB, например. чтобы это можно было натурально пощупать руками.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Январь, 2023 00:29 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
SovietPony писал(а):
мне кажется оно не стоит усилий и поломки хоть какой-то совместимости с другими ящиками.
если сидеть и постоянно бояться поломать совместимость — то создать что-то новое будет попросту невозможно. иногда новое подразумевает, что старое всё — больше не походит, его надо выкинуть. не забыв предварительно извлечь из этого старого всё полезное, конечно. код от ETHOS так-то не будет работать на Project Oberon, например. однако ж её создателей это не остановило. как и создателей A2.

несмотря на то, что у нас таки Box — иногда имеет смысл to think out of the box. ;-) старые версии BBCB ведь никто не собирается сжигать на кострах.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Январь, 2023 00:42 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
Oleg N. Cher писал(а):
А что плохого в явном сохранении документа? Забыл сохранить - среда напомнит. Специально не сохранил - среда не будет мешать.
я, кажется, забыл довольно (для меня) очевидное: structured undo потому и structured, что имеет некую структуру и организацию. в том числе автоматические чекпоинты вида: «в последний раз этот документ закрывали в такое-то время». вот это ваше сохранение, автоматическое. вы открыли документ, вы экспериментируете, потом открываете undo browser — и видите там автоматическую метку: «последнее закрытие — тогда-то. снова документ был открыт тогда-то. сейчас — активен.» всё, что надо сделать, чтобы вернуться обратно — активировать последнюю метку «был снова открыт». никто не мешает вам сделать в среде команду «откатить документ к состоянию последнего открытия и закрыть». всё, одним нажатием вы ваши эксперименты из актуальной версии документа убрали (но они остались как ответвление от последнего закрытия).

если вам так будет удобней об этом думать — это своеобразная система контроля версий, но основаная не на коммитах, а на времени произведения операций.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Январь, 2023 00:52 
Аватара пользователя

Зарегистрирован: Вторник, 28 Август, 2007 00:55
Сообщения: 520
Откуда: Украина, Днепропетровская обл.
arisu писал(а):
то, что у нас вместо одной сущности «документ» — появляется две: сам документ, и его образ на диске. умножение сущностей без нужды. они разные, потому что образ на диске не сохраняет полное состояние документа.
Как правило, я легко и охотно закрываю редактор, теряю все Undo, но абсолютно не страдаю по этому поводу. Они мне просто не нужны, эти массивы Undo. Каждый день я тоже теряю, в воспоминаниях остаются только самые важные моменты. Которые, кстати, на примере документов удобно зафиксировать в системе контроля версий. У меня есть фото памятных моментов, но нет видеосъёмки про каждый день 24/7. Это не нужно.

arisu писал(а):
я совершенно не понимаю, откуда у вас взялась идея «считать количество undo». если вы так любите именно сохранения — то какая для вас разница, нажать кнопочку «сохранить на диск», или нажать кнопочку «сохранить временну́ю метку»?
Но я не хочу никаких временных меток, чтобы не засорять ими голову. Сверхудобный на чей-то взгляд редактор может оказаться шкафистым шкафом, в котором пользователь просто не захочет разбираться. Да, я считаю, что слишком большое удобство балует и развращает, но то, что предлагаете Вы - это даже не удобство, а просто прихоть ;) Ну не заменит эта байда с полным состоянием документа от самого его начала системы контроля версий. Это всё равно будет неудобно. Мнение, не аргумент ;) Вы же принимаете аргументом только то, что считаете нужным. Да и не только Вы. В общем, ладно, я завязываю с темой.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Январь, 2023 00:57 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
Oleg N. Cher писал(а):
Вы же принимаете аргументом только то, что считаете нужным. Да и не только Вы.
просто намекну: «чем кумушек считать, трудиться — не лучше ль на себя, кума, оборотиться?»

у меня есть (довольно объёмное) психофизиологическое обоснование того, почему эта система более естественна для человека, но «всё равно ненужно» не перешибёт ничего, увы. так что да: оно того не стоит.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Январь, 2023 22:54 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
А это обоснование учитывает случайное попадание в историю данных, которые ни в коем случае не должны быть сохранены?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Январь, 2023 23:25 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
errare humanum est… именно для этого историю можно с любого места просто отрезать, и она исчезнет навсегда.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Январь, 2023 23:40 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
Такие вещи легко выпадают из внимания. Даже с сознательным версионированием люди чудят, а с автоматическим начнётся новая эра.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Январь, 2023 23:45 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
У Блэкбокса есть инструмент под названием штамп, который сохраняет фингерпринты предыдущих версий файлов, а мог бы и сами файлы сохранять. Я считаю, что вот штамп и надо доделывать. Кто хочет хранить историю версий файла, вставляет штамп, и через него может к версиям обращаться.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 10 Январь, 2023 23:49 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1163
проблема с тем, что это явное действие. я же веду речь про то, чтобы система делала это сама, не заставляя пользователя делать нечто вручную.

впрочем, одно другому совершенно не мешает: доделывать штампы, конечно же, можно и нужно, пока ничего другого нет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 11 Январь, 2023 00:01 
Аватара пользователя

Зарегистрирован: Вторник, 28 Август, 2007 00:55
Сообщения: 520
Откуда: Украина, Днепропетровская обл.
Я ещё вставлю пять копеек. Экий вы непрошибаемый товарищ.

arisu писал(а):
у меня есть (довольно объёмное) психофизиологическое обоснование того, почему эта система более естественна для человека
Я соглашусь, что такой подход может быть более приемлем для людей с определённым складом ума. Но - "отучаемся говорить за всех" (c) Древний постулат сети FidoNet. "Вам полезно" - ещё не значит "нам полезно".

arisu писал(а):
проблема с тем, что это явное действие. я же веду речь про то, чтобы система делала это сама, не заставляя пользователя делать нечто вручную.
А заставляя пользователя делать вручную нечто более неестественное и ему несвойственное - обманывать систему, если ему не нужно что-то сохранять.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 60 ]  На страницу Пред.  1, 2, 3

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB