LINUX.ORG.RU

Что придёт на смену xorg.conf?

 , ,


0

0

Уже давно очевидно, что хранение настроек иксов в xorg.conf устарело и не справляется с возложенными на него задачами, в связи с чем, например, писатели проприетарных драйверов от AMD/ATI и NVIDIA изобрели собственные реестроподобные велосипеды.

Недавно по этому поводу разгорелась дискуссия среди разработчиков иксов, в ходе которой было выдвинуто несколько смелых идей — в их числе, например, хранение настроек в GConf. Мэтью Типпет из AMD рекомендовал использовать иерархаичную конфигурацию, сходную с решением в проприетарных драйверах ATI. «NIH syndrome always rules...» — отметил он.

>>> Подробности в репортаже Phoronix

★★★★

Проверено: JB ()
Ответ на: комментарий от geek

>>Только не математически, а опытным путем.

>т.е. если программа упала - значит конфиг некорректный?

Математическое доказательство вообще не требует запуска программы. Странно, что такое нужно объяснять тебе ;)

>>Нет. Тебе же она нужна зачем-то.

>а я много, долго и нудно объяснял зачем.

Попробуй объяснять не долго и нудно, а понятно... в следующий раз.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Математическое доказательство вообще не требует запуска программы. Странно, что такое нужно объяснять тебе ;)

опытный путь требует запуска программы. Странно, что такое нужно объяснять тебе

>Попробуй объяснять не долго и нудно, а понятно...

тут до состояния манной каши уже разжевали всё

geek ★★★
()
Ответ на: комментарий от geek

>Хотелось бы знать мнение валидатора, какой параметр, в данном случае является ошибочным: -o iocharset=cp1251 или -t ext3?

> ошибочна _запись_

> и валидатор именно это и скажет

> что именно хотел сказать автор этой записи - никому не ведомо

вот о том и речь: не знаешь -- помолчи.

ps: у вас с валидатором много общего

anonymous
()
Ответ на: комментарий от anonymous

>вот о том и речь: не знаешь -- помолчи.

доо, сделаем как в венде - программа падает, а почему - непонятно.

geek ★★★
()
Ответ на: комментарий от geek

> опытный путь требует запуска программы.

Ога. Поэтому я и не говорил ничего про "математическое доказательство" :)

> Странно, что такое нужно объяснять тебе

Это ты назвал отсуствие ошибок при запуске программы "математическим доказательством" %)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Ога. Поэтому я и не говорил ничего про "математическое доказательство" :)

именно поэтому ты сказал про опытный путь. И именно про невозможность опытным путем определить - кто виноват - конфиг или программа - я тебе и указал

>Это ты назвал отсуствие ошибок при запуске программы "математическим доказательством" %)

где?

geek ★★★
()
Ответ на: комментарий от gaa

>> Множество функциональных языков входит в множество декларативных наряду с логическими языками вроде Пролога. Символ "∈" означает вхождение в множество. Продолжим жевать эту тему?

>Бгг, а сейчас сравни "Декларативный ∈ Функциональный" и "Множество функциональных языков входит в множество декларативных"

А вообще я зря повелся на терминоложство TG, так как еще раз перечитал документацию по XSL и язык назван именно декларативным. Я его назвал так тут по пямяти. Это у TG такая тактика спора - при отсутствии аргументов начать дотрахиваться до терминологии и ждать когда оппонент допустит ошибку.

Absurd ★★★
()
Ответ на: комментарий от tailgunner

>>>Давай ты приведешь точное определение, какой fstab считается валидным.

>>без синтаксических ошибок и с допустимыми комбинациями опций (man mount)

>Понятно. Думаю, такая слабая валидация нужна немногим.

Корректность настроек может быть проверена только в другом конце программы где и будут монтироваться разделы. А если делать строгую проверку в начале то будут постоянные грабли с поддержкой консистентности двух кусков кода в разных концах проекта - где читаются настройки и где они входят в дело.

