Archive for the ‘c++’ Category.

Publish: Про спеки iPad

Одна из самых важных повседневных функций Кружочков – практические вопросы. Чат – очень быстрый и интерактивный медиум, прямо чувствуешь доступ к коллективному разуму.

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

Continue reading ‘Publish: Про спеки iPad’ »

STL, пламенный привет

смерть итераторам!!!

давно пора

а у вас, в самописной, есть итераторы?
а зачем они у вас есть? чтобы как у всех?

Рецепты отладки. 40 минут до сбоя.

Эта история тоже довольно старая, произошла она во времена первой крейтовской разработки, и произошла на совершенно ровном месте. Мы делали отличную игру за инопланетянина, который мог вселяться в одного из четырех персонажей (паук, прыгун, летун, и большая обезьяна с присосками), камера от третьих глаз, большие природные пространства, 100% алгоритмичность прохождения, ну и, разумеется, полное отсутствие геймплея как такового. К слову сказать, ситуация была настолько типовой для нашего “савеццкаго геймдева”, что уже сильно позднее, работая в 1С, я “для себя” классифицировал множество наших разработчиков как например “Крейт образца 1998 года” или “Крейт образца 2001 года”. Впрочем, суть не в этом, а в баге, который был внедрен в систему за несколько месяцев до проявления.

Continue reading ‘Рецепты отладки. 40 минут до сбоя.’ »

Рецепты отладки. Позор для математика.

Эта история не является большим секретом, я её озвучивал в своё время на канале #ff и на GDP, но за истечением срока давности (10 лет) за сделанное мною математическое преступление хочется покаяться перед всем читающим меня сообществом и раскрыть страшную правду об одном алгоритме. Речь сегодня пойдет о вещественной арифметике в самом худшем её проявлении – двоичном.
Continue reading ‘Рецепты отладки. Позор для математика.’ »

Про ogg/theora проигрыватель дальше.

Всё таки продолжается разработка этой казалось бы простой вещи.

Continue reading ‘Про ogg/theora проигрыватель дальше.’ »

Рецепты отладки. Зависший 3D редактор.

Несмотря на то, что правильные пацаны советуют очень правильный тулсет, а другие правильные пацаны смотрят на это крайне позитивно, я продолжаю трахаться с разными неприкольными ситуациями, которые вряд ли отловит PREfast. Поэтому пользуясь случаем, отвлекусь от избитой темы ошибок в памяти и переключусь на ошибки другого рода – это нарушения последовательности вызова функций внешнего middleware. Уважающие себя пакеты предпочитают проверять состояние объекта или модуля перед вызовом функций и информировать програмистов о нарушениях логики. Неуважающие себя пакеты такими мелочами не занимаются, в крайнем случае пишут в документации что-то типа “никакие функции библиотеки не могут быть вызваны до вызова xxx() или после вызова yyy()).

Исходные данные: имеется мощный пакет моделирования под названием XSI (который кстати теперь тоже аутодесковский). Имеется плагин к нему. При выгрузке плагина XSI зависает вусмерть (а плагин загружается и выгружается довольно регулярно – на каждый “чих”).

Continue reading ‘Рецепты отладки. Зависший 3D редактор.’ »

Best tools noone uses: PREfast

Начитавшись про правильные практики, наконец заставил себя ознакомиться со словом PREfast и вообще статическими анализаторами.

В отличие от других тулзов из сериала, про которые просто мало кто слышал – PREfast вдобавок неплохо спрятан, и, мнэээ, несколько неказуален в применении. Поэтому вдобавок расскажу – где брать, как применять.
Continue reading ‘Best tools noone uses: PREfast’ »

Рецепты отладки. Падение на ровном месте.

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

В самом начале XXI века, во времена разработки “Недетских Гонок”, было зафиксировано странное падение, которое долго не удавалось исправить. Падение проявлялось только в Release конфигурации, проявлялось крайне редко, и, как тогда казалось, было просто на ровном месте.

Continue reading ‘Рецепты отладки. Падение на ровном месте.’ »

На что был похож код в Imaging

Чтобы год с лишним в Imaging не прошли даром, я попробую записать если не “what did we learn from it?” (the obvious answer is not to do it again), то хотя бы уж “what the fuck it is we did”. (это если что цитаты).
Забавно, что почти год спустя про WIC все еще спрашивают и даже за дизайн приходится чуть спорить. Кто бы со мной столько про DX разговаривал.

Continue reading ‘На что был похож код в Imaging’ »

Рецепты отладки. Компилятор или программист?

При отладке этого бага в какой-то момент времени у меня даже появилась уверенность, что я имею дело с багом компилятора, а не с программистской ошибкой. Тем не менее, бага была найдена, работоспособность программы в Release конфигурации восстановлена, а репутация компилятора MSVC осталась {пока что} “непокобелимой”.

Continue reading ‘Рецепты отладки. Компилятор или программист?’ »