bash.im ithappens.me zadolba.li

Факапы

7780

Антиантикопипейст

15 ноября 2011, 11:45

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

Автор скриптов оперативно доступен не был, поэтому начали копать. Дело дошло до пошаговой отладки и попытки понять, почему две строки «Заказ» и «Зaказ» (проверялся заголовок письма, дабы не реагировать на спам) система считает различными.

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

7764

Технология «Антикопипейст»

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

Вместе с операционкой поставлялась книга документации этого самого гениального API в HTML-формате — так называемая BeBook. Книга была подробна, грамотно спроектирована, неплохо оформлена и пестрела интересными примерами кода. Вдруг выяснилось, что примеры, приведённые в книге, временами не то что падают с ошибками, но даже и не компилируются. Компилятор ругается на что-то, чего в исходном коде просто нет! Ещё веселее становится, если набрать этот же самый пример вручную: он без проблем компилируется и запускается.

Вдумчивое курение всего, что только можно, подсказало, где собака порылась. BeOS изначально работала в кодировке UTF-8, и в этой же кодировке была написана вся документация. Но поставляющиеся с BeOS шрифты не содержали абсолютно всех прописанных в UTF-8 символов. Так вот, там и сям в BeBook попадались эти самые UTF-символы, которые ничем не отображались, поэтому с точки зрения пользователя в любом вьюере или текстовом редакторе выглядели пустым местом. Но значения-то своего они при этом не теряли! Компилятор, неожиданно натыкаясь на непонятную пакость, считающую себя символом, естественно, начинал безбожно ругаться.

Некомпилирующиеся примеры из официального руководства программиста я никогда не забуду.

7758

Трижды твою мать!

12 ноября 2011, 10:00

У нас в банке шесть лет назад начальник отдела программирования выставил для проверки на пустую дату в платёжных документах 11 ноября 1911 года… Скотина.

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

Вчера у нас был ад и холокост. У тысяч клиентов, решивших отправить платёжки через банк-клиент, программа выдала fatal error и завершилась, а платёж подвис в воздухе. С самого утра телефоны разрывались. Я-то не программист, но я сижу с этими скотами в одной комнате! Так вот, одна из этих сволочей по-быстрому накатала патчик, но не проверила его и воткнула в автообновление для всех клиентов. Патчик при установке вешал программу-сетапер. Начали звонить ещё и те, кто платежей не производил, но решил обновить программу.

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

Трижды одиннадцатого трижды проклятые три программиста с интервалом в три года попортили нам тройное количество нервов, а обед задержали на три часа. Кое-кто лишится премии и, возможно, пройдёт сеанс терморектального криптоанализа. Проверяйте свой код, товарищи.

7749

Сводя концы с концами

11 ноября 2011, 10:00

Бросали мы как-то сеть из одной конторы в другую. Расстояние — пара километров, кабель с четырьмя волокнами. Установили медиаконвертеры, кабель закрепили, сели ждать мастеров, чтобы оконцовку сделали.

Приехали эти архаровцы. Сделали всё довольно-таки быстро, SC-коннекторы повесили и, как положено, приклеили бирки с номерами волокон: с одного конца кабеля — 9, 10, 11, 12; с другого — 8, 9, 10, 11.

Мы сидели потом и охреневали. Думали: может, им из счёта удержать сумму на покупку бубна?

7724

Акела не промахнулся, ему так больше нравится

9 ноября 2011, 08:00

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

— Что случилось?
— Помогите достать дискету из CD-ROM.
— Как это случилось?
— Мы нечаянно.

Коллеги с диким ржачем провожают меня к незадачливым бухгалтерам. Пока добираюсь до места, пытаюсь понять, как можно нечаянно запихнуть дискету в CD-ROM — это же полный идиотизм!

Пришёл, выясняю подробности. Оказывается, хозяйки компа не было на месте, а второму бухгалтеру понадобилось скинуть отчёт на её комп. Злополучный комп собран в корпусе «десктоп» и лежит на тумбе глубоко под столом — заглядывать туда неудобно, света мало. Девушка на ощупь нашла подходящую щель и запихнула туда дискету. Оказалось, нащупала слотовый восьмискоростной Pioneer.

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