Absurd ★★★
()
Ответ на: комментарий от Absurd

> Это у TG такая тактика спора

Очень надо мне с тобой спорить о декларативном программировании - с меня хватило твоих отжигов об ООП %)

> - при отсутствии аргументов начать дотрахиваться до терминологии

Да ТНБ с тобой, где я дотрахивался до твоей терминологии? Я выразил сомнение в декларативности XSL, и тебя понесло :D

> и ждать когда оппонент допустит ошибку.

Не делай больше ошибок ;)

tailgunner ★★★★★
()
Ответ на: комментарий от Absurd

> Корректность настроек может быть проверена только в другом конце п программы где и будут монтироваться разделы.

Корректность fstab может быть проверена где угодно. Нужно монтировать или нет - мелкая деталь. Достаточно прочитать тип файловой системы.

> А если делать строгую проверку в начале

Не делай.

> то будут постоянные грабли с поддержкой консистентности двух кусков кода в разных концах проекта

Какого кода? Какого проекта? Мы говорим о конфигурации конкретной программы на конкретной машине.

tailgunner ★★★★★
()
Ответ на: комментарий от geek

>>вот о том и речь: не знаешь -- помолчи.

> доо, сделаем как в венде - программа падает, а почему - непонятно.

Ну да, каэш. Куда как лучше засирать логи неинформативными сообщениями типа "Ошибка конфига". Зато потом можно прикрутить парсер и валидотор.

anonymous
()
Ответ на: комментарий от anonymous

> Зато потом можно прикрутить парсер и валидотор.

Про караваны забыл!

gaa ★★
()
Ответ на: комментарий от tailgunner

>с меня хватило твоих отжигов об ООП %)

Об ООП в *С++*. Надо ли вообще доказывать что Строуструп достиг диаметрально противоположного результата относительно целей которые ставили перед собой пионеры ООП - более жесткая статичность чем в Си вместо динамичности, усложнение предварительного проектирования вместо упрощения, более сильные зависимости между модулями чем в Си вместо более слабых, сужение жизненного цикла проекта между затратными этапами прототипирования и реализации вместо его расширения на выгодном этапе мэйтенанса и пр.

>Я выразил сомнение в декларативности XSL

Там декларируются правила трансляции входного дерева в результирующее без указания каким образом XSL-процессор должен это трансляцию осуществить. Что такое вообще по-твоему "декларативность"?

Absurd ★★★
()
Ответ на: комментарий от anonymous

>Куда как лучше засирать логи неинформативными сообщениями типа "Ошибка конфига".

сообщение "файловая система ext3 не поддерживает iocharset" - неинформативно? Тогда ты тупой.

geek ★★★
()
Ответ на: комментарий от geek

>>Куда как лучше засирать логи неинформативными сообщениями типа "Ошибка конфига".

> сообщение "файловая система ext3 не поддерживает iocharset" - неинформативно? Тогда ты тупой.

сообщение "файловая система ext3 не поддерживает iocharset" - информативно? Тогда ты тупой.

fxd.

anonymous
()
Ответ на: комментарий от anonymous

>сообщение "файловая система ext3 не поддерживает iocharset" - информативно? Тогда ты тупой.

ну вообще-то, если программа не дает выставить точке монтирования с типом фс ext3 атрибут iocharset с руганью на конфликт - даже даун поймет, что он делает не так.

но до дауна тебе ещё развиваться и развиваться.

geek ★★★
()

Пока здесь идет флейм, драйверы так и остаются кривыми...

Линукс на десктопе провалился. Ну и фиг с ним.

anonymous
()
Ответ на: комментарий от geek

>>сообщение "файловая система ext3 не поддерживает iocharset" - информативно? Тогда ты тупой.

> ну вообще-то, если программа не дает выставить точке монтирования с типом фс ext3 атрибут iocharset с руганью на конфликт - даже даун поймет, что он делает не так.

Программа (не валидатор) по-любому вылетит "с руганью на конфликт", потому что вместо ext3 будет написано iso9660, а на целевом разделе будет fat32.

