ALT Linux Distributions development
 help / color / mirror / Atom feed
* [devel-distro] Очень простой конфигуратор
@ 2024-10-18 20:01 Paul Wolneykien
  2024-10-18 22:17 ` Leonid Krivoshein
  0 siblings, 1 reply; 2+ messages in thread
From: Paul Wolneykien @ 2024-10-18 20:01 UTC (permalink / raw)
  To: Distributions development


  Всем привет.

  В соседних обсуждениях по конфигуратору и инсталлятору был высказан
ряд тезисов:

  1. первоначально предполагалось появление консольного установщика
     (его порой [не хватает?]);
  2. в том числе и для безголовых (админов, хи-хи) серверов в
     датацентрах с COM-портом;
  3. нужна дружественность к людям с ограниченными возможностями;
  4. важен адаптивный интерфейс для устройств с маленьким экраном;
  5. если хочется, чтобы установщик или конфигуратор был не только
     в браузере, достаточно единой кодовой базы для интерфейсов
     фронтендов;
  6. эта база должна крайне медленно устаревать (вместо "не работает
     на вчерашнем браузере");
  7. и по-возможности быть декларативным (!) описанием фронтенда;
  8. юниксы вырвались вперёд на простоте, человекопостижимости;
  9. не должно быть экспоненциального роста сложности для развития
     и поддержки системы конфигурации;
 10. потребительские качества программы должны оцениваться с позиций
     потребностей высококультурного, воспитанного человека;
 11. ибо заботиться о людях --- не значит потакать их немощам, но
     помогать им преодолеть их.


  Хочу сказать, что по первому пункту имею некоторые наработки. Однажды
(судя по git это было 12 лет назад) на архитектурной базе нашего
альтератора был разработан ряд модулей для настройки сторонних
(и проприетарных) программ и, частично, для настройки базовой системы
Альт-СП в плане сети. Для последнего были заменены или дополнены
стандартные модули типа alterator-net-eth. Почему же это потребовалось?
Дело в том, что первым условием того заказа было... чтобы конфигуратор
работал в консоли.

  К сожалению, весь код целиком не сохранился. Но сохранилась
shell-обвязка вокруг woo, имитирующая alterator/woo на scheme [1],
а также вторая библиотека, непосредственно предназначенная для
построения текстовых диалоговых интерфейсов [2] на базе dialog(1).

  Сразу добавлю, что похвастаться в этом коде особенно не чем: я сейчас
поглядел, там eval на eval и eval погоняет; часть из них явно не нужна,
а остальные --- не санитизируются. Но речь на самом деле не об этом
конкретном коде. А о том, что когда-то существовал вполне рабочий
прототип из 5--7 модулей альтератора, построенных по диалоговому
принципу. Что показал данный эксперимент? Он показал и доказал
практически, что бэкенды на базе alterator/woo, написанные с оглядкой
на index.scm и index.html, могут быть использованы также с принципиально
иной структурой фронтенда, зажатого в узкие рамки таких категорий UI
как "двойственный выбор", "множественный выбор", "подтверждение или
отказ", "ввод данных" и --- главная особенность --- "уровень,
подуровень, под-подуровень, и т. д." (вместо одного сложного окна
дерево простых).

  Что тогда послужило отправной точкой? Кажется, для соседнего проекта
нужно было собирать кастомизированные ядра, а значит перед глазами
был диалоговый конфигуратор ядра. Было вполне логично реализовать
подобное на имеющейся базе alterator/woo + backend3. И это что-то
получилось: уж не знаю, благодаря данной архитектуре или же вопреки
ей.

  Что можно сказать о диалоговой структуре UI сегодня, в том контексте,
который определили соседние обсуждения по конфигуратору и инсталлятору?
Номера пунктов соответствуют тезисам в начале данного письма.

  Во-первых, она с лёгкостью покрывает пп. 1, 2, 3 и 4. В частности,
для п. 3, посредством замены dialog(1) альтернативной программой,
реализующей потоковое текстовое меню и добавлением TTS, получаем
настоящее голосовое меню, которое не нужно "табать" в поисках этих
странных кнопок из мира зрячих. Для реализации п. 4, опять же,
достаточно заменить саму dialog(1) на подходящую графическую реализацию
меню.

  Во-вторых, пп. 5--7. С ними тоже тут нет никаких проблем. Более того,
на действительно декларативном уровне я не могу представить ничего,
кроме описания кейсов вопрос-ответ. Любое другое "декларативное"
описание UI на проверку оказывается пустой рекламной декларацией
разработчика (продажника), поскольку обязательно оперирует такими
плоскими (двухмерными, то есть) понятиями, как "панель", "кнопка",
"маркировка" (label), "100% по ширине", "по левому полю" и т. д. 
Пустой декларацией оказывается в таком случае "переносимость",
"независимость от платформы" и пр.

  По сравнению с такими обещаниями переносимости и независимости
конфигуратор ядра Linux ведёт себя очень и очень зерьёзно. Из
текстового он без труда превращается в графический ("на той же
кодовой базе", п. 5), его не трудно вообразить и в 3D/VR. Но конечно,
при всех возможных тут красивостях и даже украшательствах,
пользователь, в итоге, всё равно оказывается перед выбором из тех же
самых вопросов и альтернатив, которые заложены в диалоговое дерево и
ради получения ответов на которые и запускается конфигуратор. И это ---
очевидный минус, скажет кто-то.

  Но минус ли это на самом деле? Если мы, в-третьих, посмотрим на
оставшиеся тезисные пункты 8--11, то можем рассчитывать на вполне
положительный отзыв насчёт простоты (разработки) и "олдскульности"
(в хорошем смысле) использования диалоговой структуры.

  Важный момент. Каким неоспоримым преимуществом обладает диалоговый
интерфейс для настройки чего-либо? В соседних обсуждениях об этом,
кажется, никто не говорил (или я пропустил). А вот каким. На мой
взгляд, древовидная структура --- единственная до конца и полностью
документируемая структура. Причём, однозначно документируемая.
Все остальные варианты конфигуратора требуют написания
иллюстрированной документации со снимками экрана, которая из-за этого
страдает неоднозначностью и рискует потерять свою актуальность с
каждой сменой брэндинга и графического тулкита. Хотя я при этом совсем
не против иллюстраций, нет. Но согласитесь, что мануал по настройке
ядра с иллюстрациями текстовых боксов на 100% годится и в том случае,
если я использую "make xconfig". Это потому, что пользователь работает
здесь с логической структурой, которая не меняется.

  Теперь предложение.

  Как вы уже поняли, лично мне идея диалогового конфигуратора
(инсталлятора) кажется интересной и перспективной. И я бы даже взялся
за её реализацию. Однако в одиночку что-то тащить очень тяжело.
Особенно, если это что-то потом или сразу окажется не нужным.
Поэтому предложение к единомышленникам, если таковые, конечно, имеются:
а) отозваться; б) поделиться наработками (хотя бы и теоретическими);
в) организоваться в рабочую группу по данному вопросу.


---
[1]:
git://git.altlinux.org/people/manowar/packages/alterator-dialog-functions.git
[2]: git://git.altlinux.org/people/manowar/packages/dialog-framework.git


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [devel-distro] Очень простой конфигуратор
  2024-10-18 20:01 [devel-distro] Очень простой конфигуратор Paul Wolneykien
@ 2024-10-18 22:17 ` Leonid Krivoshein
  0 siblings, 0 replies; 2+ messages in thread
