LINUX.ORG.RU

Без шума и пыли вышла очередная версия кроссплатформенной библиотеки libconfig 1.1.2


0

0

Почему-то на ЛОР мало упоминаний о данной библиотеке. Но я лично использовал ее в нескольких кроссплатформенных проектах и считаю, что она очень проста, удобна в использовании и достойна внимания сообщества ЛОРа :)

Libconfig - простая библиотека для обработки структурированных файлов конфигурации. Этот формат является более компактным и более удобным, чем XML (ознакомится с ним можно на сайте проекта).

Библиотека содержит заголовки для обоих C и C++ языков программирования. Ее можно использовать на POSIX-совместимых UNIX системах (GNU / Linux, Mac OS X, Solaris, FreeBSD) и Windows (2000, XP и выше).

Лицензия: LGPL

>>> Сайт проекта

Что за уродские заголовки.. :((

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

>Фанатизм - это когда даже программу размером 40к вы связываете с н-метровой libxml2 для сохранения 2 параметров

А если в системе и так уже стоит libxml2 для других программ?

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

> А если в системе и так уже стоит libxml2 для других программ?

А если нет?

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

> какая разница какой метод, везде можно єто реализовать, если надо

Пример:
Есть некоторая конфигурация, описывающая какой-нибудь клиента (для сервисов). Эта информацию может быть использована тремя разными приложениями со своими файлами настроек.

Как делаю: Пишу один XML, с которым и работаю, каждый раз делаю валидацию через libxml2. Пишу за час три XSL.
Каждые раз, когда мне надо добавить/изменить клиента, я правлю _один_ XML файл и набираю make, который валидирует и трижды запускает xsltproc.

Затраты - 1 час.
Удобство - любой XML-редактор.
Изменился файл настроек одного их сервисов - 5 минут правки файла XSL в том же редакторе.

Что вы будете делать в такой ситуации?

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

> Кроме того, он неоднозначен. Как писать: <key>value</key>? или <key value="value" />?

Вот этим вы и продемонстрировали свою некомпетентность.
Ничего объяснять не буду - для этого есть одностраничные "введения в XML"...

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

> Фанатизм - это когда даже программу размером 40к вы связываете с н-метровой libxml2 для сохранения 2 параметров

Фанатизм - это когда вы инсталлируете дополнительные библиотеки вместо того, чтобы без ущерба использовать то, что уже есть в системе.

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

>Второй абзац: "...is designed to be relatively human-legible."

Подсказка: ralatively переводится как "относительно"..

Т.е. хмель разработан, чтобы быть _относительно_ читабельным. Т.е. с пояльником в ж*опе, он, конечно, читабелен. (%

В случае _крайней_ нужды он может быть прочитан человеком, т.е. он прозрачен (опять же _относительно_). Сие полезно при отладке и поиске неисправностей.

Можно даже погуглить на предмет текстового vs двоичного ipc...

И еще раз для anonymous (*) (25.06.2007 16:59:56): конфиг - это _НЕ_данные и _НЕ_ средство взаимодействия программ. Скорее, это средство взаимодействия программы с _человеком_. Чуешь, сынок? ;)

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

>Что вы будете делать в такой ситуации?

Мы будем делать make. Только без xml.

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

> А кто сказал, что будет Юникод везде? Вы?

Не, Билл Гейц сказал, правда как всегда - полная херня получилась. Так что есть надежда на то, что поскольку в линуксовом мире никто ничего подобного не говорил, то будет толк и всеобщий Юникод.

> Это и есть поколение чупа-чупс. На пару с некоторыми убунтовцами. ;)

Вряд ли, чупы-чупсы - это те, кто Ubuntu Full Power ставит, и прочие сочувствующие. Ну и вендузятнеги до кучи ;) А мы свои седые яйца подставлять ни за грош в гнилые разборки фанатиков гломурных интерфейсов не желаем.

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

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

++ :D

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

> Фанатизм - это когда даже программу размером 40к вы связываете с н-метровой libxml2 для сохранения 2 параметров

