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

В Microsoft модель машинного обучения выявляет 99% ошибок безопасности

Information Security *Perfect code *Software Artificial Intelligence IT-companies
imageФото: www.webtekno.co

Команда Microsoft сообщила, что решила задействовать машинное обучение в совместной работе с экспертами по безопасности, которые выявляют ошибки и уязвимости в программном обеспечении. Корпорация надеется, что внедрение ИИ позволит повысить эффективность такой работы.
Читать дальше →
Total votes 12: ↑10 and ↓2 +8
Views 3.3K
Comments 8

В Microsoft Flight Simulator из-за опечатки появился несуществующий 212-этажный небоскреб

Delirium coding Game development *Geoinformation services *Games and game consoles
image

Игроки поделились первыми впечатлениями от ПК-версии Microsoft Flight Simulator, которая вышла 18 августа. В ходе изучения локаций они обнаружили в австралийском Мельбурне небоскреб-башню, которая не существует в реальности.
Total votes 36: ↑34 and ↓2 +32
Views 17K
Comments 49

В МТИ создали автоматизированную модель машинного обучения для поиска проблем в коде

Perfect code *Machine learning *Artificial Intelligence

В Массачусетском технологическом институте совместно с IBM разработали автоматизированный метод поиска слабых мест в моделях обработки кода с повышенной устойчивостью к атакам.

Читать далее
Total votes 6: ↑6 and ↓0 +6
Views 1.4K
Comments 0

Google упрощает контрактное программирование

Java *
Google выпустил открытую библиотеку Contracts for Java, которая упрощает реализацию методов контрактного программирования в Java. С помощью библиотеки Contracts for Java предусловия, постусловия и инварианты можно добавлять в Java как булевые выражения внутри аннотаций.

Как сказано в официальном анонсе, библиотека разработана двумя программистами Google в свободное от основной работы время (20% на личные проекты) и основана на Modern Jass и сделана под впечатлением от языка Эйфель, в котором впервые был реализован метод контрактного программирования.
Читать дальше →
Total votes 49: ↑39 and ↓10 +29
Views 2.3K
Comments 36

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

PVS-Studio corporate blog
Check Miranda IM
Я добрался до кода широко известного клиента мгновенных сообщений Miranda IM. Вместе с различными плагинами это достаточно большой проект, размер которого составляет около 950 тысяч строк кода на C и C++. И, как в любом солидном проекте с историей развития, в нем имеется немалое количество ошибок и опечаток.

Рассматривая дефекты в различных приложениях, я заметил некоторые закономерности. И сейчас на примере дефектов, найденных в Miranda IM, я попробую сформулировать некоторые рекомендации, которые позволят избежать многих ошибок и опечаток ещё на этапе написания кода.

Читать дальше →
Total votes 130: ↑120 and ↓10 +110
Views 4.1K
Comments 102

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

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

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

Вышел движок MediaWiki 1.17. Моё расширение, подменяющее jQuery, по-прежнему работоспособно в нём. Но в будущем (для MediaWiki 1.18) появится более элегантное решение. 

Crowdsourcing
22 июня 2011 года Фондом Викимедиа выпущена в свет очередная стабильная версия движка MediaWiki — версия 1.17. Соответствующую новость на английском языке вы без труда найдёте в рассылке mediawiki-announce, снабжённую гиперссылками на подробный список изменений и инструкции по апгрейду.

Одной из основных (и даже ключевых) новостей этой версии стало появление и внедрение уникального движка ResourceLoader, целью которого является автоматическая сборка «ресурсов» (конгломератов джаваскрипта и CSS, из которых собирается один общий файл CSS и один общий файл джаваскриптов) с учётом их взаимной зависимости (например, jQuery UI зависит от jQuery) и с последующей минификацией. Два ресурса, содержащие служебные скрипты MediaWiki и библиотеку jQuery 1.4.2, подключаются автоматически в любом случае.

Те из вас, кто хочет использовать более новую версию jQuery, по-прежнему могут для этого воспользоваться тем моим способом и расширением, о котором я рассказывал 12 дней назад вот в этом же блоге. Как ни странно, мне не пришлось переменить ни буквы в его коде PHP для обеспечения работоспособности в MediaWiki 1.17 — это приятная удача, несмотря на то, что (в силу сложности ResourceLoader) прежняя возможность несложно «выкусить» вызов библиотеки jQuery, встроенной в MediaWiki, исчезла совершенно. Так что теперь моё расширение «побеждает» всего лишь потому, что вставляет вызов новой jQuery чуть раньше, чем ResourceLoader начинает грузить старую. По-видимому, библиотека jQuery 1.4.2 достаточно разумна для того, чтобы не подменять новую версию себя самóй. Однако печально, что теперь (в отличие от 1.16) моё расширение не позволяет загрузить одну версию jQuery (свою) вместо другой (встроенной в движок): в 1.17 они грузятся совместно, что неэкономно.

Читать дальше →
Total votes 17: ↑4 and ↓13 -9
Views 580
Comments 0

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

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

