Впервые я познакомился с программированием в 6 классе… Тогда это был старинный компилятор borland pascal, который мог запускаться только с помощью эмулирования MS-DOS. С тех пор прошло 6 лет… Маленький мальчик вырос и стал писать более читаемый код, а судьба привела его в один из лучших технических вузов страны. Но те 6 лет не прошли даром. В течение них накапливался огромный пласт противоречий, которые заставляли его искать все более и более совершенный язык… Так появился на свет Ctag — продукт переосмысления достижений человечества.
Читать полностью »
Рубрика «c++» - 130
Язык программирования Сtag. Вступление
2017-01-18 в 11:04, admin, рубрики: c++, python, язык программированияКросскомпиляция под ARM
2017-01-17 в 10:58, admin, рубрики: c++, crosscompile, linux, qemu, метки: crosscompileДостаточно давно хотел освоить сабж, но всё были другие более приоритетные дела. И вот настала очередь кросскомпиляции.
В данном посте будут описаны:
- Инструменты
- Элементарная технология кросскомпиляции
- И, собственно, HOW2
Кому это интересно, прошу под кат.
Читать полностью »
Типичные ошибки начинающих работать с изображениями
2017-01-16 в 9:36, admin, рубрики: C#, c++, java, обработка изображений, обучение, ошибки, Программирование, метки: Обработка изображенийЦифровая обработка изображений — весьма интересная область, но она таит в себе множество подводных камней, на которые постоянно натыкаются новички. Мы активно привлекаем студентов к участию в грантах и проектах, но когда мы пытались давать студентам реальные задания, которые требуют реализации новых алгоритмов обработки изображений, мы были в ужасе от совершаемых ими детских ошибок.
Поэтому перед постановкой полноценных задач мы стали давать студентам ряд практических заданий по реализации стандартных алгоритмов обработки изображений: базовые операции над изображениями (поворот, размытие), свёртка, интерполяция с помощью простых фильтров (билинейная, бикубическая), направленная интерполяция, выделение границ с помощью алгоритма Канни, детектирование ключевых точек и т.д. Язык программирования мог быть любым, однако при выполнении заданий не допускается использование сторонних библиотек, за исключением чтения и записи изображений. Это связано с тем, что задания носят обучающий характер, самостоятельная реализация алгоритмов является хорошей практикой в программировании и позволяет понять, как работают методы изнутри.
Данная статья описывает наиболее частые ошибки, совершаемые студентами при выполнении практических заданий по обработке изображений. Изображения обычные, никакой экзотики типа 16-битной глубины цвета, панхроматичности и 3D-изображений нет.
Эта история произошла почти месяц назад. Постучал ко мне в скайп некий Егор.
Егор: Здравствуйте, фрилансеров ищите?)
Я: А вы что умеете?
Егор: А мы, собственно, толком ничего не умеем и хотим работать за опыт.)
Егор оказался неплохо подкованным пареньком и я предложил ему потестировать нашу либу cjCore.
Надо пояснить, что это такое. На гитхабе у нас есть репозиторий, куда мы сваливаем свои наработки, а cjCore — это одна из наших библиотек на C++.
Егор клонировал себе либу и попытался её скомпилировать, но не тут-то было. У него возникли проблемы с компиляцией нашей юникодной String.
Читать полностью »
Нейросетка играет в Доту
2017-01-15 в 22:52, admin, рубрики: c++, deep learning, reinforcement learning, TensorFlow, Алгоритмы, ИНС, искусственный интеллект, машинное обучение, нейронные сети, обучение с подкреплением, Программирование, Разработка робототехники
Всем привет! На самом деле нейросетка играет не в привычную Dota 2, а в RussianAICup 2016 CodeWizards. RussianAICup — это ежегодное открытое соревнование по программированию искусственного интеллекта. Участвовать в этом соревновании довольно интересно. В этом году темой была игра похожая на Доту. Так как я уже какое-то время занимаюсь обучением с подкреплением, то мне хотелось попробовать применить это в RussianAICup. Главной целью было научить нейронную сеть играть в эту игру, хотя занятие призового места — это, конечно, было бы приятно. В итоге нейросеть держится в районе 700 места. Что, я считаю, неплохо, ввиду ограничений соревнования. В этой статье речь пойдет скорее об обучении с подкреплением и алгоритмах DDPG и DQN, а не о самом соревновании.
Читать полностью »
Неприлично простая реализация неприлично простого алгоритма генерации лабиринта
2017-01-14 в 17:54, admin, рубрики: c++, Алгоритмы, генерация, генерация лабиринтов, длиннопост, Лабиринт, лабиринтостроительство, много кодаПродолжение этой статьи об очень простом алгоритме генерации прямоугольных лабиринтов. В этой статье я приведу мою реализацию алгоритма на С++, а также покажу несколько дополнительных функций, которые породил мой скучающий мозг. Если осмелитесь продолжить читать, убедитесь, что ознакомились с моей предыдущей статьей. Глянули? Молодцы, продолжаем.Читать полностью »
tiny-dnn — анонс библиотеки
2017-01-13 в 16:11, admin, рубрики: c++, deep learning, машинное обучение, нейросеть
Пока TensorFlow активно завоевывает мир, воюет за аудиторию с такими крупными игроками рынка машинного обучения и глубоких нейронных сетей как Keras, Theano и Caffe, другие менее грандиозные проекты тем временем партизанят, пытаясь занять хоть какую-нибудь нишу. Про один из таких проектов я как раз и хотел сегодня рассказать ввиду полного отсутствия информации о нем на Хабрахабре. Итак, tiny-dnn — это полностью автономная C++11 реализация глубинного обучения, созданная для применения в условиях ограниченных вычислительных ресурсов, встроенных систем или IoT. Подробности под катом.
Читать полностью »
C++17 изменения вывода auto при фигурной инициализации
2017-01-13 в 12:29, admin, рубрики: c++, c++17В GCC7 реализован последний стандарт С++17 (будет принят в этом году)
gcc.gnu.org/projects/cxx-status.html#cxx1z
Хотелось бы обратить внимание, что изменились правила вывода типа auto при фигурной инициализации.
Windows: Sleep(0.5)
2017-01-12 в 13:45, admin, рубрики: api, c++, native api, WinAPI, разработка под windowsКак, наверняка, многие знают, в WinAPI'шную функцию Sleep передаётся число миллисекунд, на сколько мы хотим уснуть. Поэтому минимум, что мы можем запросить — это уснуть на 1 миллисекунду. Но что если мы хотим спать ещё меньше? Для интересующихся, как это сделать в картинках, добро пожаловать, под кат.
Читать полностью »
Как PVS-Studio ищет ошибки: методики и технологии
2017-01-12 в 11:31, admin, рубрики: C, C#, c++, pvs-studio, Блог компании PVS-Studio, информационная безопасность, Компиляторы, разработка программного обеспечения, Си, статический анализ, статический анализ кода, статический анализатор кодаPVS-Studio — статический анализатор исходного кода для поиска ошибок и уязвимостей в программах на языке C, C++ и C#. В этой статье я хочу дать обзор технологий, которые мы используем в анализаторе PVS-Studio для выявления ошибок в коде программ. Помимо общей теоретической информации я буду на практических примерах показывать, как та или иная технология позволяет выявлять ошибки.
Введение
Поводом для написания статьи стало моё выступление с докладом на открытой конференции ИСП РАН 2016 (ISPRAS OPEN 2016), проходившей в первых числах декабря в Главном здании Российской академии наук. Тема доклада: «Принципы работы статического анализатора кода PVS-Studio» (презентация в формате pptx).
К сожалению, время выступления было сильно ограничено, поэтому мне пришлось подготовить весьма короткую презентацию и не рассказать в докладе многое из того, что хотелось. Поэтому я решил написать эту статью, где более подробно расскажу о том, какие подходы и алгоритмы мы используем при разработке проекта PVS-Studio.
Читать полностью »