"Быстро, дешево и хорошо — из этих трех вещей нужно всегда выбирать две. Если быстро и дешево, это никогда не будет хорошо. Если это дешево и хорошо, никогда не получится быстро. А если это хорошо и быстро, никогда не выйдет дешево. Но помни: из трех все равно придется всегда выбирать два." (Том Уэйтс)
"Если ваша компания не заинтересована в дизайне, она бессмысленна. Все имеет форму. И если что-то имеет форму, значит, оно имеет смысл. Вы вынуждены создавать дизайн. Но дизайн – это не только форма. Дизайн – это также функциональность, себестоимость, стиль жизни и ее продолжительность." (Кьелл Нордстрем и Йонас Риддерстрале)
"Главное для дизайнера — создавать такие вещи, которые радуют его самого, чтобы работа приносила удовлетворение, а сотрудничество с заказчиком — удовольствие. Нужно понять, что хочет заказчик, и соединить это со своими желаниями и возможностями. Чтобы создать что-то выдающееся, нужен энтузиазм обоих." (Хорхе Пенси)

Малая эциклопедия компьютерых существ

Составлена, редактирована и дополнена К.Антоновым при содействии известной персоны - моего приятеля Maverick'а.

NB: Сие издание базируется на собственных наблюдениях и ни в коей мере не должно быть расценено как попытка поставить под сомнение добропорядочность отдельных видов существ, описываемых в этом научном труде.

Вы можете распространять сию продукцию без письменного согласия автора ( даже если бы я сказал "нет" - кто бы послушался.? ) Коммерческое использование не преследуется ( а много ль таких коммерсантов найдется.? )

7 декабря 1991 г. 10:36 вечера.

Глава первая. Сисопы.

1. Вид: сисоп идеальный
Тип: беззлобный
Семейство: независимые

Самый немногочисленный вид сисопов, на сегодняшний день встречающийся только в специальных питомниках. Такое массовое исчезновение является следствием природной доброты сисопа идеального, не жалевшего титулов Extra или SysOp для всяких пронырливых юзеров (см."юзер"). Итогом являлись выкачанные File арии, загаженные эхи и невообразимые счета за междугороднюю связь. Этот вид сисопа внесен в семейство независимых, т.к. большинство особей этого вида имели собственные BBSки, и поэтому не очень ценили свой уровень (SysOp).

2. Вид: сисоп хитрый
Тип: скрытный
Семейство: подневольные

Этот вид насчитывает гораздо большее число особей, чем идеальный. Основные черты: скуп на increase, максимально извращает свою BBS путем установления немыслимых соотношений UL/DL, лимита времени, непрерывно запугивает почтенных, но незнакомых ему юзеров сокращением времени доступа и download amount'а. Не пользуется уважением у других сисопов из-за своих амбициозных наклонностей ( мгновенно offlin'ит все ценные файлы, презирает chat mode и избегает встреч с себе подобными ). Подневольные - зависят от своих боссов, чем и оправдываются при разговоре о возможном download'е.

3. Вид: сисоп справедливый
Тип: пресыщенный
Семейство: независимые

Самый близкий сородич сисопа идеального или являющийся его мутировавшей формой. Из-за неблагоприятных BBSных условий этот вид претерпел многочисленные метаморфозы, прежде чем окончательно сформироваться. Итог: общительность, установление оптимального уровня для всех юзеров ( приемлемый UL/DL, достаток времени ) икогда не отказывается от chat'а и готов сообщить новости, а также не имеет вредных проявлений, как-то: умолчание информации, не имеющей особой ценности или склонностей к снижению чьего-либо уровня. Примечание: этот вид довольно успешно конкурирует с пока что не менее сильным видом ( 2 ) и имеет больше шансов на победу в ходе естественного отбора.

NB: Автор сознательно удержался от публикации конкретных имен и фамилий, но считает, что каждый сможет безошибочно определить принадлежность любого сисопа.

Глава вторая. Хаккеры.

1. Вид: хаккер херакерый
Тип: вороватый
Семейство: бесчестные

