Столлман, как всегда, велик
Sep. 12th, 2007 02:15 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
В недавнем интервью Столлман сказал It doesn't matter how popular GNU/Linux gets, if it fails to give you freedom.
Собственно, в этой одной фразе сконцентрировано всё содержание моих двух предыдущих постов про интерфейсы (1, 2
Современные DE (и не только DE, Office suites и даже браузеры туда же) именно что fail to give me freedom.
Свобод, согласно тому же Столлману - 4:
0. To run the program as you wish.
1. To study the source code and change it so the program does what you wish.
2. To redistribute exact copies when you wish, either giving them away or selling them.
3. To distribute copies of your modified versions when you wish.
Речь идет, естественно, о свободе N 1 - изучать и модифицировать код. В реальной жизни у меня есть не более чем сколько-то времени, которое я могу потратить на устранение мелких неудобств или повышение своей квалификации.
В традиционном Unix этого времени более чем хватает, чтобы понимать что оно делает и как его исправить (или обернуть в обертку). Потому что система аккуратно разбита на компоненты, которые можно изучать по отдельности. Способы взаимодействия этих компонентов (пайпы, environment, коды завершения) просты и понятны, а также неплохо документированы.
А сколько времени надо потратить на изучение, скажем XUL, чтобы исправлять поведение браузера? Куда больше, чем на изучение shell.
Собственно, в этой одной фразе сконцентрировано всё содержание моих двух предыдущих постов про интерфейсы (1, 2
Современные DE (и не только DE, Office suites и даже браузеры туда же) именно что fail to give me freedom.
Свобод, согласно тому же Столлману - 4:
0. To run the program as you wish.
1. To study the source code and change it so the program does what you wish.
2. To redistribute exact copies when you wish, either giving them away or selling them.
3. To distribute copies of your modified versions when you wish.
Речь идет, естественно, о свободе N 1 - изучать и модифицировать код. В реальной жизни у меня есть не более чем сколько-то времени, которое я могу потратить на устранение мелких неудобств или повышение своей квалификации.
В традиционном Unix этого времени более чем хватает, чтобы понимать что оно делает и как его исправить (или обернуть в обертку). Потому что система аккуратно разбита на компоненты, которые можно изучать по отдельности. Способы взаимодействия этих компонентов (пайпы, environment, коды завершения) просты и понятны, а также неплохо документированы.
А сколько времени надо потратить на изучение, скажем XUL, чтобы исправлять поведение браузера? Куда больше, чем на изучение shell.
no subject
Date: 2007-09-13 02:03 am (UTC)no subject
Date: 2007-09-13 06:39 am (UTC)no subject
Date: 2007-09-13 07:31 am (UTC)да ну?
> Каждая программа может добавить свой узел
это всё замечательно, но:
1) префикс org.freedesktop хоть к чему-то обязывает? ну по идее хотя бы?
2) это всё существует не в виде мозгового штурма. Это уже работащая система (ну, если верить рекламе). Об этом интерфейсе не могут не знать девелоперы kde и гнома, поскольку они уже сделали утилиты которые с ним работают. Вот для убунты я могу где-нибудь посмотреть список - какие интерфейсы какие программы в ней предоставляют, а какие понимают? Пусть даже не в самой убунте (хотя уже непонятно почему), а в интернете? Как они сами-то с этим зоопарком справляются?
no subject
Date: 2007-09-13 07:36 am (UTC)Запустите gdbus и посмотрите. Вам ведь нужен список интерфейсов одной конкретной программы, с которой вы собираетесь работать?
> Как они сами-то с этим зоопарком справляются?
Также, как домены в интернете или в джаве. Есть org.freedesktop.hal. И никого уже не волнует, что там за этим hal. Есть org.freedesktop.gnome. Есть org.openoffice. И так далее. Они не пересекаются, следовательно, с ними нет задачи справляться.
no subject
Date: 2007-09-13 07:43 am (UTC)нет. мне нужен интерфейс предназначенный для выполнения какой-то задачи. именно под него я буду затачиваться, чтобы потом можно было поставить любую программу, которая его поддерживает. или даже свою написать.
> Есть org.freedesktop.hal... Есть org.freedesktop.gnome. Есть org.openoffice. И так далее.
это как раз я и хочу знать: что там "далее"? что ещё есть? дальше-то понятно.
no subject
Date: 2007-09-13 08:36 am (UTC)Тогда вы обратились не по адресу. DBUS - это IPC, а не API. API предоставляют, например, Telepathy, Decibel, Solid и др.
> это как раз я и хочу знать: что там "далее"? что ещё есть?
Конечно. Если я написал программу и назвал ее foo, то в DBUS у нее будет идентификатор вида ru.aceler.foo. Вы думаете, есть какой-то единый реестр всех программ, пользующихся DBUS? Разумеется нет. Есть только в системе - смотреть уже установленные компоненты, зарегистрированные в системе. Чтобы посмотреть реестр приложений DBUS в системе, запустите браузер DBUS, например, gdbus.
no subject
Date: 2007-09-13 09:07 am (UTC)По адресу, по адресу. Вот есть командная строка. Это интерфейс. И есть coreutils - набор стандартных средств для решения разных часто встречающихся задач. (ну плюс к ним shell builtins). Где в D-BUS аналог coreutils.
Еще один дополнительный вопрос - в D-BUS можно зарегистрировать сервис. Т.е. прописать, что если обработчик объекта с определенным временем не запущен, то при обращении кого-то к этому объекту нужно запускать такой-то процесс.
Соответственно, получается что при происхождении определенного аппаратного события в системе (включение видеокамеры на N800) взлетает некоторая программа. Мне эта программа в данном контексте нахрен не нужна.
Я хочу чтобы на это событие взлетала более другая, но столь же стандартная программа.
Каким образом мне без нарушения целостности стандартного пакета (содержащего соответствующий файл .service) реакцию на это событие переопределить так, как мне удобно?
В традиционном Unix всю жизнь существовала иерархия конфигурационных файлов. Например в том же xrdb есть app-defaults в /usr/lib, site-specific файл в /etc/X11 и юзерский ~/.Xresources. Где в D-BUS аналогичные средства? Причем мне очевидно что идуший в пакете файл service - это именно app-defaults. Т.е. это поведение может потребоваться переопределить как администратору системы для всех юзеров данной системы, так и юзеру - для себя, любимого.
no subject
Date: 2007-09-13 09:12 am (UTC)DBUS - это IPC, а не набор программ. coreutils - это набор программ. Аналогом coreutils можно считать компоненты LSB (такие как HAL) и DE (такие как Telepathy).
> Каким образом мне без нарушения целостности стандартного пакета (содержащего соответствующий файл .service) реакцию на это событие переопределить так, как мне удобно?
Не знаю, не сталкивался. Можно покурить RTFM.
no subject
Date: 2007-09-13 09:22 am (UTC)Меня мало волнует, API оно, IPC или что. Для меня - это среда, в которой я работаю. Не важно - как пользователь, или разработчик программы. Требования одинаковые - среда должна предоставлять мне средства для управления ею. Причем таким образом чтобы описания этих средств было легко найти.
no subject
Date: 2007-09-13 09:31 am (UTC)