8584

Ме-е-едленные методы

Смотрю код высоконагруженного сервера. В ядре обсчёта вижу код типа:

func() {

ObjectGame* OG=MainOG;

while(OG->next!=NULL)

{

ia=(int*)OG+12;

i=*ia;

/* что-то делает*/

*ia=i;

/* код функции, внутри функции ia претерпевает различные изменения*/

OG=OG->next;

}

}

С большими глазами иду к прогеру, который это всё написал. Спрашиваю: почему он не пользуется методами Set и Get, и вообще, почему именно 12 байт?

На что он мне отвечает: «Внутри кода функции есть ветвящийся цикл, в котором перебираются многие параметры объекта. Если пользоваться методами Set и Get, а это переход по адресу, причём у каждого объекта он свой, конвейер процессора офигеет и сбросится. Это плюс 30 тактов на каждый переход. Всего таких объектов в секунду надо обсчитать порядка нескольких миллионов. Частота ядра — три миллиарда операций в секунду. Отсюда вывод: идите вы лесом со своим ООП!»

8583

Коммит лыж в ёлку

Суббота. Разгильдяи отрабатывают накопившиеся за неделю опоздания (у нас с этим легко, лишь бы к концу месяца время сходилось). Лезут в SVN и обламываются. Вызванивают админа, вызванивают других сотрудников, наслаждающихся выходными, и понемногу выясняют причину. В пятницу вечером программист, уходивший последним (целый начальник отдела), своим апдейтом поломал дерево SVN. Делать нечего — приехал админ, восстановил из четвергового бэкапа. До виновника дозвониться не смогли: уехал кататься на лыжах.

Понедельник. Виновник весь в синяках и хромает. Оказалось, в субботу врезался в ёлку. Сломал и лыжи, и дерево.

8582

Печатный станок династии Мин

Грабанули коллегу моего. Только странно грабанули. Айпад, лежавший на видном месте, не тронули. Плазму не тронули. Деньги не тронули. Комп, собранный всего год назад, не тронули. Драгоценности жены не тронули.

Исчезли всего две вещи: адаптер USB-LPT и подключённый через него матричный принтер. А вскоре на столбах нашего городка появились объявления, на нём же и распечатанные, о его продаже.

Пятьдесят тыщ за него хотят. Ох и наивные воришки! Принтер, конечно, древний, но не настолько ведь…

8581

Он нам не нравится

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

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

8580

Плавкий предохранитель

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

Источником энергии я выбрал молнию. На балконе соорудил небольшой громоотвод; толстые провода от него шли к параллельно соединённым конденсаторам от старого лампового телевизора. На смежном балконе в квартире друга стоял старый дубовый стул, сделанный некогда его отцом. Стул я обмотал проводами, как в катушках индуктивности. Отыскал дуршлаг, который присоединил к остальным проводам, а для большего эффекта к нему прилепил жвачкой батарейку и моторчик.

Когда всё было готово, а небо обещало грозу, для испытания моей машины времени был приглашён другой друг, скептически настроенный и осмеивающий мой шедевр. Мы посадили его на стул, обвязали проводами, надели дуршлаг на голову, соединили батарейку с моторчиком, и тот весело завибрировал.

Ожидая молнии, в тишине пасмурного вечера ждём чуда. И тут друг заявляет:

— О! Я, кажется, что-то начал чувствовать! Кажется, оно работает!

Жвачка расплавилась и через дырки дуршлага крепко въелась в волосы.

Лысый друг ещё долго вспоминал меня хорошими словами, а я ещё долго ждал удара молнии. Хорошо, что обошлось.

8579

В мечтах о NFC

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

— Добрый день! Мы вчера у вас купили флешку. Она не вставляется в наш ноутбук.

Покупатели, находящиеся в зале, с нескрываемым интересом переключают своё внимание на дальнейший диалог. Продолжая заниматься своим делом, мгновенно прокручиваю в голове варианты. Пихают флешку в LAN-порт? Или всё же в USB, но повернув на 180 градусов? Повреждён USB-порт в самом буке? Может, в конце концов, разъём у флешки помят (чего, к слову, на моей практике ни разу не было, но отрицать вариант нельзя)?

— Позвольте, я посмотрю, — говорит продавец, берёт в руки флешку (Kingston DataTraveler), быстро снимает колпачок и тянется к удлинителю USB, лежащему на столе.

— Так у неё, оказывается, колпачок снимать надо?

8578

Копипаст, бессмысленный и беспощадный

Админил я как-то гипермаркет очень известной в России ритейловой компании. Каждый месяц нужно было проводить техническое обслуживание компьютерной техники. Для контроля обслуживания использовалась централизованная хелпдеск-система. Начальник каждый месяц создавал заявку на обслуживание техники, которую мы закрывали после проведения техобслуживания.

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

Первый опыт показал, что работа будет выполняться целую неделю. Целую неделю сидеть и вбивать данный список оборудования в заявку начальника! Это при условии, что никто из пользователей тебя не дёргает. При условии, что не упал внутренний канал связи с центральным офисом, по которому работает хелпдеск. При условии, что не упал сам сервер хелпдеска, на который в конце месяца сыплются тысячи запросов от всех гипермаркетов по всей России. Это можно сделать, если отказаться от самого технического обслуживания, иначе просто не хватит времени. Но начальство сказало: «Делайте заявки».

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

На компьютер была установлена простейшая программа, запоминающая и воспроизводящая движения клавиатуры и мыши с простым интерпретатором макрокоманд. Весь список оборудования был переведён в экселевский формат. В первой колонке — наименование, во второй — серийный номер, в третьей — что было сделано. Открываются два окна: Эксель с вышеупомянутым списком и хелпдеск. Запускается макрос, который копирует текст из экселевских столбцов и вставляет его в нужные строки в хелпдеске. Далее нажимается кнопка «ОК» в хелпдеске и удаляется первая строка в Экселе. Цикл на 500 раз — знай только посматривай, не упал ли канал связи или сервак хелпдеска.

Только таким способом удалось совместить работу и прихоть начальства.

8577

Зато я нюхаю и слышу хорошо

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

А вот я сделать не мог вообще ничего. Сейчас мне 20, и пик моего рвения к компу (да что уж там — к игрушкам) пришёлся на зарю появления ЖК-мониторов — громоздких, ни разу не широкоформатных, но всё-таки тонких в сравнении с ЭЛТ. Мама, не желая заморачиваться вообще ни с чем компьютерным, просто каждый божий день увозила с собой монитор на работу в багажнике.

8576

Админ спит — взлом идёт

Сидел всю ночь, производил «аудит безопасности веб-интерфейсов», как это модно говорить, а на самом деле рутал серваки. Почти не спал, утром к девяти в универ.

Захожу в автобус, достаю проездной — в автобусе опущены рога АСКП. Прохожу в салон, а в голове одна мысль: «Обход авторизации».

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

Явно надо что-то менять. А как менять, если ночь для нас — рабочее время, потому что на серваках админов нет?

8575

Ручка, трубка и кирпичная стена

Готовили заявку на компьютеры для техподдержки. Подобрали модель, получили коммерческие предложения от поставщиков. С пакетом документов пошли к директору. Он оставил документы у себя посмотреть.

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

Компьютеры купили только через год.