среда, 17 марта 2010 г.

DCLP - Вселенское Зло

с утра посмотрел на останки приложения (поступил развернутый минидамп) - после некоторых усилий мне удалось получить результат.

четверг, 4 марта 2010 г.

Интеллектуальный clipboard

При массовых модификациях кодов иногда очень хочется, чтобы Clipboard мог хранить не один фрагмент, а целую кучу, примерно так, как это делает Microsoft Office.

Лично мне эта проблема не сильно актуальна, поскольку я в основном веду разработку в Visual SlickEdit (там такая возможность встроена), но иногда хочется иметь такую возможность и при работе в других редакторах.

Вот здесь можно найти Ditto - программу, которая осуществляет интеллектуальное управление Clipboard'ом.

В отличие от многих других программ, она даже, кажется, нормально работает и достаточно удобна в использовании.

вторник, 5 января 2010 г.

serialcom

Нактнулся на очень приличную программу, позволяющую отлаживать потоковые протоколы, работающую через последовательные порты или TCP/IP.
Находится она здесь.

воскресенье, 27 декабря 2009 г.

Сodepad - online компилятор

Иногда хочется по-быстрому что-то проверить, а среда разработки недоступна - c
этой проблемой помогают справляться ресурсы типа http://codepad.org.

Это и online-компилятор, поддерживающий кучу языков, и средство для "командной работы", и источник, на который можно дать ссылку, например, в письме.

В общем - по результату оказалось очень удобно, я теперь к этому ресурсу довольно часто обращаюсь.

Кстати, заодно, это достаточно неплохой способ проверить совместимость создаваемого кода с другими компиляторами ;-)

BTW, я не утверждаю, что это единственный ресурс подобной направленности, отнюдь, просто мне он пока что глянулся больше всего.

суббота, 19 декабря 2009 г.

Обход графа наследования в C++

Наверняка многие во время прохождения собеседования, на тестировании BrainBench или еще где-либо встречались с такой академической задачей, как обход графа наследования. Звучит задача проще: в какой последовательности будут вызываться конструкторы в представленной иерархии, и далее следует листинг...

среда, 16 декабря 2009 г.

x86: Из глубины веков...

"The irony is that the original instruction set was theirs,
and the original motivation was theirs," Mazor said

"...по иронии судьбы этот основополагающий набор инструкций был
не наш, как и исходная постановка задачи.", Стенли Мазор


Ругая Intel за уродливый (с их точки зрения!) набор инструкций, ее противники зачастую даже и не подозревают, что роль компании Intel в становлении x86-набора инструкций более чем скромна. Собственно, "зачастую" - еще слабо сказано. Навряд ли хоть один из спорщиков об этом вообще знает! Но - все по порядку...

суббота, 12 декабря 2009 г.

Windbg для забывчивых

Во время работы по анализу дампа, по крайней мере у меня, довольно часто получается, что я забываю об исходной причине возникновения проблемы :-(
Видимо, специально для таких как я в WinDBG сделали команду .lastevent, которая "освежает память", распечатывая в поток вывода информацию о последнем отладочном событии... ;-)

пятница, 4 декабря 2009 г.

Что такое MinWin и зачем он нужен

MinWin — это понятие, используемое Microsoft для описания ядра и операционной системы, основные компоненты которых начали разрабатываться одновременно с Windows Vista. Данное понятие впервые использовалось в 2003 для описания примерно 95 % компонентов операционной системы (правда, со временем этот процент снизился). Это самый популярный вариант минималистичной модульной сборки компонентов Windows, который изначально планировалось сделать ядром Windows 7.

понедельник, 2 ноября 2009 г.

Чудеса DllMain

Давно известно, что определенные практики разработки (типа использования глобальных объектов/загрузки DLL при своей загрузке и т.д.) способствуют возникновению проблем на этапе инициализации/деинициализации, но тут наткнулся на статью.

четверг, 1 октября 2009 г.

Google С++ style guide

Бродя в сети, обнаружил перевод этого эпохального документа на русский язык.
Впрочем, лично я бы предпочел все же изучать оригинал, благо там все более чем понятно, хотя с очень многоми вещами там можно поспорить.

пятница, 11 сентября 2009 г.

Windows Installer: Изменение одного или нескольких файлов в инсталляции

Сколько ни видел разных программ - к большинству из них почему-то "таблетки от жадности" прилагаются отдельно, зачастую вместе с нетривиальными инструкциями по применению. Между тем, сделать repack не просто, а очень просто...

вторник, 25 августа 2009 г.

Помощь в выяснении природы DLL

На сайте Microsoft есть очень полезная страничка, которая иногда оказывается полезной - DLL Help Database on microsoft.com

Там можно посмотреть для известных DLL всякую разную полезную информацию типа продукта, в котором она появилась, актуальной версии, списках импорта/экспорта, и так далее...

Можно сразу вызвать поиск запросом (язык en_US):
http://support.microsoft.com/dllhelp/?dlltype=file&l=55&S=1&alpha=


Upd: сервис, оказывается, в феврале 2010 приказал долго жить, а жаль...

четверг, 20 августа 2009 г.

Нетривиальные конструкторы

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

суббота, 18 июля 2009 г.

Карта языка Си++

Нарыл совершенно волшебную работу - исполненная "под старину" карта языка Си++:



Оригинал вот здесь, там же ссылки на изображение в хорошем качестве.

В общем, люди крепко напрягли фантазию и очень хорошо потрудились...

У меня теперь такая над рабочим столом в офисе висит :-)

Вот только программирую я в виду специфики моей нынешней деятельности все меньше и меньше... :-(

четверг, 25 июня 2009 г.

"Локальные" баги, STL-way

На днях поступил очередной bug-report из серии "при установке на мою систему неправильно отображается экран XXXX"....

Первый вопрос, который в таких ситуациях теперь возникает - на какую версию Windows была поставлена система (в данном случае ответом была - русскую).

суббота, 20 июня 2009 г.

Триграфы

Недавно отлаживал один алгоритм, делал это "вживую", в частности, используя контрольную печать ;-)
В какой-момент сработал ::OutputDebugStringA("WTF??!"), вот только в отладочный поток вывелось неожидаемое "WTF|"...