Насколько надо было разочароваться в производителе собственной звуковой карты, насколько надо было намучаться с постоянно пропадающим звуком, чтобы папку, в которой лежат драйверы, назвать «Конкретная печаль»?
Памятник предохранителю
Случалось мне работать в девяностых на заводе АЗЛК, где целиком делали «Москвичи». На конвейере размещалось много станков: и фрезеровочные машины, и «умные» руки-каретки... Самые продвинутые станки были импортными. Они отличались и качеством материалов, и степенями защиты. Станки ломались в день по две-три штуки, а чем сложнее устройство, тем большее количество элементов может прийти в негодность. А так как русскому мужику лень чинить очередную подохшую защиту от перегрева или заезда не туда, то всё держалось на добром русском слове «авось».
Однажды рука-каретка с грохотом протаранила стоящий за ней станок, стоящий огромных денег, который выпиливал какую-то хитровырезанную деталь. Начали разбираться; ответственным назначили меня. Ну что, сходили посмотреть с другом Лёшей.
Случился скачок напряжения в сети. Электронная защита от заезда была отключена: сгорела из-за отсутствия предохранителя. Идти за новым через ползавода мужикам было лень. Физическая защита была попросту отвёрнута — мешалась же! А не остановил каретку сломанный ограничитель скорости. Мотор мощный, предохранитель был под стать — массивный и нестандартный, такого на заводе по углам не валялось. Открыв то место, где должен был находиться предохранитель, я увидел литой медный цилиндр 50 на 8 мм.
Вот так на Руси решаются проблемы с недостающими деталями.
Не давайте богам обжигать горшки
Упал у меня Виндоус. Поскольку я предусмотрительно поставил себе второй системой Убунту, переустановку винды я решил отложить. Гляжу — друг один в аську стучится. Он заядлый геймер, а также самопровозглашённый компьютерный бог. Предлагает мне в %game% поиграть — я отказываюсь, говорю, что на Убунте сейчас.
— А что, Убунта твоя мешает тебе?
— Нет, у меня винда сломалась, а переустанавливать лень.
— А-а... Ну, удали Убунту. А что это, кстати?
— Ось такая.
— Ну-у! Виндоус лучше всех! Давай я тебе диск занесу?
— Да не, не надо, у меня свой есть.
— А не поставишь мне Убунту посмотреть?
Согласился, пришёл к другу с лайв-сиди.
— Ничего не трогай! Просто полазай по менюшкам; если понравится, я тебе поставлю.
С этими словами я отправился покурить. Вернулся минут через десять, а там... Друг уже отформатировал половину жёсткого диска и пытался перезаписать болванку с Убунтой.
Винду я ему переустановил. Больше ни про какие «штучки» рассказывать не буду, а то ещё брутфорс-скрипт попросит и начнёт ломать всех налево и направо.
Горшочек, не вари!
Все помнят сказку про волшебный горшочек? Я вчера испытал её на себе.
Утром, оказавшись в неприятной ситуации из-за отрубившегося накануне вечером УЗО в серверной (бесперебойники отработали, но на двенадцать с лишним часов их, конечно, не хватило) в положении того самого мужика, над которым грянул гром, я решил настроить уведомления по почте и SMS о подобных каверзах. Сначала полез в ZenOS — он превосходно собирает кучу инфы со всей сети по SNMP и генерит кучу отчётов, некоторые из которых я решил направить себе на гмейловский аккаунт. Отрубаю UPS — фиг, молчит ZenOS, как партизан, хотя событие произошло и в его базе появилось.
Поковырялся ещё, в процессе применил свой любимый метод тестирования: включил информирование вообще на все события, полагая, что если и тогда ничего не произойдёт, то ошибку стоит искать где-то ближе к почтовому серваку. Ничего не произошло, но тут мне подсказали, что можно настроить уведомления непосредственно с серверов, контролирующих «упсы» — и точно, старый добрый PowerChute с этой задачей справился, и я, довольный, вернулся к рутинным админским делам.
А вечером случилось оно. Уж не знаю, почему именно — скорее всего, коллега перезагрузил сервак с ZenOS, — но оно попёрло. В половине десятого я уехал за женой на каток, в десять мой коммуникатор уже безбожно тупил, пытаясь сообщить о трёх тысячах новый сообщений в ящике. Пока он загружал текущие заголовки, сваливались новые... Горшочек, не вари!
К полуночи я знал, что у меня есть пять с половиной тысяч событий разной степени важности, к двум часам ночи их число перевалило за семь тысяч. Конечно, добравшись до десктопа, можно было поставить фильтр на сообщения и удалять их без прочтения. Можно было залезть по VPN на работу и отрубить злобного спамера. Но у меня взыграло любопытство: решил проверить, сколько же всего горшок наварит, пока я сплю. Сегодня утром насчитал одиннадцать тысяч сообщений с одинаковым заголовком и отправителем.
Перед запуском чего-либо думать надо трижды. Дважды — мало, хотя тоже ничего: подумав дважды, я не стал включать информирование по SMS. Страшно представить, как бы я чистил входящие сообщения на телефоне...
Deathproof
Возвращаясь с работы, порой вижу припаркованную на тротуаре «Тойоту» светло-голубого цвета. На заднем бампере у неё небольшая табличка, радующая меня каждый раз, что я её вижу:
IDDQD
There is no place like 127.0.0.1
Каждый раз мне интересно: сколько ещё людей помнит, что это значит?
Видимость результата
Получал второе образование, на выходе собираясь стать инженером-программистом. Одним из проблемных на тот момент был предмет, изучающий потоки данных в приложениях под Windows. Темой одной из лабораторных работ нам поставили почему то создание инсталлятора средствами Visual Studio 6.0. InstallShield — прога прикольная, но больно мудрёная по настройкам. Была странность: внеся в определенный момент изменения в скрипт установщика, откатить что-либо назад не было никакой возможности — приходилось начинать всё заново.
Так вот, лаба подходит к концу, преподаватель ходит кругами, смотрит, кому отметить выполнение, а кого за хвост — и по всему курсу гонять. Понятное дело, на рожон лезть никто не хочет, все хотят сдать лабы прямо здесь и сейчас, а у меня всего процентов 20 от всего объёма — пожар! Ладно, сходил на перекур, проветрил мозги на морозе, а народ уже заканчивает. Сдать надо просто ну очень: я и так в должниках по лабам вечно вывешен, а тут ещё и эта канитель.
Короче, подошёл я к своему одногруппничку, а у него всё готово. Проект взять не получается — там что-то с реестром связано было. Недолго думая, нажал я кнопку PrintScreen, сохранил .bmp с результатами по сетке на свой комп и уселся ждать преподавателя. Тот круги всё наворачивает, видит, что я вникаю, кнопки жму. Пошёл он с журналом на последний круг. Дошла очередь до меня. «Поглядите, — говорю, — всё готово: вот скрипты, а вот и результат». А сам изогнулся над монитором, заслонил немного и ткнул Alt+Tab. Предварительно раскрытый на весь экран и заботливо свёрнутый скриншот явился во всей красе. Преподаватель доволен, я тоже; одногруппники в шоке от моей наглости и смелости просто затихли.
К слову, программистом я стал, хотя по специальности и не работаю, но случай этот до сих пор вспоминаю как образец полной бесшабашности и уверенности в том, что если мне что-то надо, я обязательно этого добьюсь.
Умерьте свой аптайм
Уснул вечером на диване. Что-то мне такое снилось, что когда жена меня разбудила, я, внимательно смотря на неё, заявил: «Какой мудак поставил на сервер XP вместо линукса?»
Проснувшись ночью, пошёл по нужде. Санузел у нас совмещённый, стоит в нём стиральная машина. Находясь в полудрёме, по приборам дохожу до цели. Мельком смотрю на панель выключенной машины. И какого фига опять линки не горят?..
Уже под утро приснилось мне, что звонит один из клиентов и жалуется, что у него умерла таблица разделов. Я начал рассказывать, как с этого винта стащить данные... Проснулся от надрывно орущего будильника на телефоне. В голове мысль: с кем и по какому телефону я сейчас говорил?
В общем, братья-айтишники, не перерабатывайте. Отдыхайте больше.
Пейсателя бубен неймёт
Как-то незаметно в третьем часу ночи пришло понимание, что весь следующий день с самого утра мне предстоит провести в гостях у бюрократов. Ну, бумажки-то я буду заполнять процентов десять от всего времени, а в основном придётся терпеливо стоять (если очень повезёт, то сидеть) в очереди. Может, книжку какую захватить? А ещё лучше книжки читать прямо с экрана телефона! Сказано — сделано. Качаем соответствующее Java-приложение. Что у нас там? Какой-то РидМаньяк. Щас заценим... Цепляю свою верную, как наган, «Ноклу» по синезубу и скармливаю ей файлик. А что, рулезная штука этот Маньяк — настроек вона сколько!
— Чего барин изволит?
— Хочу, чтоб шрифт побольше был.
— Извольте. Что ещё желаете?
— Ну, это, давай текст сделаем жёлтым на черном. У меня в терминале так, глаза меньше устают.
— Да пожалуйста. Чего ещё хотите?
— Скатёрку хочу у вас спереть и скамстралить из неё рубаху красную… Ой, извините, вырвалось.
В общем, встроенный текст-«рыба» смотрелся отлично. Теперь попробуем скормить Маньяку какое-нибудь литературное произведение. Раньше я любил читать с монитора, и в архивах на винте лежало несколько книжек. Так, что тут у нас? Выбор пал на «Сегодня, мама» Лукьяненко. Скармливаем текст Маньяку — облом: юникод тот не понимает, а понимает только СР1251. Ладно, ща перекодируем… Опять облом: Федора наотрез отказывается сохранить юникодовый текст в виндовую кодировку. Но мы не сдаёмся, мы пошли на принцип. Где мой бубен?!
Немного шаманских плясок, и поднятым под вайном виндоблокнотом удаётся-таки сохранить текст в нужной кодировке. Ха-ха, мой бубен сильнее твоей тупости, железяка! И вот я уже читаю с телефона первые строчки вступления. Всё отлично! Перелистываю пару экранов вниз, и тут:
Зап Сет тага горк минерап. Зап шердап. Лапсердюк. Ыкувон, генекал ардажер. Ынау‑мынау ардажер ук. Зап ынау‑мынау.
Неужто опять с кодировкой проблемы?! Закуриваю, попутно ломая голову над проблемой. Перелистываю на экран вниз — оказывается, главные герои говорили на древнеегипетском.
Бубен с древними языками несовместим — так и запишем.
На полку престарелых
Товарищу железячнику, не верящему в душу железа посвящается. Оно, может быть, всё и верно, что у каждой проблемы есть корни, но мы живые люди, железо живёт с нами рядом и тоже способно очеловечиваться.
Яркий пример — моя мышка. Она довольно пожилая, у неё капризный затвердевший хвост (если в некоторых положениях оставить мышку в покое, провод пружинит и курсор чуточку отъезжает, напоминая брюзжание бабушки). У неё плохо работает колёсико: иногда, чтобы прокрутить страницу, нужно сделать около двадцати поворотов — прокрутка идёт маленькими шагами, дрыгаясь туда-сюда. Разбирал, смотрел — внешне всё нормально. Но как только я вслух говорю жене, что пора бы заменить мышку, то на утро колёсико уже прекрасно работает! Потом, постепенно забывая страхи, грызун снова начинает привередничать. Но однажды я буду непреклонен. Так и знай, мышка!
Процесс важнее результата
Играли мы как-то с другом в одну браузерную онлайн-игрушку. Месяца через три надоело совсем. Нарыли в инете бота для неё: сам кликает по карте и собирает бонусы, разбросанные по галактике. Бонусы мелкие, но если собирать их долго, можно неплохо подняться. Бот был написан одним из админов, и как только код утёк в паблик, на карте что-то поменяли, и болванчик стал кликать всегда в одну точку, а то и вообще не двигался, хотя на бонусы исправно щёлкал.
Вспомнили, что где-то не компе валялась ранняя версия известной программы, управляющей курсором мыши. Тогда там ещё не было всяких наворотов, только самые простые функции: клик в точку экрана, перемещение, двойной клик, подождать столько-то секунд. Стали тестировать. Опытным путём забили цикл зигзагообразных перемещений по карте и запустили кликер вместе с работающим ботом. Радости не было предела: он работал! Десять минут созерцания полной автоматизации сбора бонусных коробок пробудили аппетит, и мы пошли пить чай с ништяками. По возвращении нас постигло разочарование: сервер перезагрузился, соединение оборвалось, на экране всплыло окошко с двумя кнопками: «Отмена» и «Подключиться снова». Бот кликал по серому экрану без всякого толку.
Решили предусмотреть такой вариант. Алгоритм был переписан: траектория изменена на более оптимальную, пересмотрены величины пауз между кликами, в середине и начале цикла добавлены три быстрых клика на окошки с ошибкой соединения и на кнопку переподключения. Потестировали с ручным отключением интернета — работает. Оставили всё это дело на ночь.
С утра бот продолжал летать. Остановили процесс, кликнули на ангар посмотреть, сколько насобиралось добра. Разочарование: при активности только на карте звёздного неба коннект с игрой терялся. Получалось, что кораблик летал на карте из кеша, и никаких данных на сервер не передавалось.
Была написана версия цикла 3.0. Добавлены клики на переключение окон Мозиллы, клик на меню ангара, клик на главную, переключение на вкладку с картой, продолжение сбора коробок. Все ошибки, зависящие от игры, были учтены.
Сбор коробок продолжался около трёх ночей. Богатство росло, а интерес уменьшался. Потом и вовсе перестали заходить в игру: комп ночью шумел слишком сильно.