вторник, 22 февраля 2011 г.

God Mode в Windows7




Что такое режим Бога в Windows 7 - это возможность управлять всеми настройками системы из одного окна! Настройки разбиты по категориям. Всего элементов настройки 279, по крайней мере у меня.

Войти в режим Бога можно следующим образом - на рабочем столе создаете новую папку, переименовываете ее в GodMode.{ED7BA470-8E54-465E-825C-99712043E01C} - на Рабочем Столе появляется иконка с названием God Mode. Даблкликаете по иконке и открывается окно с настройками. Все, Вы - Бох :-)





















UPDATE:
  1. На самом деле папку можно назвать как угодно - имеется ввиду, что не обязятельно называть ее GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}. Тот же трюк прокатит, если Вы назовёте ее, например, DescendantsOfSatan.{ED7BA470-8E54-465E-825C-99712043E01C}.
  2. Ходят слухи, что на 64-разрядной системе, использование этого хака может привести к крэшу системы, поэтому используйте его на свой страх и риск.

понедельник, 21 февраля 2011 г.

VsBuildStatus add-in для MSVC или "Время == деньги"

Обычно, когда мне нужно сбилдить большой солюшн, я запускаю билд, сворачиваю Visual Studio и дальше занимаюсь своими делами на компьютере. Допустим, солюшн билдится минут 20, и я это знаю и считаю, что у меня есть свободных 20 минут посидеть в инете или почитать книжку. Но я не знаю, что в код закралась синтаксическая ошибка, соответственно билд свалился, но я об этом узнал только спустя 20 минут, когда решил, что пора снова начинать работать. Или же я как дурачек через каждые 2-3 минуты открываю студию и смотрю, а не свалилось ли че-нить. И в том, и в другом случае я теряю драгоценное время - в первом на то, чтобы снова запустить сборку, во втором я тупо не могу в течении 20-ти минут на что нибудь спокойно отвлечься.

VsBuildStatus add-in для Visual Studio - это прекраснейшее средство мониторинга процесса сборки. Он выглядит как окошко-тулбар, которое открывается, когда вы запускаете build/clean/rebuild, и содержит список проектов Вашего солюшна. Для каждого проекта отображается прогресс - это особенно удобно, когда у вас многопроцессорная система и несколько проектов собираются одновременно. Также отображается общий прогресс, исходя из которого Вы можете приблизтельно прикинуть сколько времени осталось, и спокойно себе пить кофе и сёрфать по Хабру, к примеру.



Также в окне отображаются проекты которые уже были собраны, какие еще нет, какие собрались с ошибками.

Но самая вкуснятина досталась счастливым обладателям Window 7 - при сворачивании Vusual Studio, прогресс сборки отображается прямо в значке студию на тулбаре.



Если в процессе сборки была выявлена ошибка, это будет сразу же отображено в строке прогресса.


Красотища? Определённо! Теперь можно и вовсе не отвлекаться на то, чтобы открывать-закрывать IDE!

И напоследок - least but not last - еще одна приятная плюшка. Макрос для Visual Studio, который автоматически прекращает сборку при обнаружении первой ошибки

Private Sub OutputWindowEvents_OnPaneUpdated(ByVal pPane As OutputWindowPane) Handles OutputWindowEvents.PaneUpdated
        If Not (pPane.Name = "Build") Then Exit Sub

        Dim foundError As Boolean = pPane.TextDocument.StartPoint.CreateEditPoint().FindPattern(": error")
        Dim foundFatal As Boolean = pPane.TextDocument.StartPoint.CreateEditPoint().FindPattern(": fatal error")

        If foundError Or foundFatal Then
            DTE.ExecuteCommand("Build.Cancel")
        End If
    End Sub


    Private Sub BuildEvents_OnBuildProjConfigDone(ByVal Project As String, ByVal ProjectConfig As String, ByVal Platform As String, ByVal SolutionConfig As String, ByVal Success As Boolean) Handles BuildEvents.OnBuildProjConfigDone

        If Success = False Then
            DTE.ExecuteCommand("Build.Cancel")
        End If

    End Sub

Задеплоить макрос очень просто:
  1. В IDE выбираем в меню Tools->Macros->Macro IDE(или Alt+F11)
  2. В открывшемся Macro IDE в Project Explorer раскрываем список Samples
  3. В списке Samples открываем Environment Events и копипастим текст макроса между маркерами Begin Module и End Module
  4. Сохраняем
  5. PROFIT!

Ссылки:

вторник, 15 февраля 2011 г.

Джентельменский набор маньяков - Windows reverse engineering

