Много-много лет назад мой руководитель на защите диплома цинично сказал, что оценку мне поставят не за то, что я сделал, а за то, как я об этом буду рассказывать. И заставил вызубрить своё выступление, сверяясь с часами («Не более десяти минут!»).
Его высказывание пришлось вспомнить не так давно. Пришли к нам апологеты Самого Свободного (не путать с бесплатным!) Софта. Агитировать. Ясное дело, говорить им надо было только с Самым Главным (другим, вероятно, недоступно понимание тех великих истин, которые несут эти «вдохновенные проповедники»). Не знаю как, но Самого Главного они получили, причём аж на два часа (а это, с учётом его загруженности, действительно нелёгкое дело).
Для начала «проповедники» опоздали на полчаса (фигня, кто такой Самый Главный — пусть получше подготовится к предстоящим открытиям и озарениям, полчаса медитации хватит). Потом ноутбук с естественно открытой операционной системой никак не захотел подключаться к проектору (наверное, проприетарный заговор, не иначе). Потом подготовленная в LibreOffice презентация не захотела запускаться на ноутбуке со свободной операционной системой под тем же LibreOffice (а может, они её — о ужас! — на «чём-нибудь другом» делали?). Но проповедники были готовы — у них был PDF-файл, на котором они и стали всё «проповедовать». Ладно, как говорится, бывает.
Но вот эканье, меканье и периодический вызов команды в терминале с последующим выводом в тот же терминал полутора-двух экранов сплошного символьного вывода для того, чтобы сказать: «Ну вот — вы же видите, как это всё удобно!» — на мой взгляд всё же несколько неубедительно.
Не могу не вспомнить старого доброго О’Генри: «Песок — неважная замена овсу». Опять же «проповедники» оказались народом увлекающимся. Вот уже и время прошло, да сверх того пятнадцать, двадцать, полчаса — всё вещают. Наконец Самый Главный вежливо попросил их остановиться. Собрались и ушли. Самый Главный оглядел собрание в переговорной — заместителей, начальников управлений, в общем, «весь цвет управленческой структуры» плюс два-три «городских сумасшедших по Linux» и, пожав плечами, со вздохом сказал: «Ну что поделать — линуксоиды».
И вот теперь что-то мне подсказывает, что у нас ещё долго не будет линукса. А «проповедникам» за такое выступление, на мой взгляд, «Та-самая-компания» должна премию выплатить — ребята старались изо всех сил.
В один прекрасный час начали вылетать все программы без каких-либо ошибок. После нескольких попыток виновным компонентом стала считаться оперативка. Для проверки было решено воспользоваться стандартным mdsched (каюсь, сам дурак, но захотелось испытать данное средство в таком удобном случае). Двадцать минут теста, перезагрузка, радостное сообщение: «На этом компьютера обнаружена неполадка с памятью». Время на часах уже давно давало понять, что пора и поспать. Дабы не забыть, на чём мы остановились, я сделал скриншот сообщения и положил его на рабочий стол.
На следующий день я провёл несколько других тестов. Вот так магия! Ни одной ошибки. Ближе к вечеру решил накатить свежие драйвера от видеокарты, поставил на установку и ушёл на кухню. Прихожу и вижу, что никакой установки уже нет, а на экране то самое сообщение. Ну всё, что-то сдохло.
Планки вытащены, на замену пришли новые. Радостный я накатываю весь свой любимый софт обратно и мельком смотрю на рабочий стол. Там лежит скриншот. Дабл-клик — и стандартное средство просмотра фоток в восьмёрке открывает скриншот на весь экран.
Барабанная дробь. Апогеем стало непонимание, каким образом скриншот сам собой открылся. Возможно, Великий Ктулху изволил девственные платы? Может, техника и без души, но окружающее пространство явно что-то скрывает.
Расскажу про свой факап. Сейчас за него не сколько стыдно, сколько смешно.
Работаю админом в одном маленьком офисе с большими амбициями. Как полагается для такой конторы, тут у нас холдинг и куча ООО-ЗАО-ИП (10 организаций, если быть точным) и практически для каждой есть свой сайт, а для некоторых даже не один. Когда я пришёл к ним, большая часть сайтов была уже сделана и благополучно забыта, но парочку всё-таки пришлось рисовать мне. За «спасибо» и символическую премию. Я не против, это для меня было что-то новое и интересное. Собрали один такой сайт-информационку на джумле из пиратских модулей (с порно-ссылками, которые потом долго выслеживали и вычищали), нарисовали всё красиво (то есть руководитель сказал «ок»), а всё, что было некрасиво — скрыли.
В один прекрасный день ко мне подошла наша сотрудница, которая помимо торговли с Китаем добровольно-принудительно работала контентщицей на этом сайте, и ткнула меня носом в одну статью, где куча ботов наспамила комментов. Особо не разбираясь, поле комментов и их ввода мы просто скрыли через
visibility: hidden
(так как они там вообще не нужны), и всё снова стало красиво.
Прошло полгода. Месяц назад от хостера мне посыпались письма с угрозами: «Место на хостинге кончается, купите больше хостинга или мы вас закроем». Добавил сотню метров. Через пару недель опять то же самое. Добавил ещё сотню. На третьей сотне мне уже стало любопытно — что же так раздувает наш хостинг? Не новый ли сайт на OC Store с интеграцией в 1С и ежедневной выгрузкой номенклатуры? Полез через PhpMyAdmin смотреть размеры таблиц. И тут-то я и увидел то, что на весь остаток дня заставило меня улыбаться. Так как спираченный шаблон на джумлу победить до конца не удалось, недостающий функционал заменили на К2 и локализовали вручную (сам переводил, да). И таблица %prefix%_k2_comments была раздута до 1,5 Гб с содержимым в > 2 млн. строк. Судя по содержимому, боты, однажды зацепившись за пару статей, продолжали спамить туда свои китайские ссылки на протяжении всех этих долгих месяцев.
<code>DELETE FROM %prefix%_k2_comments WHERE id > 1
</code>
И сразу размер базы уменьшился до 6 Мб. И стыдно, и смешно.
Мораль сей басни такова: если накрыть кучку тряпочкой — это вовсе не значит, что она не будет вонять.
Эффект присутствия при ловле багов? Попробуйте отсутствовать. Непонятно? Сейчас объясню.
В стародавние времена была у нас похожая история: вис один из офисных компьютеров. Ни с того ни с сего он наглухо зависал, не реагируя ни на что, кроме кнопки Reset.
Сидели над ним по часу, слушали музыку, читали книги — не виснет. Уйдёшь, оставив на попечение владельца — виснет.
А причина оказалась каким-то образом связана то ли с мышью, то ли со скринсейвером (которого не было, но, видимо, что-то как-то пыталось запуститься). Уже догадались?
Вот что вы делаете, когда тупо сидите у компа и чего-то ждёте? Даже если вы с ним ничего полезного не делаете — кто-то гоняет курсор мыши по экрану, кто-то постукивает по столу пальцами, заставляя мышь елозить туда-сюда на 1−2 пикселя, кто-то щёлкает кнопками.
А сотрудник, чей это был комп, оставаясь один, просто вставал и шёл трепаться с коллегами, пить чай, курить, смотреть в окно. Он-то не айтишник. И через несколько минут комп зависал наглухо.
Вылечили переустановкой системы, так как это было банально быстрее, поэтому настоящая причина зависания так и осталась невыясненной. Да и нужно ли это было?
Работаю инженером-эникейщиком. Поступает очередная заявка: надо с жёсткого диска старого ноутбука перелить инфу на новый ноут.
Выезжаю к клиенту, вытаскиваю диск, цепляю к ноуту, пока данные сливаются разговариваю с хозяйкой.
— А этот ноутбук уже только выбрасывать? Мне он, в общем-то, не очень нужен, разве только пасьянсы раскладывать…
Я осматриваю зверя. Старенький слабый ноут, аккумулятор со слов хозяйки уже давно мёртвый, из отверстий радиатора сильно воняет палёным.
— А что с ним случилось? Как он сломался?
— Он сильно задымил, заискрил и выключился.
Ну, думаю, не хватало в материнке копаться и выискивать сгоревшие микросхемы.
— Скорее всего, уже не получится починить.
— А он вам нужен?
— Ну, разве что на запчасти. За сколько отдадите?
— Да бесплатно отдам, мне всё равно его выбрасывать, только данные нужны были.
Принёс в офис. Решили вскрыть и посмотреть, что можем из него взять. Вскрыли. Рядом с материнкой маленькая платка с разъёмом S-Video и входом питания. Гнездо питания обуглено, одной ножки вообще нет — испарилась! И рядом маленький винтик валяется. Судя по размеру, попал в корпус между пластинами радиатора и однажды просто замкнул между собой плюс и минус гнезда!
Заменили БП, я сделал новую платку питания, и ноут ожил! Только разъёмом S-Video пришлось пожертвовать. Теперь это наш офисный ноутбук!
Но я долго буду вспоминать, как на текстолитовой плате размером 1,5×5 см вырезал дорожки самодельной микродрелью с отрезным диском диаметром 2 см.
Это было в начале 2000-х в небольшом провинциальном городке. У моей мамы на работе был компьютер, который постоянно перезагружался. Вот так, без видимых причин, просто перезагружался, и всё тут. И мышь не работала. Это был, кажется, AMD Athlon 233, если я ничего не путаю.
И вот попросили меня его вылечить. Мышь была вылечена простой чисткой шарика. А вот перезагрузку я с ходу вылечить не смог — в менеджере процессов ничего криминального не наблюдалось, и я решил переустановить Windows. Переустановил, отчитался, мол, всё, процесс восстановления завершён. И буквально через пять минут компьютер снова перезагрузился…
В общем, мучал я его дня два. В основном переустановкой и отключением разных процессов. Ничего не помогало. И вот к концу второго дня я стал замечать странную закономерность: компьютер перезагружался как раз в тот момент, когда кто-то проходил по кабинету. Оказалось, что проблема была в проводке. Когда кто-то ходил по кабинету, начинали двигаться провода питания под полом, и нарушалось питание компьютера.
Есть у меня домашний сервер, как, наверное, у многих айтишников: файлохранилище, прокси, VPN, DLNA, управление 1-Wire и так далее.
В качестве него используется старый нетбук с Линуксом. Почему нетбук — потому что маленький и не шумит, в нём вообще вентиляторов нет. Почему не перепрошитый роутер или какой-нибудь Raspberry Pi — потому что не хотелось возиться с поиском прошивок, кросскомпиляцией и прочими интересными вещами.
Работает он уже несколько лет, висит себе на стенке на гвоздике в дальнем углу, пыль собирает. Вот только в последнее время в доме возникла проблема с электроэнергией: её могут внезапно отключить на сутки. Это вообще отдельная тема, но что касается нетбука-сервера — никаких бесперебойников и батарей не хватает, он ведь не один на резервном питании сидит, поэтому он периодически выключается.
А вот чтобы потом его включить, надо взять табуретку, подойти к стенке, долезть до него, открыть крышку, нажать кнопку (потому что настройки «включаться автоматически» в нём нет), закрыть крышку, убрать табуретку. Казалось бы, мелочь, но задалбывает, тем более что он управляет разными другими вещами, поэтому включается одним из первых, как только дали свет.
И вот, наконец, нашлось решение: конденсатор!
Ведь что такое «нажать на кнопку»? Это на пару секунд замкнуть два контакта, чтобы компьютер запустился, а потом контакты разомкнуть, чтобы он не выключился.
А что такое конденсатор? В момент подачи напряжения через него проходит ток заряда, который постепенно снижается до нуля. Чем не нажатие на кнопку?
Подходящий конденсатор на 100 мкФ нашёлся в валяющемся без дела старом CD-приводе, который всё было лень выбросить. Припаиваем его параллельно кнопке — и всё: в момент подачи напряжения нетбук сам запускается, потом конденсатор заряжается и «отпускает кнопку». Причём даже не нарушается всё остальное — настоящая кнопка-то работает, можно нажать, и он выключится, как и положено.
Просто вовремя вспомнился график заряда из учебника. А ведь уже собирался рыть интернет в поисках нового биоса для этой давно снятой с производства модели — и вряд ли бы нашёл.
Три года назад он кривил лицо, когда я о ней упоминал. Сегодня же я поставил ему на комп Fedora 22 с Oracle Virtual Machine (есть проги типа Альфа-директа (для брокеров), которые не работают под Линуксом ни в какую).
Вечером приезжает, включает:
— Это чё такое?!
— Линукс.
— Почему Федорка?
— Ну, с openSUSE были проблемы, да и не знаю я её…
— Ну давай мне, в инете посижу.
Собираюсь я уже уезжать. Крик из комнаты:
— Женя, бл%#ь! Как же я раньше жил-то?!
Оказалось, он уже прочухал репозитории (Append), навигацию в них, установил себе приложение для новостей (прям на рабочем столе показывает новости, какие он выбрал), поставил себе ещё кучу всяких приложений для робототехники (мы с ним занимаемся всякими железными штуками).
Итог: человеку за сорок, доволен как ребёнок, периодически вскрикивает: «Охренеть, тут даже это есть!» Уже сидит читает консоль, bash скриптинг. Говорит, завтра будет ядро пересобирать.
Наверное, мне это ещё аукнется… А ведь в десять часов вечера и всю свою жизнь до этого мой отец был закоренелым виндузятником, практически болел коммерческими продуктами и был уверен, что весь опенсорс — это фигня.
Стоят на рабочем месте два ПК — один для работы, второй для интернета в обход прокси. Решил подключить к рабочему компу второй монитор, который был подключен к инет-компу, а на его место поставить 24″, такой же, как на рабочем. Всё подключил, скомпоновал, смотрю, любуюсь, что аж душа радуется!
Настраиваю яркость на мониторе, который снял с инет-компа и параллельно спрашиваю начальника смены:
— А кнопка выключения на NEC’е не работает, что ли?
— Работает, дави сильнее.
Давлю, монитор выключается под звуки отключения устройства с инет-компа. Что за фигня?! Включаю — и слышу звук подключения устройства на инет-компе. Что, бл#@ь, за черти?!
Думаем с начальником, думаем, жмём вкл/выкл, прислоняемся ухом к рабочему компу — звук не с него. Увеличиваем звук на колонках инет-компа — да, точно с него!
Смотрю в десятый раз провода на системниках — всё верно, иначе не работали бы. Потом краем взгляда замечаю тоненький проводок, идущий от монитора в сторону инет-компа, смотрю, а это USB-провод, подключённый к монитору для связи с USB-хабом.
Вот такой, казалось бы, пустяк, а сколько мыслей было высказано по этому поводу, например, что инет-комп соскучился по своему давнему другу или что черти завелись!
Друзья, побольше вам таких вот забавных IT-приключений!
Было это ещё во времена, когда все юзали диалап, в мою бытность студентом третьего курса. Купил я у одной из фирм интернет-провайдера ночной пакет с колбэком, так как была поминутка на исходящие на моей АТС. С инструкцией давался некий скрипт, который, собственно, и позволял модему поднимать трубку при отзвоне с сервера. Потом, правда, систему изменили, всё стало более цивилизованно, но изначально было так.
У меня сразу же начались проблемы — входящий звонок есть, но модем трубку не берёт. Игры с регистрами и командами результата не приносили. Что интересно, в T-Mail'e (кто помнит такую) всё было прекрасно, входящие звонки в FIDO обрабатывались без проблем, в терминале T-Mail'a тоже всё было замечательно. Техподдержка была бессильна помочь.
С неделю бился над проблемой. Запустил Hyper Terminal и что я вижу — на команды модем отвечает не как обычно «Ok», а цифрами «1», «2».
Начал я искать файлы, связанные с этим модемом, откопал *.inf, который шёл с его драйвером. И там обнаружил интересную вещь — были прописаны типа макросов. Т. е. когда модем выдаёт «Ok», это подменяется на «1», «RING», например, на «2» и т. д. А из-за того, что в скрипте колбэка были строки, которые ждали определённого ответа — «Ok», «RING», а на самом деле в ответ получали цифры — ничего не работало.
Пришлось подредактировать *.inf, хотя, конечно, можно было поставить и стандартный драйвер. А в T-Mail'е всё работало, ведь он не общался с модемом через виндовый драйвер.
Конец истории таков: сообщил в саппорт, в чём была проблема и как она решается, через несколько дней мне перезвонил техдиректор провайдера и пригласил на собеседование, а ещё через неделю я уже работал в у них в саппорте.