Четыре стадии: установка пакетов в 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 написан 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 — TWiki, одна из самых известных — MediaWiki (спасибо wikipedia).
Wiki-wiki по-гавайски — «быстро-быстро», а moin-moin по-фризски — «здравствуй-здравствуй».
Пример сборки-разборки MoinMoin: Куча ALT Linux (на которой находится сайт образовательных проектов) пользуется небольшими изменениями, которые легко было внести. Например, можно выкладывать файлы в формате m-k
, соответстующий преобразователь получился из ALDConvert за час работы. Даже настройка MoinMoin — это простая программа на python. чтобы перенастроить какое-нибудь внутреннее свойство moinmoin (для которого нет сообветствующей переменной настройки), достаточно сделать производный класс, которы бы наследовал от стандартного всё, а некоторые методы в нём перегружались.
О CamelCase: MoinMoin автоматически делит названия страниц на слова (например, Camal и Case), из которых составляет индекс. Есть и другие индексы, но этот — один из автоматических.ю таким образом, если называть страницы не абы как, а ввести строгое правило именования (самые важные ключевые слова должны взодить в название), любую страницу можно легко будет найти по ключевому слову.
Чтобы избежать свалки в MoinMoin предусмотрены подстраницы.
Ни правила именования, ни правила размещения страниц в подстраницы явно не заданы, это нужно сделать перед тем, как браться за Wiki, и присматривать за процессом наполнения.
В MoinMoin есть понятие «администратор», группы и Access Control List так что можно ограничить, например, запись на титульную и корневые страницы только отдельным доверенным пользователям.
Make everything as simple as possible, but not simpler. Albert Einstein.
В этом лектории не всё было «как можно проще», это из-за лени: хочется лишний раз подумать, а не по кнопкам колотить.