9580

Виндобеда не приходит одна

Влетает в магазин директор с системником. Мол, алярм, абзац, у сына комп полетел, надо что-то сделать. Спрашиваю о симптомах. Говорит, что работал в Экселе, а потом повис. Когда перезагрузили — чёрный экран. Ладно, посмотрю. А у меня ни LiveCD, ничего, только установочный диск ХР и помегабайтный интернет.

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

Видяха умерла. Совсем. Когда успела? Ставлю новую, настраиваю. Утром показываю, что всё работает, а потом отдаю. Через час звонок: чёрный экран, ничего не работает. Монитор проверили. Привозят комп обратно со словами: «Если сегодня не заработает, то сын меня доведёт до самоубийства». В контексте читалось: «А я тебя».

Теперь не работает одна планка памяти. Как? Как в дороге за пять минут могла навернуться память? Выкидываю планку. Всё работает. Почти всё. При выборе приоритета видеокарт есть варианты PCI VGA и PCI-E VGA. В первом случае всё работает, но встроенная видяха отъедает себе 128 метров памяти; во втором винда слетает в BSoD. Ближе к вечеру нахожу более свежий биос и решаю перепрошить. И ведь помогло! Комп начал работать с внешней карточкой, не резервируя память на встроенную и не вылетая в «синьку».

Вот уже неделю комп пашет без проблем. Теперь меня не уволят даже за Red Alert 2 на рабочем месте!

9579

Дитя ночи

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

Я таки нашёл тот самый кусок кода в своём сером веществе и синапсах, где стоит счётчик времени и инициализация переменных «день/ночь». Принудительно использовал везде «ночь» для всех классов, функций и объектов — вуаля, я теперь не курю!

Только после выяснилось, что я ещё и не ем, не работаю, не думаю, не хожу (в туалет в том числе), потому что сплю, так что в коде пришлось ковыряться более тщательно. Зато какой простор для лечения всяческих фобий!

9578

Гигабит во тьме

Работаю сисадмином на одном из факультетов МГУ. IT-отдел у нас состоит из начальника, моего напарника и меня. Решили перетянуть сеть на всем факультете со стомегабитки на гигабит. Закупили оборудования, закупили побольше FTP и UTP — в бой!

Сначала решил убрать розетку в одной из комнат. Вспышка на пальцах — света нету в кабинете. Ладно, электрики на следующий день вернули.

Бил буром стену. Минус четыре кабеля, в том числе связь с казначейством. Привет скруткам и дополнительной перекладке!

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

К чему я все это? Да к тому, что все эти события происходили позже десять вечера. Так что работать после шести вредно, коллеги!

9577

О нежности и бензопилах

Программировал я как-то мобильную игру — «захват флага». Несколько забавных эпизодов.

Потребовалось много итераций, чтобы отработать обыкновенный звук подбора бонуса. Я говорю: «Нежнее». Музыкант: «У меня тут и так стоит флейта». И вдруг меня осенило: «Поставь рояль». Банальный рояль, который стоит в MIDI-банках под номером 0. Сработало, в таком виде звук и вошёл в игру.

Звук бензопилы тоже искали долго: при переводе в AMR звуки теряли свой смак. Наконец нашли нечто, оптимизированное под низкие частоты. Звук состоял из двух частей: короткий запуск, будто герой пробует работу инструмента, и сам удар пилой. Выяснилось, что цельным куском нельзя, слишком длинный. А начальный «вжик» тоже терять не хотелось. Пошли на компромисс: при переключении на бензопилу проигрывается короткий фрагмент, при ударе — длинный.

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

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

9576

ЩЗХЪ!

Сидим на кухне сильно пьяные. В бухие головы приходит вопрос: где на клавиатуре буква «З»? Стали перебирать.

— Сейчас я всё вспомню, и она найдётся. Так, погодите. Верхний ряд: ФЫВАПРОЛДЖЭ.

— Эй, ты не прав! ФЫВАПРОЛДЖЭ — средний ряд, а верхний — ЙЦУКЕНГШЩХ!

— Значит, буква «З» в третьем ряду. Щас. ЯЧСМИТЬБЮ… И где «З»?

— Так, погодите. Давайте перебирать. ФЫВАПРОЛДЖЭ…

— Может, ФЫВАПРОЛЗДЖЭ?

— Нет, ФЫВАПРОЛДЖЭ, я точно помню.

— ЯЧСМИТЬБЮ… Где же «З»?

— ЙЦУКЕНГШЩ…

— Погодите, там есть твёрдый знак. ЙЦУКЕНГШЩХЪ?

— Может, ЙЦУКЕНГШЩЗХЪ?

— Или ЯЧЗМИТЬБЮ?

— ЙЦУКЕНГШЩЗЪ!

— Да нет же, ЙЦУКЕНГШЩЗХЪ!

— Точно, ЙЦУКЕНГШЩЗХЪ!

