> Лекция девятая -- Какое ПО использовано в лектории? > Отчёт Кирилла Маслнского . На первую лекцию пришло человек 60, потом сократилось до 15. . Главный вопрос: а зачем делать что-то новое, когда есть EduBuntu и т. п.? То есть, не вполне понятно, что такое этот серверный дистрибутив. И все, кто не понял, ушёл. . Изменения: другая лекция про правовые вопросы, более теоретичная лекция про пакеты . Не было обратной связи по структуре LiveCD Ответ: см. первую лекцию и 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 Python's 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. В этом лектории не всё было ``как можно проще'', это из-за лени: хочется лишний раз подумать, а не по кнопкам колотить.