В силу специфики продуктов Transas'a мы устраиваем перед выпуском продуктов массированные
тестовые прогоны приложений, работающих в разных условиях, в частности в условиях активной
работы пользователя с продуктом (здесь 24/7 в течение всего периода испытаний работают
средства автоматического тестирования).
Поначалу программы время от времени "падают", от этого пока никуда не деться.
Наиболее простым (и результативным) способом отладки в таких случаях является использование
post-mortem отладчика, который активируется в системе (для WinXP это Dr.Watson,
для Windows 7 - подсистема Windows Error Reporting (WER) ).
This blog dedicated to C++ Software development and system configuration issues. Primary language is Russian.
среда, 26 января 2011 г.
четверг, 13 января 2011 г.
The Lonely Compiler
Увидел, что Евгений Зуев (The Lonely Compiler), помимо блога создал собственный сайт.
Широким массам он может быть известен по древней статье "Редкая профессия", кажется, года 1997-го.
Поскольку сам я по молодости интересовался схожей тематикой (теория формальных языков, разработка компиляторов), мне было интересно покопаться :-)
Широким массам он может быть известен по древней статье "Редкая профессия", кажется, года 1997-го.
Поскольку сам я по молодости интересовался схожей тематикой (теория формальных языков, разработка компиляторов), мне было интересно покопаться :-)
Snorkel Embedded Web Server
Недавно случайно наткнулся на очередную библиотеку для органицации встроенного Web-сервера - Snorkel Embedded Web Server.
Его API мне понравился несколько больше чем у Mongoose, который я использую в наших мелких утилитах, вдобавок, в отличие от него, поддерживается keep-alive, что немаловажно при интенсивном автоматизированном общении приложений через HTTP.
Использовать его у себя мы вряд ли будем (он без исходных текстов, хоть и с CPOL-лицензией), да и разводить целый зоопарк серверов не стоит (у нас есть свой вариант + "легкий" Mongoose), но внимания этот вариант, безусловно, заслуживает.
Его API мне понравился несколько больше чем у Mongoose, который я использую в наших мелких утилитах, вдобавок, в отличие от него, поддерживается keep-alive, что немаловажно при интенсивном автоматизированном общении приложений через HTTP.
Использовать его у себя мы вряд ли будем (он без исходных текстов, хоть и с CPOL-лицензией), да и разводить целый зоопарк серверов не стоит (у нас есть свой вариант + "легкий" Mongoose), но внимания этот вариант, безусловно, заслуживает.
Ручная расшифровка параметров брошеных C++ исключений (0xE06D7363)
Иногда проблемы приходится исследовать в практически “спартанских” условиях (чаще всего тогда, когда в вашу систему входят компоненты от третьесторонних поставщиков, которые не удосуживаются снабдить вас отладочными символами - мотивация этой глупости при этом может быть абсолютно любой и к делу не относится).
Application verifier
Есть множество инструментов, помогающих в отладке программ под Windows. Какие-то лучше, какие-то хуже. Какие-то проще, какие-то сложнее. А можно ли выделить самый простой и полезный способ тестирования программ? Все полезны по-своему и про все стоит рассказать. Но есть категория достаточно простых в использовании инструментов, которые дают, тем не менее, очень ощутимый эффект. Application Verifier как раз из таких...
C Новым годом!
Заодно с Рождеством, вторым НГ (как раз сегодня) и всеми остальными пропущенными праздниками :-)
Что-то я с декабря сначала крепко забегался, потом крепко расслабился на праздниках, и очнулся только сейчас :-))
За это время накопилось некоторое количество недооформленных постов, которые я клятвенно обещаю завершить и выложить в самое ближайшее время...
Что-то я с декабря сначала крепко забегался, потом крепко расслабился на праздниках, и очнулся только сейчас :-))
За это время накопилось некоторое количество недооформленных постов, которые я клятвенно обещаю завершить и выложить в самое ближайшее время...
суббота, 27 ноября 2010 г.
Видео-лекции по STL
Вышла восьмая часть, посвященная регулярным выражениям из <regex>.
Естественно, это для C++0x.
Естественно, это для C++0x.
Как работают алгоритмы сортировки
Иногда для понимания того, как работает та или иная вещь, лучше один раз увидеть, чем сто раз услышать.
Замечательный сайт www.sorting-algorithms.com позволяет увидеть, как сортируются данные разными алгоритмами.
Все это бегает и сортируется прямо на ваших глазах!
Взято отсюда.
Замечательный сайт www.sorting-algorithms.com позволяет увидеть, как сортируются данные разными алгоритмами.
Все это бегает и сортируется прямо на ваших глазах!
Взято отсюда.
std::min/std::max
Стандартную библиотеку С++ мы используем очень активно, включая алгоритмы.
В сочетании с заголовками Windows это дает иногда интересные эффекты с min/max, которые не глядя определены там как макросы...
В сочетании с заголовками Windows это дает иногда интересные эффекты с min/max, которые не глядя определены там как макросы...
среда, 10 ноября 2010 г.
Core Wars - сражение между программами
Недавно ездил к родителям разбирать свои старые вещи, включая подборки журналов - наткнулся на "В Мире Науки" ажно за 1989 год.
Вообще-то это перевод "Scientific American", но суть не в этом - в то время в журнале вел постоянную колону Alexander Dewdney, посвященную разным аспектами CS, оттуда-то я впервые и узнал про "войны в памяти"...
Вообще-то это перевод "Scientific American", но суть не в этом - в то время в журнале вел постоянную колону Alexander Dewdney, посвященную разным аспектами CS, оттуда-то я впервые и узнал про "войны в памяти"...
понедельник, 1 ноября 2010 г.
Exception handling cost
Наши программисты делятся традиционно на два лагеря - те, кто принимает и активно использует исключения, и те, кто терпеть их не может (чаще всего в итоге выясняется, что люди просто не обладают навыками exception-safe programming, но есть и реальные представители "старой школы").
вторник, 26 октября 2010 г.
понедельник, 11 октября 2010 г.
Homebrew Computer
Выдалась свободная минутка - уж не помню как, но вырулил на сайт любителей самодельных компьютеров.
Откровенно говоря, я думал, что создание такого рода самоделок скончалось лет 20 назад, однако я сильно ошибся...
Откровенно говоря, я думал, что создание такого рода самоделок скончалось лет 20 назад, однако я сильно ошибся...
понедельник, 20 сентября 2010 г.
Upgrade, No Upgrade....
Последняя попытка "бесшовного upgrade'a" с предыдущей версии нашей системы на вновь выпускаемую принесла много интересных открытий - одно из них заключается в том, что правильно модули Windows Installer вообще могут писать немногие...
четверг, 16 сентября 2010 г.
Неправильная работа "Repair" в инсталляции
Пришел баг от тестеров (проверяли перед релизом правильную работу установщика + upgrade с предыдущих версий).
Говорится, что при выполнении "Repair" для инсталляции система становится неработоспособна.
Пытаемся воспроизвести баг - ничего. Идем на стенд, воспроизводим - ничего.... Начинаем думать...
Говорится, что при выполнении "Repair" для инсталляции система становится неработоспособна.
Пытаемся воспроизвести баг - ничего. Идем на стенд, воспроизводим - ничего.... Начинаем думать...
пятница, 27 августа 2010 г.
GoogleWave::~GoogleWave
Забавно, вернулся из отпуска и сразу наткнулся на "новость" - Google закрыла свой сервис, который стартовал с такой помпой год назад...
воскресенье, 4 июля 2010 г.
Container as a stream
Стандартная задача - имеется код, использующий iostream, хочется уметь получать поток из данных в каком либо контейнере.
Т.е. хочется обеспечить функциональность, аналогичную strstream, но без характерных для последнего плясок.
Т.е. хочется обеспечить функциональность, аналогичную strstream, но без характерных для последнего плясок.
понедельник, 14 июня 2010 г.
static assert & Co
Достаточно недавно получил некоторе количество ехидных комментариев за ручную проверку инвариантов при создании своего шаблона (в критичном по времени выполнения месте внутри цикла я проверял полное совпадение битовых флагов у двух разных структур, чтобы можно было безнаказанно перекинуть набор флагов из одной в другую прямым копированием).
По ходу поговорили и про static_assert'ы, которые я реализовал в этом месте самостоятельно, не подключая тот же boost...
По ходу поговорили и про static_assert'ы, которые я реализовал в этом месте самостоятельно, не подключая тот же boost...
суббота, 5 июня 2010 г.
Git & SVN - постепенная миграция
Тема совместной работы c помощью связки svn/git некоторое время назад была достаточно популярной, попробовал - остановило в то время отсутствие приемлемого Windows-клиента для git, желательно похожего на TortoiseSVN...
Подписаться на:
Сообщения (Atom)