Так как моя работа уже более полугода как связана с сабжем, приведу список инструментов без которых не обходится ни один мой рабочий день. Номер в списке с приоритетом никак не связан.
  1. Microsoft Visual Studio 2008 Professional - средство разработки и отладки. Думаю, комментировать тут нечего.
  2. Книга "Windows Internals 5th.ed." - авторства знаменитого Марка Руссиновича, рассказывает о том, что осталось за бортом официальных мануалов Microsoft'a. И, скажем так, Microsoft от этого не в восторге. Если описывать в двух словах, я бы описал ее так - "Тру кулХацкерам посвящается...".
  3. Утилита Procexp - из набора Sysinternals Suite, разработки того же Руссиновича. Представляет продвинутый Task Manager. Из всех фич, я более всего ценю следующие:
    • Список запущенных процессов представлен древовидной иерархией.
    • Список модулей, загруженных процессом
    • Списко хэндлов открытых процессом
    • Информация о запущенных потоках с возможностью просмотра стэка
  4. Утилита Procmon - из вышеупомянутого набора. Монитор активности процессов c потрясающим механизмом фильтрации событий. Составляет журнал всех операций совершенных процессом по отношению к реестру, файловой системе, операций связанных с сетевой активностью. По каждой операции можно просмотреть ее аргументы(например, имя открываемого файла, или с какими правами он открывается), результат выполнения и стэк. Незаменимая утилита при анализе ошибок в работе приложений, когда нет ни исходных кодов приложения, ни отладочной информации, ни документации - короче, черный ящик.
  5. Отладочная информация для системных dll-ок - взятая с Microsoft Symbol Server. Используется Procexp и Procmon утилитами для показа читабельного стэка вызовов. Загружается с серверов Microsoft'a по мере надобности автоматически, хотя можно скачать весь пакет сразу.
  6. Утилита WinDbg - использую для просмотра crash dump'ов. Но может использоваться и для отладки запущенных приложений. Пока не очень хорошо в ней разбираюсь, посему, скромно промолчу.
  7. Microsoft Visual Studio Remote Debugging Monitor - использую для удаленной отладки приложений вкупе с MSVC.
  8. Виртуальная машина на базе VMware Workstation - так как реверс инжинеринг - это дело весьма низкоуровневое и хачить систему приходится постоянно, то всегда существует опасноть того, что в любой момент может накрыть Синька, оно же BSOD, оно же Синий Экран Смерти, и дабы не подставлять основную ось под "Крававый Молот Рагнарёка"(кодовое название моего проекта =) ), отладка и тестирование ведется на виртуальной машине.
  9. http://www.reactos.org/ - эти хлопцы весьма успешно продвигаются в создании ОС аналогичной Windows, но с открытыми кодами. Аналогичной - мягко сказано, можно сказать, что они передирают ее один в один, с сохранением сигнатур API-шных функций и структур данных. Реализация функций тоже весьма схожа, хлопцы наверное часами сидят с декомпилятором. В эти исходники я частенько заглядываю, чтобы узнать, как работает та или иная API функция или посмотреть на структуру, на которую указывает хэндл возвращаемый? например, OpenScmManager().
  10. http://www.insidetheregistry.com/ - описание назначения всевозможных ключей реестра
  11. MSDN - как ни крути, а все же основной источник информации
  12. Много кофе
  13. Железные нервы
  14. Стена, об которую можно биться головой, если нервы таки сдают.

пятница, 4 февраля 2011 г.

Как козаки в футбол доигрались

Наконец-то мне починили коленный сустав. Спустя аж 4 месяца после футбольной травмы. Началось все как "простое растяжение", а закончилось:

Мр-признаки повреждения латерального мениска 3-й ст., медиального мениска 2-й с., частичного разрыва передней крестообразной и латеральной коллатеральной связок, реактивного синовиита.


Лечится это дело с помощью оперативного вмешательства - так называемая артроскопия, относящаяся к разряду малоинвазивных процедур. Мелоинвазивных - значит, что операция проводится с наименьшими повреждениями живых тканий. Выглядит это приблизительно так - в области коленного сустава проделываются 2 отверстия диаметром с карандаш и глубиной пол-сантиметра. Через отверстия водятся различные хирургические инструменты - скальпели, щипцы, крючки и т.д. Так же в отверстие вводится маленькая камера, которая дает хирургам оценить степень повреждений, ну и вообще помогает контролировать свои действия.

А вообще, лучше один раз увидеть...


Вот такая вот бяка.

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


 Побежали мурашки? У меня тоже. Надеюсь, этого все-таки не случиться. Ну и напоследок, фото с линии фронта



UPDATE: Таки колено в суставе не держится. Недавно опять вылетело, практически на ровном месте - боль адская. Врач говорил, что порванная связка приросла в другое место, что в принципе хорошо. Так вот, по-моему, она оторвалась снова. Нацелен на повторную операцию - пластику связки. Ходить, в принципе могу, бегать только трусцой и только по ровной поверхности, но после пробежки все-равно колено болит. Вообщем, не хочется себя чувствовать инвалидом....А! Поправился за все время на 8 кг, т.к. активным спортом заниматься не могу! Короче, лето еще погуляю. и под нож... о результатах доложу