Отчёт Кирилла Маслнского

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

Сборка CD

Четыре стадии: установка пакетов в chroot (в ALt Linux есть специалдьный инструмент — hasher), донастройка и выкладывание непакетированного сорержимого, сборка образа ФС, помещение на носитель и настройка загрузчика.

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

Пакеты необходимо подправить, чтобы они правильно работали на LiveCD.

Squashfs — не просто ФС в файле, а весьма прилично упакованный.

Squashfs монтируется только на чтение, а надо — только на запись. Раньше было так: заводились ФС в памяти, туда всё копировалось из архива. Недостаток: все файлы лежат в памяти, а память надо экономить.

Сейчас используется unionfs: один каталог — с файлами, но только на чтение + другой каталог — доступный на чтение и запись. С помощью unionfs они оба «цепляются» на третий каталог, в котором виды файлы обоих, причём всё, что записывается, попадает во второй каталог. Если первый каталог — это squashfs, то он не занимает места в памяти, а в памяти лежат только новые файлы. Например, если установить на LiveCD большой пакет, он не установится, местане хватит.

Пользовательский интерфейс

Использование IceWM в лектории — значимо, задействованы некоторые свойства IceWM. Firefox (или SeaMonkey) — также значимые навигаторы (с расшинением MozEx).

Слайды

Pylize — простой сценарий, простой HTML превращает слайды, который показываются любым навигатором (только примеры лектория требуют специальной настройки). Получается обычный HTML, управляемый javascript-ом. Pylize и исходники лектория есть на LiveCD, все слайды можно пересобрать прямо на диске.

Кирилл: есть ещё LaTeX Beamer (он делает PDF).

Редактировать HTML было лень. Захотелось воспользоваться простым форматом разметки. например, m-k (в нём был написан учебник). Недостаток: некоторых элементов разметки в m-k нет, в частности, размер шрифта нельзя задавать, а другие оказалось неудобно использовать, например, в RUN:// надо не забыть RUN:// , закавычить некоторые символы и т. п. Так что слайды написаны на упрощённом m-k, потом их преобразуют сценарии на sed и sh.

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

Усложнённая технология (недо-m-k, m-k, html, слайды) не рекомендуется нормальному человеку; рекомендуется html -> слайды (т. е. Pylize), а если недостаточно или тоже лень, «упрощать» самостоятельно.

Примеры в слайдах

MozEx — расширение Firefox (или SeaMonkey, позволяющее много чего: редактировать текстовые поля в формах с помощью текстового редактора или обрабатывать ссылки вида telnet:// , ed2k:// и вообще что_угодно://, например run:// , с помощью произвольной опрграммы. В частности run:// обрабатывается программой demoscreen.

Demoscreen запускает xterm, а в нём — screen. Screen заводит целое семейство виртуальных терминалов, которые можно присоединить к любому терминалду системы, и получить доступ к сеансу работы. В частности, screen-у можно в командной строке отдавать последовательность клавиш, как если бы из набрал пользователь. Вот и хорошо, mozex отдаст обычную HTML-ссылку “run://ls” demoscreen-у, а demoscreen сформирует команду для screen-а, которые «введёт» её с терминала — а программа, запущенная в этом терминале (например, shell) — отинтерпретирует.

О знаниях и умениях

Make, shell, sed, python и m-k — больше ничего не использовалось. что такое sed: это потоковый текстовый редактор. На вход подаётся текст и программа, этот текст обрабатывающая, на выходе — отредактированный результат. Программа — последовательность команд редактирования.

О Python

На Python написан ALDConvert, Pylize и wiki-сайт образовательных проектов.

Один из немногих языков «скачай — установи — работай», небольшой архив уже с документацией, множеством модулей и средой разработки. Очень много дополнительных модулей. Среды разработки — IDLE и Eric — названы в честь Eric Idle, написавшего музыку к Monty Pythons Flying Circus, кульн/тового сериала, по имени которого назван Python.

Удобно учить Python по его собственному Tutorial.

Последовательность Look-and-say (прочти и запиши): 1, 11, 21, 1211. 111221,... Придумал и исследовал её известный английский математик, автор самого знаменитого клеточного автомата — Джон Хортом Конуэй. Вычисляется она так: пишем “1”; читаем «одна единица», пишем “11”; читаем «две единицы», пишем “21”; читаем «одна двойка, одна единица», пишем “1211”; и т. д.

Python — самодокументируемый язык: в каждом модуле, классе, функции имеется строка документации, которую из любого объекта можно вынуть с помощью функции help(объект). Программа pydoc — специальный http-сервер, он показывает иерархию классов во всех доступных модулях вместе со строками документации, любым навигатором можно посмотреть.

О Wiki

Одна из самых мощных wiki — TWiki, одна из самых известных — MediaWiki (спасибо wikipedia).

Пример Wiki: MoinMoin

Wiki-wiki по-гавайски — «быстро-быстро», а moin-moin по-фризски — «здравствуй-здравствуй».

Пример сборки-разборки MoinMoin: Куча ALT Linux (на которой находится сайт образовательных проектов) пользуется небольшими изменениями, которые легко было внести. Например, можно выкладывать файлы в формате m-k, соответстующий преобразователь получился из ALDConvert за час работы. Даже настройка MoinMoin — это простая программа на python. чтобы перенастроить какое-нибудь внутреннее свойство moinmoin (для которого нет сообветствующей переменной настройки), достаточно сделать производный класс, которы бы наследовал от стандартного всё, а некоторые методы в нём перегружались.

О CamelCase: MoinMoin автоматически делит названия страниц на слова (например, Camal и Case), из которых составляет индекс. Есть и другие индексы, но этот — один из автоматических.ю таким образом, если называть страницы не абы как, а ввести строгое правило именования (самые важные ключевые слова должны взодить в название), любую страницу можно легко будет найти по ключевому слову.

Чтобы избежать свалки в MoinMoin предусмотрены подстраницы.

Ни правила именования, ни правила размещения страниц в подстраницы явно не заданы, это нужно сделать перед тем, как браться за Wiki, и присматривать за процессом наполнения.

В MoinMoin есть понятие «администратор», группы и Access Control List так что можно ограничить, например, запись на титульную и корневые страницы только отдельным доверенным пользователям.

Linux-конструктор

Make everything as simple as possible, but not simpler. Albert Einstein.

В этом лектории не всё было «как можно проще», это из-за лени: хочется лишний раз подумать, а не по кнопкам колотить.