LINUX.ORG.RU

C++


362

17

Всего сообщений: 224

Конференция C++ Siberia 2016, Новосибирск

Группа Конференции и встречи

26–27 августа 2016 в Новосибирск пройдет очередная конференция, посвященная исключительно C++.

Открывать конференцию будет Антон Полухин: автор книги «Boost C++ Application Development Cookbook», активный контрибьютор Boost, автор библиотеки Boost.TypeIndex, мейнтейнер Boost.Any, Boost.LexicalCast, член национальной рабочей группы комитета по стандартизации C++. Также выступят Алексей Кутумов, Александр Гранин, Борис Сазонов, Антон Бикинеев и другие докладчики. Обсудим скорый релиз C++17 и как теперь жить, немного функциональщины в C++, вывод типов и другие интересные темы.

Ознакомиться с программой и приобрести билеты можно на сайте конференции.

До встречи!

>>> Подробности и регистрация

 , ,

sermp
()

Написал небольшую книгу для C/C++ программистов

Группа Документация

Здравствуйте. Меня зовут Андрей Карпов. Сфера моих интересов - язык C/C++ и продвижение методологии статического анализа кода. На протяжении пяти лет я являюсь Microsoft MVP в номинации Visual C++. Основная цель моих статей и работы, сделать код программ немножко безопасней и качественней. Буду рад, если эта мини-книга научит вас писать более надежный код и предостережет от некоторых типовых ошибок. Немало полезного здесь можно будет почерпнуть и тем, кто занимается написанием стандартов кодирования для своих компаний.

Немного истории. Не так давно я создал ресурс, на котором делился различными полезными советами по программированию на языке С++. Ресурс не собрал ожидаемое количество подписчиков, поэтому я не вижу смысла приводить здесь на него ссылку. Сайт просуществует какое-то время, после чего уйдет в небытие. А вот советы достойны сохранения. Поэтому я доработал, пополнил эти советы и объединил их в единый текст. Желаю приятного чтения.

UPD: PDF-версия: https://yadi.sk/i/RCHauHFBr2cSs

P.S. Пользуясь случаем приглашаю всех желающих последовать за мной в Twitter: @Code_Analysis.

>>> Главный вопрос программирования, рефакторинга и всего такого

 , , , ,

Andrey_Karpov_2009
()

Оцениваем качество кода пакета стоимостью 10000$

Группа Проприетарное ПО

Часто можно встретить дискуссии на тему, какой код качественней, закрытый или открытый. Лично мое мнение - разницы нет. Я видел много кода, как открытого, так и закрытого. И там и там, я встречал и хороший и плохой код.

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

Итак, предлагаю вашему вниманию статью: Плохой код пакета для создания 2D-анимаций Toonz.

OpenToonz - это программное обеспечение для создания 2D анимации. Основой является проект «Toonz», который разработала итальянская компания Digital Video. Адаптировав эту программу, Studio Ghibli успешно использует ее уже много лет. Кроме мультипликационных картин проект также был задействован и в компьютерных играх — Discworld 2 и Claw.

Стоит отметить, что цена пакета до настоящего момента составляла $10000.

С помощью рассматриваемого кода, создавали «Ходячий замок Хоула», «Унесенных призраками», «Рыбку Поньо», а также множество других картин. В их числе так же мультфильм «Футурама»!

>>> Подробности

 , , , ,

Andrey_Karpov_2009
()

Выход Qt 5.6

Группа Open Source

Для нового Qt 5.6 разработчики обещают долговременную поддержку (LTS). Предыдущим LTS релизом был Qt 4.8.

Список изменений:

  • Полностью переписана поддержка hi-dpi экранов.
  • Теперь, приложения Qt, основанные на плотности пикселов позволяют автоматически подстраивать размеры шрифтов, пиктограмм, элементы окон и графику.
  • Webkit и Qt Quick 1 удалены.
  • Новая система CI, получившая название «Coin for COntinuos INtegration»
  • Уменьшение затрат памяти на использование динамических свойств
  • Возможность лога непосредственно в syslog на Линуксе
  • Новый класс QVersionNumber
  • Множество оптимизаций в производительности QString
  • Добавлен метод QHostAddress::isMulticast()
  • Улучшена кроссплатформенная поддержка OpenGL ES 3.0 and 3.1
  • Возможность внутреннего рендеринга 16 бит на канал
  • Qt WebEngine теперь основан на Chromium 45 и поддерживает плагины pepper, включая Flash
  • В Qt Nfc добавлена поддержка Android

