Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Юмор: У системы выходной

Чулан
Пришёл я сегодня на работу — сроки горят, приходится работать сверхурочно. Запускаю систему, которую мы разрабатываем — и вижу Exception.

Начали разбираться. Выяснилось, что в системе для статистики вычисляется такое выражение
X = (число дней когда система использовалась) / (число рабочих дней с начала месяца).

Так вот если начало месяца приходится на выходной — система в этот день не работает! И этой ошибке, похоже, уже несколько лет.
Всего голосов 31: ↑24 и ↓7 +17
Просмотры 368
Комментарии 7

Большой брат помогает тебе

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

Читайте далее байтораздирающую историю про класс CString и дочь его, функцию Format.
Всего голосов 93: ↑64 и ↓29 +35
Просмотры 18K
Комментарии 109

Статический анализ исходного кода на примере WinMerge

Блог компании PVS-Studio
Сегодня я хочу посвятить пост тематике, почему инструменты анализа исходного кода полезны вне зависимости от уровня знаний и опыта программиста. А польза такого анализа будет продемонстрирована на примере инструмента, который известен всем программистам — WinMerge.

Читать дальше →
Всего голосов 56: ↑53 и ↓3 +50
Просмотры 2.6K
Комментарии 28

Разница в подходах анализа кода компилятором и выделенным инструментом

Блог компании Intel
У компилятора и сторонних инструментов статического анализа кода есть общая задача — выявление опасных фрагментов кода. Однако существует существенная разница в том, анализ какого типа они осуществляют. Я попробую на примере компилятора Intel C++ и анализатора PVS-Studio продемонстрировать различия подходов, и пояснить, чем они вызваны.

В качестве испытуемого на этот раз выступит проект Notepad++ версии 5.8.2.

Читать дальше →
Всего голосов 64: ↑63 и ↓1 +62
Просмотры 15K
Комментарии 25

Собираю страшненькое от программистов

Блог компании Intel
Уважаемые коллеги-программисты, предлагаю поделиться в комментариях примерами ошибок, которые на ваш взгляд можно обнаружить в программе еще на этапе ее написания. Наверняка у всех были ситуации, когда исправляя после часовой отладки ляп, вы вздыхали «эх, ну что же мне компилятор здесь предупреждение не выдал».

Мне интересны в первую очередь паттерны ошибок, допускаемых в программах на Си++. Но я сознательно не стал помещать этот пост в раздел «Си++». Приводите примеры ошибок из других языков. Часто рассматривая ошибку, можно придумать ее аналог на другом языке.

Ошибки мне нужны для создания нового уникального набора правил диагностики ошибок общего типа. Правил, которые действительно актуальны, которые найдут ошибки не в абстрактных приложениях, а в данных нам в ощущениях. Неинтересно уже искать в тексте завалявшиеся случайно триграфы. Ни разу не видел ошибку, связанную с триграфом. А вот опечаток, где для очистки строки вместо str.clear() написано str.empty(), полным-полно. Например, я писал про такой пример здесь. И ведь такие ошибки не находятся существующими инструментами! Поэтому мы и идем по пути создания нового, а не повторения старого.

Теперь попробую пояснить, про какие же ошибки мне хочется услышать и как.

Читать дальше →
Всего голосов 63: ↑54 и ↓9 +45
Просмотры 25K
Комментарии 82

Статический анализ: ошибки в медиаплеере и безглючная аська

Блог компании PVS-Studio
Продолжу экскурсию по ошибкам в программах и демонстрацию полезности статического анализа кода.

Это мой последний пост про пока недоступную для скачиванию версию PVS-Studio. Планирую, что через неделю вы уже сможете попробовать первую beta-версию с новым набором правил общего назначения.

Рассмотрим два проекта. Первый — Fennec Media Project. Это универсальный медиа-плеер ориентированный на воспроизведение аудио и видео в высоком разрешении. В комплект исходных кодов входит множество модулей расширения (plugins) и кодеков, но анализироваться будет только сам плеер. Исходный код последней на данный момент версии 1.2 Alpha доступен здесь.

