SAL аннотации

В последнее время я немного забросил Win32.Utf8 - на работе завал, так что, приходя домой, делать ничего особенного не хочется. Тем не менее, проект потихоньку движется и, на сегодняшний день, я добрался до разбора SAL аннотаций.

Основной источник информации, которым я пользуюсь - это заголовок sal.h из поставки Visual C++. В нем содержится достаточно подробное описание того, как составляются конструкции вроде __deref_inout_ecount_part_opt. Кроме того, там же определены макросы, преобразующие SAL аннотации в набор директив для статического анализатора PREfast. По ним достаточно просто понять как SAL аннотации «работают на самом деле».

Аналогичный заголовок есть в Platform SDK для Windows 2003 - specstrings.h. В Windows SDK для Vista все еще более запутано.

Read On →

Far Manager открывает исходный код

Все уже в курсе, как я понимаю…

Как определить разрядность .EXE или .DLL?

Как определить тип процессора для которого скомпилирован бинарный файл? Можно воспользоваться сборщиком из поставки Visual Studio 2005:

link.exe /dump /headers <.exe>

link.exe /dump /headers

Read On →

Мышиная возня в коробке из под обуви

Последнее время я постоянно сталкиваюсь с одной проблемой, о которой я раньше никогда особенно не задумывался. А именно - манипуляции с большим количеством «временных» файлов. Я не случайно взял в кавычки слово «временных». Время жизни этих файлов - от нескольких дней до нескольких недель. Объем - сотни гигабайт, миллионы файлов. В принципе не очень-то и внушительный объем, учитывая размеры современных жестких дисков. Тем не менее уже на таких объемах возникают сложности.

Read On →

“4GB will always be enough”

Порой разработчики приложений просто поражают своей храбростью и безудержным оптимизмом. Свежий пример - на днях получаю письмо с просьбой разобраться почему 32-битное приложение, нормально работавшее в Windows Server 2003 for Itanium перестало запускаться в Windows Server 2008 for Itanium. Что особенно приятно, так это то, что вместо традиционного «приложение падает, если сделать то, то и вот то», просто прислали сессию отладчика, остановленную непосредственно перед вызовом NtAllocateVirtualMemory, который и приводил к падению.

Read On →

Зверьё

В удачный день, на прогулке можно встретить не только кроликов и белок, но и пуму. При этом, точно также как и при встрече с кроликом, не рекомендуется делать резкий движений. Правда в случае пумы это нужно совсем не для того, чтобы подобраться поближе… :-)

Про собеседования

Прочитал про собеседование в Яндексе и ответ сотрудника Яндекса и подумал что культура проведения собеседования (и персональная и корпоративная) такая штука, которую лучше иметь чем не иметь. :-)

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

Read On →

Джереми Кларксон: Почему я без ума от космоса

Забавная статья: Джереми Кларксон: Почему я без ума от космоса: Пятьдесят лет назад Россия запустила свой Спутник - вроде бы обычный радиопередатчик, но в его сигнале те, кто умел слушать, услышали: “Всем привет! Это Россия. Мы хотим, чтобы все знали: наши немецкие ученые лучше, чем американские немецкие ученые”. Те, кто слушал по-английски, услышали еще более простую фразу: “А щас кое-кто, хе-хе, неслабо огребет…”

По следам темы про резюме

(грозно) Кхе-кхе. Кто говорил, что резюме - суть ненужная бумажка? Товарищ, резюме которого я песочил в посте «Резюме на критику», свою вину осознал, полностью раскаялся :-) и уже прошел телефонное интервью с рекрутером из Microsoft. Теперь поедет на очное интервью в Москву в конце октября.

Хроника одного бага

Проект, над которым я работаю, предполагает довольно серьезные изменения некоторых компонентов системы, которые могут откликнуться проблемами с совместимости с существующими приложениями. В Microsoft-е совместимостью разве что малых детей не пугают, соответственно любое подобное изменение не обходится без внимания Application Compatibility team. В моем случае это означает, что я должен прогнать N-ое количество приложений через систему автоматических тестов и убедиться что все работает. И исправить если что-то не работает.

На прошлой неделе меня порадовал корейский MS Publisher 2000. После инсталляции, при каждом запуске появлялось окно Windows Installer, чего не наблюдалось на эталонной системе. Было похоже, что приложение безуспешно пытается установить какой-то отсутствующий компонент.

Read On →