Спецсеминар "Разработка свободного ПО": http://uucode.com/oss2004/. 2-я лекция.
Кернинган, Пайк. "UNIX. Программное окружение". <http://www.books.ru/shop/books/82361?partner=xmlhack>. Есть практический пример компилятора с помощью yacc.
Графический интерфейс vs текстовый:
Текстовый:
Частично утянуто у Витуса Вагнера: "О вреде дружественных интерфейсов" http://www.45.free.net/~vitus/user-friendly.txt: "дружественный интерфейс". Но дружба - это отношение между равными. Хороший интерфейс должен быть не дружественным, а рабским.
Хорошие программы обычно молчат и выводят на экран только сообщения об ошибках. gzip vs zip.
Есть ключ "-h"/"--help". А также "man <command>" или "info <command>".
Вместо одной большой команды -- много маленьких, которые взаимодействуют.
Один из способов: pipes.
$ cat mbox | grep '^Subject:' | sort | uniq
stdin, stdout, stderr
Перенаправление ввода-вывода
$ ls >myfiles (сравните с Perl) $ ls >>myfiles $ sort <myfiles $ make 2>log-err >log $ make >log 2>&1 $ make 2>&1 | tee log
"Если тебе лень читать вывод программы, заставь это делать другую программу". Команды "yes", "grep", "tee".
convert.sh (eps->png)
$ cat convert.sh #!/bin/sh for i in eps/*eps; do convert "$i" png/`basename "$i" .eps`.png; done $ sh ./convert.sh``
Популярные дистрибутивы:
Какой linux ставить? Такой же, как и у вашего гуру.
Рекомендуется: ALT Linux Master. Junior и Compact не подходят. Есть список рассылки пользователей.
vmware -- Linux/Windows/etc в окошечке
cooperative linux (http://www.colinux.org/) -- Linux поверх и совместно с Windows XP.
На зачёт: заставить ALT работать в cooperative node.
Совсем window: cygwin, mingw/msys
cygwin (http://www.cygwin.com/) -- почти полная эмуляция среды POSIX. Таскает за собой большую DLL. (offtopic: рассказать про smbclient.)
mingw/msys (www.mingw.org) -- позволяет компилировать многие POSIX- программы для win32.
Установить ALT Linux Master, поработать с Knoppix или любым другим Linux'ом.
Про семинары: реклама семинара по .NET.
Хвост с прошлой лекции: Lambda the Ultimate <http://lambda-the-ultimate.org/> The programming languages weblog.
Хвост с прошлой лекции: Общее: нельзя делать строгое сравнение в нецелочисленных вычислениях. А также считать деньги в плавающей запятой. Понимается только после реального попадания на проблему.
Про зачёты:
Про доклады. Доклад должен быть не более 20 минут (за редкими исключениями). Ещё темы:
FictionBook <http://www.gribuser.ru/xml/fictionbook/> -- открытый XML-стандарт, предназначенный для хранения и обработки художественных книг. Основная проблема в том, что существующие тексты не универсальны, FB её решает. Зачёт за исправление ошибок в существующих программах, написание reader'ов для разных платформ.
Забавная история про террариум: http://www.rol.ru/news/misc/news/02/09/18_092.htm.
Ant wars: http://ant-wars.com/. Зачёт за попадание в 10-ку лучших.