>>> Подробности

>>> Changelog

 ,

anonymous
()

Команда PVS-Studio: Свежий взгляд на код Oracle VM VirtualBox

Группа Проприетарное ПО

Использовать свои любимые дистрибутивы Linux в VirtualBox со временем становится затруднительно. В этом на своём опыте убедился Святослав Размыслов из команды PVS-Studio, который опубликовал статью о проверке Oracle VM VirtualBox. По его мнению, с VirtualBox 5.0.XX, стабильность работы программы заметно ухудшилась.

Но вернемся к сути статьи. Мы уже встречались на сайте с работой Святослава и активно её обсуждали. Думаю, есть повод для новой дискуссии о качестве открытых проектов.

Напомню, что разработчики PVS-Studio славятся тем, что в целях рекламы своего продукта регулярно проверяют различные открытые проекты.

Это не первая статья о проверке исходного кода виртуальной машины. Почти два года назад в коде VirtualBox было найдено более 50 ошибок и их описание было опубликовано двумя статьями (1, 2). К счастью, все те предупреждения анализатора разработчики исправили, но качество исходного кода постоянно ухудшается. О чём говорит снижение стабильности последних версий программы и несколько десятков новых ошибок, найденных с помощью PVS-Studio.

Пара слов для программистов, ещё не знакомых с анализатором. Это инструмент для выявления ошибок в исходном коде программ, написанных на языках С, C++ и C#. PVS-Studio выполняет статический анализ кода и генерирует отчёт, помогающий программисту находить и устранять ошибки.

>>> Подробности

 , , ,

Andrey_Karpov_2009
()

Конференция C++ Russia 2016, Санкт-Петербург

Группа Конференции и встречи

26–27 февраля 2016 в Санкт-Петербурге пройдет крупнейшая в России конференция, посвященная исключительно C++.

Доклады на самые разные темы: от хардкорных корутин до энтерпрайзного мокирования, от создания краш-репортов до реактивного программирования. Кроме того: boost, стандартизация параллельного программирования в C++ и многое другое.

Открывать конференцию в этом году будет Гор Нишанов, ведущий программист C++ команды Microsoft. Также выступят Hartmut Kaiser — контрибьютор boost, руководитель разработки библиотеки HPX в университете Луизианны, Kirk Shoop — сотрудник Microsoft, автор библиотеки Rx.cpp, Joel Falcou — разработчик Boost.SIMD, Dori Exterman — CTO в IncrediBuild. Будут гости из Белоруссии — представители минского сообщества CoreHard.

>>> Подробности и регистрация на сайте

 , ,

sermp
()

Вышел Clasp 0.4

Группа Open Source

20 ноября вышел в свет Clasp 0.4 — новый релиз, включающий в себя совершенно новый компилятор, способный генерировать до 200 раз более быстрый код, чем его предшественник, так же улучшено взаимодействие с C++ и теперь реализация полнее соответствует стандарту ANSI Common Lisp.

Clasp — новая реализация Common Lisp с упором на легкое взаимодействие с библиотеками C++, используя LLVM для компиляции в нативный код, с целью использования большого количества существующих библиотек и программ. Встраивание их в среду Common Lisp'а позволяет воспользоваться быстрым прототипированием, инкрементальной разработкой и другими возможностями, делающими Common Lisp столь мощным языком.

Основные изменения:

  • Совершенно новый, оптимизирующий/встраивающий (inlining) компилятор — cclasp! (небольшое сравнение с C++ / SBCL / Python)
  • Значения типов fixnum, character и single-float теперь представлены напрямую.
  • Указатели на объекты и cons-ячейки теперь тегируются для скорости.
  • Библиотека Clbind позволяет программистам выставлять наружу внешние C++-библиотеки.
  • Множество исправлений ошибок и улучшений.