Повторная проверка проекта Notepad++

PVS-Studio corporate blog
PVS-Studio vs Notepad++
Прошло более года, как мы проверили Notepad++ с помощью PVS-Studio. Интересно посмотреть, насколько анализатор PVS-Studio стал лучше, и что было исправлено в Notepad++ из прежних ошибок.
Читать дальше →
Total votes 97: ↑77 and ↓20 +57
Views 2K
Comments 89

Итак, вы решили запретить копирование объектов класса в C++

ABBYY corporate blog C++ *
SHALL NOT DANCE THEREДовольно часто можно встретить код на C++, в котором у одного или нескольких классов конструктор копирования и оператор присваивания объявлены private и написан комментарий вида «копирование запрещено».

Прием простой и с виду очевидный, тем не менее, при его использовании возможны подводные камни, приводящие к ошибкам, которые проявятся нескоро и поиск которых может занять не один день.

Рассмотрим возможные проблемы.
Читать дальше →
Total votes 42: ↑36 and ↓6 +30
Views 41K
Comments 45

Notepad++. Кириллические символы, ошибочно попавшие в код — решение проблемы

Website development *
Sandbox
Вчера потратил почти два часа на то, чтобы найти ошибку во вроде бы правильном коде. Проблема оказалась банальной — в ключ массива «text» каким-то образом попала кириллическая буква «е». По виду она не отличается от «e» латинской, и найти проблему оказалось очень нелегко. Уверен, большинство программистов, да и просто людей, которые работают с текстовой информацией, время от времени сталкиваются с подобными неприятностями. Особенно это касается английской буквы «си» и русской «эс», которые находятся на одной и той же клавише в русской и английской раскладках. У меня этот случай далеко не первый, и поэтому я решил заняться поиском решения данной проблемы вплотную. И решение — пусть не очень элегантное, но вполне работоспособное — нашлось.
Читать дальше →
Total votes 44: ↑35 and ↓9 +26
Views 20K
Comments 52

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

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

Ещё один способ отстрелить себе ногу в Perl

Perl *Programming *
Посмотрим на код:

use strict;
use warnings;

sub mysub($$)
{
    my ($a, $b) = @_;
    print "$a\n";
    print "$b\n";
}
my $x = undef;
mysub($x && $x->[0] =~ /abc/, $x = []);


Может ли mysub в качестве первого аргумента получить нечто, что в boolean контексте является истиной?
Читать дальше →
Total votes 47: ↑41 and ↓6 +35
Views 12K
Comments 41

«Однопоточный программист»

Website development *
Всё нижеизложенное вымысел, основанный на реальных событиях.

Не являясь мастером писать заметки, пытался «с пылу с жару» изложить это вчера. Но просто и доступно выстроить мысли в стройном порядке «по горячим следам» не вышло.

Кроме того на личном опыте выяснилось, что описываемый подход, хоть он, на первый взгляд и кажется мне очень простым, статистически таким не является. Известное высказывание о том, что «простые вещи, они самые сложные» оказывается в данном случае верным.

«Практическое» применение данного подхода требует усилий и кропотливой работы над собой, до тех пор, пока он не станет безусловным рефлексом, пока допускаемая «неточность» не будет заметна ещё до её совершения.

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

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

UPD3 спасибо dimka_ben: под «однопоточностью» подразумевается особенность мышления конкретного индивидуума, когда в один момент времени он может думать только о чем-нибудь одном.

Читать дальше →
Total votes 92: ↑77 and ↓15 +62
Views 47K
Comments 129

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

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

Третья проверка кода проекта 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

Проверка open-source игры Multi Theft Auto

PVS-Studio corporate blog C++ *Game development *
MTA & PVS-Studio
Мы давно не проверяли игры с помощью PVS-Studio. Решили это исправить и выбрали проект MTA. Multi Theft Auto (MTA) является модификацией для PC версий игры Grand Theft Auto: San Andreas от Rockstar North. MTA позволяет игрокам со всего мира играть друг против друга в режиме онлайн. Как написано в Wikipedia, особенностью игры является «оптимизированный код с наименьшим количеством сбоев». Что же, давайте посмотрим, что скажет анализатор кода.
Читать дальше →
Total votes 81: ↑69 and ↓12 +57
Views 41K
Comments 45

Уязвимости гипервизора – угроза виртуальной инфраструктуре и облаку

Код Безопасности corporate blog
При переходе от физической инфраструктуры к виртуальной возникает множество новых угроз. При расширении виртуализации до облака их список расширяется, а возможный ущерб от их эксплуатации многократно возрастает. В этой статье хотелось бы поговорить про одну из основных «новых» угроз в виртуальной среде – уязвимости гипервизора.
Рассмотрим основные классы уязвимостей гипервизоров на примере VMware vSphere и возможные пути защиты от их эксплуатации.
Читать дальше →
Total votes 12: ↑7 and ↓5 +2
Views 14K
Comments 10