Список "опасных" функций

В MSDN добавили список “опасных” функций и рекомендуемых безопасных аналогов.

Read On →

DuplicateHandle

Функция DuplicateHandle обладает одной особенностью. Она позволяет указывать набор прав доступа (параметр dwDesiredAccess), которыми должна обладать создаваемая копия описателя. Причем, что интересно, в некоторых случаях новый описатель может получить больше прав доступа, чем оригинал. Об этом вскользь упоминается в MSDN, однако никаких дополнительных разъяснений не даётся:

Read On →

Странное

Оказывается двойной щелчок левой кнопкой мыши на иконке системного меню в левом верхнем углу окна закрывает окно. Надо же… :-/

/LARGEADDRESSAWARE может испортить вам весь день

Только что потратил кучу времени на разборки с /LARGEADDRESSAWARE. Этот ключ используется для указания сборщику, что данный модуль (.exe или .dll) способен корректно обрабатывать адреса больше 2GB. Модули, помеченные подобным образом, могут быть загружены выше 2GB при условии, что система поддерживает увеличенное пользовательское адресное пространство. На данный момент это либо серверные версии Windows, сконфигурированные ключом /3GB в boot.ini, либо 64-х битные версии системы.

Read On →

Шпаргалка по синтаксису командной строки

Шпаргалка по синтаксису командной строки (cmd.exe) - http://www.ss64.com/ntsyntax/. Must have если вы пишите нетривиальные скрипты. Там же есть аналогичные шпаргалки для bash, Oracle 9i и MS SQL 2005.

NGC 2170

Сегодняшняя картинка на APOD: NGC 2170

Поддержка транзакций в ядре Vista

Как-то неожиданно для себя наткнулся на функцию RegCreateKeyTransacted. Начал копать дальше и обнаружил, что в ядро Vista встроен менеджер транзакций (Kernel Transaction Manager, KTM), поддерживающий локальные и распределенные транзакции. Реестр и NTFS теперь тоже поддерживают транзакции. Перечень файловых операций и функций для работы с реестром был расширен функциями, имена которых завершаются на «Transacted». RegCreateKeyTransacted – одна из них. Кроме того, разработчики вольны добавлять свои менеджеры ресурсов (resource manager), реализующие поддержку транзакций для произвольных хранилищ данных. Read On →

Trac

На мой взгляд, Trac – одна из лучших, если не самая лучшая, bug tracking система для малых и средних по размеру проектов. Особая прелесть Trac состоит в том, что она органично объединяет вики, интеграцию с Subversion и ведение списка задач/ошибок. Именно то, что нужно команде для ведения проекта. Более того, стандартная функциональность позволяет организовать рецензирование кода, не смотря на то, что никакой специальной поддержки рецензирования в Trac нет.

Read On →

Рецензирование кода (code review)

Рецензирование кода (перевод подсмотрел у Лебедева) – это на мой взгляд одна из полезнейших и при этом наиболее легко внедряемых практик разработки надёжного кода. Основная идея рецензирования заключается в систематической (пере)проверке кода с целью найти ошибки, допущенные при его написании. И поскольку рецензирование кода относится к ранним этапам разработки, найденные ошибки «ценнее», чем, скажем, ошибки, найденные при формальном тестировании. Я не буду останавливаться на подробном описании процедуры рецензирования. В Интернете можно найти массу материалов по теме. Вот, например, страница из Википедии. Я же просто хочу поделиться своими наблюдениями.

Read On →

GUI имеет значение

На этой неделе попробовал поработать в Ubuntu – дистрибутиве Linux, который отпочковался от Debian. До этого на «машине для опытов» стояла Fedora Core (в девичестве - Red Hat Linux). Надо сказать, что впечатления от этого эксперимента довольно забавные. Фактически, Ubuntu и Fedora Core – это одна и та же система. Они используют практически идентичный набор программ - с точки зрения неискушенного пользователя, конечно. Понятно, что на Fedora Core можно поставить KDE вместо Gnome, да и менеджер пакетов у них разный. Всё равно это практически одна и та же система.

Read On →