• Знакомство с WebAssembly


      Эта статья основана на моём выступлении на ITSubbotnik, прошедшем в Рязани 14 октября 2017 года. На русском пока что довольно мало материала на эту тему, надеюсь что статья будет вам полезна.


      Disclaimer: Автор не является экспертом ни в WebAssembly, ни в JavaScript. Данная статья есть компиляция мыслей и идей, полученных из выступлений других людей на данную тему, плюс эпизодического опыта изучения WebAssembly в течение нескольких месяцев.

      Читать дальше →
    • Варианты operator<< для логгера

        Уважаемые хабровчане, у меня родилась публикация — вопрос. С удовольствием выслушаю вашу критику в комментариях.


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

        Читать дальше →
      • Работа с API КОМПАС-3D → Урок 5 → Графические примитивы

        • Tutorial
        Продолжаем цикл статей по работе с API САПР КОМПАС-3D Сергея Норсеева, инженера-программиста АО «ВНИИ «Сигнал», автора книги «Разработка приложений под КОМПАС в Delphi». В качестве среды используется C++ Builder. В предыдущих уроках по API КОМПАС Основы и Оформление чертежа мы исходили из того, что КОМПАС не запущен, в уроке Корректное подключение к КОМПАС мы проверяли наличие уже запущенного КОМПАСа и подключались к нему. В прошлом уроке Основная надпись разбирали, как заполнить основную надпись чертежа. В этом уроке продолжим рассмотрение интерфейсов системы КОМПАС и наконец-то начнем чертить.


        Читать дальше →
      • Статические анализаторы кода на примере ClickHouse

          Чуть больше месяца назад была опубликована статья, содержащая анализ исходного кода ClickHouse с помощью PVS-Studio. Статья оказалась достаточно успешной: так, ссылку на неё мне отправили по меньшей мере десять раз в день её публикации. Общий тон статьи позитивный, а посещаемость сайта clickhouse.yandex в день её выхода заметно выросла.


          Я очень уважаю, когда какая-либо компания или человек делает свою работу исчерпывающим образом. Так, у PVS-Studio исчерпывающий подход к продвижению: одних только статей на Хабре 337 штук. Они проводят доклады почти на всех российских конференциях по C++. В любом случае стоит отметить: люди стараются и своим трудом приносят пользу другим людям.


          Та статья пробудила в нас интерес к статическим анализаторам, и мы решили проверить работу нескольких общедоступных аналогов PVS-Studio на кодовой базе ClickHouse. В сегодняшней статье мы поделимся с вами результатами этого исследования.


          Читать дальше →
          • +90
          • 10,2k
          • 8
        • UB-2017. Часть 1

          • Перевод
          От переводчика:
          Переводы статьи про неопределённое поведение в языке C от Криса Латтнера, одного из ведущих разработчиков проекта LLVM, вызвали большой интерес, и даже некоторое непонимание со стороны тех, кто не встречался с описываемыми явлениями на практике. В своей статье Крис даёт ссылку на блог Джона Реджера, и на его статью от 2010 года, посвящённую UB в C и C++. Но в блоге Реджера есть и гораздо более новые статьи на эту тему (что не отменяет ценность старых, однако).

          Я хочу предложить вашему вниманию свежую статью «Undefined Behavior in 2017». Статья в оригинале имеет очень большой объём, и я разбил её на части.

          В первой части речь пойдёт о разных инструментах поиска UB: ASan, UBSan, TSan и т.д.
          ASan — Address Sanitizer от компании Google, разработанный на основе LLVM.
          UBSan — Undefined Behavior Sanitizer, предназначен для обнаружения различных UB в программах на C и C++, доступен для Clang и GCC.
          TSan — Thread Sanitizer, предназначен для обнаружения UB в многопоточных программах.
          Если вам эта тема покажется далёкой от практики, я рекомендую дождаться продолжения, потому что в конце вас ждёт поистине огромный список UB языка С++ (их должно быть около 200!)
          И я рекомендую прочитать также старые статьи Реджера, они не утратили актуальности.
          Об авторе: Джон Реджер является профессором Computer Science в университете штата Юта в США.


          Мы часто слышим, что некоторые люди утверждают, что проблемы, вытекающие из неопределённого поведения (UB) в C и C++ в основном решены путём широкого распространения инструментов динамической проверки, таких, как ASan, UBSan, MSan и TSan. Мы здесь покажем очевидное: несмотря на то, что в последние годы произошло множество прекрасных улучшений в этих инструментах, проблемы UB далеки от разрешения, и рассмотрим ситуацию в деталях.


          Читать дальше →
        • CoLaboratory: приглашаем на C++ User Group Meetup



            15 ноября мы приглашаем всех неравнодушных к C++ на встречу с коллегами по цеху в рамках нашего проекта CoLaboratory. Резиденты C++ User Group сосредоточатся исключительно на практической стороне использования любимого инструмента программирования.

            Поговорим на разные темы. Например, как clang и библиотека «libtooling» помогают «Лаборатории Касперского» автоматически генерировать код? Когда же наконец в C++ появятся «рефлекшены» и в каком виде попадут в стандарт? Какие подводные камни могут встретиться на пути проектирования «пула потоков» для высоконагруженной системы и соответственно как с ними бороться?
            Читать дальше →
          • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

            Подробнее
            Реклама
          • Unreal Engine: QuickStart в Qt Creator под Arch Linux

            • Tutorial

            Введение


            В марте 2015 года Epic Games повернулась лицом к Open Source сообществу, предоставив бесплатный доступ к своему движку Unreal Engine версии 4 (установив лимит на прибыль от использования движка в 3000$ за квартал). Более того, еще в 2014 году компания говорила о том, что поддержка свободных операционных систем, в частности Linux, является для неё одной из приоритетных задач.



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

            Однако, при кажущейся прозрачности процесса развертывания рабочего окружения, существует ряд мелких, но неприятных нюансов, затрудняющих жизнь поклонникам пингвинов. Под катом краткое и вольное описание особенностей установки движка, с которыми столкнулся автор, призванное разрешить некоторые из трудностей, с которыми сталкиваются новички.
            Читать дальше →
          • Бестиарий С++. Справочник по загадочным персонажам

            • Перевод


            В C++ в изобилии встречаются подводные камни, ловушки, оговорки и западни. В подземельях С++ скрываются многочисленные подозрительные персонажи. Хэллоуин — правильное время для встречи с некоторыми представителями этой многочисленной своры чудовищ.

            Читать дальше →
          • О стеке простыми словами — для студентов и просто начинающих

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

            Читать дальше →
          • Cocos2d-x — Диспетчер событий

            • Tutorial

            От переводчика


            Доброго времени суток! Эта статья представляет собой перевод документации к движку Cocos2d-x.

            В предыдущих частях мы уже рассмотрели большинство основных компонентов движка:

            Sprite
            Action
            UI Components
            Scene и другие

            Нам осталось совсем немного для создания полноценной игры. А именно, обеспечить сам игровой процесс. Для этого, в Cocos2d-x существует диспетчер событий.
            Читать дальше →
          Самое читаемое