Тут мы замечаем, что тридцать секунд назад в комнату вошла жена. Смотрит на нас как на ненормальных и спрашивает:

— Это вы на каком языке разговаривали?

9575

Flop up

Я не имею отношения к IT-сфере, но компьютер — один из моих основных рабочих инструментов. История, о которой я расскажу, произошла лет пять назад, когда ещё учился в универе. Факапы у меня бывали не единожды, но этот — наиболее эпичный.

Стало доноситься из системника периодичное ритмичное постукивание. Сначала подумал, показалось. Но потом прислушался — звук реально есть. Откинул боковину системного блока, буквально засунул туда голову. Звук шёл от винчестера. Ну, думаю, всё, пришёл к моему винту белый пушистый северный зверёк. Звук этот я никогда не слышал, только друзья рассказывали. Но бурную фантазию было не остановить. Я живо себе представил, что произойдёт, если винт помрёт. Фиг с ними, с играми и фильмами; на нём лежат курсовики и методические материалы по некоторым предметам. Бэкап на пару болванок наиболее важного я сделал немедленно, но ситуацию это не меняло. Мне нужна была работоспособная машина для скорого завершения проектов — на носу был конец семестра.

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

На следующий день начинаю безумный квест: с утра — на пары в универ, потом в деканат, который находится в другом корпусе в другом районе города. Там расписываюсь в какой-то бумажке, и замдекана дает мне адрес отделения банка, где мне следует получить карту. Еду туда, обращаюсь в свободное окошко. Мне говорят: мол, с недавних пор мы этим не занимаемся, езжайте в другое отделение. Еду туда, выстаиваю небольшую очередь. Куча формальностей — и я наконец получаю карту. Тут же у отделения проверяю в банкомате баланс. Чудо — стипендия начислена! Снимаю нужную сумму.

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

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

Вырубаю машину, вытаскиваю винт из корпуса, но подключаю его снаружи на длинном SATA-шлейфе и удлинителе питания. Завожу, жду. Снова звук! Он исходит от флоповода, который стоит аккурат над хардом. Видимо, девайс сошёл с ума и периодически пытался прочитать дискету, которой не было.

Гнусного мистификатора в ярости я извлёк из корпуса и отправил прямиком в мусорное ведро. Компьютеру — внеочередной оперативный апгрейд, а мне — урок.

9574

WM_WHY?

В 1996 году мы с одногруппником, изучая Windows API, писали тестовые программы. Использовали предшественника C++ Builder — компилятор Borland C++ 5.0. И хотя компиляторы Borland всегда были очень шустры, на слабых машинах из-за огромного windows.h даже «Hello World!» собирался полминуты.

Мой одногруппник решил «оптимизировать» свою программу, заменив все макросы из windows.h на числовые значения: вместо WM_COMMAND в цикл сообщений вставил число 0111h, вместо WM_TIMER — 0113h, а вместо WM_CREATE — 0001h. Логика была простой: константы никогда не поменяются, значит, можно их и вбить, чтобы компилятор не трудился.

В результате программа стала совершенно нечитаемой, но скорость компиляции совершенно не возросла, ведь всё равно в программе нужно было оставить строку #include . Поэтому пришлось вернуть всё обратно. Конечно, мы догадались, зачем нужны эти «дурацкие» #define.

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

9573

Выполнить любой ценой

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

— Да из-за вас интернет не работает, и сеть тоже, а за него уплачено!

Вернувшись на рабочее место, вижу, что все свитчи отключены.

— Кто?!

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

Долго пришлось обьяснять, что к чему.

9567

Нелогично, но работает отлично

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

Надо рисовать на карте трассу спутника. Если верить формуле, трасса начинается на каком-то значении долготы, вырисовывает загогулины, причём иногда весьма интересные, и завершается на той же долготе плюс 360 градусов. Проблема состоит в том, что при рисовании надо ловить переходы через границу карты, завершать рисование справа и начинать рисовать трассу на карте слева. Сколько было визуальных глюков вокруг перехода через эту границу… Проблема исчезла, когда стали рисовать трассу три раза — со сдвигом −360, 0 и 360 градусов. Ненужное отсекалось само, нужные куски при рисовании стыковались сами. И не надо точки разрыва трассы искать.

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

9566

Это как роутер, да?

Я работаю инженером в NOC крупного магистрального провайдера. Основная задача — фиксация аварий, их локализация, устранение и ещё куча всего по мелочи. Приходится работать в том числе и с оборудованием SDH.

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

— Да, по этому направлению у нас была авария, но всё восстановилось.

— Авария по каналу сохраняется.

— Перезагрузите ваше оборудование.

— Магистральный мультиплексор? (Время ребута — более пяти минут.)

(Уверенным голосом.) Да.

Я не выдержал и распрощался, скисая от хохота. Всё понимаю, техподдержка, на ней не инженеры работают, но она ведь для корпоративных лиц, не для физиков! Базовые вещи должны всё-таки знать.