#8581: Он нам не нравится
15:00 22.02.2012, IT happens
Нет, я всё понимаю — безопасность, туда-сюда, но брандмауэр, который предлагает победить процесс winlogon, потому что он зело подозрительный, — это перебор.
Как раз в этот момент я набирал текст. Когда появилось очередное окошко о подозрительном winlogon, успел нажать Enter… Ну, вы поняли.
#8582: Печатный станок династии Мин
15:00 22.02.2012, IT happens
Грабанули коллегу моего. Только странно грабанули. Айпад, лежавший на видном месте, не тронули. Плазму не тронули. Деньги не тронули. Комп, собранный всего год назад, не тронули. Драгоценности жены не тронули.
Исчезли всего две вещи: адаптер USB-LPT и подключённый через него матричный принтер. А вскоре на столбах нашего городка появились объявления, на нём же и распечатанные, о его продаже.
Пятьдесят тыщ за него хотят. Ох и наивные воришки! Принтер, конечно, древний, но не настолько ведь…
#8583: Коммит лыж в ёлку
15:00 22.02.2012, IT happens
Суббота. Разгильдяи отрабатывают накопившиеся за неделю опоздания (у нас с этим легко, лишь бы к концу месяца время сходилось). Лезут в SVN и обламываются. Вызванивают админа, вызванивают других сотрудников, наслаждающихся выходными, и понемногу выясняют причину. В пятницу вечером программист, уходивший последним (целый начальник отдела), своим апдейтом поломал дерево SVN. Делать нечего — приехал админ, восстановил из четвергового бэкапа. До виновника дозвониться не смогли: уехал кататься на лыжах.
Понедельник. Виновник весь в синяках и хромает. Оказалось, в субботу врезался в ёлку. Сломал и лыжи, и дерево.
#8584: Ме-е-едленные методы
16:45 22.02.2012, IT happens
Смотрю код высоконагруженного сервера. В ядре обсчёта вижу код типа:
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 тактов на каждый переход. Всего таких объектов в секунду надо обсчитать порядка нескольких миллионов. Частота ядра — три миллиарда операций в секунду. Отсюда вывод: идите вы лесом со своим ООП!»
#8585: Помним о потомках
13:00 23.02.2012, IT happens
Для учёта муниципального имущества мы пользуемся широко известной в узких муниципальных кругах программой — не буду делать рекламу. Программа довольно-таки приятная. Много интересных идей, много возможностей; достаточно и недоработок, ошибок, многие из которых, что уж там скрывать, наших рук дело. Всё это обычно оперативно исправляется техподдержкой или разработчиками в новых версиях.
В декабре после установки очередного обновления началась феерическая жопа. Основная масса ошибок была связана с начислением арендной платы, пени и т. д. А этожеденьги, как говорит наша начальница.
По сей день ещё не все ошибки исправили. За 2,5 месяца вышло восемь (!) патчей. Сейчас с интересом изучаю список изменений. Понравилось:
#8586: Daemons vs. Zombies
13:00 23.02.2012, IT happens
Однажды во время дебага обнаружил следующее:
Конец света наступит точно в этом году.
#8587: Клиническая смерть клавиатуры
13:00 23.02.2012, IT happens
Вы тоже выбрасываете залитые/подохшие клавиатуры? Ну и правильно. Возни больше, чем заехать за новыми. И всё же… К вам никогда не подходили хорошие, в целом умные и адекватные, даже симпатичные пользовательницы с клавами, отведавшими волею судеб сладкого кофе? Выдаёшь запасную клаву — но барышня-то привыкла к дополнительным кнопочкам и тактильным ощущениям от той, отведавшей…
Ладно, есть время, есть вдохновение.
1. Разобрать.
2. Вымыть-высушить пластмассу, плёночки, резинки.
3. Собрать первый раз.
4. Убедиться: сдохли пробел, «М», «И», часть стрелочек, ещё по мелочи, — короче, одна дорожка на одной плёнке.
5. Разобрать, потыкать щупиками тестера, найти, где именно.
6. У заказчицы получить конфету в фантике с алюминиевой фольгой. Потренироваться с монтажным ножом, вырезать полоску полмиллиметра шириной, наклеить её на скотч, попасть алюминькой в начало и конец повреждённого участка, прилепить скотч, обрезать лишнее.
7. Прозвонить, собрать, потестить.
8. Вручить.
Правду говорят, что после Третьей мировой будет работать только то, что перемотано синей изолентой.