Отпуск

Я, кстати, в отпуске с середины этой недели и до 16-ого сентября. С ограниченным доступом к e-mail. Так, что если чьё-то письмо осталось не отвеченным - извиняйте. Впечатления от родных мест опишу познее.

Не дам хохлам заработать!

Супруга рассказала забавное. В Редмонде есть «русский» магазин. Стандартный такой: гречка, селедка, халва, хлеб и все такое. Зашла она туда за творогом и чем-нибудь еще по мелочи. За ней в магазин заходит ещё одна покупательница и начинает что-то там себе выбирать. Доходит до гречки, внимательно рассматривает, а потом спрашивает хозяйку: «А у вас украинские товары есть?» «Да, есть украинские, есть из России, есть из Болгарии» - отвечает хозяйка. Пауза. «А сама ты откуда? Read On →

Унификация стиля кодирования в команде - тупичок с граблями

Тема жёванная-пережёванная, так что я не буду подробно останавливаться на том, зачем нужен единый стиль кодирования в команде (или проекте). Основные тезисы:

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

  • Кажется, нет никакой разницы между разными стилями с точки зрения легкости понимания и написания кода. Любой выбранный стиль, будучи принят в команде упрощает сопровождение кода, при условии, что он один и используется.

  • Единственный способ выработать единый стиль - диктатура в том или ином виде. Можно месяцами спорить о том, где правильно ставить скобки, какие отступы должны быть, можно ли использовать две пустые строки в качестве разделителя и т.д. и т.п. В один прекрасный момент терпение лопается и волевым решением назначается «правильный» стиль.

Read On →

Хозяйке на заметку

Чтобы войти на машину с благозвучным названием “6XSD29G-052-18XS_32” под локальным пользователем, не нужно набивать полное имя пользователя как “6XSD29G-052-18XS_32\vasya”, проклиная при этом злого гения, запретившего Copy-Paste в поле ввода имени, и его коллегу, давшему компьютеру такое замечательное имя. Достаточно просто сказать “.\vasya” и все получится. PS. Знал бы об этом пять лет назад - день жизни сэкономил бы уже наверное. Хотя мог бы и сам догадаться… :-)

Detours

Сижу, разбираюсь как Detours перехватывает функции Win32 API. Сама идея известна. В начало функции пишется безусловный JMP на функцию перехватчик. Для того, чтобы вызвать оригинальную функции, её код, на место которого помещается JMP, копируется в буфер и дополняется безусловным JMP на первую нетронутую инструкцию. Интересно, однако, не это, а сколько дополнительных проверок делается, чтобы повысить надежность этого метода: Поверяется, не указывает ли указатель на перехватываемую функцию, не на саму функцию, а на элемент таблицы импорта. Read On →

Обновился до WordPress 2.6

Обновился до WordPress 2.6. Вроде ничего не потерял по дороге. Если что-то все-таки отвалилось – пишите.

diStorm64 disassembler

Наткнулся на хороший open source disassembler, понимающий и 80x86 и amd64, и распространяемый под BSD лицензией: diStorm64. diStorm is a binary stream disassembler. It’s capable of disassembling 80x86 instructions in 64 bits (AMD64, X86-64) and both in 16 and 32 bits. In addition, it disassembles FPU, MMX, SSE, SSE2, SSE3, SSSE3, SSE4, 3DNow! (w/ extensions), new x86-64 instruction sets, VMX, and AMD’s SVM! diStorm was written to decode quickly every instruction as accurately as possible. Read On →

Чем плоха удалённая работа?

Прелесть какая. ;-) А что плохого в телекоммьюте? телекоммют плох там, где работает команда, где есть постоянный обмен идеями, где восклицание “@#$#@$@#$!!!!”, сказанное в адрес чьего-то кода, слышит весь тим. Напишите “@#$#@$@#$!!!!” в комментариях. Народ почитает-посмеётся. Это кто найдет. И всё. А вот когда тоже самое бывает сказано тихим рыком на басах, с варварским восточно-европейским акцентом, то эффект совсем другой. Виновный нервно дергается, судорожно просматривает свои последние коммиты, одновременно собирает в жменю блокнот и карандаш, т. Read On →

Проверка параметров функции

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

Read On →

Доктор Ужасный против капитана Молотка

А меня просто прёт переводить их имена буквально… Подсмотрел у Реймонда Чена. Безумный ученый доктор Ужасный ведёт блог и непримирумую борьбу с капитаном Молотком за контроль над миром сердцем Копейки – девушки из прачечной «Отмывка Монет», с которой доктор уже месяц пытается заговорить. Кроме того, доктор Ужасный мечтает о вступлении в Лигу Зла, возглавляемой злодеем Хреновая Лошадь, однако чтобы его прошение было одобрено, он должен совершить что-то по настоящему ужасное… Read On →