Выбрать главу

Для начала надо как-то закрепить лампу (тяжёлая, зараза), покурить и подумать. Примотался к потолку куском провода, пошёл курить — решение созрело! Взамен сломанных плиток добрый дядя-дворник выделил мне новые; я распаковал два метра кабеля и каждый квадрат примотал к потолку на витуху.

На следующий день к шефу пришли дико довольные тётеньки с благодарностью: «Как же хорошо работает ваш монтажник — ни одного матерного слова за всё время работы не сказал!» О, знали бы они, что я думал в тот момент!

В университете я уже не работаю, но судьба иногда заносит в тот корпус. Дяденька-дворник рассказывал, что потолок так и не делали. Интересно, сколько лет он провисит на витой паре?

#3165: Убийца — садовник

13:00 21.05.2010, IT happens

Качал как-то один сериал. Поставил торрент на закачку, установил высокий приоритет на первые четыре серии. Прихожу домой. Скачались первые четыре серии, остальные по 20–40%. Прокручиваю список вниз — последняя серия скачана на 100%, хоть и приоритет низкий стоит. Вот так вот: даже торрент-клиент искушает посмотреть, чем всё закончится!

#3166: Конь и кот

13:00 21.05.2010, IT happens

Сдавали в институте на первом курсе лабораторку на Паскале. Лабораторка была посвящена обработке текстов — мелочей не помню, но сперва нужно было объединить два текстовых файла. Для этого мы использовали оператор сложения, благо Паскаль это позволял.

Преподаватель всматривается в код, а потом спрашивает, почему мы сложили строки, а не использовали специальную функцию. Мы объясняем, что и так можно, на что препод отвечает, что если мы потом где-нибудь встретим функцию, то ни за что не догадаемся, что она делает. «Наверняка, — говорю, — название у функции будет „говорящим“, поэтому мы догадаемся». Преподаватель, торжествующе: «Ага, а функция называется CONCAT()! И что же она вам говорит?»

#3167: Наполовину пустой, наполовину полный

13:00 21.05.2010, IT happens

Код оптимиста:

if (<условие1> && <условие2> && <условие3>) return true

return false

Код пессимиста:

if (!<условие1> || !<условие2> || !<условие3>) return false

return true

Код реалиста:

return (<условие1> && <условие2> && <условие3>)

#3168: Из любви к искусству

15:00 21.05.2010, IT happens

Сижу поздно вечером на работе, домой идти лень. Попиваю третью бутылку пива и постоянно посматриваю на богом забытый мёртвый Cowon A2, который я год назад купил на Ибее за копейки, но как-то всё руки не доходили. После третьей бутылки руки внезапно зачесались, и плеер пошёл на диагностику.

Сгорел контроллер питания. Хм... Полчаса курим даташит и понимаем, что если убрать приблуды типа датчика температуры батареи и прочего, то он должен при входе 4,1 В выдавать 1,8, 2,5, 4,1, 3,3 и 5 В. Не беда — берём пару советских и забугорных малоточных стабилизаторов, пихаем в корпус (места много), подпаиваем, тестируем — ура, работает!

Стоп. Винчестера-то живого на 1,8" нет, а без него работать не будет. Курим даташиты на пинауты винтов и карт памяти CF. Идёт пятая бутылка пива... Новый переходник IDE — CF быстро потрошится и превращается в 1,8" IDE — CF. Всё это ставится, паяется — чудо, теперь можно в метро по пути домой посмотреть «Аватара»!

На следующий день, проснувшись с головной болью от выпитого пива, я задумался: а зачем оно мне нужно было? Плеер для видео у меня есть, да и «Аватара» я смотрел. Выставил плеер на Ибей как рабочий — вдруг кому пригодится?

#3169: Лети, мой сизокрылый пинг

15:00 21.05.2010, IT happens

Стою сегодня у банкомата, оплачиваю с пластиковой сбербанковской карты интернеты. Многие знают, насколько порой мучительно медленно идут транзакции. Рядом на асфальте кусок хлеба терзают голуби. Ввожу номер лицевого счёта, жму «Далее». Один из голубей поднимается и улетает. «Подождите, операция выполняется». Проходит пара минут, прилетает другой (или тот же) голубь — «Операция успешно завершена».