Странные люди используют XML
Oct. 23rd, 2007 10:37 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Читаю сейчас конфигурационный файл утилиты rutilt (конфигуришки для WiFi карточек rt73 под Linux).
И вижу там примерно следующее
Не совсем понимаю, зачем ради такого XML городить. Я бы написал так
В данный вариант добавлена информация о том, доступен ли в данной сети SSID для сканирования, которой в оригинале не было. А мне для zero-click solution её надо - должна же программама догадатсья, стоит ли пробовать сконнектиться с этой сетью если скан не показывает её ssid. Ну и приоритеты сетей - в каком порядке пробовать коннектиться
Вообще, я неоднократно сталкивался с ситуацией, когда люди, пытающиеся разработать какую-то DTD совершенно не умеют пользоваться выразительным богатством XML. Наиболее частая проблема - та же, что у автора rutilt - пихают всю информацию в содержимое элементов, не задумываясь о том, что бывают ещё и атрибуты. Попадалось и обратное - что человек в упор не понимал концепции PCDATA и боялся писать текст между тэгами. Всё пихал в атрибуты.
Я, конечно, не буду утверждать что я такой весь из себя большой спец по XML. Я схем-то за свою жизнь сдизайнил не более десятка (правда, были среди них весьма развесистые).
Ну а за использование перечислимых числовых значений в текстовом конфиге, особенно когда в интерфейсе пользователя всё равно исполььзуются для этих сущностей строковые названия, программиста надо пороть.
И вижу там примерно следующее
<Profile Name="Wagners_home"> <SSID>Wagners_home</SSID> <Mode>2</Mode> <Channel>1</Channel> <Encryption> <Type>1</Type> <Key>много шестнацатиричных цифр</Key> <Key></Key> <Key></Key> <Key></Key> <AuthenticationType>0</AuthenticationType> <DefaultKey>0</DefaultKey> </Encryption> <IPSettings> <How>1</How> </IPSettings> </Profile> d<Profile Name="Cryptocom"> <SSID>спрятано</SSID> <Mode>2</Mode> <Channel>11</Channel> <Encryption> <Type>3</Type> <Key>много шестнадцатиричных цифр</Key> <Key></Key> <Key></Key> <Key></Key> <AuthenticationType>2</AuthenticationType> <DefaultKey>0</DefaultKey> </Encryption> <IPSettings> <How>1</How> </IPSettings> </Profile>
Не совсем понимаю, зачем ради такого XML городить. Я бы написал так
<Profile priority="0" Name="Wagners_home"> <SSID visibility="visible">Wagners_home</SSID> <card-settings mode="managed" channel="1" /> <Encryption type="wep" authentication-type="open"> <key number="0" default="yes" encoding="hex">много шестнадцатиричнх цифр</key> </Encryption> <IPSettings type="dhcp" /> </Profile> <Profile priority="1" Name="Cryptocom"> <SSID visibility="hidden">спрятано</SSID> <card-settings mode="manged" channel="11"/> <Encryption type="TKIP" authentication-type="WPAPSK"> <key number="0" default="yes" encoding="ascii">много букв</key> </Encryption> <IPSettings type="dhcp" /> </Profile>
В данный вариант добавлена информация о том, доступен ли в данной сети SSID для сканирования, которой в оригинале не было. А мне для zero-click solution её надо - должна же программама догадатсья, стоит ли пробовать сконнектиться с этой сетью если скан не показывает её ssid. Ну и приоритеты сетей - в каком порядке пробовать коннектиться
Вообще, я неоднократно сталкивался с ситуацией, когда люди, пытающиеся разработать какую-то DTD совершенно не умеют пользоваться выразительным богатством XML. Наиболее частая проблема - та же, что у автора rutilt - пихают всю информацию в содержимое элементов, не задумываясь о том, что бывают ещё и атрибуты. Попадалось и обратное - что человек в упор не понимал концепции PCDATA и боялся писать текст между тэгами. Всё пихал в атрибуты.
Я, конечно, не буду утверждать что я такой весь из себя большой спец по XML. Я схем-то за свою жизнь сдизайнил не более десятка (правда, были среди них весьма развесистые).
Ну а за использование перечислимых числовых значений в текстовом конфиге, особенно когда в интерфейсе пользователя всё равно исполььзуются для этих сущностей строковые названия, программиста надо пороть.
no subject
Date: 2007-10-23 07:16 pm (UTC)по поводу XML- согласен
no subject
Date: 2007-10-23 07:44 pm (UTC)По хорошему счету эту программу бы это, поправить слегка. Проаудитить этот самый хэлпер на предмет buffer overflow, приделать несколько ручек для zero-click - чтобы при запуске с некоторым ключиком, шерстило бы список профайлов и автоматически определяло куда здесь можно приконнектиться. Позволяя в GUI задать приоритеты на случай видимости нескольких сетей одновременно. Приделать ручку для ad-hoc авторизации навроде GoldenWifi-евской.
Ну и, конечно, научить класть настройки куда-нибудь в /etc. Настройки соединения к сетям они всё же per-machine, а не per-user и в ${HOME} им делать нечего.
Только вот по-моему, проще сапгрейдить ядро, поставить драйвер с поддержкой WPA_supplicant и пользоваться им, как все.
Кстати, ты не пробовал для ACX100 собирать драйвер, умеющий WPA. У меня сходу не получилось. Оно там рассчитано на сборку внутри исходников ядра, а у меня на ноутбуке ядро не развернуто - ядра я обычно на десктопе собираю, который всё ещё в ремонте.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From: (Anonymous) - Date: 2007-10-23 09:05 pm (UTC) - Expand(no subject)
From:no subject
Date: 2007-10-23 07:59 pm (UTC)Кстати, страница расползлась по ширине раз в пять. Совершенно невозможно читать в графических браузерах. Только w3m спасает.
no subject
Date: 2007-10-23 08:14 pm (UTC)Блин, <pre> забыл закрыть. Исправил, приношу извинения.
Ну почему проблема? Это уметь надо, да. Любая выразительная мощность чего-нибудь да стоит, в частности, умения ею пользоваться.
(no subject)
From:(no subject)
From:no subject
Date: 2007-10-24 05:21 am (UTC)чего-то одного не должно быть.
no subject
Date: 2007-10-23 08:01 pm (UTC)... Инструкций? Какой вид, какой род? ...
no subject
Date: 2007-10-23 08:16 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2007-10-23 08:01 pm (UTC)no subject
Date: 2007-10-23 08:15 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2007-10-23 08:35 pm (UTC)Что-то я начинаю звучать как какой-нибудь mauhuur...
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2007-10-23 08:21 pm (UTC)<strong><em>плюстыщща<нах/></em></strong>
no subject
Date: 2007-10-23 08:50 pm (UTC)no subject
Date: 2007-10-23 08:44 pm (UTC)Чем был бы плох обычный property file с секциями для профайлов?
no subject
Date: 2007-10-23 08:49 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2007-10-24 05:24 am (UTC)no subject
Date: 2007-10-24 07:08 am (UTC)И как отразить что вот эта группа параметров внутри одного профайла относится к encryption?
Тогда уж лучше иерархическое пространство имен вроде X resources. Но тоже обладает своими недостатками.
(no subject)
From:(no subject)
From:(no subject)
From:нет иерархии
From:no subject
Date: 2007-10-24 08:53 am (UTC)При том, что кроме парсера, чтоб как-то понять туда (в XML) записанное надо ещё иметь представление о назначении всех элементов скромно умалчивается. Толку от "единого парсера" никакого. Да и DTD тоже нет нифига.
tab непременно 8
From:no subject
Date: 2007-10-23 09:26 pm (UTC)no subject
Date: 2007-10-23 09:42 pm (UTC)За это программисты и получают деньги.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2007-10-24 07:10 am (UTC)no subject
Date: 2007-10-24 05:20 am (UTC)no subject
Date: 2007-10-24 05:42 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From: (Anonymous) - Date: 2007-10-25 12:00 am (UTC) - Expand(no subject)
From:(no subject)
From: (Anonymous) - Date: 2007-10-25 12:14 am (UTC) - Expand(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:Валидатор позволяет только валидировать.
From:Re: Валидатор позволяет только валидировать.
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2007-10-24 06:13 am (UTC)no subject
Date: 2007-10-24 07:21 am (UTC)Данный пример хорош ещё и тем, что
1) семантика очевидна большинству читателей. Наверняка, почти все представили как мог бы выглядеть элемент
<IpSettings type="static">>....</IpSettings>
2) Улучшенный вариант весьма близок к исходному.
В общем, почти идеальный учебный пример.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2007-10-24 08:47 am (UTC)И если в софте нет XML, то это дерьмо, а не софт. А если там XML... просто последние достижения совтской науки и техники.
XML нужен РОВНО В ОДНОМ МЕСТЕ (или я не прав?) -- там где файл отдаётся на сторону. Вместе с DTD и др. документацией. Чтобы иметь некий универсальный контейнер, в который можно положить чего угодно. Причём, если чего угодно начинает измеряться ощутимыми величинами, то лучшае таки бинарный формат...
no subject
Date: 2007-10-24 09:48 am (UTC)Ага, ASN.1 с его 128-байтными полями длины. Очень дохрена влезет.
MPEG, например.
From:(no subject)
From:no subject
Date: 2007-10-24 02:52 pm (UTC)http://www.ibm.com/developerworks/xml/library/x-eleatt.html
offtopic
Date: 2007-10-25 12:55 pm (UTC)У меня есть два вопроса касательно "Вьюги":
1. Она, на данный момент, производится/продается?
2. Под solaris ее так и не удалось проверить?