Медленно начинаю размышлять, не прикалываются ли на другом конце провода? Спрашиваю у хозяйки — конечно, та о контрольном вопросе ничего не помнит. Ну что ж, терять нечего, включаю логику и возвращаюсь к разговору с провайдером:
— В любом случае на эту фразу я отвечу вам «нет, без вариантов»!
На другом конце трубки юноша замялся. Спрашиваю:
— Ну что, подъезжать в офис с паспортом?.. Спасибо, до свидания!
Через минуту нам перезванивают. Хозяйка берет трубку, начинает улыбаться, а затем передаёт телефон мне. Всё тот же мужской голос сообщает:
— Знаете, вы правильно ответили на вопрос. Ждите SMS с паролем.
Через минуту пароль пришёл, и интернет появился. Я ещё раз убедился в том, что искренний и честный ответ на поставленный вопрос всегда приводит к желаемому результату.
#1189: Жизнь коротка — играй больше
00:30 25.08.2009, IT happens
Когда-то давно, купив классическую «сегу-мегу», мы с братом столкнулись с проблемой: для игры отец выделил старенький телевизор «Электроника» который не имел привычных сегодня разъемов-тюльпанчиков. В комплекте к приставке шёл особый кабель, который позволял подключать её к антенному входу, но в случае конфликтов на почве учебы или других повинностей отец этот шнур конфисковывал.
Пытливый ум нашел лазейку: из зала в нашу комнату мы притащили видеомагнитофон, а «сегу» воткнули ему во вход. Поиграть удалось, но отец, увидев видик в комнате, стал ругаться: «Ставьте на место в зал и не трогайте!»
Пришлось искать другой путь. Вариантов было много: выпаять декодер из «спектрума» и приладить к «сеге», помучиться, найти и купить новый шнурок и даже улучшить свои показатели в учебе, чтобы отец вернул шнур.
И всё же мы пошли проторенной дорожкой: из нашей комнаты до зала были протянуты под коврами три коаксильных кабеля метров по пятнадцать каждый. Два из них были с «тюльпанами» с обоих концов, а третий был обычным антенным удлинителем. Как и в первом варианте, «сега» в нашей комнате включалась в видик в зале, а тот через антенный кабель передавал сигнал на телевизор в нашей комнате. Отец схему вычислил не сразу, но потом, оценив смекалку, не стал выдёргивать провода, а начал издеваться — когда мы усаживались за приставку, он заряжал в видеомагнитофон кассету, и вместо игры мы смотрели последние хиты видеопроката.
В итоге брату надоели высокотехнологичные решения. Однажды мы умудрились достать ключ от комнаты отца и вытащили кабель. Искомый декодер из коробочки-конвертера мы изъяли и вернули нерабочий кабель на место. И волки сыты, и овцы целы!
Тот самый выпотрошенный тринадцать лет назад кабель я на днях обнаружил у отца в комнате — он и напомнил мне об этой истории.
#1190: Увеличьте ваш билборд до 5x10 м за неделю
13:00 25.08.2009, IT happens
Работаю дизайнером в конторе, занимающейся широкоформатной печатью для наружной рекламы. Сижу как-то в офисе, делать нефиг, на ящик приходит очередной спам: «Канализация недорого». Дай, думаю, позвоню, поработаю вместо наших менеджеров. Прочитал горе-ассенизаторам лекцию о пользе рекламы — те задумались, но отказались. Спама от них нет уже месяц.
Сегодня не удержался и настроил-таки своего бота, на весь входящий спам отвечавшего коммерческим предложением. К концу дня телефон разрывался — звонили со всей России. Шеф в шоке: «На фига взяли такого дизайнера-админа?! Нам же скоро такими темпами и американские заказы печатать придётся!»
#1191: Буковки в ряд, звёздочки в ряд
13:00 25.08.2009, IT happens
Работаю в банке. Новенькой сотруднице надо было настроить удалённое соединение. Стандартная процедура, знакомая каждому: в окошко нужно ввести логин и пароль. Диктую по телефону, девушка вводит и говорит, что логин или пароль не подходят.
Переспрашиваю насчет раскладки и капслока. Начинаю диктовать по буквам — то же самое. Проверяю пакеты, которые приходят от клиента на сервер — в них тоже вроде как верные данные. Меняю логин и пароль, выдаю новые — ситуация та же.
Смотрю на пакет ещё раз и случайно замечаю перед именем пользователя несколько пробелов. Звоню новенькой:
— Ну да, всё верно, это я ставила. Я хотела, чтобы красиво было, по центру...
#1192: Два часа в позиции «Декомпиляция ядра»
00:30 26.08.2009, IT happens
Некоторое время назад мне понадобилось написать класс, разбирающий структуру данных (строку, содержащую в себе в кодированном виде информацию о человеке) и дающий доступ к этой информации при помощи простых функций.
Буквально через день в процессе доработки этого класса появилось желание вынести позиции полей данных в этой строке в константы во избежание появления ошибок в дальнейшем. Был выбран простой синтаксис: *Position обозначало позицию поля данных в строке, а *Length — её длину. Например, birthDatePosition и birthDateLength — всё просто и понятно.