+1

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

> конфиг - это _НЕ_данные и _НЕ_ средство взаимодействия программ. Скорее, это средство взаимодействия программы с _человеком_.

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

Балуйтесь дальше.

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

>Фанатизм - это когда вы инсталлируете дополнительные библиотеки вместо того, чтобы без ущерба использовать то, что уже есть в системе.

я просто мечтаю, чтобы mount (к примеру) был обязательно слинкован с libxml2 и всегда хотел править конфиги xorg в тру-хмл формате, ага.
ещё раз: не нужно пихать его туда, где ему совсем не место, объясняя это особенностями, которые в конкретном случае нахрен не нужны и только добавляют избыточности (теги), которая отвлекает внимание:

<?xml version="1.0" encoding="UTF-8"?>
<recipe name="хлеб" preptime="5" cooktime="180">
<title>Простой хлеб</title>
<ingredient amount="3" unit="стакан">Мука</ingredient>
<ingredient amount="0.25" unit="грамм">Дрожжи</ingredient>
<ingredient amount="1.5" unit="стакан">Тёплая вода</ingredient>
<ingredient amount="1" unit="чайная ложка">Соль</ingredient>
<Instructions>
<step>Смешать все ингредиенты и тщательно замесить.</step>
<step>Закрыть тканью и оставить на один час в тёплом помещении.</step>
<step>Замесить ещё раз, положить на противень и поставить в духовку.</step>
</Instructions>
</recipe>

от такого процента "полезной информации" рябит в глазах

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

> А взаимодействие программ зачастую происходит именно через конфигурационные файлы.

о как? а мне всегда казалось, что для этого более другие ipc используются...

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

> Фанатизм - это когда даже программу размером 40к вы связываете с н-метровой libxml2 для сохранения 2 параметров

Не фанатизм, а прагматизм. libxml2 можно много где в программе использовать. Да и при нынешних мощностях объём библиотек несущественнен.

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

>Первый пример - многословное, уродливое и гнусное дерьмо, в то время, как второй - эталон красоты, лаконичности и читабильности. XML, конечно же, должен сгореть в адской домне как можно скорее.


А что такое аттрибуты в XMLe тебе объяснить?

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE trd01 SYSTEM "trd01.dtd">
<trd01 
  id="10234"
  trade_type="equity"
  trade_date="2005-02-21T18:57:39"
  instrument="IBM"
  value="10000"
  trade_ccy="usd">
  <settlement_info
    settle_date="2005-02-21T18:57:39"
    settle_ccy="usd"
  />
</trd01>

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

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

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

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

Нда... Никогда! Слышите? Никогда больше не пишите ничего на XML - займитесь делом - поправьте свой win.ini.

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

>> А взаимодействие программ зачастую происходит именно через конфигурационные файлы.

> о как? а мне всегда казалось, что для этого более другие ipc используются...

Не будем выдирать из контекста? Был конкретный пример.
Менеджер пакетов через IPC изобразите, пожалуйста...

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

>То, что описали вы, называется интерфейсом.

Гыг. Ну ты смешной. До тех пора, пока конфиги правят/смотрят человеки, они (конфиги) и будут средством взаимодействия, или интерфейсом, раз тебе так нравится это слово, или по крайнем мере его частью.

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

>А взаимодействие программ зачастую происходит именно через конфигурационные файлы.

Программам, извините, все равно как они общаются. Если бы в этом процессе не было придусмотренно какое-либо участие человека, то они бы общались посредством двоичного обмена, как, кстати, и делается в таких случаях.

Человек для машины, да? ;) Делайте выводы. И не надо фанатизма.

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

> Гыг. Ну ты смешной. До тех пора, пока конфиги правят/смотрят человеки, они (конфиги) и будут средством взаимодействия, или интерфейсом, раз тебе так нравится это слово, или по крайнем мере его частью.

Смешно другое. Из вашего утверждения следует, что программа создается для ее конфигурирования.

