bash.im ithappens.me zadolba.li
1365

В глубоком тауне

23 октября 2009, 08:00

Вспомнил сон, который мне приснился около года назад.

Сижу на работе, беру в руки витую пару (обычно я всегда работаю через wi-fi), чтобы воткнуть ее в свой ноут, касаюсь контактов и чувствую сильный удар током. Через секунду я понимаю, что чувствую каждый бит, проходящий по витой паре, и обрабатываю пакеты на физическом уровне. Ещё через секунду я начинаю сам формировать и отправлять пакеты. Не в силах выпустить кабель из рук, чувствую полное блаженство.

Через некоторое время начинаю ловить волны wi-fi, а еще через несколько секунд ломаю силой мысли все доступные мне точки доступа. Бросаю кабель и отправляюсь гулять по городу (почему-то по Москве, хотя живу я в Калининграде).

Дошёл до кафе, заказал пива, сижу довольный. Подключился к своим серверам, проверил их состояние, разгрёб почту. Полез на Википедию, за полчаса прочитал всю, но мне было мало. За пятнадцать минут я выучил инглиш и за час перерыл всю Википедию (на этот раз на английском), а потом отправился в гугл пополнять багаж IT-знаний.

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

Зазвенел будильник. Я открыл глаза, пару часов лежал в кровати и матерился. Так жалко было терять настоящее админское блаженство...

1364

Пингвин против пингвина

22 октября 2009, 10:00

Два раза с большим перерывом и в разных группах я наблюдал «линуксовые войны».

Война первая состоялось, когда я еще был несмышлёным школием. На информатике нас припахали ставить линукс на все машины в классе — про Ghost и прочий мирроринг учитель слыхом не слыхивал. Рутовый пароль был везде одинаков. Суть игры была простой: выключи машину противника раньше, чем он выключит твою. Атаковали, зайдя по SSH на чужую машину и сказав системе shutdown -h now. Блицкриг-вариант (halt) мы выучили позже. Была и возможность уйти в глухую оборону: init 1 с отключением сети.

Вторая игра проходила заметно позже, в универе, и была похожа на забавы наших виндоус-коллег. Два игрока сидели на одной и той же машине, локально или по SSH. Один запускал форк-бомбу вида:

#!/bin/sh
$0 &
$0 &

Другой с ней боролся: killall sh. Дело усугублялось отсутствием рута у обоих и грамотно выставленными лимитами. На уровне Nightmare можно одновременно пытаться залогиниться в KDE.

1363

Подождите, я записываю

22 октября 2009, 08:00

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

1) устанавливаем бит чётности в настройках порта в 1;
2) пишем в порт адрес нужного датчика;
3) устанавливаем бит чётности в настройках порта в 0;
4) пишем в порт команду;
5) читаем ответ.

Пишу (очистки буферов и очереди после операции записи в порт, все как положено), компилирую, несу в соседнее здание на флешке инженеру, запускаю на его древнем ноуте с COM-портом — всё работает! Несу датчик к себе, запускаю на своей мощной машине — облом!

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

Иду к инженеру в соседнее здание, прошу осциллограф. Получаю отказ: «Это единственный осциллограф с памятью, он мне тут нужен». Не беда! Приношу версию программы с максимально подробным ведением логов, цепляюсь осциллографом на вход микрухи датчика, запускаю, медитирую... Порт открывается, бит чётности становится в 1, идёт адрес, идёт команда, порт закрывается. В логах все солнечно: судя по ним, бит чётности перед отправкой команды таки 0, а вот судя по осциллографу — 1. Естественно, датчик команду не воспринимает. Я больше верю осциллографу. Спрашиваю у гугла, форумов и знакомых спецов — ответа нет.

Нервы, психологическое давление со стороны инженера, ожидание Нового года на работе... На третий воскуривания даташита Super-IO-чипа, установленного на «волшебном» ноутбуке, всё становится ясно. Микруха на моей и других новых мамках по каким-то причинам не успевает переключить чётность, а на древнем ноуте успевает благодаря врожденной тормознутости последнего. Загадочным образом при этом API на обеих машинах сообщает, что все переключилось. Вставляю в код задержку в 1 мс — датчик радостно мигает индикаторами на любых компах!

Читайте мануалы. В них сила.

1362

Игрушки с толкача

22 октября 2009, 08:00

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

Решение пришло, как это часто бывает, случайно и было нетривиальным. Опытным путем было установлено, что сидюк отлично читает единственный лицензионный диск в квартире с дровами и софтом от принтера. Процедура была следующая: в сидюк вставлялся лицензионный диск, служивший «разгонным». После того, как сидюк начинал уверенно жужжать, быстренько нажималась кнопка Eject, лицензионный диск извлекался и вставлялся любой другой. Драйв продолжал думать, что вставлен качественный диск, и уверенно его читал. Единственным обязательным условием была скорость исполнения. Через неделю по скорости я не уступал механикам команды Ferrari на гонках Формулы-1!

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

