обращаются к переменной EDITOR. Это пережиток того времени, когда пользователи имели различные настройки для строковых и визуальных редакторов.
(обратно)
100
См. стандарты GNU-программирования на странице <http://www.gnu.org/prep/standards.html>.
(обратно)
101
Файл .xinitrc является аналогом каталога автозагрузки в Windows и других операционных системах.
(обратно)
102
Диспетчер окон (window manager) поддерживает связи между окнами на экране и запущенными заданиями. Диспетчер окон управляет такими функциями, как расположение, отображение заголовков, свертывание, развертывание, перемещение, изменение размеров и затенение окон.
(обратно)
103
Такой взгляд на проблему характерен для нетехнического конечного пользователя.
(обратно)
104
Исходные коды данной программы и других конвертеров с подобными интерфейсами доступны на странице <http://ww.cdrom.com/pub/png>.
(обратно)
105
Управляющая программа (harness programm) представляет собой упаковщик, предназначенный для того, чтобы предоставлять вызываемым им программам доступ к некоторому специальному ресурсу. Данный термин часто употребляется при характеристике средств тестирования, которые предоставляют тестовые нагрузки и (часто) примеры корректного вывода для проверки фактического вывода тестируемых программ.
(обратно)
106
СтраницаScript-Fu <http://www.xcf.Berkeley.edu/~gimp/script-fu/script-fu.html>.
(обратно)
107
Если в системе поддерживаются подсвечиваемые всплывающие окна, которые "мало вторгаются" между пользователем и приложением, используйте их.
(обратно)
108
Для читателей, не знакомых с О-нотацией: она представляет собой способ указания зависимости между средним временем выполнения алгоритма и размерами его входных данных. Алгоритм O(1) выполняется за постоянное время. Алгоритм О(n) выполняется за время, которое можно вычислить по формуле: An + С, где А — некоторый неизвестный постоянный коэффициент пропорциональности, а С — неизвестная константа, представляющая время установки. Линейный поиск определенного значения в списке представляет собой алгоритм типа О(n). Алгоритм О(n²) выполняется за время An² плюс величина более низкого порядка (которая может быть линейной либо логарифмической или любой другой функцией ниже квадратичной). Поиск повторяющихся значений в списке (примитивным методом, без сортировки списка) является алгоритмом О(n²). Аналогично, алгоритмы порядка О(n³) имеют среднее время выполнения, вычисляемое по кубической формуле. Такие алгоритмы часто слишком медленны для практического применения. Порядок O(log n) типичен для поиска по дереву. Взвешенный выбор алгоритма часто может сократить время выполнения с O(п²) до О(log n). Иногда, когда требуется рассчитать использование алгоритмом памяти, можно заметить, что оно изменяется как O(1) или О(n), или O(n²). Как правило, алгоритмы с использованием памяти О(n²) или более высокого порядка являются непрактичными.
(обратно)
109
Удвоение мощности в течение каждых 18 месяцев, обычно цитируемое в контексте закона Мура, подразумевает, что можно достичь 26% прироста производительности просто путем приобретения нового аппаратного обеспечения через 6 месяцев.
(обратно)
110
Термины, введенные здесь для обозначения проблем проектирования, происходят из устоявшегося жаргона хакеров, описанного в книге [66].
(обратно)
111
Разделение случайной и необязательной сложности означает, что рассматриваемые здесь категории не являются тем же, что сущность и случайность в очерке Фреда Брукса "No Silver Bullet" [8], однако в философском смысле они имеют одинаковое происхождение.
(обратно)
112
Молодые читатели могут не знать, что раньше терминалы печатали (на бумаге и очень медленно).
(обратно)
113
http://plan9.bell-labs.com/sys/doc/sam/sam.html
(обратно)
114
Разработчиками Emacs были Ричард М. Столлмен (Richard М. Stallman) и Берни Гринберг (Bernie Greenberg). Первоначальный редактор Emacs был изобретением Столлмена, первая версия со встроенным языком Lisp была создана Гринбергом, а окончательная на сегодняшний день версия создана Столлменом на основе версии Гринберга. К 2003 году нет полного изложения истории разработки редактора, но эту тему освещает статья Гринберга "Multics Emacs: The History, Design, and Implementation", которую можно найти в Web по ключевым словам.
(обратно)
115
http://www.cs.yorku.ca/~oz/wily
(обратно)
116
http://plan9.bell-labs.com/sys/doc/acme/acme.html
(обратно)
117
Подробности на странице <ftp://ftp.idiom.com/pub/compilers-list/free-compilers> (Список бесплатных компиляторов и интерпретаторов).
(обратно)
118
За пределами мира Unix этот прирост аппаратной производительности на три порядка в значительной мере затмевается соответствующим понижением производительности программ.
(обратно)
119
Серьезность данной проблемы подтверждается богатым сленгом, выработанным Unix-программистами для описания различных ее разновидностей: "псевдонимная ошибка" (aliasing bug), "нарушение выделенной области памяти" (arena corruption), "утечка памяти" (memory leak), "переполнение буфера" (buffer overflow), "разрушение стека" (stack smash), "отклонение указателя" (fandango on core), "недействительный указатель" (stale pointer), "подкачка памяти" (heap trashing), а также вызывающее справедливые опасения "вторичное повреждение" (secondary damage). Пояснения приведены в Словаре хакера <http://www.catb.org/~esr/jargon>.
(обратно)
120
Последний стандарт С++, датированный 1998 годом, был широко распространенным, но слабым, особенно в области библиотек.
(обратно)
121
См. очерк Тома Кристиансена (Tom Christiansen) "Csh Programming Considered Harmful" который можно легко найти в Web.
(обратно)
122
Существует Web-сайт проекта Freenet <http://freenetproject.org>.
(обратно)
123
URL-запроса для получения статистических данных: <http://sourceforge.net/softwaremap/trove_list.php?form_cat=160>.
(обратно)
124
URL-запроса для получения статистических данных: <http://freshmeat.net/browse/160/?topic_id=160>.
(обратно)
125
Распространенное более новое описание языка Perl как "швейцарской бензопилы" является производным.
(обратно)
126
PLY можно загрузить со страницы <http://systems.cs.uchicago.edu/ply/>.
(обратно)
127
Пакет CUP доступен на странице <http://www.cs.princeton.edu/~appel/modern/java/CUP>.
(обратно)
128
Пакет Jack доступен на странице <http://www.javaworld.com/javaworld/jw-12-1996/jw-12-jack.html>.
(обратно)
129
Пакет