Является самым бесполезным видом, позорящим престиж других представителей этой группы существ. Познания в ассемблере или машинных кодах равны нулю, ворует уже взломанные программы и всовывает собственную кличку. Отличается феноменальной леностью и не старается использовать свой мозговой агрегат для создания своих программ.
Как правило, одинок и замкнут. Если же пытается установить контакт с другими особями, умалчивает о своих истинных приемах в хаккерском искусстве. Определить хаккера херакерного очень легко - достаточно попросить его подарить Вам одну из его последних demo. Ответная реакция известна.

2. Вид: пират искусный
Тип: образованный
Семейство: элита

Настоящий profi. Знает memory map как свои десять пальцев ( он ведь двумя руками работает на клавиатуре! ). Весьма трудолюбив - не жалеет времени на поиск паролей, встраивает бесконечные жизни, энергию, прорыв сквозь уровни и пр.
Этот вид склонен к объединению в кланы хаккеров с разделением труда, своим лидером, кастой кодеров и demo-maker'ов, кругом знакомых в software магазинах ( речь идет о подвиде - пирате искусном западном ) и бесперебойной системой hacking'а. Очень общителен и нередко терпит убытки из-за громадного количесва отправленных писем и дискет. Самый жизнеспособный вид. Популяция постоянно возобновляется, что способствует ее закалке.

3. Вид: кодер обыкновенный
Тип: образованный
Семейство: элита

Представитель касты кодеров, специализирующейся на выпуске заставок ( demo и intro ). е является хаккером в полном смысле слова, т.к. занят обычным кодированием на ассемблере или универсальных demo-creator'ах - пишет музыку, графику, фонты и оживлением ( анимацией ). е склонен к многочисленным контактам с себе подобными. Следствием мозговых мутаций является еще большее увлечение своим делом и повышение уровня знаний.

4. Вид: хаккер вирусоносный
Тип: вредный
Семейство: подлые

Незавершенная форма вирус-производителя. Природная злоба побуждает его ломать программы, не доводя дело до конца, и инфицировать их собственными вирусами. Довольно опытен и хорошо знает последствия своих забав. Как правило, это особь, исключенная из какого-нибудь клана за леность или разгильдяйство. Честолюбив, но осторожен. Поэтому, в вирусах называет только свою кличку, опасаясь возмездия.

Глава третья. Юзеры.

1. Вид: юзер бестолковый
Тип: играющий
Семейство: малограмотные

Бестолковый юзер - самая распространенная популяция компьютерных существ. Отсутствие знаний в программировании - результат недолгого пребывания в компьютерной среде обитания. Основное время уделяет игровым баталиям, но не имеет ничего нового из игр - одно старье. В последствии, юзеры бестолковые мутируют, одни из них становятся хаккерами, т.к. хотят изменить параметры своих любимых игр, другие начинают заниматься собственно программированием, а при очень сильных метаморфозах становятся даже сисопами (!) на домашних BBSках.

2. Вид: юзер лукавый
Тип: играющий
Семейство: бесчестные

Очень любит копаться в Fido BBSках. е очень дальновиден, т.к. для поднятия своего access level пытается upload'ить бесполезное файло, да еще в неупакованном виде. Если попадает на сисопа хитрого скрытного - почти всегда сидит в дисгрейсах или твитах. Пагубное пристрастие к играм толкает юзера лукавого на поиски обходных путей отсосать побольше файла из BBS. Юзер начинает регистрироваться под разными именами, выведывать пароль сисопа или жалобно просить о поднятии уровня. По численности - не очень большой вид, но весьма изворотлив, что и делает его во многих случаях неуязвимым.

3. Вид: юзер ценный
Тип: открытый
Семейство: сисоповидные

Самый желанный для сисопа вид юзера. аличие шустрого модема и обилие свежего файла способствует быстрому продвижению по иерархической лестнице assessometr'а и всеобщей сисопской любви. Такие особи недолго задерживаются в юзерах и мутируют в сисопов, основывая свои BBSки. Тем не менее, они всегда склонны к chat'у и не жалеют времени для визитов к особям своего вида.