Вопрос только в том, что порграмма сможет определить ошибочный параметр (в твоем случае - iocharset или ext3), а валидатор - нет.

Поэтому такой "валидатор" отправляется фпечь как лишня сущность.

anonymous
()
Ответ на: комментарий от anonymous

>Программа (не валидатор) по-любому вылетит "с руганью на конфликт",

может быть уже поздно

>Поэтому такой "валидатор" отправляется фпечь как лишня сущность.

ну да, предотвращение аварийных ситуаций - это "лишняя сущность".

geek ★★★
()
Ответ на: комментарий от Absurd

> Символ "∈" означает вхождение в множество.

наглая ложь. Символ "∈" означает принадлежность элемента множеству, а вот символ "⊂" означает вложение одного множества в другое (нестрогое).

anonymous
()
Ответ на: комментарий от gaa

>Еслу уж пошла такая пьянка, то должен быть "⊃".

кто на ком стоял? тогда фраза должна звучать как " множество декларативных ⊃ Множество функциональных языков "

"⊃" -- это "включает", а не "входит"

anonymous
()
Ответ на: комментарий от anonymous

> и как же твой фетиш gconf-editor справляется с взаимоисключающими опциями ?

АПВС? gconf-editor должен бороться за неукоснительное соблюдение взаимоисключающих парагра^W опций!!

anonymous
()
Ответ на: комментарий от anonymous

пример с /etc/fstab сам по себе убог. Я могу стандартными средствами, при корректном /etc/fstab создать кривой симлинк. Подмонтируем раздел, ставим симлинк, отмандируем. Опа -- симлинк отвалился.

Давайте, выразите мне триггеры и "ограничения целостности" на /etc/mtab, бугога.

anonymous
()
Ответ на: комментарий от geek

> Именно поэтому клизмоиды падают? =)))) А почему они тогда падают _случайным_ образом?

видимо потому, что состояние клизмоидов в памяти случайным образом некорректно, бгг

anonymous
()
Ответ на: комментарий от geek

для таких как вы, дампы корок придумали

anonymous
()
Ответ на: комментарий от geek

> именно поэтому ты сказал про опытный путь. И именно про невозможность опытным путем определить - кто виноват - конфиг или программа - я тебе и указал

а ? delta debugging для кого придумали? берём один конфиг, несколько запусков программы. Выдвигаем гипотезу, смотрим, подтверждается ли. Если нет, выдвигаем другую и пробуем. Если падает в одном месте, мы нашли данные, по которым оно падает. Если каждый раз в разных, падает из-за некорректности данных в тот момент времени. Пользуясь delta debugging, отматываем данные до исходных, локализуем гипотезу, и опа -- мы нашли, исходные данные где -- в конфиге или в рантайме программы (и их причину) -- вызывают падения.

Почитайте "Why Programs Fail" про Delta-debugging, что ли.

anonymous
()
Ответ на: комментарий от Absurd

> А если делать строгую проверку в начале то будут постоянные грабли с поддержкой консистентности двух кусков кода в разных концах проекта - где читаются настройки и где они входят в дело.

так и вспоминается анекдот "а откуда, по вашему, взялся хаос".. А неконсистентность откуда появилась-то?

anonymous
()
Ответ на: комментарий от geek

> ну да, предотвращение аварийных ситуаций - это "лишняя сущность".

это лишняя сущность в терминах философии Unix. см. про "Worse Is Better", "MIT approach" http://www.jwz.org/doc/worse-is-better.html , errno в сисколлах и корректный откат назад потока управления.

anonymous
()
Ответ на: комментарий от anonymous

>кодера, блин, послать читать про http://en.wikipedia.org/wiki/Delta_Debugging , чтобы не говорил что локализацию и поиск ошибок нельзя автоматизировать

так автоматизация нехилого такого класса ошибок и предлагается, а здешние быдлокодеры вопят, что у них eval() отнимают

причем, предлагается автоматизация без мозгоебства в виде DD

