Pull to refresh
  • by relevance
  • by date
  • by rating

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

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

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

Так вот если начало месяца приходится на выходной — система в этот день не работает! И этой ошибке, похоже, уже несколько лет.
Total votes 31: ↑24 and ↓7 +17
Views 365
Comments 7

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

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

Читайте далее байтораздирающую историю про класс CString и дочь его, функцию Format.
Total votes 93: ↑64 and ↓29 +35
Views 18K
Comments 109

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

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

Читать дальше →
Total votes 56: ↑53 and ↓3 +50
Views 2.6K
Comments 28

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

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

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

Читать дальше →
Total votes 64: ↑63 and ↓1 +62
Views 15K
Comments 25

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

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

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

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

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

Читать дальше →
Total votes 63: ↑54 and ↓9 +45
Views 25K
Comments 82

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

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

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

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

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

Посмотреть на лики зла
Total votes 85: ↑73.5 and ↓11.5 +62
Views 1.5K
Comments 69

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

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

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

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

Читать дальше →
Total votes 97: ↑83 and ↓14 +69
Views 3.1K
Comments 57

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

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

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

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

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

Website development *Programming *Perfect code *
Группа греческих учёных под руководством Диомидиса Спинеллиса провела интересное исследование чувствительности десяти популярных языков программирования к ошибкам и опечаткам при наборе текста программы. Ущерб от таких ошибок иногда может составлять многие миллионы, и способность языка обнаруживать их как можно раньше очень важна для разработки надёжных программ. Для тестирования использовались несколько примеров из проекта 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
Читать дальше →
Total votes 72: ↑50 and ↓22 +28
Views 27K
Comments 50

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

IT systems testing *Programming *
Здравствуйте, хочу рассказать о проблеме с которой недавно столкнулась наша команда и о том как нам пришлось участвовать в подтасовке результатов лотереи.
Читать дальше →
Total votes 134: ↑95 and ↓39 +56
Views 36K
Comments 60

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

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

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

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

x += x++

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

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

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

ОК, мы можем начать…
Читать дальше →
Total votes 51: ↑31 and ↓20 +11
Views 55K
Comments 48

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

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

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

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

Читать дальше →
Total votes 152: ↑143 and ↓9 +134
Views 45K
Comments 71

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

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