ЕЩЕ РАЗ О HАСТОЯЩИХ ПРОГРАММИСТАХ

Каким надо быть высокомерным идиотом для того, чтобы изобрести обучающий язык таким, как Паскаль. Все ученики и последователи иклауса Вирта будут великолепно читать комментарии и понимать, что BEGIN значит АЧАЛО, а END - КОНЕЦ. а большее потянуть они не смогут.

Если уж кому-то в голову пришло, что программированию надо учить на языках высокого уровня, то для этой цели можно использовать ФОРТ, в крайнем случае СИ (если не выделять в нем приемы структурного программирования). В этом случае, по крайней мере, придется приложить мозговые усилия для решения той или иной задачи. Язык программирования, который своими средствами не способен вывести из строя систему, не может считаться гибким и не должен считаться языком программирования вообще.

На самом деле для воспитания хороших программистов необходимо преподавать в качестве обучающего языка Ассемблер, причем не один, а несколько (естественно, с возможностью свободного творчества на данном Ассемблере). Тогда будущий программист столкнется с реальными условиями.

Для того, чтобы отделить потенциальных программистов от сосунков, нужно на самой ранней стадии обучения посадить группу за терминалы и посмотреть, чем каждый из них будет заниматься. Сосунок будет исправно решать поставленную преподавателем задачу, а потенциальный настоящий программист залезет в машину учителя, вытащит оттуда ТЕТРИС, за 3 минуты до конца занятия сворует программу у соседа и исправит в соответствии со своим заданием.

Второго смело можно подпускать к программированию. Первого лучше отправить изучать Паскаль, и так, чтобы он занимался этим как можно дольше. Лучше всего - всю жизнь.

Выделив будущих программистов, обучать их можно по разному. Наиболее эффективен следующий способ.

Ученику выдается компьютер и некоторое количество программных средств, с которыми ему в дальнейшем придется работать. Описаний к этим программам либо не выдается совсем, либо выдается минимальный набор. Если происходит обучение какому-либо языку программирования, в качестве руководства желательно использовать литературу на языке, заведомо незнакомом обучающемуся, либо произведения советских авторов.

Когда будет замечено, что ученик работает с программой (языком программирования) довольно сносно, можно предложить ему для изучения исчерпывающие руководства. Они будут прочитаны как захватывающий детектив. Затем, после небольшого периода переваривания полученных знаний, программист готов к активной деятельности.

Специалист, прошедший обучение подобным образом, как правило, удивляет других "программистов" приемами программирования. Не исключено, что вместо шестнадцатиричной системы счисления он будет использовать десятичную (если ему до прохождения курса никто не объяснял, что программировать нужно в шестнадцатиричной системе). Программы, написанные таким специалистом, будут совершенны в работе, но перед желающим их улучшить или узменить встанет практически неразрешимая задача (за исключением случаев, когда с этой задачей сталкивается такой же специалист), так как прочитать эти программы и понять их суть крайне тяжело, например, нелегко обычному программисту прочитать программу на Ассемблере, в которой все числа - десятичные.

Программист, изучавший таким способом Ассемблер, наверняка знает коды всех мнемоник в восьмеричной, десятичной и шестнадцатиричной системе счисления и может писать программы емкостью до нескольких килобайт непосредственно в машинном коде, вводя программу десятичными или шестнадцатиричными числами.

Вообще говоря, программистов, подготовленных таким образом, можно и должно называть хакерами.

В слово хакер вложен отрицательный смысл (почему - объясню ниже), но каждый из них гордо носит свое имя.

Хакера не волнует сложность поставленной задачи, но заниматься ею он будет только в том случае, если она ему интересна. Заставить хакера работать вне его интересов доступно лишь исключительно талантливым организаторам.