geek ★★★
()
Ответ на: комментарий от geek

пару страниц назад ты утверждал http://www.linux.org.ru/jump-message.jsp?msgid=2946838&cid=2990321 , что невозможно "опытным путем определить - кто виноват - конфиг или программа".

Эту задачу успешно решает DD.

Мозго*бство, да, в общем виде. Но мы ведь тут про универсальный инструмент распинаемся ? :)) (хотя тут вот и yacc всплыл, не удивительно)

> а здешние быдлокодеры вопят, что у них eval() отнимают

ага, а потом постят тут http://www.linux.org.ru/view-message.jsp?msgid=2990999 всякое

anonymous
()
Ответ на: комментарий от geek

> так автоматизация нехилого такого класса ошибок и предлагается

вот в терминах Failure-Inducing States (конфиги) / Changes (программы, API) и интересно было бы посмотреть на сабж.

Искусственно ограничивать "язык конфигов", чтобы он, оставаясь (если кому вдруг надо) Тьюринг-полным не допускал Failure-Inducing States. В принципе, ни при начальных состояниях, ни при каких изменениях объектов программы её "родным" способом (методами этих объектов, а не сериализацией/десереализацией всякого бреда).

А "универсальный API конфигов" был бы чем-то вроде подмножества MOP/интроспекции/рефлексии, только ограниченного, не позволяющего в принципе получить Failure-Inducing States Changes.

anonymous
()

видимо, просто попытка отослать к изучаению толкового словаря Русского языка. а то до "любителей API/ABI" и вско-разных "любителей "централизованного"/"эффективного" хранения конфигов" и прочая и прочая - для них и впрямь, есть замечательная(замечательная для них) ОСь - Виндовз.

BasileyOne
()
Ответ на: комментарий от BasileyOne

>"любителей "централизованного"/"эффективного" хранения конфигов" и прочая и прочая - для них и впрямь, есть замечательная(замечательная для них) ОСь - Виндовз.

ОС Виндовс нужна любителям спецпрограмм на каждый чих с околонулевой интероперабельностью у каждой.

Absurd ★★★
()
Ответ на: комментарий от Absurd

>ОС Виндовс нужна любителям спецпрограмм на каждый чих с околонулевой интероперабельностью у каждой.

околонулевая интероперабельность - это как?

anonymous
()

"околонулевая" - это, "несущественно больше нуля".

BasileyOne
()
Ответ на: комментарий от anonymous

> Грицько, глянь яка толста троллина!

тю, та то ж москаль, шо с него взять? :)

lester ★★★★
()
Ответ на: комментарий от anonymous

Да как-то смысл обсуждения потерялся: те кто поумнее и без того согласны, что нужно использовать SQL, а дурачков всё равно не переубедишь что XML - это избыточно и ресурсоёмко, а ФС - сыро и голо для таких задач.

anonymous
()
Ответ на: комментарий от anonymous

плохо не это. плохо: 1. не получилось "консенсуса"(что, впрочем - при количестве копирастов на ресурсе - неудивительно) 2. все люди, пришедшие, к мало-мальски оформившимся вариантам решений - высказыванием их и ограничились. 3. сама новость. новость о явно не-Ъ идее, одного программиста, которого наняли совсем для другого, нежели портированние [куска]оффтопика под дрова, для написания котороых(именно Xorg-оговских а не сабжевый "бутерброд"), оно и имело место.

BasileyOne
()
Ответ на: комментарий от anonymous

фс - нормально вполне. проверенно временем. а что оффтопик против - неудивительно(и "pwned", девелоперы и "кастомеры").

p.s. а что кому-то, по привычке хочется wrapper-ов, в которые, сходные механизмы, обертывать любит оффтопик - понятно

BasileyOne
()
Ответ на: комментарий от anonymous

> те кто поумнее и без того согласны, что нужно использовать SQL, а дурачков всё равно не переубедишь что XML - это избыточно и 
ресурсоёмко, а ФС - сыро и голо для таких задач.