1361

А всё, что не по графику — нафиг, нафиг

21 октября 2009, 08:00

Любим мы на работе в обед поиграть по сети в командные игры. В последнее время пристрастились к Urban Terror — это такой гибрид Quake и Counter-Strike. После большого ремонта глобальной сети на нашем предприятии долгое время не было. Небольшую сетку мы наладили себе сами — и к принтеру у всех есть доступ, и файлами (как рабочими, так и не очень) меняться удобно.

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

Решение пришло сразу. Имелся в этой комнате логический анализатор Agilent 16802A, управляемый Форточками XP. Экранчик у него был вполне приличных размеров. Правда, мышку с клавой цеплять все равно пришлось — использовать кнопки на корпусе анализатора было крайне неудобно. Игру быстро установили, а связь с анализатором наладили, отобрав сетевой кабель у заработавшегося коллеги. Обеденный матч прошёл по графику.

1360

Свято место пусто

До чего же бывают старательными люди! История эта произошла в одной из мастерских по ремонту сотовых телефонов в Тюмени, где я работаю «мастером на все руки».

Вызывает меня начальство и велит решить проблему с бухгалтерской программой. Беглый осмотр места происшествия выявил папку с программой весом в 14 ГБ и полностью забитый диск С. Увеличение раздела не помогло — через пятнадцать минут диск снова оказался заполнен, а папка растолстела до 20 ГБ. К тому времени я уже выяснил, что её нормальный размер не превышает 200 метров, да и то с полной базой, а около двухсот файлов с расширением .tar не имеют к ней никакого отношения. Попытки удаления непонятных файлов оборачивались восстановлением статуса-кво в ближайшие десять минут. Последовавший за этим гуглинг на тему «страшного вируса, создающего неизвестные файлы» принёс нулевой результат и волну отчаяния.

Чтобы успокоить расшатанные нервы, я направился в каморку техников попить чайку и поразмыслить над проблемой. Уже на подходе я почуял неладное — стояла странная тишина, не было слышно гогота и затейливого мата, характерного для разгара рабочего дня. Причина была проста: техники сидели за двумя компьютерами и... с довольными лицами перебрасывали в ту самую расшаренную папку файлы с прошивками для телефонов!

На вопрос «Нафига?!» ребята ответили, что место на их жёстких кончилось, а хард сервера толстый и всё вытерпит. Увеличение раздела очень обрадовало работников напильника и паяльника, а мои потуги по удалению мусора были восприняты ими как глюк сети.

1359

Простите за ровный почерк

21 октября 2009, 08:00

Дело было на первом курсе. Наш поток защищал курсовую по географии. Одним из обязательных требований было наличие нарисованной от руки карты по теме работы.

Если я скажу, что рисую как курица лапой — я не скажу ничего... Через десять минут размышлений решение проблемы было найдено. Я выцыганил у старшей сестры изрисованную от корки до корки контурную карту за 8–10. Сестра училась в художественной школе и от природы была очень аккуратна, что отразилось на картах.

Быстро найдя необходимый материал, я засунул карту в любимый МФУ HP, при помощи Paint закрасил шероховатости и стёр ненужные отметки с карт, а на диске «800 дизайнерских шрифтов» нашёл гарнитуру, наиболее похожую на мой почерк. Вуаля — карта готова!

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

1358

Слава Кодировщик и Паша Главный

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

— Слушай, а кто это такой?
— Этот мужик? Это архитектор, с их стороны.
— М-м-м. Кликуха, что ли?

1357

Дети цифрового века

У нас в семье в воспитании детей была извечная проблема — школьный дневник. Родители не рвались его проверять, а просто время от времени расписывались на каждой прошедшей неделе в графе «підпис батьків» — дескать, все замечания классрука прочитали, оценки видели, о прогулах знаем. Были, конечно, и случаи, когда на страницах дневника велся весьма оживленный чат с классруком, но наш рассказ не о том.

Когда родители приходили подписывать дневник, с вероятностью 90% он был не заполнен. Нам было очень стыдно, да и люлей порой отхватывали — приходилось сидеть и заполнять расписание за три-четыре недели, прошедшие с момента прошлой проверки (бог с ними, с заданиями, хоть бы расписание было). Программистские гены передались нам от родителей по наследству, и оптимизаторский подход рано или поздно проявился у всех.

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

Но сестра все равно отличилась. Она пошла на переговоры с мамой-бухгалтером и дорвалась до принтера наклеек с ценниками/штрих-кодами. Программа была за шоколадку (или за красивые глаза, уж не знаю) изменена мамой и... дневник сестры был расклеен до конца года.

О дети цифрового века! Если им лень писать ручкой — они напечатают.