Чтение онлайн

ЖАНРЫ

Клиент и саппорт. Разработчик и заказчик. Программист и программа. Вести с фронтов.

IT Happens Bash Org

Шрифт:

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

13:00 22.10.2009, IT happens

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

придумать.

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

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

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

13:00 22.10.2009, IT happens

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

1) устанавливаем бит четности в настройках порта в 1;

2) пишем в порт адрес нужного датчика;

3) устанавливаем бит четности в настройках порта в 0;

4) пишем в порт команду;

5) читаем ответ.

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

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

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

Нервы, психологическое давление со стороны инженера, ожидание Нового года на работе… На третий воскуривания даташита Super-IO-чипа, установленного на «волшебном» ноутбуке, все становится ясно. Микруха на моей и других новых мамках по каким-то причинам не успевает переключить четность, а на древнем ноуте

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

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

#1364: Пингвин против пингвина

15:00 22.10.2009, IT happens

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

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

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

#!/bin/sh

$0

$0

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

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

12:00 23.10.2009, IT happens

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

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

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

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

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

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

#1366: Бесперебойная связь

14:00 23.10.2009, IT happens

Поделиться с друзьями: