Истории с тегом: программизмы

Всего историй: 900

1993

Кавалерийским наскоком

Бабушка моего друга-программера до сих пор думает, что его работа — играть на компьютере. Впрочем, это присказка.

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

Заходит мама и с порога с подозрением спрашивает: «Опять играешься?» Cначала хотел было что-нибудь сказать, но потом забил и ушёл с девушкой на речку. Выспался, с утра сел и на свежую голову за пять минут «прошёл» сложный кусок.

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

1968

Шишкин лес

На форуме ставят задачу:

— Есть девятимеговый «экзешник», сгенерированный компилятором С++. Надо его преобразовать обратно в классы. Срок — два месяца, оплата — 25000.

Юмористы тут как тут:

— Ребята, у меня стол деревянный стоит. Плачу 50000 тому, кто сделает из него ёлку с шишками.

1907

Стопицот

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

#define B 1000; // Машинный аналог бесконечности

1905

А икс его три!

Пришли к нам в контору два перца после института. Шеф одному сразу поручил написать на «асме» прогу под DOS, которая что-то там со SMART-параметрами винта делает, а меня попросил помогать и консультировать, если что.

Сижу, правлю код, вроде всё починил, запускаю... На черном экране надпись, которую за всю свою программерскую жизнь я ни разу не видел — что-то типа «тра-ля-ля, введите код ошибки». Какой ошибки, блин, кто спрашивает? Думал-думал... и ввёл «x3». Заработало, а глупых вопросов больше не задавало.

1904

Размазня

В начале девяностых я впервые попал в компьютерный класс на работе у отца. Это была военная организация, и там стояли крутые «Искра-226» с мониторами и клавиатурами. Наигравшись в «питона» и тетрис, я спросил отца, можно ли напечатать на их принтере моё школьное сочинение на тему «Как я провел лето». Должен заметить, что я с детства отличался на редкость корявым и размашистым почерком, за что регулярно получал заниженные оценки по русскому. Сочинение было без особых проблем набрано, распечатано и сдано на проверку, но учительница отказалась его принимать под невероятным предлогом: «Слишком мало!»

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

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

1891

Сисадминчик, ты свинья: места нету на винте

Господа программисты! Никогда, повторяю, никогда не пишите матерные комменты или сообщения об ошибках, даже если вы уверены, что такие ошибки никогда не возникнут.

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

Я краснею, бледнею, лепечу что-то, стираю текст ошибки и бегу к себе рыться в исходниках. Нужное место находится быстро:

open READY, ">ready.dat" or print "*** твою мать! На*** ты, ****** *****, эту ***** съ*****? Теперь полный ******!";

Это я здесь заменил звездочками — в оригинале всё было без купюр. Открытие файла производилось в цикле, да ещё так удачно совпало, что в выходном HTML ошибка попала аккурат в

красного цвета.

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

1877

Офлайн-отладчик «Морфей»

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

Уже наяву я добежал до работы и повторил всё, что сделал во сне. Бага, конечно, была на месте и правилась в точности так, как мне приснилось.

Всё-таки крутой процессор у нас в голове. На основе эмпирических данных сэмулировать в подсознании работу ОС, компилятора, отладчика, точки останова и watches, интегрирование системы дифуров и вывод в GUI... И при этом не тормозить!

1876

Стильная переработка

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

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

Делов-то: скопипастил, позаменял в нужных местах иксы на игреки, и всё в ажуре. Но лень-матушка заставила меня поползать по папкам на жёстком диске и таки обнаружить эту же программу, выполненную кем-то в прошлом году. Там был немного другой лабиринт и дополнительные навороты, но меня интересовали лишь те строки кода, которые описывали необходимые мне движения.

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

Школьная пора — странная пора. «Сжульничать во что бы то ни стало» — вот девиз школьника, даже такого, для которого сделать всё по-честному — пара пустяков. Проверено на себе.

1874

Этанол как ускоритель интерпретации кода

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

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

— У вас тут выход за пределы массива, молодой человек. Переделать!

Профессиональные программисты-преподаватели настолько суровы, что даже пьяными в лёгкую стелечку проверяют домашки на скорости компилятора.

1839

О гуманности эвтаназии

Третий день непрерывного кодинга в VS 2008; параллельно готовлюсь к экзамену по философии. Далеко не в первый раз перезапускаю прогу с целью выловить мелкий зловредный бажок. Программа останавливается на точке, бажок обнаружен. Внезапно рождается мысль:

— Если программа завершила выполнение стандартно, она умирает своей смертью, и это правильно;

— Если программу остановить Stop debugging'ом во время выполнения, это убийство, и это аморально;

— Если же остановить программу во время паузы выполнения, она умрёт во сне, и это достаточно гуманно.