Aug 22, 2008 · Comments
Отпуск
Я, кстати, в отпуске с середины этой недели и до 16-ого сентября. С ограниченным доступом к e-mail. Так, что если чьё-то письмо осталось не отвеченным - извиняйте. Впечатления от родных мест опишу познее.
Aug 14, 2008 · Comments
Странное
Супруга рассказала забавное. В Редмонде есть «русский» магазин. Стандартный такой: гречка, селедка, халва, хлеб и все такое. Зашла она туда за творогом и чем-нибудь еще по мелочи. За ней в магазин заходит ещё одна покупательница и начинает что-то там себе выбирать. Доходит до гречки, внимательно рассматривает, а потом спрашивает хозяйку: «А у вас украинские товары есть?» «Да, есть украинские, есть из России, есть из Болгарии» - отвечает хозяйка. Пауза. «А сама ты откуда?
Read On →
Aug 13, 2008 · Comments
Программирование
Тема жёванная-пережёванная, так что я не буду подробно останавливаться на том, зачем нужен единый стиль кодирования в команде (или проекте). Основные тезисы:
-
Унифицированный стиль кодирования упрощает сопровождение кода. Это, кажется, единственная причина, зачем он вообще нужен. Все остальное, включая меньшее количество мигреней в минуту на одного эталонного разработчика, - побочные эффекты, направленные опять же на упрощение (читай - повышение эффективности) сопровождения кода.
-
Кажется, нет никакой разницы между разными стилями с точки зрения легкости понимания и написания кода. Любой выбранный стиль, будучи принят в команде упрощает сопровождение кода, при условии, что он один и используется.
-
Единственный способ выработать единый стиль - диктатура в том или ином виде. Можно месяцами спорить о том, где правильно ставить скобки, какие отступы должны быть, можно ли использовать две пустые строки в качестве разделителя и т.д. и т.п. В один прекрасный момент терпение лопается и волевым решением назначается «правильный» стиль.
Read On →
Aug 5, 2008 · Comments
Маленькие хитрости
Чтобы войти на машину с благозвучным названием “6XSD29G-052-18XS_32” под локальным пользователем, не нужно набивать полное имя пользователя как “6XSD29G-052-18XS_32\vasya”, проклиная при этом злого гения, запретившего Copy-Paste в поле ввода имени, и его коллегу, давшему компьютеру такое замечательное имя. Достаточно просто сказать “.\vasya” и все получится.
PS. Знал бы об этом пять лет назад - день жизни сэкономил бы уже наверное. Хотя мог бы и сам догадаться… :-)
Aug 4, 2008 · Comments
Code patchingПрограммированиеReverse engineering
Сижу, разбираюсь как Detours перехватывает функции Win32 API. Сама идея известна. В начало функции пишется безусловный JMP на функцию перехватчик. Для того, чтобы вызвать оригинальную функции, её код, на место которого помещается JMP, копируется в буфер и дополняется безусловным JMP на первую нетронутую инструкцию.
Интересно, однако, не это, а сколько дополнительных проверок делается, чтобы повысить надежность этого метода:
Поверяется, не указывает ли указатель на перехватываемую функцию, не на саму функцию, а на элемент таблицы импорта.
Read On →
Aug 3, 2008 · Comments
Блог
Обновился до WordPress 2.6. Вроде ничего не потерял по дороге. Если что-то все-таки отвалилось – пишите.
Jul 31, 2008 · Comments
64bitDisassemblerПрограммирование
Наткнулся на хороший 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 →
Jul 22, 2008 · Comments
Удалённая работаЮмор
Прелесть какая. ;-)
А что плохого в телекоммьюте?
телекоммют плох там, где работает команда, где есть постоянный обмен идеями, где восклицание “@#$#@$@#$!!!!”, сказанное в адрес чьего-то кода, слышит весь тим.
Напишите “@#$#@$@#$!!!!” в комментариях.
Народ почитает-посмеётся. Это кто найдет. И всё.
А вот когда тоже самое бывает сказано тихим рыком на басах, с варварским восточно-европейским акцентом, то эффект совсем другой. Виновный нервно дергается, судорожно просматривает свои последние коммиты, одновременно собирает в жменю блокнот и карандаш, т.
Read On →
Jul 21, 2008 · Comments
БезопасностьДизайнПрограммирование
Предыдущий пост про параметры функций вызвал на удивление много споров, так что я еще покручусь немного вокруг этой темы. Заранее прошу прощения у тех, кому эта тема оскомину набила. Итак, как следует проверять параметры функции? Вернее даже так, что нужно и, самое главное, что не нужно проверять?
Read On →
Jul 18, 2008 · Comments
Юмор
А меня просто прёт переводить их имена буквально…
Подсмотрел у Реймонда Чена. Безумный ученый доктор Ужасный ведёт блог и непримирумую борьбу с капитаном Молотком за контроль над миром сердцем Копейки – девушки из прачечной «Отмывка Монет», с которой доктор уже месяц пытается заговорить. Кроме того, доктор Ужасный мечтает о вступлении в Лигу Зла, возглавляемой злодеем Хреновая Лошадь, однако чтобы его прошение было одобрено, он должен совершить что-то по настоящему ужасное…
Read On →