Второй проект — qutIM. Это кроссплатформенный клиент мгновенного обмена сообщениями с открытым исходным кодом. Был проанализирован код на момент начала ноября 2010 года. Набор исходных кодов был предоставлен мне одним из разработчиков, но вы также можете скачать исходный код с официального сайта. Этот разработчик, кстати, присутствует здесь — gorthauer87.

Посмотреть на лики зла
Всего голосов 85: ↑73.5 и ↓11.5 +62
Просмотры 1.5K
Комментарии 69

Intel IPP Samples for Windows — работа над ошибками

Блог компании PVS-Studio
Проверка Intel IPP Samples for Windows
Это моя очередная заметка о том, как PVS-Studio делает программы более надёжными. То есть где, и какие ошибки он обнаруживает. На этот раз под молоток попали примеры, демонстрирующие работу с библиотекой IPP 7.0 (Intel Performance Primitives Library). Хотел, вначале, этот пост поместить в блог Intel, но потом решил, что это будет совсем уже...
Читать дальше →
Всего голосов 40: ↑29 и ↓11 +18
Просмотры 2.3K
Комментарии 15

Как уменьшить вероятность ошибки на этапе написания кода. Заметка N2

Блог компании PVS-Studio
Operator ?:
Это вторая статья о том, как можно избежать ряда ошибок еще на этапе написания кода. В предыдущей заметке уже упоминался совет избегать множества вычислений в одном выражении. Однако, этот вопрос требует более пристального внимания. Рассмотрим опасность сложных условий, и как можно предупредить многие логические ошибки.

Читать дальше →
Всего голосов 97: ↑83 и ↓14 +69
Просмотры 3.1K
Комментарии 57

Проверка Intel IPP Samples for Windows — продолжение

Блог компании PVS-Studio
PVS-Studio vs IPP Samples. Continue.
Прогресс не стоит на месте. Развивается и мой любимый статический анализатор кода PVS-Studio. И недавно я понял, что те проекты, которые мы уже проверяли, можно вполне проверять заново. Писать про это новые статьи как-то странно и вряд ли они получатся интересными. Однако одну такую статью я всё-таки думаю надо сделать. Она станет еще одним аргументом в пользу утверждения, что настоящую пользу от статического анализа можно получить только при его регулярном использовании, а не при проверках от случая к случаю. Итак, посмотрим, что же удалось найти нового интересного в проекте Intel IPP Samples.
Читать дальше →
Всего голосов 53: ↑41 и ↓12 +29
Просмотры 806
Комментарии 13

Не зная брода, не лезь в воду. Часть первая

Блог компании PVS-Studio
Не зная брода, не лезь в воду
Захотелось написать несколько небольших заметок о том, как программисты на Си/Си++ играют с огнем, не подозревая об этом. Первая заметка будет про попытки явно вызвать конструктор.
Читать дальше →
Всего голосов 122: ↑106 и ↓16 +90
Просмотры 3.1K
Комментарии 91

Исследование отношения популярных языков программирования к случайным ошибкам

Разработка веб-сайтов *Программирование *Совершенный код *
Группа греческих учёных под руководством Диомидиса Спинеллиса провела интересное исследование чувствительности десяти популярных языков программирования к ошибкам и опечаткам при наборе текста программы. Ущерб от таких ошибок иногда может составлять многие миллионы, и способность языка обнаруживать их как можно раньше очень важна для разработки надёжных программ. Для тестирования использовались несколько примеров из проекта Rosetta Code — вики, на которой собраны реализации множества задач и алгоритмов на разных языках. На основании статистических данных о популярности языков, а так же некоторых практических соображений (наличие свободного компилятора и примеров на Rosetta Code) были выбраны следующие языки и компиляторы:
Язык компилятор/среда
C gcc 4.4.5
C++ g++ 4.4.5
C# mono 2.6.7, CLI v2.0
Haskell ghc 6.12.1
Java OpenJDK 1.6.0_18
JavaScript spidermonkey 1.8.0
PHP PHP 5.3.3-7
Perl perl 5.10.1
Python python 2.6.6
Ruby ruby 1.8.7
Читать дальше →
Всего голосов 72: ↑50 и ↓22 +28
Просмотры 27K
Комментарии 50

