Освободите шоколад!

Наш администратор, Katy, держит столик со сладостями: конфеты, батончики, орешки, жвачки и т.д. Все что нужно страдающим от недостатка сахара в крови разработчикам. 5 дней назад Katy ушла в отпуск. Сегодня на закрытой двери появились надписи: «Освободите шоколад!» и «Отпустите мои кофеты!» Update: Дверь открыта! Конфеты свободны! :-)

Пустота

Цитата с астрофорума: Тогда корректно-ли следующее утверждение: если в пространстве приборы фиксируют хотя бы одно явление, это пространство не является ПУСТОТОЙ. Некорректно. Даже если приборы в пространстве не фиксируют ни одного явления, оно не является пустотой. В нем есть приборы. И действительно. :-)

Смотри, мама, я в телевизоре!

Мое интервью Russian Channel 9: PS: Забавно наблюдать за собой со стороны. Столько ляпов, просто жуть! :-)

Undefined behavior – это все, что явно не указано в документации

Навеяно постом про ExUuidCreate и в частности вот этой фразой:

Well, I suggest MSFT to documented this behavior, or at least explain this case in documentation.

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

Read On →

… и концы в воду

Эта неделя началась замечательно, - а именно с безуспешных попыток выяснить, почему валиться билд. Надо сказать, что и в невоенное-то время разобраться, что именно поломалось бывает непросто. Но в этот раз все было еще веселее чем обычно. Некая утилита (не будем показывать пальцем, хотя утилита написана на .NET :-) ), выдавала примерно следующий лог:

...
> FooBar: parsing Z:\temp\tmp1234.tmp
> FooBar: error XXXX, line 123, Z:\temp\tmp1234.tmp
...
Read On →

Почему GetModuleFileName возвращает “system32” для 32-х битных библиотек под Wow64?

Вопрос: 32-х битный процесс запущен на 64-х битной системе. Почему для некоторых библиотек GetModuleFileName возвращает путь вида “%SystemRoot%\syswow64”, а для других - “%SystemRoot%\system32”, не смотря на то, что и первые, и вторые находятся в “%SystemRoot%\syswow64”? Ответ: Потому что загрузчик понятия не имеет о Wow64 и перенаправлении файловой системы в частности. Загрузчик просто сохраняет полное имя модуля во время загрузки и возвращает его копию в GetModuleFileName. Соответственно если библиотека была загружена как “%SystemRoot%\system32\foobar. Read On →

Ценителям логичности и простоты cmd.exe посвящается…

Хорошая статья: Особенности реализации командного процессора cmd.exe операционных систем WinNT. Напрочь отбивает всякое желание связываться с написанием скриптов для cmd.exe. :-)

Малышку верните!

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

Read On →

Они наступают!

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

«Большие» функции в коде

Вопрос из комментариев:

Не могли бы прокомментировать ответ “Lepsik” по порядкам в Microsoft (тред):

автор - Диез

1, 2. Естественно, полтора - это величина условная. Просто большая длина обычно требует более одного движения для полного обзора :)

  1. Никто не мешает сделать методы того же класса, но часто удобнее и логичнее разнести код на уровни, т.е. в отдельные классы (а то и в отдельные библиотеки).

Вообще, все это есть у Фаулера :)

это просто у вас программы маленькие. :)

в больших компаниях Microsoft/IBM/SONY, …. таких правил нет. У нас есть методы с телом в сотню экранов. А файл с методом тела процесса больше мегобайта.

За весь Microsoft не скажу. Расскажу, что видел сам.

Read On →