
C++ *
Типизированный язык программирования
Работа с приватными репозиториями и другие обновления платформы FlyElephant

Команда платформы FlyElephant подготовила ряд обновлений, которые позволяют работать с приватными репозиториями, повышают безопасность системы и улучшают работу с задачами.
FlyElephant — это платформа для ученых, которая предоставляет готовую вычислительную инфраструктуру для проведения расчетов, помогает находить партнеров и совместно работать над проектами, а также управлять всеми данными из одного места. FlyElephant автоматизирует рутинные задачи и позволяет сосредоточиться на основных вопросах исследований.
В качестве вычислительного ресурса используется облако Azure. Пользователи могут запускать вычислительные задачи, написанные с помощью С++ (с поддержкой OpenMP), R, Python, Octave, Scilab, Java, Julia, OpenFOAM, GROMACS, Blender на серверах с количеством ядер от 1 до 32 и оперативной памятью до 448 ГБ.
Среди нововведений можно отметить следующие:
Профилировка производительности и памяти с разных углов обзора
Выбор инструмента

Проблема профилировки рано или поздно встает перед любым проектом, претендующим на роль лучшего в своей области. Какой инструмент выбрать — всегда большой вопрос. Одни инструменты показывают одну часть картины, другие другую. И рано или поздно начинаешь писать свой тул (англ. tool — орудие\инструмент), который отвечает на насущные проблемы именно данного конкретного проекта. Однако время на написание своего «орудия» всегда приходится вычитать из времени отведенного на сам проект.
Поэтому серьезный профайлер написать не получается…
Но как получить все и сразу? (Тут мне почему то вспоминается песня Queen «I want it all»)
Моки, фейки и заглушки на C++

Вперед, на поиски палиндромов 2
«The decimal number 585 is 1001001001 in binary. It is palindromic in both bases. Find n-th palindromic number». Или, по-русски: «Десятичное число 585 в двоичной системе счисления выглядит как 1001001001. Оно является палиндромом в обеих системах счисления. Найдите n-й подобный палиндром».
Управление осциллографами Tektronix из Visual Studio
Защищенное TLS-соединение с использованием Boost.Asio и OpenSSL под Windows
Введение
Однажды мне потребовалось создать защищенный канал связи между своим сервером и своим приложением. Я помнил, что в документации к Boost Asio упоминалось, что он может работать с защищенными соединениями, используя OpenSSL. Я начал искать информацию по этой теме, но, увы, мало что нашел, тем более под Windows. Так что теперь, разобравшись с этим вопросом, я решил написать эту инструкцию, чтобы другим людям было проще разобраться.
GET/POST запросы в Qt или обёртка над QNetworkAccessManager
Легендарные книги Амазона. Продолжение темы «Elements of Programming Interviews: The Insiders' Guide»
В начале лета мы уже говорили об одной из легенд Амазона «Elements of Programming Interviews: The Insiders' Guide».

Elements of Programming Interviews in Java: The Insiders' Guide
Избитая банальность. Как школьник бота писал
Бот задумывался для развлечения как «говорилка» на десктоп. Ужасно, правда? Но мне хочется узнать свои ошибки, ведь я ни разу не показывал свой код кому-либо, в школе только паскаль. Итак, следуя ненавидимому некоторыми чистому структурному подходу я написал первоначальный вариант на C++.
Задумка такова.
C++. От ламера до программера