Наконец злосчастная дискета у меня. Комп собран обратно, всё работает. Отдаю дискету, собираюсь уходить. Девушка просит меня скинуть-таки злополучный отчёт, чтобы опять чего не напортачить. Не вопрос. Беру дискету, нахожу на ощупь слот дисковода, закидываю дискету… да-да, обратно в сидюк. На этот раз разбирать комп не пришлось — получилось вытрясти.

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

7699

На полных парах

6 ноября 2011, 08:00

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

Операторы — тётечки лет 40—60. Все делают исключительно занятой вид, статно топчут клавиатуры со стёртыми клавишами. Заходит комиссия с проверкой. Чистота, покой, всё как часики. Отлично! Но что же тут не так? В этот момент завывает сигнал, оказавшийся впоследствии ложным. Один из айтишников, уловив источник непонятного, тревожного для него звука, замечает, что аккурат из корпуса вопиющего компа валит прямо-таки струёй пар! Айтишник резво подлетает, бледнея, зверски выдирает кабель питания. Тётечки-операторы глядят не него непонимающе, но ничего не предпринимают: не их работа. Айтишник в шоке, стоит рядом и пытается сообразить, отчего так комп «дымит»?

Одна из операторов как ни в чём не бывало заходит за злополучный системник и снимает с подставки закипевший электрочайник. Через десять минут телефоны разрывают тысячи звонков с охраняемых объектов, потерявших связь с пультом.

7698

Админ бездомный

В отсутствие вебмастера временно приходится редактировать сайт через FTP. Конечно, я пользовался FTP-клиентами и раньше, но тут ради удобства решил поюзать встроенный в Total Commander. Полгода всё шло хорошо: добавлял новости, мануалы и презентации, редактировал страницы. Сегодня понадобилось удалить целиком директорию с файлами. Тотал на всякий случай спросил, удалять ли непустую папку. Ничтоже сумняшеся, я спокойно тыкнул «Yes».

Это был единственный случай, когда я в итоге порадовался неспешности белорусского интернета.

Одноимённая с HTML-файлом папка .files начала не торопясь удаляться. Вдруг в мелькающем списке удаляемых файлов я разглядел имя, которого там быть ну никак не могло! Сработал рефлекс: вначале отменить задачу, потом разбираться. Меня прошиб холодный пот: в каждую директорию услужливый FTP-клиент подсунул ссылку на /home, которую Тотал обработал как папку, выбрался по ней в рут и продолжил выполнять задание на удаление.

Сайт работает. Кинулся в поисках логов — оказалось, что по умолчанию Тотал логов FTP клиента не ведёт, то есть посмотреть, какие конкретно файлы удалились, нет никакой возможности. И тут приходит сообщение от коллеги, что не открывается главная страница сайта. Всё, приехали…

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

7686

Клизма с патефонными иголками

3 ноября 2011, 11:45

Как известно, армейская мудрость «у солдата праздник, как у лошади свадьба: голова в цветах, а жопа в мыле» верна и на гражданке.

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

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

Поскольку опыта по восстановлению «форточек» у меня было побольше (Linux сам по себе всё-таки гораздо устойчивей), решил с восстановлением GRUB не заморачиваться. Установочный диск, консоль восстановления, fixmbr, fixboot C: — и я получаю ещё одно сообщение о невозможности загрузки операционной системы. В общем, как ни пытался, запустить Windows не удалось. В результате получил от начальства мощную клизму с патефонными иголками.

Только вернувшись в свой кабинет, ощутил озарение: ведь я, когда ставил Linux на единственный диск, указал загрузочным не первый, а четвёртый раздел! Разумеется, восстановленный загрузчик Windows XP не понимал, что это за ext4 ему подсовывают. Проверяю таблицу разбиения — всё верно. Правлю, перезагружаю и убеждаюсь, что всё работает.

А самое обидное, что творение Гейтса оказалось умнее меня. Ведь команда fixboot без параметров с самого начала предлагала обработать «диск F:». В общем, скрепя сердце, пингвина пришлось пока удалить.

Граждане, не повторяйте моих ошибок и пожелайте мне удачи: похоже, мне кто-то серьёзно испортил карму.

7684

Покончим с говнокодом

3 ноября 2011, 10:00

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

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

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

Возмущению студентов не было предела, но вскоре оно сменилось радостью: всех отпустили домой.