"Человек для машины, да? ;) Делайте выводы. И не надо фанатизма."

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

>Да и при нынешних мощностях объём библиотек несущественнен.

Вы до сих пор апгрейдите свой комп каждые три месяца по 300 баксов за девайс?

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

> Не будем выдирать из контекста? Был конкретный пример.

конкретный? менеджер пакетов - это сферический конь в вакууме. какой именно из существующих вы имели в виду?

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

> чем же так плох XML-based конфиг?

Читабельность - ноль, Реализация обработчика напоминает секс в гидрокостюме,бронежилете и с рваным презервативом - неудобно,тяжело и последствия не за горами...

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

>Из вашего утверждения следует, что программа создается для ее конфигурирования.

Фигасе! о_О :D

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

Так и запишем, anonymous (*) (25.06.2007 18:18:24) - не познавший текстовых конфигов латентный вантузятник-кде-шнег. ^]

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

> от такого процента "полезной информации" рябит в глазах

Вы специально каждый день перед сном читаете необработанные XML-файлы? Мсье мазохист? ;)

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

Когда в последний раз вы видели гномовский конфиг?

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

> Это, извините, уже демагогия.

если вам желательно рассматривать любые менеджеры, извольте

tar -jvxf package.tar.bz | paco -lp package

вот вам пример использования более других ipc совместно с менеджером пакетов

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

>Вы специально каждый день перед сном читаете необработанные XML-файлы? Мсье мазохист? ;)

Следуя твоей логике, если не каждый день и днем, то можно читать и двоичные файлы. Мусье?

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

> До тех пора, пока конфиги правят/смотрят человеки

Далеко не все конфиги правятся/смотрят человеки. Из 1000 человек, пожалуй, только один залезет (и то - из интереса) посмотреть конфиги KDE. Это жизнь.

> и по каким-либо причинам отвергаются все преимущества текстовых конфигурационных файлов

Не отвергаются. Потому - XML, а не бинарный поток.

> Человек для машины, да? ;)

В срезе правки файлов конфигурации - системный администратор или фанатик.

Skull ★★★★★
()

Господа, ну сколько можно! Столько шума из ничего...

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

Автор библиотеки вместо пустого трепа взял и написал нечто работающее и кросплатформенное и предложил всем, кому _нужно_ его работой воспользоваться.

Не нужна вам libconfig, да пожалуйста, одевайте штаны через голову... Нужна, да тоже пожалуйста, пользуйтесь. Мало что ли в рядах линуксоидов придурков, которые кричат, про (Gnome/KDE) капец? или ведут споры ext vs. Rasier?

По теме: может логичнее написать нечто, что способно один и тот же конфиг представлять в нескольких видах? Хотите, в виде ini, хотите xml, хотите еще что-то... Выбор, еще никогда не был лишним...

И последняя ремарка господам стандартизаторам: очень мне интересно посмотреть на /etc/fstab или passwrd в xml реализации. И как вы будете править его в полу упавшей системе, без графического редактора, имея только стандартный терминал 80x24... Каждая задача требует своих методов, соразмерных задаче.

ФСЕ.

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

> Вы до сих пор апгрейдите свой комп каждые три месяца по 300 баксов за девайс?

Нет, с 2003 года ничего не менял (кроме докупки DVD/CDRW). Не попал.

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

> Следуя твоей логике, если не каждый день и днем, то можно читать и двоичные файлы. Мусье?

А зачем? Они неочевидно структурированы. Так что алогичный посыл.

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

> По теме: может логичнее написать нечто, что способно один и тот же конфиг представлять в нескольких видах? Хотите, в виде ini, хотите xml, хотите еще что-то...

Уже сделали - KConfigXT. Не надо изобретать велосипеды. Ссылка была - читайте, а не размахивайте лозунгами.

> И как вы будете править его в полу упавшей системе, без графического редактора, имея только стандартный терминал 80x24

А в чём проблема поправить XML в обычном текстовом редакторе? Или шоры никак не дают познать все краски мира?

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

