Микроклоны — это дублированные фрагменты кода очень малого размера — всего лишь несколько инструкций или строк. В этой статье мы рассмотрим «эффект последней строки» — явление, при котором последняя строка или инструкция в микроклоне с гораздо большей вероятностью содержит ошибку, чем предыдущие строки или инструкции. С этой целью мы изучили 219 открытых проектов и 263 предупреждения о дефектных микроклонах, а также опросили шестерых авторов реальных приложений, допускавших такие ошибки в своем коде. В нашей междисциплинарной работе также изучаются психологические механизмы, обуславливающие сравнительно тривиальные ошибки этого типа. Опираясь на результаты опросов и дальнейшего технического анализа, мы предполагаем, что в существовании эффекта последней строки ключевую роль играют так называемые «ошибки последовательности действий»: при копировании кода внимание разработчиков переключается на другие задачи из-за отвлекающих факторов и монотонной природы самой этой процедуры. Более того, все микроклоны, чье происхождение мы смогли установить, были обнаружены в непривычно больших коммитах. Знание о данном эффекте имеет два полезных следствия для программистов: 1) им будет легче распознавать ситуации, в которых особенно велика вероятность допустить ошибку в микроклонах; 2) они смогут использовать автоматический детектор микроклонов / PVS-Studio, что упростит обнаружение ошибок этого типа.
Читать полностью »
Архив за 14 марта 2017 - 5
Объяснение эффекта последней строки
2017-03-14 в 12:43, admin, рубрики: copy-paste, Блог компании PVS-Studio, качество кода, ошибки в коде, Программирование, психология, психология программирования, рефакторингКак затруднить идентификацию, обмануть видеоаналитику и скрыть лицо от камер
2017-03-14 в 12:35, admin, рубрики: ivideon, Блог компании Ivideon, будущее здесь, видеоаналитика, видеонаблюдение, видеотехника, дизайн, идентификация, как скрыть лицо, Киберпанк, распознавание лиц
Этот человек, которого мы будем называть Фред, ибо таково кодовое имя, под которым он сообщает собранную информацию, находясь в костюме-болтунье, не может быть опознан по внешнему виду или голосу. Он похож на расплывчатое пятно и ни на что больше, не правда ли, друзья? «Помутнение», Филип К. Дик.
Камеры не удивляют на улицах, в банках и магазинах. Люди ставят их для контроля квартиры, машины, дачи, детской площадки. Видеонаблюдение перестает быть средством пассивной безопасности, добавляются функции распознавания лиц и определения эмоций. Чем больше становится камер, тем чаще появляются хактивисты, предлагающие различные способы «защиты» личности. Фобии в области видеонаблюдения привели к тому, что кое-кто стал заклеивать вебку в ноутбуке.
Мы решили разобраться в этом вопросе. Если в мире проявляется тренд на полную анонимность, значит должны быть надежные методы для тех, кто не хочет отдавать свои данные камерам наблюдения. Поговорим о способах обмана видеоаналитики.
Производство нового iPad с диагональю дисплея 10,5 дюйма начнется на несколько месяцев раньше
2017-03-14 в 12:31, admin, рубрики: Новости, метки: новостиВ конце февраля появилась информация, согласно которой новые планшеты iPad с дисплеями диагональю 10,5 и 12,9 дюйма точно не выйдут в первом квартале. Тогда сообщалось, что они могут появиться на рынке даже не в мае, а в июне этого года.
Теперь же источник из тайваньской цепочки поставок сообщает, что производство iPad с диагональю дисплея 10,5 дюйма начнется уже в марте. Кроме того, по данным, предоставленным информатором, анонс устройства состоится в первых числах апреля и будет посвящен официальному открытию штаб-квартиры Apple Park.
Ягеллонский университет разрабатывает приложение-тренер с использованием возможностей IBM Watson
2017-03-14 в 12:30, admin, рубрики: ibm watson, Блог компании IBM, будущее здесь, здоровье, Здоровье гика, облачные сервисы, тренировки
Корпорация IBM совместно с институтом прикладной психологии Ягеллонского университета относительно недавно начали разрабатывать приложение JaneAI. Эта программа задумана в качестве персонального тренера физической активности. Система, как говорят разработчики, будет анализировать физическую активность своих пользователей и мотивировать их выполнять упражнения на регулярной основе. И да, программная платформа отличается от всего, что было выпущено в этой сфере до настоящего момента. Все потому, что помогать человеку будет не просто приложение, а целая когнитивная система.
Не секрет, что сейчас большое количество людей ведет сидячий образ жизни, от чего страдает здоровье, ухудшается самочувствие, падает работоспособность и способность концентрироваться. Для того, чтобы мотивировать людей заниматься физическими упражнениями, разработчики носимых устройств предлагают различные способы — от соревнований в социальных сетях до простых напоминаний о необходимости сделать столько-то шагов. Но, возможно, когнитивная система сможет помочь пользователю более эффективно, чем обычные гаджеты.
Читать полностью »
Генерирование PDF в ASP.NET Core
2017-03-14 в 12:30, admin, рубрики: .net, ASP, C#, метки: .net, .net core, ASP, asp.net core, c++, html, html to pdf, PDFДолго ли, коротко ли, вместе с новой Visual Studio 2017 в релиз вышел ASP.NET Core. Тулинг лишился приставки preview, как и все инфраструктурные сборки, поставляемые Microsoft'ом. На мой взгляд, фреймворк получился отличным, а история с cjproj=>xproj=>project.json=>csproj и поломанная совместимость при переходе с RC1 на RC2 — это всё же разумная плата за скорость развития. Ну да ладно, опустим дела минувших дней, и вернёмся к текущим реалиям.
А реалии таковы, что есть задачи, и есть инструменты которые их решают. В частности, передо мной встала задача генерирования PDF-документов средствами ASP.NET Core. «Хмм… Наверняка уже есть что-то готовое...», — подумал я. Как бы не так. Вернее готовые библиотеки для этого есть, но платные, а вот чего-то OpenSource'ного нет. «А как же iText?», — спросите вы. «AGPL», — ответит вам страничка с лицензией на гитхабе. Для OpenSource проектов бесплатно, а для коммерческого использования, извольте заплатить. Ну что ж, раз нет инструмента, решающего мою задачу, значит я сделаю его сам.
Читать полностью »
Blast-off. От идеи до релиза
2017-03-14 в 12:29, admin, рубрики: Delphi, Gamedev, indie, make delphi great again, Steam, игра своими руками, история создания, разработка игрВсем привет! Я хочу рассказать историю разработки игры на Delphi от идеи до релиза.
Статья больше носит характер истории, без вникания в подробности реализации. Честно говоря, очень хочется написать про то, как мы строим картинку в игре, или локализуем её, как мы делали GUI, но это я выделю в отдельную статью, больше техническую, с кодом. Иначе эта окажется слишком большой. Кода тут не будет, но детали под катом. Прошу!
Application.Initialize;
Итак. Игра наша придумана была давно для конкурса разработки игр (джема) IGDC №77 — джампер Это было начало 2012 года. Игру мы делали в состоянии перманентного кранча аж две недели. Код вышел ужасным. Расширять было невозможно, порой возникали необъяснимые глюки, но в целом игра работала и некоторые товарищи умудрялись проводить в ней дни, недели. Пара человек залипали в течение месяца. Стало понятно, что реиграбельность у неё хорошая и надо бы её доделывать. Но, как я сказал выше, код был ужасен из-за скомканных сроков, так что доделок было сделано не очень много и всё благополучно забыто.
Читать полностью »
Утюги или почти треугольные корабли
2017-03-14 в 12:19, admin, рубрики: Mitsubishi Heavy Industries, дизайн, Научно-популярное, норвегия, промышленный дизайн, сейсморазведка, транспорт, транспорт будущего, Читальный зал, электронная разведка, япония
Ведя со знакомыми диспут об эскадренных миноносцах-вертолётоносцах типа Hyūga (16DDH), порождение IHI Corporation (Япония), по вопросу: японский ли это «Мистраль» или масштабированный в «минус» советский авианесущий крейсер (ТАВКр пр. 1143), потроша сайты японской судостроительной промышленности, случайно наткнулся на творение Mitsubishi Heavy Industries судов Ramform(SSS) W-класса, о коих я и не знал и не слыхивал. Прежде, чем перейти к ним, не удержусь, и приведу фото самого предмета спора и цитату из wiki:
Официальная классификация как эсминец-вертолётоносец не соответствует реальным боевым возможностям корабля. Корабль значительно превышает по водоизмещению эсминцы-вертолётоносцы предшествующих типов, имеет сплошную полётную палубу и относительно большую авиагруппу, что позволяет классифицировать его как лёгкий авианосец. Авторитетный военно-морской справочник Jane’s Fighting Ships классифицирует его как вертолётоносец
Блокчейн в сельском хозяйстве: руководство для фермеров
2017-03-14 в 12:14, admin, рубрики: emercoin, hashflare, Блог компании HashFlare, блокчейн, Криптовалюты, сельское хозяйство, финансыВ прошлом году в Emercoin обратился Михаил Шляпников — глава фермерского хозяйства Колионово, ставший в настоящее время первым в мире фермером, успешно использующим блокчейн в сельском хозяйстве. Сегодня в Emercoin и к Михаилу все чаще поступают вопросы: «Как использовать блокчейн в сельском хозяйстве? С чего начать? Будет ли выгоден блокчейн для меня? » и т.д. Опираясь не на теорию, а на практику, команда Emercoin создала пошаговую инструкцию применения блокчейн-технологии для фермеров.
С блокчейном будущее сельского хозяйства стало чуть ближе
Читать полностью »
Мониторинг работы windows-службы с помощью Zidium
2017-03-14 в 12:04, admin, рубрики: .net, C# .net Zidium monitoring saas, метки: C# .net Zidium monitoring saasВсем привет. В этой статье я расскажу, как контролировать работу windows-службы с помощью системы мониторинга Zidium.
Зачем мониторинг?
Сначала о том, что такое мониторинг и зачем вообще он нужен. Был у меня заказ на приложение, которое должно собирать данные с нескольких систем, выполнять аналитику, и отправлять данные в систему отчётов. Приложение я реализовал в виде windows-службы, развернул на хостинге. Заказчик передал дальнейшее сопровождение службы мне на аутсорс, то есть я отвечаю за её работоспособность и за исправление ошибок.
Но возник вопрос — как мне отслеживать возможные проблемы со службой?
Что, если служба остановится из-за внутренней ошибки или зависнет? Я об этом не узнаю, пока заказчик не предъявит мне претензию, что данные несколько дней не обновлялись. Кроме того, мне нужны данные о случающихся ошибках, логи для анализа и т.п.
Читать полностью »
Универсализация классов сущностей в CMS 1C-Bitrix
2017-03-14 в 12:04, admin, рубрики: 1С-Битрикс, php, метки: 1С-Битрикс, bitrix, PHPЯ веб-разработчик и так сложилось, что я работаю именно на Битриксе. Свое нытье и недовольство в адрес этой CMS я опущу, т.к. об этом уже написано достаточно. Здесь я хочу поделиться решением одной проблемы, которую встретил на своем пути, работая с сущностями в Битриксе, а именно с неуниверсальностью кода.