Название статьи намекает разработчикам Visual Studio, что они могут получать пользу от использования статического анализатора кода PVS-Studio. В статье приводятся результаты анализа библиотек, входящих в состав недавно выпущенной версии Visual C++ 2017, и даются рекомендации по улучшению и устранению ошибок. Приглашаю читателей узнать, как разработчики Visual C++ Libraries отстреливают ноги: будет интересно и познавательно.
Читать полностью »
Рубрика «Си» - 11
Как используя PVS-Studio можно улучшить Visual C++ 2017 Libraries
2017-05-02 в 12:19, admin, рубрики: bugs, C, c/c++, c++, dev tools, MFC, pvs-studio, visual c++, Visual Studio, visual studio 2017, VS2017, библиотеки, Блог компании PVS-Studio, Компиляторы, ошибки, ошибки в коде, разработка под windows, Си, статический анализ кодаСтатья о статическом анализе кода для менеджеров, которую не стоит читать программистам
2017-04-14 в 14:18, admin, рубрики: bugs, C, c/c++, C#, c++, devops, pvs-studio, static code analysis, Блог компании PVS-Studio, информационная безопасность, качество кода, ошибки в коде, ошибки в программе, Си, статический анализ кода, управление персоналом, Управление продуктом, управление проектами, управление разработкой
Если вы считаете себя хорошим программистом, ну, скажем так, вы оцениваете свой уровень выше среднего, прошу не читать эту статью. Эта статья предназначена для менеджеров программных проектов. С ними я хочу обсудить хотя и важные, но скучные для программистов вопросы, связанные с методологией статического анализа кода.
Читать полностью »
Почему на то, чтобы найти точное значение постоянной Планка, понадобилось 100 лет?
2017-04-13 в 7:38, admin, рубрики: CODATA, NIST, Wolfram Alpha, wolfram cloud, wolfram language, wolfram mathematica, Алгоритмы, Блог компании Wolfram Research, Борда, визуализация данных, килограмм, математика, открытые данные, постоянная планка, Си, метки: килограмм, постоянная планка, СИ
Перевод поста Майкла Тротта (Michael Trott) "An Exact Value for the Planck Constant: Why Reaching It Took 100 Years".
Код, приведенный в статье, можно скачать здесь.
Выражаю огромную благодарность Полине Сологуб за помощь в переводе и подготовке публикации
Содержание
— Некоторые мысли по случаю Всемирного дня метрологии в 2016 году
— Введение и немного обо мне
— От истоков метрической системы до сегодняшних дней.
— Увеличение числа констант
— Существующая система СИ и проблема килограмма
— Новая СИ
— Секунда
— Моль
— Кельвин
— Ампер
— Кандела
— Почему основных единиц измерения именно 7?
— Путь к изменению определения килограмма
Повествование ведется от имени Жана-Шарля де Борда.
Некоторые мысли по случаю Всемирного дня метрологии в 2016 году
Позвольте мне представиться:
Я человек науки и люблю точность.
Все это время я был где-то рядом.
Я забрал у людей фунт и туаз.
И я был рядом с Людовиком XVI
В минуты его сомнений и боли.
Я чертовски уверен в том, что метрическая рулетка,
Благодаря платиновым стандартам будет установлена раз и навсегда.
Я рад встрече с вами!
Надеюсь, вы угадали, как меня зовут?
Введение и немного обо мне
Если вы еще не догадались, я — Жан-Шарль де Борда: моряк, математик, ученый и член Академии наук. Я родился 4 мая 1733 года в городе Дакс во Франции. Две недели назад я отметил свой двести восемьдесят третий день рождения. А вот и я:

В моем родном городе в честь меня воздвигли памятник. Если вы будете неподалеку, задержитесь, чтобы посмотреть на него. Если вы не знаете, где находится Дакс, вот карта:

