Archive for August, 2008

Очередная пятиминутка ненависти

No translations available for this entry

Сегодня под раздачу попадает чудо рук майкрософтовских - фреймворк для юнит-тестов MSTest.

Когда я его увидел, первое впечатление было “красивая свистелка, но держаться от нее нужно подальше”. Опыт использования этого угребищного куска говна на солюшене из 30 проектов с mixed  кодом показал, что первое впечатление не обмануло.

Во-первых (и в главных), его не могли написать люди, которые что-то понимают в юнит тестировании. Его писали какие-то человекоподобные обезъянки в полной изоляции от внешнего мира (интернет им, похоже, тоже отключили). Простейший пример - один из тестов не прошел, сработал ассерт. Что сделает нормальный программист? Кликнет на сообщении о проваленном тесте в надежде сразу прыгнуть на место ассерта в кода. Именно так работает, к примеру, cppunit. Что сделали гении из MS? Правильно, под даблклику вылезает восхитительное по своей долбанутости окно с “подробной информацией об ошибке”, которое, в духе M$, имеет бесконечно отрицательную информационную ценность. До места ассерта, что характерно, приходится добираться вручную, причем, если у вас в тесте ассертов больше одного и Вы не расставили вручную сообщения вроде “ассерт 1″ и “абсолютно невозможный ассерт”, то поиск места ошибки превращается в увлекательную игру-угадайку.

Уже одного это должно быть достаточной причиной не использовать это поделие в своем проекте. Но, если Вы, превозмогая все трудности и лишения, все же используете ЭТО, то знайте, что рано или поздно Вас ждет бетонная стена. Дело в том, что MSTest каким-то образом завязан на IntelliSense,  которая, в свою очередь, известна тем, что норовит вызывать забавные спецэффекты на сколько-нибудь большом проекте. По крайней мере, это так в 2005 студии. Так вот, будьте готовы к тому, что после нажантия на кноп “запустить тест” можно будет смело идти на обед - Студия уходит в себя  минут на 15-20.

Особой пикантности процессу разработки можно добавить, используя MSTest для тестирования нативного С++ кода. Если студия не зависнет, то ее добъет отладчик mixed mode, который не менее весело вешается в случайных случаях.

Что характерно, в M$ о всех вышеперечисленных проблемах знают. Их признают. И нихуя не делают.

…тот в цирке не смеется.

No translations available for this entry

Читаю спецификацию к одному очень промышленному формату. Спецификация солидная, 114 страниц, на двух языках. На 15 странице натыкаюсь на буквально следующее:

binary data
data organized in the form of bytes
NOTE The 8 bits in a byte can be organized in 256 different combinations. They can be used, therefore, to
represent the numbers from 0 to 255. If larger numbers are needed, several bytes can be used to represent a single
number, e.g., 2 bytes (16 bits) can represent the numbers from 0 to 65535. When the bytes are interpreted in this
fashion, they are known as binary data. Several different formats are in common use for storage of numeric data in
binary form.

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

Кстати, если вымарать весь подобный идиотизм оттуда, то описание формата влезло бы на половинку листа А4. Но за такой несолидный манускрипт денег брать, наверное, не получится :)

Там еще два абзаца о битах есть.

Ремонтное.

No translations available for this entry

А вот скажите мне, пожалуйста - металлическая дверная коробка для межкомнатной двери - это чудо неземное или проказы от местных мастеров строительной самодеятельности?

Я, конечно, понимаю, что нефиг было покупать double brick дом в Австралии, но все же - все коробки именно металлические. А мне теперь заниматься укладкой ламината в особо извращенной форме :(

Первая заповедь программиста

No translations available for this entry

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

А знаете что?

No translations available for this entry

Все.

Попугаи удачи. Триллер.

No translations available for this entry

Студия абсолютно нехудожественных фильмов низкого разрешения имеет честь представить почтенной публике сверхкороткометражный клип “Попугаи удачи”, снятый по мотивам предыдущего поста.

Итак, господа, внимание, Ю-Туб! (смотреть со звуком)