Ребёнок подрос, тыкает кнопки на клаве. Есть у меня на ней клавиша выключения — иногда получается неприятно.
Решил отключить. Погуглил. Из десяти результатов в девяти предлагают перемапить клавиатуру в регистре; только в одном советуют зайти в Power options > Advanced и выставить реакцию на соответствующую кнопку. Сходятся лишь в одном: виноват Билл Гейтс.
Кушать подано, мой голубь сизокрылый
Я студент, подрабатываю сейчас у только появившегося провайдера в нашем городе: расшиваем по чердакам 25-парный Ethernet-кабель, укладываем это хозяйство в ящики, — в общем, гордо зовем себя монтёрами. Работаю я в компании моего одногруппника (назовём его Михаилом); с нами по чердакам бродит и наш начальник, он же ведущий инженер и электрик, который подводит питание в ящики.
Значит, залезли мы на третий за день чердак, решили перед работой над кабелем перекусить. Миша — человек тёртый, захватил с собой кефир, хлебные палочки и майонез. Во время трапезы замечаем, что чердак давно уже обитаем: на нём куча голубей. Задался Миша целью накормить птичек. Чего он только не пробовал: бросал в голубей куски хлебных палочек, пытался невероятно скрытно подползти к ним и накормить, наконец, захотел просто поймать голубя и силой заставить его покушать. Голуби не поддались на провокации. Миша грустно встал где-то посередине чердака, задумался и изрёк:
— Не хотят голуби кушать. Пойду покормлю электрика.
Греки не без греха
Программирую в среде с названием с греческими корнями. Версия среды старенькая — 2002 года, но мне хватает.
Нарыл на просторах интернета патч, исправляющий кучу мелких ошибок в среде — крупных тогда старались не делать. Загружаю проект софтинки, которую пишу и сопровождаю. Компилируется, запускается — всё хорошо.
Нажимаю кнопку «Выход» — access violation по такому-то адресу. После часового мозгового штурма баг был найден и обезврежен. Программа с ним жила уже почти год, и ошибок не было ни разу.
Как там у классиков? «Если в вашей программе не обнаружено ошибок, проверьте компилятор — возможно, ошибка есть в нём».
Удар из тени
Переставлял винду дома. Поставил систему, основной софт, настроил, что нужно, перегрузил, потестил. Решил добавить разных красивостей и удобностей: плееры, смотрелки картинок и прочую дребедень. Установил скриптом с загрузочного диска, выключил комп и ушёл спать.
Утром включаю комп — дичайшие тормоза: работать невозможно совершенно, и это на отлично настроенном вчера компе! Делаю трёхпальцевый аккорд, минут через пять вылезает диспетчер задач — значок в трее символизирует, что проц загружен чуть больше, чем полностью.
Медленно-медленно начинаю тянуться мышкой к вкладке «Процессы». Кликаю. Медленно-медленно отрисовывается список. Вот он, вредитель, отобравший 99% ресурсов! Процесс назывался... ninja.exe. Ещё через пятнадцать минут мучительно медленного шевеления курсором процесс удалось завершить, и всё замечательно заработало.
Сама программа-то хорошая, удобная — аналог «Пунтосвитчера». Запускаешь её после загрузки системы — отлично работает. Но вот если добавить в автозагрузку (что было сделано по умолчанию в установщике) — при запуске винды захватывает власть безраздельно. Истинный ниндзя! Втирается в доверие, незаметно сидит в трее и ждёт момента для смертельного удара.
Весь в белом
Отправили как-то нас поднимать сетку в одном далёком московском районе. Находим узловую точку по топологии, идем в ДЭЗ и узнаём, что в том доме идёт капитальный ремонт, и чердак должен быть открыт. Мы уже начинаем что-то подозревать, поднимаемся на чердак и видим...
Когда тянули линию, ящика еще не было. Потом его повесили, но оборудование в него переместить не успели. Вот и наблюдали мы картину: под потолком висит закрытый на замок ящик, а рядышком побелённый свитч.
Как ни суй, бабла не дам
Работаю айтишником в одном сине-красном банке. В круг основных обязанностей входит работа с банкоматами.
Суббота. Утро. Раздаётся звонок с неизвестного мне номера. Беру трубку. «Алло! Это банкомат?» Спросонья ощупываю себя и, не найдя пин-клавиатуры и прорези кард-ридера, уверенно отвечаю: «Нет, это не банкомат! Куда вы звоните?» Женский голос на другом конце провода, не заметив подвоха, повторяет: «Это же банкомат, да? Мне нужно карточку поменять». Советую голосу для обмена карточки приехать в банк. В ходе разговора выясняется, что женщина работает в обслуживаемой банком городской больнице. Интересно, как бы она отреагировала, если бы я ей позвонил и спросил: «Алло! Это бормашина?» или «Алло! Это томограф?»
Бассейн и две трубы
Есть у меня несколько серверов, в задачу которых входит сбор и обработка статистики от нескольких сервисов. Вся статистика хранится в базах MySQL. И вот однажды сервер, на котором крутилась база, начал тормозить. Это было вполне предсказуемо: объём поступающих данных постоянно рос, и требовалось всё большее время на его обработку. Так как оптимизация работы базы уже не помогала, а оптимизация скриптов уже была проведена до этого, было принято решение о переносе базы на более мощный сервер. Сказано — сделано. Железо настроено, установлена CentOS 5, MySQL, подобраны оптимальные настройки базы и написан скрипт для автоматического переноса данных.
В пятницу утром запускаю тестовый прогон, который должен был воссоздать структуру таблиц. Результат успешен. Запускаю основной скрипт и наблюдаю, как начинают передаваться данные. К шести вечера скрипт всё ещё работает, хотя должен был закончить часам к трём, и рапортует о том, что успешно передаёт в среднем по 70 записей в секунду, Стоп! Как так? До этого шло по три-четыре тысячи в секунду, а сейчас 70? Начинаю проверять всё, что пришло в голову: интернет-канал в норме, нагрузка на обоих серверах в норме, зависших запросов в базе тоже нет, генерацию отчётов отключил...
Только через несколько минут до меня дошло, что умный скрипт не просто дампил базу, а выполнял полноценную одностороннюю синхронизацию данных. А в это время демоны, которых я забыл отключить, успешно стягивали и обрабатывали данные с сервисов и сливали их в старую базу со скоростью около 70 записей в секунду...
Невнимательность — враг системного администратора. В следующий раз я напишу план работ и буду расставлять в нём галочки, чтобы не пропустить что-либо ненароком, чего и вам советую!
Запомнить такие пароли легко ли?
Несколько лет назад, по молодости и глупости возомнив себя крутым хакером, решил я получить доступ к админской панели сайта одного товарища. Способ добраться до своей цели нашёлся очень быстро — «угон» дампа базы данных.
Не буду рассказывать о том, какими ухищрениями мне удалось этого добиться, но в скором времени заветный файлик был у меня. Ага! Вот она, таблица users. Находим нужные поля, копируем их значения. Имя пользователя: «admin», пароль... Ах ты засранец! Ну и пароль у тебя!
Пароль состоял из огромного количества букв и цифр и крайне удивил меня: как же товарищ умудряется запоминать такую абракадабру? С другой стороны, какая мне разница, если пароль можно скопировать и вставить в соответствующее поле формы входа? Оп-па: «Неправильный пароль». Всё по той же глупости разбираться в причинах появления такого уведомления я не стал и после нескольких попыток закрыл форму и удалил дамп.
Лишь через некоторое время, всерьёз взявшись за изучение веб-технологий, я узнал волшебные слова «хеш» и «MD5».
На посошок в последний путь
Чердак, покрытый полуметровым слоем гуано. В самом загаженном углу мы с напарником варим муфту, да ещё и с «раздвояйцелем», то бишь с разветвлением выходов. Столик с «препаратом» и сопутствующей шнягой, лампочка, табуретка и два тела — идиллия.
На чердаке появляется абориген.
— Спирт?
— Спирт.
Абориген гулко сглатывает слюну.
— Изопропиловый.
— То есть пить нельзя?
— Можно. Но только один раз.
Постоял мужик ещё минут десять, помаялся, помялся и ушёл. Вот ведь обоняние у человека!
Кот без усов
Сборщики забыли в ноуте болтик? Ничего страшного, бывает. Свой ноут известной американской фирмы с названием из двух букв я пару лет без особого успеха пытался подружить с домашней вайфай-точкой. Связь была только в комнате, где стояла точка, и то периодически рвалась. Стоило удалиться за стенку или, не дай бог, в туалет — связь пропадала полностью. Обновлял дрова, ковырялся в настройках, — ничего не помогало. Решив, что китайская точка доступа — китайская, задумал прикупить внешнюю антенну. Штатного коннектора, конечно, не было, но не беда: я нашёл, куда на плате её подпаять.
Ларчик открылся, когда пришлось вскрыть ноут для чистки кулера от пыли. Доблестные сборщики забыли подключить к вайфай-адаптеру антенну.