Читать «Bash IT Happens Истории ## 9401 – 9500» онлайн - страница 21
Bash.org.ru IT
Сбросил самым близким друзьям все свои лабы, соседу по комнате вручил пак отчётов (поменяй титульный лист — и можно сдавать) и уехал на две недели домой. Через несколько дней в семь утра звонит мне этот самый сосед:
— Твоя лаба на асме не работает, я её уже три дня сдать не могу.
— Что выводит?
— Ничего!
— Введи строку на английской раскладке, чтоб было несколько пробелов.
— Ввёл.
— Жми энтер.
— Ничего!
— Запусти батник, который пересоздаёт EXE-файл программы. Повтори последние действия.
— Ничего!
— В смысле, программа вылетает?
— Нет, не вылетает.
— Что-то выводит?
— Ничего не выводит. Точнее, ноль выводит.
— Виталик! Ноль — тоже результат!
#9451: Свежий взгляд на монитор
15:00 25.06.2012, IT happens
— Мы тут случайно уронили освежитель воздуха на клавиатуру, и у нас картинка на мониторе повернулась на 90 градусов.
Зашёл в настройки. Ню-ню. Сомневаюсь, что освежитель воздуха при падении мог нажать Ctrl+Alt+стрелку. Феерические идиоты!
#9452: Всё в порядке
13:00 26.06.2012, IT happens
Да, история странная, но может помочь в осознании проблем проггерства.
Я был на втором курсе, девочка моя тоже. Готовила она слабо. На моё замечание, что макароны просто сварены, спросила: а как можно ещё? Я и ответил, что их обжаривают.
Она и обжарила в следующий раз. Перед варкой.
Задавая алгоритм, обязательно перепроверяйте порядок действий. Не раз это мне помогало отлавливать глупые ошибки в коде.
А на третьем курсе института я узнал, что «быструю» лапшу на самом деле сначала обжаривают, а потом варят. Но это была уже совсем другая история.
#9453: Байты вверх тормашками
13:00 26.06.2012, IT happens
Обычный компилятор gcc для какой-то ARM-платформы, обычная функция, внутрь которой передается двухбайтовое целое число. Внутрь функции попадает цена на дрова, которая ну никак не коррелирует с передаваемым снаружи числом. Молодой программист вторые сутки долбится лбом о клавиатуру и просит помочь, а я, едва взглянув, вспоминаю похожие симптомы про передачу word’а из микрософтовской библиотеки в борландовую и наоборот.
Ради шутки говорю: «Сделай так, чтоб функция принимала обычное четырёхбайтовое целое, жалко тебе, что ли?» Программер правит код — всё работает как часы. На меня смотрят большие круглые глаза — великий шаман, блин!
А дело в чём? Прараметры в стеке выравниваются на четыре байта. А разработчики компилятора просто не договорились, какие два байта из четырех считать нужными. Тот, кто писал генерацию кода для вызова функции, считал, что это два верхних байта в стеке, а тот, кто писал доступ к параметрам из тела функции — что нижние. Между микрософтовскими и борландовыми stdcall-функциями подобная шняга была, что и помогло быстро решить проблему. Плохо, когда компилятор сам с собой не дружит…
#9454: Желе с окошками
15:00 26.06.2012, IT happens