Когда я был мальчиком, Франция выглядела примерно так же, как сейчас. У нас было немного меньше территории с восточной стороны, но зато в Северной Америке моей стране принадлежал хороший кусок земли:
Привет всем, не знаю зачем это надо, но может кому пригодится…
Дисклеймер: Я ни в коем случае не являюсь профессиональным Си программистом.
Что нам понадобится:
1. Любой компьютер на Linux, Ubuntu, Centos, MacOS… с доступом к порту 443 или 8443 из интернета.
2. Любой Си компилятор
3. Бибилиотеки openssl, libssl-dev («apt-get install openssl libssl-dev» в терминале, для Ubuntu)
Читать полностью »
Как найти 56 потенциальных уязвимостей в коде FreeBSD за один вечер
2017-04-06 в 8:07, admin, рубрики: bugs, C, cwe, errors, freebsd, open source, pvs-studio, security, Блог компании PVS-Studio, информационная безопасность, ошибки в коде, Программирование, разработка операционных систем, Разработка под Linux, Си, статический анализ кода, уязвимости
Пришло время вновь проверить проект FreeBSD и продемонстрировать, что даже в таких серьезных и качественных проектах анализатор PVS-Studio легко находит ошибки. В этот раз я решил взглянуть на поиск ошибок с точки зрения обнаружения потенциальных уязвимостей. Анализатор PVS-Studio всегда умел выявлять дефекты, которые потенциально можно использовать для атаки. Но мы никогда не акцентировали на этом внимание и описывали ошибки как опечатки, последствия неудачного Copy-Paste и так далее, и не классифицировали их, например, согласно CWE. Сейчас очень популярно говорить и о безопасности, и об уязвимостях, поэтому попробую немного расширить ваше восприятие нашего анализатора. PVS-Studio — это не только поиск багов, но ещё и инструмент, повышающий безопасность кода.
Читать полностью »
Как и почему статические анализаторы борются с ложными срабатываниями
2017-03-20 в 11:23, admin, рубрики: C, c/c++, c++, pvs-studio, Блог компании PVS-Studio, информационная безопасность, ложные срабатывания, с/с++, Си, статический анализ кода, статический анализатор кода, метки: с/с++
В своей предыдущей статье я писал, что мне не нравится подход, при котором статические анализаторы кода оцениваются с помощью синтетических тестов. В статье приводился пример, воспринимаемый анализатором как особый случай, на который сознательно не выдаётся предупреждение. Если честно, я не ожидал такого всплеска комментариев на тему того, что анализатор может очень редко, но не выдать предупреждение на ошибку из-за реализованных в нём механизмов отсечения ложных срабатываний. Борьба с ложными срабатываниями настолько большая составляющая любого статического анализатора, что как-то даже не понятно, что тут собственно обсуждать. Это надо делать и всё. Такие механизмы существуют не только в нашем анализаторе, но и в других анализаторах/компиляторах. Тем не менее, раз этот момент вызвал столь бурное обсуждение, я думаю, стоит уделить ему внимание, поэтому и написал эту поясняющую статью.
Читать полностью »
Дефекты безопасности, которые устранила команда PVS-Studio на этой неделе: выпуск N2
2017-03-17 в 12:59, admin, рубрики: C, c++, clang, freebsd, gcc, pvs-studio, Блог компании PVS-Studio, информационная безопасность, Компиляторы, ошибки в коде, ошибки программистов, Си, статический анализ кода
Мы решили в меру своих сил регулярно искать и устранять потенциальные уязвимости и баги в различных проектах. Можно назвать это помощью open-source проектам. Можно — разновидностью рекламы или тестированием анализатора. Еще вариант — очередной способ привлечения внимания к вопросам качества и надёжности кода. На самом деле, не важно название, просто нам нравится это делать. Назовём это необычным хобби. Давайте посмотрим, что интересного было обнаружено в коде различных проектов на этой неделе. Мы нашли время сделать исправления и предлагаем вам ознакомиться с ними.
Читать полностью »
Аналог std::vector из C++11 на чистом C89 и как я его писал
2017-03-17 в 11:36, admin, рубрики: C, вектор, Занимательные задачки, макросы, массив, меня отчислят, ненормальное программирование, обобщённое программирование, пиши компилятор, пиши курсовую, Си, типы данных, шаблоны, метки: си
Жилой массив людей. Нет, серьёзно.
Холивары между ценителями Си и приверженцами его "сына" в лице C++ начались ещё до моего рождения и прекратятся разве что после смерти обоих этих языков и меня заодно. Адепты великого творения Кернигана-Ритчи до последней секунды рабочего дня готовы доказывать аксиомы приспешникам Страуструпа про вечность Си и его невероятную гибкость. Те в ответ им по-свойски советуют лучше порадоваться рабочему дню, ведь он вот-вот окажется последним – двадцать первому веку кроссплатформенный ассемблер не нужен. Распаляясь, сторонники Си приводят давно прошедшие через голову навылет миллионы тезисов "почему Си лучше C++", при этом каждый раз подчёркивая, что второй все достоинства первого растерял ещё будучи в отцовской утробе, попутно утратив лик человеческий. Обвиняемая сторона в обиде не остаётся и… а хотя постойте, о чём это я.
Я люблю Си, уважаю C++ и не переношу холивары (честно). При этом я осознаю, что в Си действительно не хватает многого, и яркий тому пример – отсутствие удобной работы с данными. В C++ эту проблему во многом решает STL и свойства самого языка. На мой студенческий взгляд, здесь особо отличается всем знакомый std::vector. Если стало интересно, как я реализовал его аналог средствами C89 – прошу под кат.
Почему я не люблю синтетические тесты
2017-02-06 в 8:36, admin, рубрики: C, c/c++, c++, itc-benchmarks, pvs-studio, static code analysis, Toyota ITC, Блог компании PVS-Studio, информационная безопасность, Си, статический анализ кода, тестирование по, тесты
Мне не нравится, когда кто-то пытается использовать созданные вручную примеры кода для оценки возможностей статического анализатора кода. Сейчас на конкретном примере я продемонстрирую, почему негативно отношусь к синтетическим тестам.
Не так давно Bill Torpey написал в своем блоге заметку "Even Mo' Static", где рассказал, как, на его взгляд, показали себя инструменты Cppcheck и PVS-Studio при анализе проекта itc-benchmarks. Проект itc-benchmarks — это static analysis benchmarks from Toyota ITC.
Мне не понравилось, что после прочтения статьи создается впечатление, что анализаторы Cppcheck и PVS-Studio приблизительно равны в своих возможностях. Из статьи следует, что один анализатор показывает себя лучше в одном, второй в другом, но в целом их диагностические возможности похожи.
Я думаю, что это не так. Мое мнение — наш анализатор PVS-Studio в несколько раз мощнее, чем Cppcheck. И вообще, это не «мнение», я знаю это!
Читать полностью »
Установка OpenCV в Windows для чайников и подключение библиотеки в Code Blocks
2017-01-20 в 0:03, admin, рубрики: C, c++, cmake, gcc, opencv, обработка изображений, разработка под windows, Си, установка
Данная статья будет полезна чайникам новичкам в программировании, которые хотят начать изучать техническое зрение при помощи библиотеки OpenCV с полного нуля. Если Вы пользователь Windows и не знаете, что такое «командная строка», или что значит «прилинковать библиотеку», и при этом Вы мечтаете поглубже изучить работу OpenCV и программирование «под железо», перейти на кроссплатформенное ПО, пойти по пути тру специалиста, то Вам сюда. В статье будут приведены подробные инструкции с картинками, так что не понять, что к чему, будет просто невозможно!
Читать полностью »