просто тема про конфиги поднималась уже не раз, а повторять сто раз одно и тоже занадоедает, я пока свое мнение не менял, обычный файл .ini рулит, вот пример части файла, который создает wxWidgets:

[SchemaEditor]
    LastMode=0
    NavEditorSize=416
    DiagramPageWidth=600
    DiagramPageHeight=600
    DiagramShowPageBorder=1
    DiagramShowComment=1
    DiagramUseSplines=1
    DiagramShowLines=0

[SchemaEditor/Colums]
    0=180
    1=180
    2=187
    3=310
    4=180

[SQLEditor]
    ShowRecID=1
    LineEnd=2
    TabSize=2
    ShowConsole=1

[SQLEditor/TextView]
    X=390
    Y=182
    Width=500
    Height=600

[SQLEditor/FindDialog]
    Down=1
    Word=0
    Case=0
    Last=objptr_parent_id

[Project]
    ShowRecent=0
    LastDatasourceForNewQuery=untitled

...    

при этом поддерживается практически любой уровень вложенности, возможность использовать много различных типов данных( в том числе и бинарные данные ), удобный способ для доступа к данным( по сути такой же интерфейс как и для доступа к ФС, т.е. можно использовать абсолютный путь, относительный, есть понятие текущей ветки и т.д. ), можно использовать для хранения конфига архивы, локальные файлы, файлы на ftp/http, сохранить в строку в памяти и т.д., что еще надо :)

и конечно самый главный плюс, то что такой конфиг можно править руками в обычном текстовом редакторе( конечно XML тоже можно, но разбираться в каше из тегов не самое приятное удовольствие )

lester ★★★★
()
Ответ на: комментарий от lester

>конечно самый главный плюс, то что такой конфиг можно править руками в обычном текстовом редакторе( конечно XML тоже можно, но разбираться в каше из тегов не самое приятное удовольствие )

Открой для себя подсветку тегов и автовыравнивание.

Absurd ★★★
()
Ответ на: комментарий от lester

> обычный файл .ini рулит

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

> конечно XML тоже можно, но разбираться в каше из тегов не самое приятное удовольствие

Согласен с вами. ХМЛ хорош как формат для платформонезависимого представления, для обмена данными или бэкапа там, но заморачивать нативные хранилища на него - очень нездоровая идея..

anonymous
()
Ответ на: комментарий от anonymous

> Много вы знаете приложений, например, которые при апдейте способны накатить изменения (ну скажем опция добавилась) на инишный конфиг?

как минимум то, что я пишу :), когда я в диалоге настроек я добавляю опцию, это выглядит так:

vs_I_Config* config = GlobalConfig;
config->Write( _T("/SQLEditor/AutoComplete"), mpAutoComplete->GetValue() );

а читаю в любом другом месте( конкретно эти строки уже из плагина ):

vs_I_Config* config = GlobalConfig;
bool autoCompletion = true;
config->Read( _T("/SQLEditor/AutoСomplete"), &autoCompletion, true );

и когда обновляется моя программа, если идет попытка к чтению этого параметра, но его еще нет в конфиге, то будет использоваться дефолтное значение( true ), как только пользователь изменит его в диалоге настройки( или моя программа это сделает ) он автоматом ляжет в старый конфиг( это все делает wx, а я образно говоря вообще не должен ничего знать про файл конфига )

> Потому, что не рулит этот формат, слишком сложно получается

потому что надо однажды написать удобный интерфейс для работы с конфигом( или взять готовый - тот же wxConfig ) и облегчить себе жизнь в будущем

lester ★★★★
()

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

то-же доступ оффтопика в реестр - через скл-подобное, недокументированно(Jet, а затем, "обрезанный" клиент Sybase). те,wrapper на wrappere и wrapper-ом погоняет("тонкий" клиент-cкл-/клиентский набор?/-fs)

лучше ini-plaintext - ничего нет. ибо не изобрели пока.

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

BasileyOne
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.