Наиболее интересная область для хакера - это программы с защитами. Снятие защит - это одна из сложнейших задач, с которой может столкнуться программист. Любому понятно, что ни одному сосунку, ратующему за структурное программирование, эта проблема не по силам, для этого необходим талант.

В советских условиях хакер необходим по той простой причине, что пойти в магазин и купить дискету с пакетом P-CAD для IBM PC весьма затруднительно, поэтому приходится его воровать. Своровать программу без хакера невозможно, так как практически любая фирменная дискета или кассета защищена от копирования.

Загнивающих предпринимателей слово хакер приводит в ужас, но я делаю различие между хакером и компьютерным пиратом (термин SOFTWARE PIRACY вполне официален и является предметом пристального внимания ИТЕРПОЛА). е исключено, что хакер может заниматься распространением программ, с которых снял защиты, но это характеризует его как человека, но не как программиста. Еще больше отрицательных эмоций (в основном у тех, кто пользуется ворованными программами, т.е. у советских программистов) вызывают хакеры, занимающиеся изготовлением разного рода вирусов.

Hадо заметить, что для хакера не менее интересны и задачи, обратные предыдущим, а именно, изобретение защит и написание антивирусов (то-есть программ, выслеживающих и уничтожающих вирусы), посему фирмы, производящие программный продукт, не гнушаются ничем, чтобы получить хакера себе в сотрудники. Вообще говоря, любая фирма, занимающаяся программными разработками, развалится, если на нее не будет работать несколько хакеров.

Теперь ряд штрихов, характеризующих хакера:

- как уже говорилось, хакера трудно заставить работать, но если его заинтересовать, то результат почти всегда - шедевр;
- хакеру тяжело что-либо начать, но уйдя в работу, он потерян для общества вплоть до завершения той или иной стадии;
- при выборе программных средств для своей деятельности хакер часто удивляет других программистов. Как правило, это определяется не тем, что программа умеет, а тем, как она написана (этот текст, например, набирается в текстовом редакторе, никоим образом не связанным с русским языком, но уж очень редактор хорош);
- все, что хакер делает, он не считает работой, и если фирма платит ему деньги, то, вероятно, только для того, чтобы он иногда произносил фразу: "Я работаю на фирме ...";
- хакер часто смеется, когда читает литературу по программированию (особенно советскую);
- лучшая литература для хакера - распечатка программы;
- хакер не всегда знает язык программирования, с которым он в данный момент работает;
- хакер способен объяснять по телефону способ, которым можно найти ячейку памяти, определяющую количество жизней в игре SABOTEUR, одновременно восстанавливая содержимое диска с полностью испорченной директорией, используя DISC DOCTOR фирмы Technology Research (программу, написанную либо пьяным, либо сумасшедшим);
- хакер предпочитает работать ночью, так как в это время суток закрыты пивные заведения, а телефон почти не звонит. Если он зазвонил, то это звонок другого хакера;
- музыка может быть помехой во время чтения художественной литературы, но не во время работы (работы?!);
- как правило, критику хакер воспринимает без мордобития, всегда находит оправдание, но указанную ошибку исправляет (если ее не исправил другой хакер);
- хакер может страдать тяжелой формой мании величия, но всегда об этом предупреждает;
- мыслительный процесс идет у хакера подсознательно. Это иногда приводит к тому, что ложась с женщиной в постель, хакер вскакивает, осознав, что в пятисотой строке его программы стоит неправильное условие перехода на метку QWERTASDF (такая метка также в порядке вещей, так как хакеру не хватает энергии не только на написание комментариев, но и на придумывание удобочитаемых меток - гораздо проще провести кулаком по клавиатуре).

Внешний вид хакера может шокировать непривычного человека. Советский программист обычно представляется слегка лысоватым, с 8-килограммовой фортрановской распечаткой в коричневом портфеле и колодой перфокарт под мышкой. Хакер же может отпустить волосы до пояса, слушать тяжелый рок и носить в портфеле школьные учебники.