>>> Подробности

 , clasp, , ,

loz
()

Начало тестирования KDevelop 5.0

Группа KDE

После более чем года разработки, стала доступна первая бета-версия многоязыковой среды разработки KDevelop 5.0.

Новая версия примечательна следующими изменениями:

  • Код портирован на KDE frameworks 5 и Qt 5.
  • Встроенные парсер и семантический анализатор С++ заменены на работу с CLang. Данное решение позволило проекту избавиться от многих проблем со старым парсером, а также перенаправить усилия разработчиков проекта на улучшение KDevelop в других областях. Использование CLang также позволяет легко и на должном уровне получить поддержку языков C и Objective-C. Кроме того, предупреждения компилятора теперь будут также доступны в IDE, в ряде случаев исправляемые одним нажатием кнопки или комбинацией клавиш.
  • Плагин поддержки CMake теперь, вместо встроенного интерпретатора CMake, использует метаданные от самого CMake.
  • Проведена чистка кода.
  • Улучшения производительности.
  • Официальная поддержка QML, JS.
  • Официальная поддержка QMake.

Из планов проекта также отмечается желание обеспечить поддержку языков Rust и Go. Проект с радостью примет желающих помочь в работе над поддержкой этих языков.

>>> Подробности

 , , , ,

Pavval
()

28-29 августа в Новосибирске пройдёт конференция C++ Siberia

Группа Конференции и встречи

28-29 августа в Новосибирске пройдёт конференция C++ Siberia. Конференцию организует C++ User Group при поддержке Яндекса, 2Гис и PVS-Studio.

Будут представлены доклады о современном C++, различных библиотеках, подходы к решению разных прикладных проблем.

Открывать конференцию будет Eric Niebler, кроме того выступят Алексей Кутумов, Александр Гранин, Дмитрий Кашицын и другие.

>>> Подробности и регистрация на сайте

 ,

sermp
()

CopperSpice — форк Qt 4.8 с поддержкой С++11

Группа Open Source

Проект CopperSpice — это набор С++ библиотек производных от фреймворка Qt 4.8.

Его основной целью является переработка кодовой базы родительского проекта, чтобы иметь возможность полноценного использования шаблонов, метапрограммирования и нового стандарта Си++11. По мнению разработчиков, данные архитектурные решения позволили полностью отказаться от использования генератора кода известного как Moc (Qt Meta-Object Compiler).

Именно Moc, как таковой, не поддерживает многие возможности современного Си++ как то: шаблоны, сложные типы данных, статическую проверку типов и сильно связан с операциями строкового сравнения. Удаление Moc позволит увеличить производительность приложения, сделает процесс сборки более простым, а также позволит выявлять большее количество проблемного кода еще на этапе компиляции.

Кроме поддержки функциональности Qt 4.8, в CopperSpice выполняется портирование и некоторых классов Qt 5.

Код распространяется под лицензией LGPL.

Основные возможности фреймворка CopperSpice:

  • CopperSpice является форком Nokia LGPL Qt 4.8.2;
  • Qt Moc более не используется;
  • фреймворк написан на Си++11;
  • библиотека может быть напрямую слинкована с обычным приложением на Си++;
  • шаблонный класс может наследоваться от QObject;
  • для сборки библиотек CopperSpice используется привычный многим GNU Autotools.

Фреймворк предоставляет следующие библиотеки:CsCore, CsGui, CsMultimedia, CsNetwork, CsOpenGL, CsPhonon, CsSql, CsSvg, CsWebKit, CsXml и CsXmlPatterns.

По заявлению разработчиков конвертация проектов на Qt в CopperSpice легко осуществляется утилитой PepperMill.

>>> Подробности

 , ,

Twissel
()

Ситуация с библиотекой TagLib

Группа Open Source

С момента последнего релиза TagLib прошло полтора года, однако, несмотря на наличие множества исправлений в git, очередной релиз так и не выходит. Ситуация усложняется тем, что многие баги носят критический характер, например ошибка сегментации при работе с flac-файлами: https://github.com/taglib/taglib/issues/308

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