А. Ну, для флейма на ЛОРе в KDE с XML и такая конфа подойдёт. ;)

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

>пожалуй, только один залезет...осмотреть конфиги KDE. Это жизнь.

Возможно. Но тем не менее.. смотри дальше.

>Не отвергаются. Потому - XML, а не бинарный поток.

Дык о том и речь, что хмл - это довольно слабое, ничем не обоснованное "компромиссное" решение далеко _не в пользу_ человека.. :Е

>В срезе правки файлов конфигурации - системный администратор или фанатик.

Ну с этого и надо было начинать, уважаемые хмл-фанатики! _ВАМ_ то их не править!! :D А сисадмин - не человек... Ну-ну..

*в пылу дискуссии не забываем, что речь о _конфигурационных файлах_, а не xml вообще, лады? .

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

> А какие конфиги должны редактироваться человеком? И какими средствами?
Средство - руки; конфиги, например, такие: squid.conf, named.conf, ...
Т.е. обычные конфиги серверных программ.
О программах, которые сами прявят (непосредственно) свои конфиги (например имеют GUI конфигуратор) речь не идет.

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

>По теме: может логичнее написать нечто, что способно один и тот же конфиг представлять в нескольких видах? Хотите, в виде ini, хотите xml, хотите еще что-то... Выбор, еще никогда не был лишним...

Дык давно уже.. ;) Смотрим в сторону boost-а.. (:}

anonymous
()

> Библиотека содержит заголовки для обоих C и C++ языков программирования.

Это пять. Действительно, она ведь поддерживает ОБА существующих языка программирования!

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

>А в чём проблема поправить XML в обычном текстовом редакторе?

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

Мне очень интересно посмотреть на тов. Черепанова, правящего сломанный XML конфиг для, к примеру, fstab_xml в vi. Ведь гуйня у нас пока не грузится, так что любимый kate недоступен. А как он будет восстанавливать в случае чего почившие GNOME-конфиги - ещё интереснее.

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

>Не фанатизм, а прагматизм.libxml2 можно много где в программе использовать.

Не нужно везде искать применение своего любимого инструмента и предлагать окружающим обрезать ногти болгаркой или бриться газонокосилкой.

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

>Они неочевидно структурированы.

Ничего. Можно предложить и очевидно структурированый.

Тем более, что очевидность субъективна. Для меня вот, хмл - неочевидно структурирован. ;)

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

>А в чём проблема поправить XML в обычном текстовом редакторе?

Потомственный троль?

Вантузятник?

Прикидываешься (тролем-вантузятником) ?

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

>А в чём проблема поправить XML в обычном текстовом редакторе? Или шоры никак не дают познать все краски мира?

Я не об этом. Просто как всегда xml очень многословен, его и с огромным-то разрешением и подсветкой синтаксиса порой править сложновато... А если в стандартном терминале --- то это вообще геморрой.

>Ссылка была - читайте, а не размахивайте лозунгами.

Возможно... Но как минимум в одном я точно прав: чем нечто универсальнее, тем хуже оно подходит для решения конкретных задач. Это давно известно.

Есть два бесспорных факта: (1) xml не удобен для ручной правки, (2) xml хорошо применять там, куда пользователь при нормальном стечении обстоятельств сам не полезет, и где не нужно вносить быстрых изменений.

Ну что же... Они друг другу не противоречат: вывод --- если редактирование конфига в редакторе -- единственный способ настройки программы, то значительно целесообразнее использовать конфиг с простым и естественным синтаксисом, а если пользователь в конфиг хорошо если раз в год залезает, то xml'ю там самое место...

Опять же: отталкиваться надо от задачи.

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

> Мне очень интересно посмотреть на тов. Черепанова, правящего сломанный XML конфиг для, к примеру, fstab_xml в vi.

А мне не интересно. Это элементарно.

> А как он будет восстанавливать в случае чего почившие GNOME-конфиги - ещё интереснее.

И опять - легко.

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