1391

Вытесняющая однозадачность

На переломе девяностых мне пришлось некоторое время жить с 80-метровым винтом. Из «окон-95» было вырезано всё, что можно. Ключевым звеном системы был волшебный батник. При запуске он спрашивал, чего барин изволит:

1. Фильм посмотреть;

2. Музыку послушать;

3. В ворде поработать;

4. Код пописать;

...и дальше по списку прикладных прог.

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

Процедура смена «скина» у компа занимала до получаса. Это ведь совсем немного — покурить, чай поставить...

1390

Антивирусный букет

На днях наша контора купила энтерпрайзного «Доктора Веба» с трёхлетней лицензией — я как раз занимался этим вопросом.

Вчера вечером вот какой казус приключился. Стою я на углу с букетом в руке, девушку свою жду. Ко мне подъезжает на велосипеде дедушка и спрашивает: «Почем „Вебера“ брали?» У меня в мозгу раздаётся громкий щелчок, за которым прибегает стадо мыслей типа «Кто это? Откуда он знает? Неужели по мне заметно?!» Тем не менее честно называю цену. Сказать, что дедушка офигел — значит ничего не сказать.

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

1389

Не свитерами едиными

По долгу службы мне приходится проводить время в модных молодёжных магазинах. На открытии и подготовке частенько присутствуют иностранные и отечественные менеджеры всех уровней — одеты все не в деловом стиле, а по последнему слову европейской моды.

Заканчиваем проверку сети. Вокруг снуёт персонал в платьицах, зауженных джинсах, нелепых сапогах и шарфиках — глазу приятно, но ни фига не удобно. И стоим мы, айтишники, четыре парня и девушка — все в берцах или гадах, штормовках-ветровках, а некоторые в камуфляже и разгрузках. Презрительных косых взглядов мы нахватали за пару часов немеряное количество. Собрались уже уходить; девчонка, что подписывала документы, говорит: «Приходите одеваться у нас — мы вас большу-ую скидку сделаем!» Системщик, застегивая косуху, отвечает: «Спасибо, обязательно. А одежда, чтобы на улицу выйти не стыдно было, у вас найдётся?»

Модная девочка скрылась со скоростью пули. Еле до машин дошли — от хохота животы скрутило!

1388

Введение в айтишничество

А вы заметили, что айтишничество — вполне сформированная религия? В ней присутствуют все классические элементы:

— Созданная из ничего в программируемая вычислительная машина на телефонных реле, ознаменовавшая переход от докомпьютерной эры к нашей эре;

— Типичное воплощение рая (KDE, OS X — на выбор) и семи кругов ада (Windows 95);

— Святой Линус и лукавый Гейтс;

— Великое множество великомучеников, пострадавших от неверных;

— Культ шаманства и пляски с бубном, чудо воскресения;

— Пиво для причастия и эмблемка вай-фая для храмов;

— Древние манускрипты с ветхим заветом (COM) и новым заветом (USB), объединяющие верующих.

В связи с этим предлагаю:

1. Среди неверующих неустанно распостранять агитинформацию об одушевленности техники и ее страданиях от перегрева, побоев и пыток;

2. Среди верующих упрочить веру в святых Контрола, Альта и пресвятого Делита; всему миру заявить о принадлежности к великому культу айтишничества путем записи в графе «религия» при переписи населения;

3. Всем несущим Знание (сисадминам, программистам и причастным), у которых есть подшефный персонал, заочно присвоить звание почетных педагогов с правом ведения семинаров на тему «Остановившиеся звезды: конец света» или «Муки моральные взамен мук физических, или почему не стоит бить системник».

И да пребудут с нами байты!

1387

Саунд-протезирование

Всему всегда приходит конец. Вот сдох и мой комп — завис посреди рабочего процесса. Ресет привёл только к чёрному экрану и горящей лампочке питания. Выключил, разобрал — начинает загружаться, после ввода пароля виснет снова.

Выяснилось, что при включении холодного компьютера он работает секунд 20 и виснет. Значит, что то перегревается. Потрогал все радиаторы — всё в пределах нормы. Методом исключения определил, что дело в материнке. Вычистил всё от пыли, заменил пасту на процессоре, добавил её под те радиаторы где её никогда и не было — безрезультатно.

Настроение испортилось, я начал морально готовить себя к походу в магазин за новой и с горя принял стакан коньяка. Тут меня понесло — терять ведь уже нечего! Мысль начала работать: раз что-то перегревается, значит, должно быть что-то горячее. Я начал ощупывать всё подряд, вплоть до разъёмов. Когда дотронулся до маленькой микросхемки, чуть не упал со стула — наверное, если выключить свет, то было бы видно красное свечение.

Микросхемка отвечала за звук и сетку. Сеть не работала уже полгода после грозы, а теперь, видно, решила сдохнуть совсем таким наглым способом. Коньяк уже разлился по голове — я, подумав, что звук, как и сетка, не является жизненно важным органом для материнки, решил ампутировать злосчастный чип. Разве не я в молодости паял и отлаживал АОНы и Синклеры, ремонтировал телевизоры и прочую ерунду? Но тут дело очень тонкое: микросхема маленькая, ножки как волоски, и припаяна своим межным пузом к материнке.