Напоминаем, что библиотека TagLib предназначена для работы с тегами аудио-файлов различных форматов и используется во многих популярных программах.

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

>>> Подробности

 ,

anonymous
()

Выпущен CLion 1.0 — IDE для C++ от JetBrains

Группа Проприетарное ПО

14 апреля вышел первый релиз CLion — новой кроссплатформенной IDE, дополняющей линейку продуктов от JetBrains поддержкой C и С++.

Заявленные особенности:

  • Поддержка С++11 стандарта на уровне редактора (самого языка и директив препроцессора). Также заявляется поддержка JavaScript, XML, HTML и CSS.
  • Поддерживаемые компиляторы: GCC/Clang (для Linux и OS X), MinGW 32/64 или Cygwin (для Windows).
  • Основная поддерживаемая система сборки — CMake. Автоматическая работа с CMakeLists.txt, автодополнение команд CMake, редактор CMakeCache.
  • Мощный редактор с умным автодополнением, знакомый по предыдущим IDE от JetBrains, анализ кода на лету и рефакторинги.
  • Встроенный дебаггер (основанный на GDB).
  • И многое другое...

На данный момент доступна только коммерческая версия с 30-дневным бесплатным триалом и специальными ценовыми предложениями для особых групп пользователей.

>>> Подробности

 , ,

Midael
()

Google открыла внутреннюю систему сборки — Bazel

Группа Google

Основные возможности

  • Поддержка разных языков программирования: Bazel поддерживает Java, Objective-C и C++, а также может быть расширен для поддержки других языков.
  • Высокоуровневый язык конфигурирования сборки: проекты конфигурируются с помощью языка BUILD-файлов, в компактном текстовом формате, который описывает проекты как наборы небольших, взаимосвязанных библиотек, исполняемых файлов и тестов. В отличии от Bazel, Makefile, например, содержат описания конкретных файлов и параметров запуска компилятора.
  • Поддержка множества платформ: один и тот же инструмент используется для сборки ПО для различных архитектур и даже разных платформ. Google использует Bazel для сборки как серверного ПО, так и клиентских приложений на мобильных телефонах.
  • Воспроизводимость результатов: в BUILD файлах каждая библиотека, тест или исполняемый файл прямо указывают свои непосредственные зависимости. Bazel использует эту информацию, чтобы определять, как пересобирать двоичные файлы и параллельно выполнять тесты. Это означает, что все сборки инкрементальны и приводят к одинаковым результатам.
  • Масштабируемость: Bazel легко справляется с большими сборками. В Google достаточно часто серверные приложения занимают 100k строк кода и сборки ветки без отличий от кода основного репозитория могут занимать около 200 мс.

( Почему не ... )

>>> Подробности

 , , ,

vertexua
()

Заморозка Qt 5.5 и отделение ветки dev

Группа Open Source

Согласно плану по выпуску новой версии Qt, произведена заморозка функциональных возможностей, а также отделение кода, предназначенного для разработчиков в отдельную ветку.

Некоторые новые возможности:

  • Поддержка GStreamer 1.0
  • QImage теперь поддерживает форматы 8-bit Alphamap и grayscale
  • Новый API для управления настройками видоискателя камеры
  • Поддержка javascript Geolocation API с QtLocation в качестве бэк-энда
  • В QtWebEngine добавлен API для управления загрузкой файлов
  • Добавлены нативные реализации виджета QWebView для Windows and Mac OS X

>>> Подробности

 ,

puding
()

В конце февраля в Москве пройдёт конференция C++ Russia

Группа Конференции и встречи

27-28 февраля в Москве пройдёт конференция C++ Russia. Конференцию организует C++ User Group при поддержке Лаборатории Касперского, PVS-Studio и JetBrains.

Будут представлены доклады о современном C++, различных библиотеках, новых подходах к созданию программ на C++. Большое внимание будет уделено асинхронности и мультипоточности.

Открывать конференцию будет Sean Parent, кроме того выступят Zoltan Porkolab, Bartosz Milewski, Максим Хижинский, Григорий Демченко и многие другие.

>>> Подробности и регистрация на сайте

 , ,