From: Leonid Krivoshein @ 2024-10-18 22:17 UTC (permalink / raw)
  To: devel-distro

Добрый вечер!


On 10/18/24 23:01, Paul Wolneykien wrote:
>    Всем привет.
>
>    [...]
>
>    Теперь предложение.
>
>    Как вы уже поняли, лично мне идея диалогового конфигуратора
> (инсталлятора) кажется интересной и перспективной. И я бы даже взялся
> за её реализацию. Однако в одиночку что-то тащить очень тяжело.
> Особенно, если это что-то потом или сразу окажется не нужным.
> Поэтому предложение к единомышленникам, если таковые, конечно, имеются:
> а) отозваться;

Поскольку я принимал участие в переходе на grub в наших ISO, 
периодических починках и усовершенствованиях установщика, выполнил 
обещание по замене пропагатора [3], и с 2017 активно продвигаю деплойную 
технологию [4], благодаря которой ОС Альт ставился за эти годы на многие 
тысячи рабочих мест, не задавая вопросов и не используя штатный 
установщик, меня можно учитывать в части переделки будущего инсталлятора.

При этом я полностью согласен в этом вопросе с mike@: сначала придётся 
сделать нормальный бэкенд разбивалки диска и я этим вопросом собираюсь 
вплотную заняться, тем более, что обещал очень давно. Без этого 
указанная выше цепочка замены не может быть продолжена. Основной 
системный конфигуратор, на мой взгляд -- другая история. И если сейчас 
пытаться их жёстко связать, будет сложнее и больнее.