У нас вышла книга Алекса Эллайна «C++. От ламера до программера»
Прототип: Jumping into C++ Paperback – April 19, 2013
Эта книга предлагает быстрый способ изучить принципы объектно-ориентированного программирования и освоить практику программирования на языке С++. Издание может использоваться как учебный курс для начинающих осваивать C++, так и удобный справочник для тех, кто хочет быстро найти актуальную информацию о том или ином аспекте языка. Автор книги Алекс Эллайн — профеcсиональный разработчик на С++, создатель популярнейшего ресурса Cprogramming.com, предлагает собственную уникальную методику обучения программирования, которая позволит вам в кратчайшие сроки стать экcпертом разработки на C++.
Сериализация C++ с полиморфизмом и прототипами
Для начала я предположил, что нам все-таки придется унаследовать в базовом классе интерфейс iSerializable, такого вида:
class iSerializable
{
public:
virtual void serialize (Node node) = 0;
};
Унификация ассоциативных STL-контейнеров шаблонным параметром — компаратором
std::multiset<int> set0, set1;
for (auto it = set0.begin(); it != set0.end(); ++it) {
// длинная
// обработка
// *it
}
for (auto it = set1.rbegin(); it != set1.rend(); ++it) {
// длинная
// обработка
// *it
}
Обработка в телах циклов — одинаковая, иными словами требуется одинаково обработать элементы двух мультимножеств: первого — в прямом порядке, второго — в обратном.
Ближайшие события
TIZEN Developer Summit & Hakathon 2013: взгляд из Нью-Йорка, Сеула и Владивостока
AngelScript
Введение
В процессе рассмотрения LUA и Python я выделил для себя, что LUA является достаточно быстрым, но с немного непривычным синтаксисом. Python же обладает очень простым синтаксисом и массой полезных библиотек, но, к сожалению, он оказался довольно медленным, и его довольно тяжело привязывать к С++. И тут на работе мне подсказали использовать AngelScript, мол, он удобный для связки, быстрее LUA и имеет С-подобный синтаксис. Как только я начал его изучать, я понял, что это тот самый скриптовый язык моей мечты.
Превью
Вот что можно прочитать про этот язык на Википедии:
AngelScript представляет собой движок, в котором приложение может регистрировать функции, свойства и типы, которые могут использоваться в скриптах. Скрипты компилируются в модули. Количество используемых модулей варьрируется в зависимости от нужд. Приложение может также использовать различные интерфейсы для каждого модуля с помощью групп конфигурации. Это особенно полезно, когда приложение работает с несколькими типами скриптов, например, GUI, AI и т.д.
Программа «Hello, world» в простейшем случае выглядит так:
void main()
{
print("Hello world\n");
}
How Non-Member Functions Improve Encapsulation (C++)
Мысль там излагается понятная и верная, но все же по-моему в статье есть большая недосказанность.
Говоря кратко, в этой статье Мейерс утверждает, что вынесение функций из класса всегда делает код более инкапсулированным.
Борьба с техническими долгами: как не допустить разрастания костылей в коде

Привет, Хабр! (И тебе, отчаянный страдалец, зашедший сюда в перерыве между дебагом очередного if (a == b) { return true; } else { return false; }
. Мы знаем, ты не виноват, так вышло).
Каждый разработчик хоть раз в жизни прилаживал к своему коду «костыль». Знакомое чувство, правда?
Как мы внедряли Dynatrace в банке для мониторинга Kafka, БД и Java/C++ сервисов
Я работаю в одном крупном российском банке, где занимаюсь разработкой распределённых систем. За последние несколько лет наша архитектура заметно усложнилась — часть сервисов работает в OpenShift, часть на виртуалках, а кое-что до сих пор крутится на «железе».
Основная боль заключалась в том, что у нас не было единой системы мониторинга. Метрики мы собирали из разных источников: где-то стоял Prometheus, где-то — Zabbix, в Kafka писали свои дашборды, а для C++ приложений вообще не было нормального мониторинга. Каждый инцидент превращался в расследование: мы переключались между тремя-четырьмя консолями, сверяли логи, писали временные скрипты для выгрузки метрик. В среднем на поиск корневой причины (root cause analysis) у нас уходило от нескольких часов до пары дней.
Минимальный «эксплойт» на Си, который научил меня любить защиты

Я всегда считал, что взлом — это магия адресов и байтов. А потом я написал десять строчек на C и понял, что настоящая магия — это защиты компилятора и ОС. В этой статье я сознательно построю крохотный уязвимый пример, добьюсь управляемого падения (это и будет мой «эксплойт»), а затем превращу баг в безопасный и быстрый код. Ни одного шага против чужих систем — только локальная лаборатория и гигиена памяти.
Всё про std::search и где его применять

Привет, Хабр!
Сегодня мы рассмотрим без преувеличений один из самых недооценённых алгоритмов стандартной библиотеки — std::search
. Разберёмся, как он устроен, где реально экономит процессорные тики, а где лучше заменить его на что-то иное.
Вклад авторов
Andrey2008 7246.2dalerank 2712.0tangro 2409.0SvyatoslavMC 2388.0antoshkka 2369.4haqreu 1498.0olegchir 968.2khizmax 945.4eao197 909.0Kelbon 783.0