Интереснее всего хакерам живется в Советском Союзе. Во-первых, они вольны в своих действиях, так как здесь хакеров в тюрьму не сажают и штрафам не подвергают; во-вторых, документация на программу или язык программирования появляется у хакера уже после того, как он окончательно разобрался с интересующим его вопросом (я, например, получил описание процессора Z80 сразу, как только понял использование регистра I, то есть самое сложное, что в этом процессоре есть). Если же хакер решил изучить язык программирования и купил о нем книжку в киоске Союзпечать, это еще больше активизирует процесс интеллектуальной деятельности. Я готов пожать руку даже программисту на Паскале, если он смог разобраться в книге "ачала программирования на языке Паскаль" (С.А. Абрамов, Е.В. Зима, Москва <<аука>>, 1987) до того, как научился писать комментарии и выделять двумя пробелами конструкцию REPEAT ... UNTIL. Он скорее всего хакер и Паскаль забросит довольно скоро.

Поскольку сейчас в советских магазинах нельзя купить не только пакет P-CAD для IBM PC, но и колбасу, хакер часто начинает с того, что собственными силами собирает компьютер. Естественно, что это игрушка для дома и семьи с восьмиразрядным процессором и памятью в пределах 64К, но именно на таком аппарате хакер начинает воистину вытворять чудеса. Описать ощущения, вызываемые сообщением языка Си "Числа с плавающей запятой не поддерживаются" после 3-х минутной подгрузки библиотеки stdio.h с магнитофона, невозможно, это надо прочуствовать. Тем не менее, даже в таких условиях хакеру удается написать самообучающуюся программу игры в дурака, не используя библиотеки вообще.

Интересные ситуации возникают при встрече двух или более хакеров. и один структурный программист не поймет сути вопроса, обсуждаемого хакерами, так как один хакер может изъясняться в шестнадцатиричной системе, другой - в десятичной, третий не изъясняться вообще, и все будут прекрасно понимать друг друга.

Первый раз в своей жизни встретив другого хакера, я был немало удивлен тем, что меня понимали с полуслова и мне не приходилось все разжевывать и повторять по пять-шесть раз в размеренном темпе. Меня не переспрашивали, какую систему счисления я употребил в данный момент времени и задавали вопросы, на которые можно было дать ответ. Судя по удивлению в глазах моего коллеги, он, как и я, никогда прежде не сталкивался с другими хакерами.

Беседы между хакерами приносят весьма ощутимую пользу, однако подпускать к одной ЭВМ двух хакеров одновременно недопустимо. К положительным результатам это не приведет, более того, может закончиться кровопролитием. При всем том, не исключается, что разняв двух дерущихся хакеров и посадив их в разные комнаты, можно получить абсолютно идентичные программы.

Хакер - человек спокойный, но и его можно вывести из себя вопросом "Какой командой процессора колобок ест черта?" или "Каким образом снять защиту от копирования с программы Infiltrator?".

Работа хакера напоминает работу столяра, забивающего гвоздь одним ударом молотка. Хакер некоторое время ходит вокруг машины (радиус хождения может составлять до нескольких тысяч километров), затем садится за клавиатуру и делает за один вечер то, на что было выделено 15 дней. Не надо думать, что четырнадцать дней, которые хакер потратил на хождение вокруг машины пропали даром: все это время хакер подсознательно обдумывал поставленную задачу. Другое дело, была ли необходимость в этих раздумьях.

Когда хакер заканчивает какую-либо работу, он твердо уверен: все, что он сделал - хлам, однако вслух это мнение не
высказывает, так как заказчик всегда остается доволен. Хакер, конечно, расстроится, если случайно уничтожит шестимесячную работу, но глубоко в душе он будет рад тому, что, расставшись с хламом, он сможет решить задачу гораздо красивее. Однако... смотри начало абзаца.

Родионов 07.90

P.S. Hаписать этот опус меня побудила статья "Настоящие программисты не используют Паскаль" в журнале "Datamation". Автор этой статьи - настоящий хакер, и мне не хотелось бы, чтобы "мое" сравнивали с "его", поскольку его уровень на несколько порядков выше.