Ранее я делал простые текстовые установщики, когда ещё сидел на Debian, 
сегодня текстовый интерфейс конфигурирования неактуален, не стоит на 
него ориентироваться.


> б) поделиться наработками (хотя бы и теоретическими);

1. В этой рассылке начали дискуссию в правильном направлении. Нужно не 
просто высказывать точку зрения, а ещё и обосновать её. Тезисы с 
наиболее убедительными доводами могут лечь в основу техзадания к 
будущему конфигуратору и установщику.

2. Как часто у нас водится, кто бы что не говорил, но если пользоваться 
больше нечем, то пользуемся тем, что есть. И пока ты сам не сделаешь, 
или пока кто-то не сделает, так и будем пользоваться имеющимся. Так что, 
здесь дорогу осилят заинтересованные в данном вопросе разработчики, 
обладающими временем для этого, а среди нас таких немного. Не волнуйся, 
втихаря сделать никому не нужное не получится, т.к. слишком большая и 
больная тема --  том смысле, что инициативу здесь никто не уведёт. ))

3. Отдельно готов рассказать в общих чертах про устройство конфигуратора 
в Debian. Особенность его в том, что ему лет 30 и он с самого начала 
тесно интегрирован с древнейшим пакетным менеджером. Другими словами, у 
Debian и основанных на нём есть какая-никакая штатная система 
конфигурирования, удобно обслуживаемая маинтейнерами и администраторами 
база данных конфигурации, отдельная от пакетов, 20% из которых покрыты 
этой БД конфигурации, потому что далеко не все пакеты в репо требуют 
какого-то особого конфигурирования. В RedHat и отделившихся такого не 
было изначально, откуда вытекают ранее озвученные проблемы не 
обслуживаемых файлов конфигурации в пакетном дистрибутиве, отсутствие 
единой базы переносимой конфигурации.


> в) организоваться в рабочую группу по данному вопросу.

4. Считаю, что существенная часть конфигуратора должна быть на sin@ и 
его ближайших коллегах, поскольку много пересечений с групповыми 
политиками и в числе целей -- управление конфигурацией хостов с ОС Альт 
средствами Альт домена, а также апстрим этих наработок в samba.org. 
Возможно, у sin@ другие соображения, и ему было бы проще, чтобы 
конфигуратор уже был готов, и просто его использовать, чтобы 
сфокусироваться только на доменном функционале. Насколько я знаю, это не 
так, Альтератор 2.0 даже его инициатива.

5. Основной ремонтник и усовершенствователь нынешнего установщика в 
последнее время -- antohami@, к тому же на нём m-p. Да и всем 
релиз-менеджерам вопросы конфигурирования и установки близки. Так что, 
хотя бы в режиме чтения группа получится не маленькой, если не почти 
весь devel-distro@. :-)


> ---
> [1]:
> git://git.altlinux.org/people/manowar/packages/alterator-dialog-functions.git
> [2]: git://git.altlinux.org/people/manowar/packages/dialog-framework.git

[3]: https://www.altlinux.org/Installer/common/altboot
[4]: https://www.altlinux.org/Rescue/Deploy


-- 
WBR, Leonid Krivoshein.



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-10-18 22:17 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-10-18 20:01 [devel-distro] Очень простой конфигуратор Paul Wolneykien
2024-10-18 22:17 ` Leonid Krivoshein

ALT Linux Distributions development

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel-distro/0 devel-distro/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel-distro devel-distro/ http://lore.altlinux.org/devel-distro \
		devel-distro@lists.altlinux.org devel-distro@lists.altlinux.ru devel-distro@lists.altlinux.com
	public-inbox-index devel-distro

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel-distro


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git