Делать нечего — достал кусачки, шило, отвёртку и обычный паяльник на 40 Вт. Промордовался минут 20. Остался лишь медный остов и рана на материнке, на первый взгляд несовместимая с жизнью. После небольшой обработки замыкающихся дорожек я нажал кнопку питания — чудо, компьютер ожил! Без звука, конечно, плохо, но явно лучше, чем до реставрации. На следующий день я поставил старую звуковую карту и жизнь снова вошла в привычное русло.

1386

Попал в участок — собрал жизнь

Приятель мой обладает довольно мощной машинкой, которую я собирал и апгрейдил в течение трёх лет. Недавно его тачка наконец обзавелась четырёхядерной бомбой и GTX 285 — игрухи любые хавает не глядя. Внезапно приятель просит у меня Half-Life 2. Я в недоумении: обычно он любил или футбол по сети, или что-то вроде Dead Space. Говорю, мол, опомнись — игра старенькая, сюжет линейный. Приятель был неумолим: «Ставим „Халфу“, и точка!»

Нахожу игру у другого товарища и планирую закинуть его вечером. Хрен там! На работе день рождения самой главной сотрудницы. И вот, я, порядочно подшофе, поздним вечером иду к приятелю. По дороге меня останавливают доблестные люди в серой форме: «Молодой человек, проедемте с нами!» Я, хотя и старше их раза в два, соглашаюсь, ибо сопротивление смерти подобно.

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

Визит в отделение аукнулся мне неслабо — пришлось помогать милиционерам сдавать высшую математику, физику, и химию в политехе, где они учились, хоть и не бесплатно. Зато диск, который они у меня спёрли, вернулся мне в расширенном варианте — первый и второй Half-Life!

1385

Померяемся FPS?

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

Встретились сразу после работы. Друг зашёл и с порога разрушил мои планы на вечер: «Давай прогоним 3DMark, сравним производительность видюх. Неинтересно же просто так их переткнуть!»

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

1384

Укротитель сверхзвуковых грызунов

Стоят у меня в фирме тонкие клиенты — грузятся с сетевухи, получая параметры загрузки из конфигурационного файла на сервере. У каждой сетевухи есть собственный конфиг, в котором помимо имени пользователя, IP-адреса и прочей лабудени есть параметр mouse_acceleration, управляющий скоростью движения курсора. Параметр этот по умолчанию равен 1. Чем больше число, тем быстрее двигается маус — при значении 5 мышка при минимальном движении прыгает из одного угла экрана в другой по диагонали.

Был один надоедливый манагер, который всю душу мне выел, пока я настроил все параметры под него. Два дня меня он мучил. Всё настроил — вроде как успокоился. Звонит он опять на следующий день и говорит: «Иван, мышка медленно ездит, можно побыстрее?» Я в сердцах выставляю ему запредельное на мой взгляд ускорение — 22. Думал, он поглядит, как мышка шустро от него убегает, и попросит «вернуть всё, как было». Но он не попросил, а я потом и забыл об этом.

Манагер тот все-таки уволился; посадили на его место другого. Тот мне сразу звонит: «Мышка — не аллё. Почините». Прихожу чинить — глазок светится; пробую покатать грызуна — курсор мечется по экрану так, что его едва видно. Вспомнил я про злосчастную шутку над предыдущим менеджером и вернул параметр к нормальному виду.

Вернувшись на своё рабочее место, я три дня пробовал научиться пользоваться «сверхзвуковой» мышкой и смог добиться точности лишь в половину экрана. А ведь человек так полгода смог проработать! Мне кажется, он без проблем смог бы уничтожить Звезду Смерти, попав в выхлопное отверстие реактора диаметром 2 метра.

1383

Счастливой отладки!

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

Как обычно, сроки поджимают, а я всё никак не могу разделаться с «ловлей блох»: приложение то работает нормально, то вдруг начинает глючить и вылетать на ровном месте. Как выяснилось, периодически возникало std::exception, но отследить, откуда оно бралось, у меня никак не получалось: казалось, что таинственная ошибка присутствует буквально всюду, при этом появляясь далеко не при каждом запуске.

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

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

В конце одного из основных хэдеров проекта, заботливо спрятанная за правый край экрана нужным количеством табуляторов, красуется неприметная строка:

#include


Гугление результата не даёт; просто комментирую эту строку и компилирую заново — успешно! Запускаю — программа работает как часы.

Придя в понедельник на работу, первым делом я решил глянуть, что же это за таинственная библиотека. Код её оказался настолько же лаконичным, насколько садистским:

#ifndef CFDC_H

#define CFDC_H

#include

#include

#define return if (std::random(1000) < 2) throw std::exception(); else return

//Счастливой отладки!

#endif



Надо ли говорить, что наш проект использовал в одном незначительном месте стандартный генератор случайных чисел, а вызываемый при инициализации std::randomize() успешно заметал любые следы?..

1382

Опилки пяти микрофарад

Работал как-то с отцом — надо было автоматизировать научную установку. Захожу к нему и вижу жуткую картину: на разобранном компе он усердно елозит напильником по плате сопряжения с установкой.

В легком офигении спрашиваю:

— Пап, ты что вообще делаешь?

— Там конденсатор я один впаял, у него характеристики близкие, но мне надо меньше — я его объём уменьшаю, пока не получится то, что надо.

И что вы думаете? Получил он нужную характеристику с заданной точностью, маминым маникюрным лаком капнул на место спила — всё заработало. Представляю, сколько возни было бы в западной лаборатории — я с ними работал, насмотрелся.

Горжусь отцом! Старая гвардия не сдаётся.