Читаем Bash.org.ru IT Happens Истории ## 4601 – 4700 полностью

12:00 05.11.2010, IT happens

С детства я увлекался электроникой. Потом было программирование, которое стало увлечением серьёзным, заняв меня на долгие годы. Чтобы поступить в институт по интересующей специальности в начале нашего столетия, нужна была кругленькая сумма, поэтому я получил среднее образование. В 2005-м мой опыт разработки ПО достиг такого уровня, что я без проблем смог пройти собеседование на должность инженера-программиста в крупной компании, где закрыли глаза на отсутствие диплома. Через два года я решил всё-таки получить заветную «корочку» и поступил на экономиста. Хоть обучение было заочным, лекции я посещал часто, и преподаватели без проблем ставили зачёты/экзамены — достаточно было пробормотать что-нибудь по теме. Не ходил я только на один предмет — информатику.

И вот зачёт. Предварительно посмотрев, что было на лекциях, шёл спокойный, как танк. В голове крутился интересный проект по работе. Преподаватель — женщина средних лет, строго одета, невозмутимый взгляд. На несколько первых вопросов я ответил, но ей было мало: она меня впервые видела.

— Молодой человек, а теперь скажите мне, какие языки программирования вы знаете.

— C/C++, Pascal/Delphi, VBA немного, — особо не задумываясь, ответил я.

— Это слишком мало. Если бы вы посещали лекции, знали бы больше! Встретимся на следующей неделе.

«Ни хрена себе: оказывается, для экономиста этого мало!» — думал я, выходя из кабинета. Тут меня осенило, что же преподаватель имела в виду. Подождал, попытался всё объяснить. Женщина на меня смотрела круглыми глазами, когда до неё дошло, что в айтишном мире понимают под знанием языка. Преподаватель извинилась и пообещала экзамен автоматом.

<p>#4608: Антииндийский код</p>

12:00 05.11.2010, IT happens

Мудрость наших отцов и дедов гласила: «Нет такой программы, которую нельзя было бы сократить хотя бы на один оператор». Учитывая, что вводить код приходилось с перфокарт, индийский подход был нежизнеспособен. Те времена прошли, но «мышечная память» всё ещё жива в некоторых преподавателях программирования.

История эта произошла со мной, когда я учился на первом курсе МИРЭА. Очередная лаба по программированию: матрица N?N с рандомными числами, задающими расстояние, в которой надо было провести расчет кратчайшего пути из {1; 1} в {N; N}. Первая версия программы была напичкана циклами и массой условий. Работала быстро — ну, насколько это позволял третий «пень». Тётечка-преподаватель, оценив код, сказала, что надо бы оптимизировать. Почесав репу, я изрядно переписал код: количество циклов сократилось вдвое, а условий — втрое. «Всё равно много», — сказала тетечка.

Десятая версия выглядела примерно так:

i := 0;

while ((48 условий) and (i <= N*N)) do inc(i);

Только после этого я получил зачёт и фразу, которая вьелась мне в мозг: «Памяти много не бывает!»

<p>#4609: Чужих — армейским сапогом</p>

14:00 05.11.2010, IT happens

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

Aliens Versus Predator 3 — avp.exe

И ладно бы просто название — а ведь это прямой путь к моему красноармейцу в комплекте с иконкой! Вона как красная армия, оказывается, «чужих» изводит...

<p>#4610: HP BurnJet14:00 05.11.2010, IT happens</p>

Купили для нужд кладовщиков цветной лазерный принтер. Их начальница (хотя с компьютером почти на «ты») сильно удивилась:

— Я всю жизнь думала, что лазерный принтер печатает, выжигая лазером буквы на бумаге, поэтому может быть только чёрный цвет!

<p>#4611: Сорцы давно минувших дней</p>

14:00 05.11.2010, IT happens

...Обратите внимание: несмотря на низкую человекопонятность, недостаточную структурированность, а также на появление в последующие годы более совершенных языков и стилей разработки, этот код считался образцом правильно спроектированных систем ещё 0x40 лет. Каждый из вас даже при поверхностном анализе сможет выявить в нём не менее 0x800 уязвимостей. Дайте-ка, посчитаю с нуля... У меня получилось 0x81c, но это с минимальной глубиной анализа. Ну так вот: несмотря на огромное количество уязвимостей, эта система считалась образцом надёжности и защищённости. Репутацию спасало лишь слабое развитие аппаратных средств: если бы самый мощный пракомпьютер конца эпохи UNIX начал анализ, который я только что произвела, в момент выхода первой версии ядра, мы с вами не дожили бы до обнаружения им первой из только что найденных мною уязвимостей.

Перейти на страницу:

Все книги серии Bash.org.ru IT Happens

Похожие книги