пятница, 3 февраля 2012 г.

Link Shell Extension

Link Shell Extension

Поддержка создания Hard Links, Junctions и Symbolic Links в файловой системе NTFS существует довольно давно. Но довольно мало пристойных средств для работы с данными возможностями файловой системы.

На мой взгляд, одним из лучших является Link Shell Extension для Windows Explorer. Расширение имеет очень грамотный и продуманный интерфейс. Для существующих жестких и символьных ссылок отображается оверлейная иконка. При просмотре свойств файлов и каталогов с существующими ссылками появляется дополнительная закладка. Многоязычный интерфейс. Поддерживается, можно сказать, вся линейка операционных систем Windows NT4/2000/XP/2003/2008/Vista/Seven 32bit/64bit. Регулярно обновляется.

пятница, 20 января 2012 г.

Visual Studio: No Files Were Found To Look In. Find Was Stopped In Progress

Проблема

При использовании Find In Files в окне результатов поиска появляется сообщение:
"No Files Were Found To Look In. Find Was Stopped In Progress"
Закрытие-открытие IDE и/или перезагрузка компьютера проблему не решает.

Решение

Как выяснилось это баг Visual Studio! Притом достаточно старый. Для решения проблемы нужно нажать комбинацию клавиш Ctrl+Scroll Lock.

Рабочая среда: Visual Studio 2005

пятница, 9 декабря 2011 г.

PyKd: Boost.Python build cmd

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

::
:: Build x86/x64 Boost.Python library
::
call :ExecBjam 32
call :ExecBjam 64
pause
goto :EOF

::
:: Execute bjam.exe with required params
::
:ExecBjam
set arch=%1
set stagedir=stage

if "%arch%"=="64" set stagedir=stage64

bjam.exe ^
    -j 2 ^
    --toolset=msvc-9.0 ^
    release debug ^
    threading=multi link=static runtime-link=shared ^
    address-model=%arch% ^
    --with-python --with-date_time ^
    --stagedir=%stagedir% ^
    stage
goto :EOF

Краткое пояснение:
  • call :ExecBjam XX - сборка для i386 и amd64
  • -j N - задействовать N ядер
  • --toolset=msvc-9.0 - Visual Studio 2008
  • threading=multi - сборка с поддержкой многопоточности
  • --with-python - При сборке я предпочитаю использовать --with-libname вместо --without-libname, т.к. в этом случае будут скомпилированы только указанные библиотеки (что бы не собирать неиспользуемые библиотеки)
  • link=static - собрать статическую версию библиотек
  • runtime-link=shared - динамическая линковка с Visual C++ Runtime
  • --stagedir=stage%arch% - директория для выходных файлов (stage для x86 и stage64 для и x64)

вторник, 20 сентября 2011 г.

VMware + VirtualKD + WinDbg = Slow Snapshot Creation

Проблема

Запись снимка VM происходит очень долго (до 30 минут) если запущена отладочная сессия ядра.

Решение
  1. Закрыть отладчик.
  2. Сделать снимок.
  3. Запустить и подключить отладчик (Virtual Machine Monitor -> Run debugger).
Рабочая среда: VMware 6.x/7.x, WinDbg 6.12.0002.633, VirtualKD 2.5

воскресенье, 14 августа 2011 г.

FastStone Image Viewer


FastStone Image Viewer (FSViewer) - это бесплатная программа для просмотра, сортировки, конвертирования и редактирования изображений. Список возможностей весьма богат. Среди них, автоматический поворот изображения в соответствии с EXIF данными. Присутствует portable версия, обучающее руководство и онлайн-советы.

Программа имеет удобный и хорошо продуманный интерфейс. Автор регулярно исправляет найденные ошибки и добавляет новую функциональность.

На мой взгляд одна из лучших программ в своём классе!

пятница, 22 июля 2011 г.

MFC: Third Party Controls

Недавно потребовалось разработать GUI с помощью MFC (последний раз сталкивался около четырёх лет назад). Т.к. Microsoft, на мой взгляд, ничего особо не улучшила за это время, провёл поиск решений от независимых разработчиков. В результате, были найдены и апробированы такие классы:

  • CWndResizer - MFC/C++ Helper Class for Window Resizing
    Как видно из названия, класс предназначен для поддержки изменения размеров и положений контролов (кто сталкивался, тот знает насколько неудобно это делать силами MFC).

  • CGridListCtrlEx - Grid Control Based on CListCtrl
    Собственно, грид. Список возможностей впечатляет:
    - Сортировка
    - Навигация по ячейкам и поиск с помощью клавиатуры
    - Подсказки (Tooltips)
    - Скрытие и отображение столбцов
    - Редактирование ячеек
    - Раскраска строк и отдельных ячеек
    - Группировка
    - Копирование в буфер обмена
    - Сохранение ширины, расположения и видимости ячеек
    - Поддержка OLE Drag and Drop (включая переупорядочение элементов)

Результатом очень доволен. Спасбо авторам за их нелёгкий труд!

P.S. Дополнения списка приветствуются.

вторник, 5 июля 2011 г.

Visual Studio: Sort Build Output

Вопрос

Как упорядочить билд лог многопоточной сборки?
...
1>  queuedlock.c
2>  secedit.c
3>  sha.c
1>  ref.c
2>  support.c
...
Ответ
  • Если действие происходит на рабочей машине, в окне Output, выбрать Show output from: Build Order.

  • Если есть только копия лога (например, его прислали по почте), воспользоваться утилитой SortBuildOutput:
    1. Вставить содержимое лога в поле ввода.
    2. Нажать Sort.
    3. При необходимости, скопировать текст в буфер обмена.