sermp
()

Вышел EAP релиз кроссплатформенной IDE для C++ от JetBrains

Группа Проприетарное ПО

Увидела свет первая публичная версия долгожданной C++ IDE на основе IntelliJ IDEA, популярной Java IDE. Пока поддержка C++ будет в коммерческой версии этой IDE. На данный момент поддерживается один тип проектов — на основе cmake. Ожидается поддержка qmake и makefile.

Ссылка для скачивания

>>> Подробности

 , ,

dizza
()

C++14 готов к публикации, стандарт ISO/IEC 14882:2014(E)

Группа Open Source

Обновленный язык программирования C++14 уже подготовлен к публикации как новый стандарт «International Standard ISO/IEC 14882:2014(E) Programming Language C++». Приятной особенностью будет доступность компиляторов соотвествующих новому стандарту (реализации предыдущих выпусков C++11 и C++98 заняло 2 и 5 лет соотвественно). Автор языка Bjarne Stroustrup надеется, что это обновление, подготовленное достаточно быстро и в намеченные сроки, позволит поддержать для C++ репутацию современного.

>>> Подробности

 

linuks
()

Voltair — кроссплатформенный платформер

Группа Игры

Разработчики из Fun Propulsion Labs (подразделение компании Google) объявили о выпуске свободной кроссплатформенной игры Voltair. Сюжет игры строится вокруг робота, затерянного на чужой планете и пытающегося найти портал в свой родной мир. Игра предлагает одно- и многопользовательские режимы игры, красивое оформление и интересный игровой процесс. Написана на С++ с помощью технологий QtQuick и, благодаря этому, способна работать на всех основных платформах (целевыми заявлены Linux, Android и Mac OS X). В качестве лицензии используется Apache Public License.

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

>>> Подробности

 , ,

keyran
()

KDE Frameworks 5

Группа KDE

Седьмое июля 2014.

Сообщество KDE с гордостью представляет KDE Frameworks 5.0. Frameworks 5 - это новое поколение приведённых к модульному виду библиотек KDE, оптимизированных для простоты интеграции с приложениями на Qt. Frameworks предлагают широкий спектр функциональности общего назначения в готовых рецензируемых и хорошо оттестированных библиотеках под открытой лицензией. В релиз входят более 50 различных модулей для интеграции аппаратного обеспечения, поддержки файловых форматов, предоставления дополнительных виджетов, проверки орфографии, методов отрисовки и многого другого.

KDE Frameworks представляют собой попытку переделки библиотек платформы KDE4 в набор независимых, кросс-платформенных модулей, которые будут немедленно доступны всем разработчикам на Qt для упрощения, ускорения и уменьшения цены разработки на Qt. Каждый из модулей обладает портируемостью, хорошей документацией; оттестирован и соблюдает стандарты Qt Project. Модули разработаны по доказавшей свою состоятельность модели разработки KDE со строгими сроками релизов, ясными и равными для любых третьих сторон возможностями принять участие, открытым управлением и гибким лицензированием (LGPL).

( читать дальше... )

>>> Подробности

 , ,

Adonai
()

Стипендиальная программа «ReactOS Year of Code»

Группа Open Source

После того, как проект ReactOS в очередной раз не получил слотов в Google Summer of Code, разработчики поскребли по сусекам и решили, что проект собрал достаточно пожертвований, чтобы открыть свою стипендиальную программу.

В результате ReactOS объявил о предоставлении вакансий для оплачиваемой работы над проектом в режиме полного рабочего дня или на условиях частичной занятости. Заявки с резюме и описанием достижений следует присылать по адресу jobs@reactos.org, работа может быть предоставлена как профессиональным разработчикам, так и студентам.

Все претенденты должны отвечать минимальным требованиям к квалификации, то есть учиться (или успешно завершить обучение) по специальностям Computer Science, Computer Engineering, Software Engineering или связанными с ними, разбираться в принципах построения операционных систем и уметь программировать на языке С или C++, а также продемонстрировать свою способность участия в разработке ReactOS путём подготовки актуальных патчей.

>>> Подробности

 , , ,

Jedi-to-be
()