Помните о реальном мире

Тестирование IT-систем *Программирование *
Здравствуйте, хочу рассказать о проблеме с которой недавно столкнулась наша команда и о том как нам пришлось участвовать в подтасовке результатов лотереи.
Читать дальше →
Всего голосов 134: ↑95 и ↓39 +56
Просмотры 36K
Комментарии 60

Повторная проверка TortoiseSVN с помощью анализатора кода PVS-Studio

Блог компании PVS-Studio C++ *
TortoiseSVN и PVS-Studio
Мы отправили разработчикам TortoiseSVN на некоторое время бесплатный ключ для анализатора PVS-Studio. Пока они не успели им воспользоваться, я решил быстро скачать исходные коды TortoiseSVN и самостоятельно выполнить анализ. Цель понятна. Очередная небольшая статья для рекламы PVS-Studio.
Читать дальше →
Всего голосов 81: ↑72 и ↓9 +63
Просмотры 16K
Комментарии 35

Мир опечаток и Copy-Paste

Блог компании PVS-Studio C++ *C *
Программисты допускают невероятное количество опечаток, простых логических ляпов и делают ошибки благодаря Copy-Paste. Приглашаю отпробовать их. Приятного аппетита.
Баги
Программисты часто думают, что ошибки, отнимающие больше всего времени очень сложные и коварные. А простые ошибки они не делают.
Читать дальше →
Всего голосов 43: ↑31 и ↓12 +19
Просмотры 19K
Комментарии 6

x += x++

.NET *C# *
Перевод
Хотел бы начать перевод с маленького опроса. Вопрос к .NET разработчикам пишущим на языке программирования C#.

Опрос в конце перевода.

Сегодня я смотрел внутренний список разработчиков языка C#. Один из вопросов был о поведении выражения «x += x++», а именно, каким должно быть правильное поведение. Я думаю этот вопрос более чем интересный, поэтому решил посвятить ему запись в своем блоге. Но для начала, НИКОГДА НЕ ПИШИТЕ ТАКОЙ КОД.

ОК, мы можем начать…
Читать дальше →
Всего голосов 51: ↑31 и ↓20 +11
Просмотры 56K
Комментарии 48

Третья проверка кода проекта Chromium с помощью анализатора PVS-Studio

Блог компании PVS-Studio C++ *Google Chrome
Браузер Chromium очень быстро развивается. Например, когда в 2011 году мы впервые проверили этот проект (solution), он состоял из 473 проектов. Сейчас, он состоит уже из 1169 проектов. Нам было интересно, смогли ли разработчики Google сохранить высочайшее качество кода, при такой скорости развития Chromium. Да, смогли.
Читать дальше →
Всего голосов 143: ↑132 и ↓11 +121
Просмотры 34K
Комментарии 58

После подключения бесперебойника программа больше не работает

Блог компании PVS-Studio Разработка веб-сайтов *
После публикации статьи "Заземлённые указатели", к ней было сделано немало комментариев. В том числе было отмечено, что различные устройства часто поставляются с поразительно некачественным вспомогательным программным обеспечением. Иногда это весьма раздражает. Впрочем, я не собираюсь брюзжать. Я хочу рассказать забавную историю на эту тему.

Читать дальше →
Всего голосов 152: ↑143 и ↓9 +134
Просмотры 45K
Комментарии 71

Альтернатива PVS-Studio за $250

Блог компании PVS-Studio C++ *Visual Studio *
CppCat
Вас приветствуют разработчики статического анализатора кода PVS-Studio. Мы разработали новый программный продукт — CppCat. Разработан он так. Мы представили, что у нас нет PVS-Studio, но есть опыт в разработке инструментов статического анализа для языка Си/Си++. И мы с чистой головой разработали новый статический анализатор таким, каким бы хотели его видеть. Мы сделали инструмент простым и лёгким. И что многих обрадует, он будет стоить $250 за одну инсталляцию.
Читать дальше →
Всего голосов 93: ↑71 и ↓22 +49
Просмотры 24K
Комментарии 77
1