Sep 23, 2012 · Comments
ПрограммированиеWiX
Для продукта, над которым я сейчас работаю, нужно было сделать инсталляцию под Windows. Установить несколько файлов, создать пару ключей в реестре, обновиться на более свежую версию,.. - как раз работа для WiX. WiX, - он, конечно, не без греха. Все-таки, это всего лишь обертка вокруг Windows Installer, чьё нетривиальное нутро то и дело дает о себе знать. Взять хотя-бы тот факт, что Windows Installer понимает черытех компонентный номер версии (a.b.c.d), но при сравнии номеров версий принимает во внимание только старшие три числа.
Read On →
Aug 16, 2012 · Comments
ПрограммированиеProcess ExplorerWindows Internals bookWindows KernelWow64
В новой редакции Windows Internals обнаружился старый-знакомый баг. Там приводится пример стека 32-х битной нити, выполняющейся под Wow64:
Иллюстрация сопровождается комментарием:
An example of a Wow64 thread inside Microsoft Office Word 2007 is shown in Figure 5-13. The highlighted stack frame and all stack frames below it are the 32-bit stack frames from the 32-bit stack. The stack frames above the highlighted frame are on the 64-bit stack.
Что не совсем верно.
Read On →
Jul 14, 2012 · Comments
русскийфонетика
Существует мнение, что “в русском языке слова читаются точно так же, как и пишутся”. Ага, щас! Вы пробовали своего ребенка учить читать? “Карова”. Нет, доченька. Пишеться “о”, но читается “а”. Почему? Гм. Ну, как тебе объяснить?.. А мама говорит “корова”? Просто мама говорит по-украински, а там нет правила про безударную “о”. С кем это я сейчас говорил? Не обращай внимания, просто запомни - у папы “карова”, а у мамы - “корова”.
Read On →
Jul 12, 2012 · Comments
Отладка
Если вам вдруг зачем-то понадобилось проанализировать структуру минидампа не загружая его в отладчик, начните вот с этой статьи: http://moyix.blogspot.com/2008/05/parsing-windows-minidumps.html. Автор написал скрипт на Python (на основе Construct) для анализа дампов, который распознает все потоки, описанные на MSDN (а также недокументированный поток, хранящий информацию об описателях окон).
PS. Скрипт открывает дамп в текстовом режиме, что очевидно не будет работать на Windows. Чтобы этого не случилось, последняя строчка скипта должна выглядеть вот так:
Read On →
Jul 8, 2012 · Comments
Всякая всячина
Чистил телефон от фотографий. Нашел много интересного. В один прекрасный майский день детскую площадку в парке “Grass Lawn” оккупировали клоуны:

Read On →
Jun 26, 2012 · Comments
Всякая всячина
По радио уже пару месяцев (если не дольше) крутят “Little Talks” в исполнении Of monsters and men.
Там есть фраза:
This ship will carry our bodies safe to shore
Причем поется она так, что “this” присоединяется к предыдущей строчке, а “bodies safe to shore” - поется как отдельная строка. Так вот, когда эту песню начали крутить повсюду, мне на этой фразе постоянно слышалось очевидно неправильное “chip and caviar”. :-) В очередной раз, когда меня это безобразие окончательно достало и я уже собрался найти слова песни, по радио опять включили её и тут, наконец-то, до меня дошло, что первое слово - это ship.
Read On →
Jun 24, 2012 · Comments
ПрограммированиеWindows
Интересно, что существует около десятка способов сделать копию экрана в Windows. Программно, без привлечения нестандартного оборудования или сторонних библиотек. Статья “Screen recording with WDDM 1.2” описывает наиболее часто используемые:
GDI: GetDC(NULL), а затем BitBlt(), чтобы скопировать данные из видеопамяти в системную.
Direct3D: метод IDirect3DDevice9::GetFrontBufferData() позволяет скопировать содержимое видеопамяти в системный буфер.
Mirror Display Driver: позволяет напрямую перехватывать команды отрисовки.
OpenGL: дает прямой доступ к отображаемому буферу в видеопамяти.
Windows 8: появился специализированный интерфейс IDXGIOutputDuplication.
Read On →
Jun 17, 2012 · Comments
ИнтервьюПрограммирование
Мое интервью на OpenQuality.ru: http://experience.openquality.ru/alexey-pakhunov-interview/.
Jun 5, 2012 · Comments
ПрограммированиеSDKVisual Studio
Начну издалека. Мой любимый редактор кода на данный момент - Sublime Text 2. До него я пользовался Notepad2, Source Insight, Far (естественно после того, как появился Colorer). Что было до Far-а с Colorer-ом я уже не очень помню. Точно был Borland Pascal и Turbo C. Редактор кода Visual Studio в этом списке должен быть где-то между Borland-ом и Far-ом. Не помню, чтобы я пользовался им продолжительное время.
Отладчику из Visual Studio повезло чуть больше, так как правильно держать WinDbg я научился уже после замены Far-а на Notepad2 пополам с Source Insight. Остальной инструментарий из набора Visual Studio я использую не очень часто, особенно учитывая, что компилятор и другие инструменты все равно есть в отдельно стоящем SDK. Так и получается, что сама по себе Visual Studio мне в общем-то и не нужна.
Единственная неприятность заключается в том, что такая конфигурация (SDK есть, а Visual Studio нет) явно попадает в категорию экзотики. И, как следствие, не поддерживается и не тестируется как следует. Приходится самому.
Read On →
May 24, 2012 · Comments
Маленькие хитростиРеестрPowerShell
Некторые ключи реестра хранят дескрипторы безопасности (security descriptor) в двоичной форме (REG_BINARY). Пример - значение AccessPermission, которое устанавливает дескриптор безопасности COM сервера. Редактировать такой дескриптор - одно удовольствие. :-)

Read On →