Здравствуйте, VladD2, Вы писали:
VD>Сохранением инфарианта программы. Ведь вылет программы может быть связан именно с этим. И если настройки запомнить сразу, а не после того как будет понятно, что приложение не вылетело, то приложение может начать вылетать при запуске. VD>Так что это правильно. Не правильно то, что многие приложения не имеют возможности сохранить состояние вручную. Например, мне очень нравится как это сделано в Total comander.
Неправда ваша. Действительно хорошо сделанные программы сохраняют настройки при нажатии кнопки OK, а при запуске после сбоя предлагают использовать предыдущие настройки или настройки по умолчанию. Примеры: Unreal Tournament, Windows Media Player, Microsoft Windows XP
C:\Documents and Settings\Administrator\Application Data\Mozilla\Firefox\Profiles\ze4jhb7s.default
M>Это путь к моему текущему профайлу. при установке системы для того, чтобы восстановить вид Файрфокса (все плагины, настройки и так далее) достаточно скопировать всю эту папку в новый профиль. Одно но — этот профиль еще найти надо. потому что не надо спутать со следующим: M>
C:\Documents and Settings\Administrator\Local Settings\Application Data\Mozilla\Firefox\Profiles\ze4jhb7s.default
Все же рекомендую почитать MSDN. Выбор этих мест — неслучаен. Если все твои программы ведут себя нормально, т.е. в соответствии с рекомендациями, то геморрою — минимум. Потому что все волшебным образом работает. И восстанавливается, и копируется.
А вот разбрасывание файлов настроек где попало (рядом с екзешником, в documents and settings, etc) чревато тем, что в мало-мальски нестандартной ситуации программа просто не заработает:
— у пользователя нет прав локального админа. Упс, все любители писать данные рядом с екзешником побрились начисто.
— пользователь зашел в сеть с другого компа. Упс, все настройки, уехавшие в Local Settings, остались там.
Есть еще много сценариев. 99% из них учитываются теми парнями, которые придумывают эти спецификации. Типичный программер нихрена про это не знает, потому что он не занимается эксплуатацией софта в организации с 500+ компами. Не надо судить с колокольни такого невежественного анонима.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Mamut, Вы писали:
M>У меня вопрос. Чем обуславливается сохранение настроек не при нажатии OK в соответствующем диалоге, а при выходе из программы?
Сохранением инварианта программы. Ведь вылет программы может быть связан именно с этим. И если настройки запомнить сразу, а не после того как будет понятно, что приложение не вылетело, то приложение может начать вылетать при запуске.
Так что это правильно. Не правильно то, что многие приложения не имеют возможности сохранить состояние вручную. Например, мне очень нравится как это сделано в Total comander.
... << RSDN@Home 1.2.0 alpha rev. 620>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, wildwind, Вы писали:
M>>Вообще-то здесь уже другой вопрос по юзабилити. Система не предоставляет унифицированного универсального способа сохранения и восстановления настроек и данных — каждый изголяется, как только может.
W>Новсем наоборот — и предоставляет, и в MSDN четко расписано что и куда сохранять. Изгаляются те, кто не читает доку.
Ага. В каждой ОС они чётко расписывают, что и куда сохранять. По-новому.
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, Шахтер, Вы писали:
Ш>>А типа проверять корректность настроек -- это индусы запрограммировать считают ниже своего достоинства?
К>Например, достаточно в браузере указать домашнюю страницу, которая его убивает.
В подобных ситуациях стоит предусмотреть механизм восстановления после фатальной ошибки.
Типа last good settings.
Вообще, undo бывает полезно не только в текстовых редакторах.
Здравствуйте, Mamut, Вы писали:
M>Что меня еще раздражает ... Я понимаю, что сейчас на такие мелочи не стоит обращать внимания... А может все-таки стоит...)
Пока ветку не перекинули во флейм, предлагаю завязывать с оным.
А по-простому скажу: из-за того, что у тебя сглючил комп, не стоит поднимать столько шуму. Да, неприятно, да, потерянное время... Но не стоит оно того. Нервы они дороже.
VD>Сохранением инфарианта программы. Ведь вылет программы может быть связан именно с этим. И если настройки запомнить сразу, а не после того как будет понятно, что приложение не вылетело, то приложение может начать вылетать при запуске.
Ага, есть такое. Правда, не помню, когда в последний раз сталкивался с тем, чтобы изменение нестроек убивало программу.
На самом деле, раздражает, наверное, то, что все же есть настройки, которые не должны провоцировать вылет программы — "always on top" в Винампе, единицы измерения в Фотошопе, history в Internet Explorer'e, позиция в форуме в RSDN@Home , расположение тулбаров в MS Word'e... А не сохраняются
VD>Так что это правильно. Не правильно то, что многие приложения не имеют возможности сохранить состояние вручную. Например, мне очень нравится как это сделано в Total comander.
Здравствуйте, Mamut, Вы писали:
M>А фиг его знает. Может и в Documents and Settings — но вот за сохранение данных в Documents and Settings я бы тоже .. хм.. расстреливал. После того, как сэйвы Need For Speed оказались в Documents and Settings -> Application Data
Это почему?
M>Вообще-то здесь уже другой вопрос по юзабилити. Система не предоставляет унифицированного универсального способа сохранения и восстановления настроек и данных — каждый изголяется, как только может.
Новсем наоборот — и предоставляет, и в MSDN четко расписано что и куда сохранять. Изгаляются те, кто не читает доку.
Имхо, это в "Философию". Если что не так, отфутбольте, куда надо
У меня вопрос. Чем обуславливается сохранение настроек не при нажатии OK в соответствующем диалоге, а при выходе из программы?
У меня тут комп вылетел... Winamp, Photoshop, Dreamweaver, RSDN@Home, Windows Explorer — во всех сбросились те настройки, что я изменил в промежутке между запуском программы и вылетанием компьютера.
При этом, скажем Shareaza и BSPlayer и ухои не повели. Изменил — так изменил.
В чем глубинный философский смысл такой свиньи?
... << RSDN@Home 1.2.0 alpha rev. 619>>
11.01.06 21:05: Перенесено из 'Философия программирования'
Здравствуйте, Mamut, Вы писали:
M>Ага, есть такое. Правда, не помню, когда в последний раз сталкивался с тем, чтобы изменение нестроек убивало программу.
Видимо потму-что большинство из них сохраняет настройки при выходе.
M>На самом деле, раздражает, наверное, то, что все же есть настройки, которые не должны провоцировать вылет программы — "always on top" в Винампе, единицы измерения в Фотошопе, history в Internet Explorer'e, позиция в форуме в RSDN@Home , расположение тулбаров в MS Word'e... А не сохраняются
Согласен, иногда кое-что раздражает.
VD>>Так что это правильно. Не правильно то, что многие приложения не имеют возможности сохранить состояние вручную. Например, мне очень нравится как это сделано в Total comander.
M>А как? А то я им не пользуюсь...
Менюшка есть. Выбирашь пунктик "Сохранить настройки" и они тот час же сохраняются.
... << RSDN@Home 1.2.0 alpha rev. 620>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Mamut, Вы писали:
M>>У меня вопрос. Чем обуславливается сохранение настроек не при нажатии OK в соответствующем диалоге, а при выходе из программы?
VD>Сохранением инварианта программы. Ведь вылет программы может быть связан именно с этим. И если настройки запомнить сразу, а не после того как будет понятно, что приложение не вылетело, то приложение может начать вылетать при запуске.
Инвариант программы -- это что? Вылетит -- не вылетит?
А типа проверять корректность настроек -- это индусы запрограммировать считают ниже своего достоинства?
Здравствуйте, Шахтер, Вы писали:
Ш>Инвариант программы -- это что? Вылетит -- не вылетит? Ш>А типа проверять корректность настроек -- это индусы запрограммировать считают ниже своего достоинства?
Я лично сужу так. Если они в состоянии, то программа не вилетит и настройки один фиг сохранятся. А если вылетит, то хотя бы я не получу вылет при загрузке.
Хотя конечно бывают случаи когда можно обойтись отдельным тестирвоанием. Ну, как в играх при переключении видео-режимов.
... << RSDN@Home 1.2.0 alpha rev. 620>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Шахтер, Вы писали:
Ш>А типа проверять корректность настроек -- это индусы запрограммировать считают ниже своего достоинства?
Например, достаточно в браузере указать домашнюю страницу, которая его убивает. Причём не лазать в настройки, а просто подтвердить действие скрипта на убийственной странице.
Ш>>А типа проверять корректность настроек -- это индусы запрограммировать считают ниже своего достоинства?
К>Например, достаточно в браузере указать домашнюю страницу, которая его убивает. Причём не лазать в настройки, а просто подтвердить действие скрипта на убийственной странице.
Или ещё вариант, менее трагичный: увеличить разрешение экрана (или включить второй экран) и угнать главное окно программы туда. Затем вернуть разрешение обратно...
Без эбонитовой палочки — попробуй сделай окно видимым.
Здравствуйте, Кодт, Вы писали:
Ш>>>А типа проверять корректность настроек -- это индусы запрограммировать считают ниже своего достоинства?
К>>Например, достаточно в браузере указать домашнюю страницу, которая его убивает. Причём не лазать в настройки, а просто подтвердить действие скрипта на убийственной странице.
К>Или ещё вариант, менее трагичный: увеличить разрешение экрана (или включить второй экран) и угнать главное окно программы туда. Затем вернуть разрешение обратно... К>Без эбонитовой палочки — попробуй сделай окно видимым.
А при старте программы проверять местоположение окна и репозиционировать его если что?
Ш>>>А типа проверять корректность настроек -- это индусы запрограммировать считают ниже своего достоинства?
К>>Например, достаточно в браузере указать домашнюю страницу, которая его убивает. Причём не лазать в настройки, а просто подтвердить действие скрипта на убийственной странице.
К>Или ещё вариант, менее трагичный: увеличить разрешение экрана (или включить второй экран) и угнать главное окно программы туда. Затем вернуть разрешение обратно... К>Без эбонитовой палочки — попробуй сделай окно видимым.
Хых. В винде есть глюк, работает почти для всех окон. Я, правда, последовательность действий не помню По-моему, три раза подряд минимизировать/восстановить окно программы через трей... В общем, не помню. Результат — основное окно испытуемой программы уходит на координаты, примерно -1000, -1000 или что-то вроде Если бы не комбинация Alt+Space — Move, я бы давно повесился...
Здравствуйте, Mamut, Вы писали:
M>У меня тут комп вылетел... Winamp, Photoshop, Dreamweaver, RSDN@Home, Windows Explorer — во всех сбросились те настройки, что я изменил в промежутке между запуском программы и вылетанием компьютера. M>При этом, скажем Shareaza и BSPlayer и ухои не повели. Изменил — так изменил. M>В чем глубинный философский смысл такой свиньи?
Я думаю, дело в том, что Winamp, Photoshop и др. сохраняют свои настройки в реестре (после "Ok"), а Shareaza и BSPlayer — в файлах; или тоже в реестре, но с требованием немедленной записи на диск.
Какой подход лучше — неочевидно. По мне так нет смысла постоянно шуршать диском, как в времена DOS. А система должна работать стабильно. Разработчику же, у которого вероятность сбоя высока, наверное надо где-то подкрутить политику кэширования реестра.
Re[4]: Сохранение настроек
От:
Аноним
Дата:
12.01.06 06:45
Оценка:
Здравствуйте, Кодт, Вы писали:
К>Например, достаточно в браузере указать домашнюю страницу, которая его убивает. Причём не лазать в настройки, а просто подтвердить действие скрипта на убийственной странице.
Так можно открыть опции через Control Panel -> Internet Options и поменять.
Здравствуйте, Аноним, Вы писали:
К>>Например, достаточно в браузере указать домашнюю страницу, которая его убивает. Причём не лазать в настройки, а просто подтвердить действие скрипта на убийственной странице.
А>Так можно открыть опции через Control Panel -> Internet Options и поменять.
W>Какой подход лучше — неочевидно. По мне так нет смысла постоянно шуршать диском, как в времена DOS. А система должна работать стабильно. Разработчику же, у которого вероятность сбоя высока, наверное надо где-то подкрутить политику кэширования реестра.
Насколько я понимаю, МС сейчас пропагандирует хранение настроек в XML-файлах возле приложения
M>>Насколько я понимаю, МС сейчас пропагандирует хранение настроек в XML-файлах возле приложения
К>Что, прямо в program files? К>И как это вяжется с разделением прав пользователей?
А фиг его знает. Может и в Documents and Settings — но вот за сохранение данных в Documents and Settings я бы тоже .. хм.. расстреливал. После того, как сэйвы Need For Speed оказались в Documents and Settings -> Application Data
Вообще-то здесь уже другой вопрос по юзабилити. Система не предоставляет унифицированного универсального способа сохранения и восстановления настроек и данных — каждый изголяется, как только может.
M>>А фиг его знает. Может и в Documents and Settings — но вот за сохранение данных в Documents and Settings я бы тоже .. хм.. расстреливал. После того, как сэйвы Need For Speed оказались в Documents and Settings -> Application Data
W>Это почему?
Ну, полный путь был типа Documents and Settings -> Application Data -> Electronic Arts -> NFS -> Saves
Где-то начиная с Dungeon Seige, Микрософтовские игры тоже в Documents and Settings сохраняются
Главный минус — при переустановке системы сэйвы хрен найдешь. То есть, я-то знаю А простой юзер?
M>>Вообще-то здесь уже другой вопрос по юзабилити. Система не предоставляет унифицированного универсального способа сохранения и восстановления настроек и данных — каждый изголяется, как только может.
W>Новсем наоборот — и предоставляет, и в MSDN четко расписано что и куда сохранять. Изгаляются те, кто не читает доку.
Ну, написано, что надо в Documents and Settings сохранять. В последнее время все только так и елают. А вот возможности восстановить эти самые данные после краха и/или переустановки системы кроме, как ручками, нельзя. Поэтому я был бы очень рад, если бы система позволяла это дело отслеживать. Хотя бы application-specific registry/data-base, хранящаяся рядом с самим приложением. А то ведь все равно приходится изголяться
C:\Documents and Settings\Administrator\Application Data\Mozilla\Firefox\Profiles\ze4jhb7s.default
Это путь к моему текущему профайлу. при установке системы для того, чтобы восстановить вид Файрфокса (все плагины, настройки и так далее) достаточно скопировать всю эту папку в новый профиль. Одно но — этот профиль еще найти надо. потому что не надо спутать со следующим:
C:\Documents and Settings\Administrator\Local Settings\Application Data\Mozilla\Firefox\Profiles\ze4jhb7s.default
Opera:
В том же стиле:
C:\Documents and Settings\Administrator\Application Data\Opera\Opera\profile
SharpReader:
C:\Documents and Settings\Administrator\Application Data\SharpReader
Главный, самый необходимфй пользователю файл, subscriptions.xml, хранится там
И это при том, что папка Application Data — read-only и hidden
Здравствуйте, Mamut, Вы писали:
M>Главный минус — при переустановке системы сэйвы хрен найдешь. То есть, я-то знаю А простой юзер?
А простой юзер систему не переустанавливает, пойми.
M>Ну, написано, что надо в Documents and Settings сохранять. В последнее время все только так и елают. А вот возможности восстановить эти самые данные после краха и/или переустановки системы кроме, как ручками, нельзя.
После краха за дело берется уже не совсем простой юзер (пусть в том же лице). А если это переустановка без краха или перенос на другую машину, то на этот случай имеется "Мастер переноса файлов и параметров" и User State Migration Tool. Я правда не знаю точно, перенесут ли они сейвы NFS, но думаю, что перенесут.
M>Поэтому я был бы очень рад, если бы система позволяла это дело отслеживать. Хотя бы application-specific registry/data-base, хранящаяся рядом с самим приложением. А то ведь все равно приходится изголяться
Немного подумай о корпоративной среде, ограниченных правах и т.д. А то мы все привыкли к работе под админом и переустановке винды в качестве универсального сдедства, и профилактики, и лечения от всех болезней. А в жизни бывает и по-другому .
M>>Главный минус — при переустановке системы сэйвы хрен найдешь. То есть, я-то знаю А простой юзер?
W>А простой юзер систему не переустанавливает, пойми.
Ну, как сказать. Переустанавливает Но даже умеющему переустанавливать ситему юзере (назовем его advanced user ) найти настройки непонятно где
почти нереально. Я уже не помню, как я их находил. Возможно даже через Process Explorer
M>>Ну, написано, что надо в Documents and Settings сохранять. В последнее время все только так и елают. А вот возможности восстановить эти самые данные после краха и/или переустановки системы кроме, как ручками, нельзя.
W>После краха за дело берется уже не совсем простой юзер (пусть в том же лице). А если это переустановка без краха или перенос на другую машину, то на этот случай имеется "Мастер переноса файлов и параметров" и User State Migration Tool. Я правда не знаю точно, перенесут ли они сейвы NFS, но думаю, что перенесут.
Ни разу не пользовался, хоть и знаю, что такие существуют. Я даже не знаю, где они находятся и как запускаются.
О! Запустил File and Settings Transfer Wizard. Application Data он не переносит, надо это дело указывать ручками А User state migration tool вообще консольное приложение, насколько я помню. И это все — для программ, которые или называют себя user-friendly или предназначены не для администраторов, а для обычных пользователей? Как говорится, охренеть, дайте два BFG и неограниченный боекомплект
M>>Поэтому я был бы очень рад, если бы система позволяла это дело отслеживать. Хотя бы application-specific registry/data-base, хранящаяся рядом с самим приложением. А то ведь все равно приходится изголяться
W>Немного подумай о корпоративной среде, ограниченных правах и т.д. А то мы все привыкли к работе под админом и переустановке винды в качестве универсального сдедства, и профилактики, и лечения от всех болезней. А в жизни бывает и по-другому .
Хм. Documents and Settings-то прекрасно виндой управляются, так ведь. Распространить это дело на всю файловую систему и позволить приложениям хранить данный рядом с собой? Или действительно придумать универсальное место для хранения подобной информации... В общем, работать в этом направлении еще долго и нудно.
Вначале были .ini файлы. Потом к ним добавили registry. Потом к ним добавили Program Files/Common Files, потом добавили Documents and Settings Сейчас .NET проталкивает идею .xml конфигов (те же .ini, только в профиль). Что-то еще будет в Висте...
Что меня еще раздражает... У меня на диске С: отведено ровно 10 гигабайтов — это сейчас, когда я буржуйствую Дома отведено, по-моему, пять. И вот, благодаря... хм... уродам из МС с их гайдлайнами, у меня диск С засоряется непонятно чем и с большой скоростью. (предположим, я геймер. Я люблю игры от EA и Gas-Powered Games. Все 'b игры хранят сейвы где? Правильно, в Documents and Settings. У некоторых игр сейвы десятками мегабайт. Два-три краха компьютера — и легко представить ситуацию, когда пару гигабайтов дискового пространства ушло в горы. Я понимаю, что сейчас на такие мелочи не стоит обращать внимания... А может все-таки стоит...)
S>Есть еще много сценариев. 99% из них учитываются теми парнями, которые придумывают эти спецификации. Типичный программер нихрена про это не знает, потому что он не занимается эксплуатацией софта в организации с 500+ компами. Не надо судить с колокольни такого невежественного анонима.
Ладно, тут wildwind предложил завязывать с флеймом. Но скажу, что я остался непереубежденным
Здравствуйте, Mamut, Вы писали:
M>Ну, как сказать. Переустанавливает Но даже умеющему переустанавливать ситему юзере (назовем его advanced user ) найти настройки непонятно где
почти нереально. Я уже не помню, как я их находил. Возможно даже через Process Explorer
Достаточно всю папку Application Data перенести. Кстати храния данных вмести с программой нет даже в юнихах. У них там специальная папочка есть. Они ее тоже коперят когда надо переставить систему.
M>Что меня еще раздражает... У меня на диске С: отведено ровно 10 гигабайтов — это сейчас, когда я буржуйствую Дома отведено, по-моему, пять. И вот, благодаря... хм... уродам из МС с их гайдлайнами, у меня диск С засоряется непонятно чем и с большой скоростью. (предположим, я геймер. Я люблю игры от EA и Gas-Powered Games. Все 'b игры хранят сейвы где? Правильно, в Documents and Settings. У некоторых игр сейвы десятками мегабайт. Два-три краха компьютера — и легко представить ситуацию, когда пару гигабайтов дискового пространства ушло в горы. Я понимаю, что сейчас на такие мелочи не стоит обращать внимания... А может все-таки стоит...)
Ты наверное не в курсе что все эти папки можно перенаправить? У меня например документы на диске Д.
Еще тудаже в копилку плюсов этой папки. Это роуминг профили. Вам же хочется чтобы у вас везеде были одинаковые настройки?
почти нереально. Я уже не помню, как я их находил. Возможно даже через Process Explorer
MC>Достаточно всю папку Application Data перенести. Кстати храния данных вмести с программой нет даже в юнихах. У них там специальная папочка есть. Они ее тоже коперят когда надо переставить систему.
И при этом Ашду and Settings Transfer Wizard от МС ее не копирует Я им, правда, и не пользуюсь
MC>Ты наверное не в курсе что все эти папки можно перенаправить? У меня например документы на диске Д.
Ээээ.. Не, не в курсе
MC>Еще тудаже в копилку плюсов этой папки. Это роуминг профили. Вам же хочется чтобы у вас везеде были одинаковые настройки?
Здравствуйте, Кодт, Вы писали:
Ш>>>А типа проверять корректность настроек -- это индусы запрограммировать считают ниже своего достоинства?
К>>Например, достаточно в браузере указать домашнюю страницу, которая его убивает. Причём не лазать в настройки, а просто подтвердить действие скрипта на убийственной странице.
К>Или ещё вариант, менее трагичный: увеличить разрешение экрана (или включить второй экран) и угнать главное окно программы туда. Затем вернуть разрешение обратно... К>Без эбонитовой палочки — попробуй сделай окно видимым.
Эбонитовую палочку знают опытные пользователи: на раз-два-три, нажать Alt+Space и прокликать до пункта меню "Move", а потом "мувить" до появления. Но решение "защита от дурака" мне самому интересно — в одной бытности много сталкиваюсь с подобным "дурачеством пользователей"...