#format wiki #language ru = Разработка программного обеспечения для GNU/Linux = * Лектор: [[FrBrGeorge|Георгий Курячий]] * Время и место проведения: по '''пятницам''' в '''18:00''', аудитория '''П-14''' * Первая лекция: '''28 сентября 2012 г.''' * Лицам, не имеющим пропуск на [[CMC|факультет ВМК МГУ]], рекомендуется на первую лекцию принести одну матовую фотографию 3×4 и паспортные данные для оформления пропуска. == Экзамен == * Для сдачи надо заранее (не менее, чем за день до экзамена) записаться, написав письмо с темой «Экзамен ''дата'' ''ФИО''» по адресу <>. . '''Внимание''': от количества записавшихся зависит количество приглашённых экзаменаторов, и, соответственно, сдающих экзамен. * Первая итерация экзамена пройдёт 21 декабря 2012 года в аудитории П-14, начало в 16:00. * Вторая итерация экзамена — 25 января 2013 года в '''12 часов''', сбор около ауд 762 (если запишется много народу, закажем аудиторию). * [[/CoursePlan|Темы для экзамена]] ([[/CoursePlanDg|краткое содержание]] :) ) * см. также [[../|замечание о методах сдачи-приёмки]] экзамена ##, [[/MaterialList|материалы по теме курса]]). == Аннотация == * Название: Разработка программного обеспечения для GNU/Linux * Title: GNU/Linux application software development В курсе рассматривается жизненный цикл создания программного продукта на примере практик, используемых при разработке приложений для ОС семейства GNU/Linux. Освещены следующие темы: * Дисциплина оформления исходного кода * Документирование * Совместная разработка и контроль версий * Повторное использование кода, в том числе сторонне разработанного * Сборка сложного продукта и определение сборочных зависимостей * Отладка и тестирование * Перевод и интернационализация * Конечная установка и распространение программного продукта По каждой теме предполагается осветить теоретические основы, необходимые для её понимания, дать обзор используемых инструментов и показать процесс применения одного из таких инструментов для самостоятельного решения практических задач. Курс ориентирован на слушателей, имеющих практический опыт работы в командной строке UNIX-систем, представление об архитектуре операционной системы на базе GNU/Linux и опыт программирования (предпочтительно на Си). ## == Тематический план курса == ## Если из аннотации непонятно == Материалы == || '''№''' || '''Тема''' || '''Лектор''' || '''Дата''' || '''Конспект''' ||'''Аудио''' ||'''Видео''' || ||<)> 0 || Установочная лекция. Определение и ограничение круга рассматриваемых тем. Связь с темами предыдущих семестров || [[FrBrGeorge|Георгий Курячий]] || <> || || || || ||<)> [[/01|1]] || Сборочное окружение. «Доисторическая» сборка || [[FrBrGeorge|Георгий Курячий]] || <> || || || || ||<)> [[/02|2]] || Сборочные зависимости и инструменты работы с ними || [[FrBrGeorge|Георгий Курячий]] || <> || [[/Conspects/02]] || || || ||<)> [[/03|3]] || Отладка и трассировка || [[FrBrGeorge|Георгий Курячий]] || <> || [[/Conspects/03]] || || || ||<)> [[/04|4]] || Работа с исходным текстом || [[FrBrGeorge|Георгий Курячий]] || <> || [[/Conspects/04]] || || || ||<)> [[/05|5]] || Дисциплина оформления и ведения исходного текста || [[FrBrGeorge|Георгий Курячий]] || <> || [[/Conspects/05]] || || || ||<)> [[/06|6]] || Информационное пространство дерева исходных текстов || [[FrBrGeorge|Георгий Курячий]] || <> || || || || ||<)> [[/07|7]] || Контроль качества || [[FrBrGeorge|Георгий Курячий]] || <> || [[/Conspects/07]] || || || ||<)> [[/08|8]] || Инструментарии || [[FrBrGeorge|Георгий Курячий]] || <> || [[/Conspects/08]] || || || ||<)> [[/09|9]] || Интернационализация || [[FrBrGeorge|Георгий Курячий]] || <> || [[/Conspects/09]] || || || ||<)> [[/10|10]] || Специфика программирования под Linux в сравнении с другими POSIX-системами || [[eSyr|Евгений Сыромятников]] || <> || [[/Conspects/10]] || || || ||<)> [[/11|11]] || Информационное-технологическое обеспечение разработки || [[FrBrGeorge|Георгий Курячий]] || <> || [[/Conspects/11]] || || || ##== Ссылки == ## На предыдущие курсы, на выложенные материалы с пояснениями и т. п. == Практические занятия == Для работы на сервере практикума надо создать ssh-ключ и отправить его открытую часть по адресу frbrgeorge@gmail.com с темой "'''Практикум'''" (не забудьте представиться и указать курс и группу). Решённые домашние задания располагаются в домашнем каталоге пользователя examples (`~examples/`), в подкаталогах вида "''год-номер_недели''". Процесс решения домашних заданий фиксируется в хранящихся в подкаталоге `scripts` typescript-файлах вида "''год-номер_недели-номер_попытки''.*" (публикуются [[http://git.altlinux.org/people/george/public/?p=typescripts.git;a=tree|тут]]) Для просмотра необходимо два typescript-файла (`что-то.typescript` и `что-то.timing`): {{{ $ scriptreplay что-то.timing что-то.typescript }}} Запускать в `xterm`-е размером '''80x25''', в кодировке '''ru_RU.UTF-8'''. У `scriptreplay` есть необязательный третий параметр — скорость просмотра :). Как самому сделать typescript? Нет ничего проще! Запустить `xterm` ( /!\ если PuTTY, надо смотреть, какие настройки подойдут) размером '''80x25''' {{{ $ script -tфайл_с_таймингами.timing файл-с-буковками.script Скрипт запущен, файл - файл-с-буковками.script $ всякие команды. они уже записываются! … $ exit Скрипт выполнен, файл - файл-с-буковками.script $ готово, можно использовать }}} Полученные два файла можно назвать содержательными именами и послать FrBrGeorge. Для передачи любых файлов на сервер практикума и обратно пользуйтесь `scp` (или `pscp` / [[http://winscp.net|Winscp]] :) ). См. [[/SshKeygen|создание ключа]]. ---- CategoryLectures