Date | Title | Description |
27.08.2025 | Boost My School: $10 Million Raised To Transform K-12 Fundraising For Advancement Teams | Boost My School, a fundraising platform specifically designed for K-12 educational institutions, has announced that it has secured $10 million in funding to transform the way advancement teams engage with their communities and increase reve... |
10.02.2025 | inplace_vector: новый контейнер C++26 | Вы когда-нибудь мечтали о динамически расширяемом последовательном контейнере с фиксированной емкостью, хранящем свои элементы на стеке? Комитет по стандартизации C++ исполняет желания! Теперь вам не нужно обращаться к Boost.Container за bo... |
06.02.2025 | std::vector::erase. Что-то здесь не так | Редкая задача в программировании решается без контейнеров. В C++ наиболее часто используемый контейнер - std::vector (возможно кто-то не согласится и скажет: "Зачем std::vector, когда есть boost", но это дела не меняет).
При работ... |
01.02.2025 | Создание бота для телеграмма на c++, используя библиотеку Boost | Вступление
Создание Telegram-ботов обычно ассоциируется с Python , но C++ — это мощная альтернатива для тех, кто ценит производительность и контроль над ресурсами. Использовать мы будем библиотеку Boost для работы с https запросами.
Если ну... |
28.01.2025 | Сборка проектов Си и Си++: от простого к сложному. Часть I. Библиотеки | Каждый раз, в течение многих лет, собирая пилотную версию мизерного проекта или простой утилиты, мне кажется, что уж в этот раз точно обойдусь обычным скриптом для сборки, и никакие сборщики проекта мне не понадобятся. Но суровая реальность... |
18.01.2025 | The Future of Augmented Reality in Web Development: A 2025 Perspective | Augmented Reality (AR) is no longer a futuristic concept. It’s here, reshaping how we interact with the digital world. As we step into 2025, the landscape of AR in web development is evolving rapidly. Developers are now equipped with a vari... |
17.01.2025 | Зачем мы написали библиотеку для создания телеграм ботов на С++? | Сейчас телеграм боты крайне популярны, вкратце что они из себя представляют: чтобы создать своего бота нужно получить токен у @BotFather, а потом используя его обращаться в HTTP API для получения обновлений (Update)
Есть два способа получен... |
15.01.2025 | Цикл в RegEx для поиска подстрок с условием | Изобретение
Я хочу поделиться своим изобретением, которое позволяет вам использовать только одно регулярное выражение, которое будет искать подстроку в строке с определенным условием. Если хотите, называйте это циклом в RegEx, которого рань... |
03.01.2025 | The Future of C++: Static Reflection and Its Implications | C++ is evolving. The upcoming C++26 standard promises to introduce static reflection, a feature that could revolutionize how developers interact with their code. Static reflection allows programs to observe and manipulate their own structur... |
02.01.2025 | Статическая рефлексия в C++ | Статическая рефлексия обсуждается в грядущем C++26. Wu Yongwei демонстрирует, как применять рефлексию уже сейчас, и показывает примеры того, что может быть станет возможным в C++26.
Статическая рефлексия станет важной частью генерации прогр... |
29.12.2024 | The Race for Performance: Optimizing Ring Buffers in C++ | In the world of programming, speed is king. Every millisecond counts. When it comes to data structures, the ring buffer stands out as a champion. It’s a simple yet powerful tool, especially in concurrent programming. But like any champion, ... |
28.12.2024 | Оптимизация кольцевого буфера для повышения пропускной способности | В этой статье мы рассмотрим классический конкурентный кольцевой буфер и обсудим, как его можно оптимизировать для повышения производительности. Я покажу вам, как существенно улучшить этот показатель от 5,5 миллионов элементов в секунду до 1... |
21.12.2024 | The Resurgence of C++: A Modern Take on Intrusive Containers and Ansible Automation | C++ is often viewed as a relic, a language overshadowed by newer programming paradigms. Yet, recent discussions among experts reveal a different narrative. The language, particularly its intricate features like intrusive containers, is far ... |
19.12.2024 | Оптимизация: типичные ошибки программистов и как их можно исправить | — Are there a lot of these kinds of accidents?
— You wouldn't believe.
— Which car company do you work for?
— A major one.
(Fight Club)
Привет, Хабр. Меня зовут Павел Преблагин, я работаю в команде инжиниринга производительности Positive Te... |
19.12.2024 | Воскрешаем динозавров С++ в современных проектах: как применяют интрузивные контейнеры, ООП и разные стандарты языка... | Библиотеку Boost.Intrusive применяют в разработке 5G-сетей, а ООП — в тестировании систем хранения данных. Удивлены? Не верьте стереотипам о том, что эти технологии устарели — эксперты YADRO на митапе для разработчиков на С++ доказали обрат... |
12.12.2024 | Navigating the Maze of Two-Factor Authentication and SRWLock Issues in Windows | In the digital age, security is paramount. Two-Factor Authentication (2FA) is a fortress, a second layer of protection for our digital lives. Yet, implementing it can feel like navigating a labyrinth. Meanwhile, in the shadows, a lurking bu... |
10.12.2024 | Баг в реализации SRWLock в Windows вешает многопоточные программы | Реализация SRWLock (Slim Reader/Writer Lock) на Windows может привести к серьёзным проблемам: многопоточное приложение может зависнуть (deadlock).
При частой конкуренции многих потоков, удерживающих shared_lock, и хотя бы одного потока, пыт... |
06.11.2024 | О стандартах не спорят? Обсудим — на митапе для С++ разработчиков | 14 ноября подключайтесь к онлайн-встрече разработчиков на C++. Инженеры из YADRO объяснят, как сочетать современное программирование с объектным подходом, расскажут об уникальных особенностях интрузивных контейнеров и познакомят с библиотек... |
05.11.2024 | Грязные трюки C++ из userver и Boost | Привет, я Антон Полухин из Техплатформы Екома и Райдтеха Яндекса. Моя команда разрабатывает userver — современный опенсорсный асинхронный фреймворк с богатым набором абстракций для быстрого и комфортного создания микросервисов, сервисов и у... |
22.10.2024 | The Race for Database Supremacy: Why Performance Matters | In the digital age, data is the new oil. Organizations are racing to harness its power. But the tools they use to manage this data can make or break their success. Database management systems (DBMS) are at the heart of this battle. They det... |
21.10.2024 | Почему СУБД такие медленные | Недавно на Хабре публиковался перевод статьи «Просто выберите Postgres» (оригинал, англ. яз) с аргументами, что Postgres — оптимальная БД для десктопных и мобильных приложений. Аналогичное мнение высказывают в других популярных статьях врод... |
03.10.2024 | Некоторые малоизвестные фичи, фокусы и причуды языка C | В этом посте разобраны некоторые фокусы, причуды и фичи языка C (некоторые из них – весьма фундаментальные!), которые, казалось бы, могут сбить с толку даже опытного разработчика. Поэтому я потрудился сделать за вас грязную работу и (в прои... |
02.10.2024 | Перегрузка операторов в C++ | Привет, Хабр! В этой статье мы рассмотрим одну из самых мощных возможностей C++ — перегрузку операторов. Эта функция языка позволяет изменить поведение стандартных операторов для пользовательских типов данных.
Например, вместо того чтобы вы... |
30.09.2024 | Релиз qBittorrent 5.0 | В конце сентября 2024 года состоялся релиз торрент-клиента qBittorrent 5.0, созданного с использованием тулкита Qt и развиваемого в качестве открытой альтернативы µTorrent по интерфейсу и функциональности. Исходный код проекта написан на C+... |
18.09.2024 | Реализация подписчиков в c++ — пляшем от печки | За время долгой работы в IT непосредственно с кодом, подмечаю одну особенность, что писать приходится всё меньше (в последнее время практически не писать), а ревьювить всё больше. На последнем месте работы за полтора года я изучил уже приме... |
11.09.2024 | CyberCamp 2024: A Digital Fortress in the Making | In the ever-evolving landscape of cybersecurity, the stakes are high. The digital realm is a battleground, and knowledge is the ultimate weapon. Enter CyberCamp 2024, a three-day online event that promises to sharpen the skills of over 10,0... |
11.09.2024 | Дорогая, я уменьшил {fmt}: уменьшил размер до 14kB и избавился от рантайма C++ | Библиотека форматирования {fmt} известна своим небольшим влиянием на размер бинарников. Чаще всего её код в несколько раз меньше по сравнению с такими библиотеками, как IOStreams, Boost Format или, что иронично, tinyformat. Это достигается ... |
06.09.2024 | Призрачно всё: новые рассылки кибершпионов PhantomCore на российские компании с использованием PhantomCore.KscDL_trim | 5 сентября специалистами F.A.C.C.T. было зафиксировано несколько рассылок группы PhantomCore, нацеленных в адрес:
российской ИТ-компании, являющейся разработчиком ПО и онлайн-касс;
компании, занимающейся организацией командировок;
конструкт... |
29.07.2024 | Тысяча и одна библиотека С++ | В жизни каждого программиста С++ рано или поздно возникает задача, которую кто-либо уже решил. Однако найти это решение бывает очень непросто в силу разных причин: оно недостаточно разрекламировано, либо имеет нечеткую документацию, или воз... |
23.06.2024 | Сериализация данных в C++ с библиотекой Cereal | Привет, Хабр!
Сегодня рассмотрим библиотеку Cereal в C++, которая позволяет сохранять и загружать состояние объектов, не теряя производительности.
Cereal — это заголовочная библиотека для C++, предназначенная для сериализации данных. Она по... |
19.06.2024 | Открытые инструменты для бизнес-аналитики — когда нужно построить дашборды и работать с потоковыми данными | Бизнес-аналитика — неотъемлемая часть работы в ИТ, предоставляющая компаниям ценную информацию для принятия стратегически важных решений. В условиях растущего объема данных и необходимости оперативного анализа возникает потребность в мощных... |
24.04.2024 | Fedora Linux 40: новая версия дистрибутива. Что нового и что изменилось? | В мире дистрибутивов Linux всё идёт по плану. Разработчики Fedora Linux 40 выпустили финальный релиз 23 апреля. Уже готовы версии Fedora Workstation, Fedora Server, Fedora CoreOS, Fedora Cloud Base, Fedora IoT Edition и Live-сборки. Они пос... |
05.04.2024 | Go-like каналы на C++ | Каналы (channels, pipes) – это удобная абстракция для построения приложений, работающих в многопоточной среде. Они используются для передачи сообщений между потоками и, одновременно с этим, как средство синхронизации потоков. Я буду ссылать... |
02.04.2024 | Пишем свой вариантный тип | Вступление
C++ 17 привнес в язык достаточно много нововведений, в том числе шаблон std::variant (хоть в Boost он есть уже довольно давно). Фактически, последним вышедшим и полноценно реализованным стандартом C++ на тот момент, как я начал и... |
30.03.2024 | Fedora Linux 40 появится уже через месяц: что нового в дистрибутиве? | На днях стартовал тестовый процесс для бета-версии Fedora Linux 40, релиз которого запланирован на 23 апреля. Стоит отметить, что этот выпуск касается Fedora Workstation, Fedora Server, Fedora Silverblue, Fedora IoT, Fedora CoreOS, Fedora C... |
08.03.2024 | Корутины C++ для чайников: пишем асинхронный веб-клиент | Написать этот материал меня побудило... отсутствие хороших статей по корутинам в C++ в русскоязычном интернете, как бы странно это не звучало. Ну серьезно, C++20 существует уже несколько лет как, но до сих пор почти все статьи про корутины,... |
08.08.2023 | Seastar как платформа для опорной сети 5G и краткое сравнение с Boost.Asio, userver и другими | Я исследовал некоторые open-source фреймворки — кандидаты на платформу для опорной сети пятого поколения операторского уровня, и хочу поделиться своими выводами. Я сравню Seastar, mTCP, Boost.Asio, userver и ACE, расскажу, почему примитивы ... |
06.08.2023 | Yet another UDP transport | Приветствую всех!
В этом посте представлен обзор написанной мной кроссплатформенной C++ библиотеки tubus реализующей транспортный протокол поверх UDP. Целевая аудитория C++ разработчики сетевых приложений.Мотивация
Работая над утилитой plex... |
09.06.2023 | 60 антипаттернов для С++ программиста, часть 3 (совет 11 — 15) | Перед вами обновлённая коллекция вредных советов для C++ программистов, которая превратилась в целую электронную книгу. Всего их 60, и каждый сопровождается пояснением, почему на самом деле ему не стоит следовать. Всё будет одновременно и в... |
31.05.2023 | Трассировка стека вызовов в среде кооперативной многозадачности: стектрейсы, файберы, два ствола | Персонаж с картинки — Трейсер из игры Overwatch
Привет, Хабр! Для отладки и анализа производительности часто используется трассировка (сбор) стека вызовов aka стектрейс. И если для трассировки стека различных потоков выполнения есть системн... |
25.05.2023 | Как Factorio умудряется работать без лагов с таким числом элементов на экране | Магия, бережная работа с объектами/компонентами и никакого ECS.
Разработчик Factorio поделился некоторыми подробностями работы внутренних систем, в частности, рассказал про ECS.
Большая часть игры не использует никакого подобия entity compo... |
20.02.2023 | C++23 — финал, C++26 — начало
C++23
C++26
Итоги | С момента моей прошлой публикации состоялось уже две встречи международного комитета по стандартизации C++.
Комитет занимался полировкой C++23:
static operator[];
static constexpr в constexpr-функциях;
безопасный range-based for;
взаимодейс... |
18.01.2023 | Подводные камни компараторов в С++ | При использовании компаратора в алгоритмах boost::sort и std::sort важно учитывать некоторые особенности работы этих алгоритмов, игнорирование которых может привести к неожиданным последствиям, в том числе к segmentation fault.
Чаще всего п... |
03.10.2022 | Стремление к простоте: о санкциях, транзакциях и одном рефакторинге | Провальное развёртывание
Дело было на моей прошлой работе в финтехе. Новая функциональность была критически важной, по требованию финансового регулятора, мы были обязаны начать проверку третьих лиц, участвующих в транзакциях с нашими клиент... |
27.08.2022 | Работа с хранимым кодом приложения при миграции с Oracle на PostgreSQL: особенности, сложности и способы их преодоления... | В предыдущих статьях о миграции с Oracle на Postgres мы рассматривали перенос данных из одной системы управления базами данных в другую (часть 1, часть 2). Сегодня разговор пойдёт об особенностях работы с серверным хранимым кодом приложения... |
13.06.2022 | Во что вам обойдется конкурентная обработка. Иерархия проблем | Конкурентность сложно как следует наладить, как минимум, тем из нас, кому не повезло писать на языках, непосредственно открывающих нутро конкурентного аппаратного обеспечения: речь о потоках и разделяемой памяти. Не менее сложно организоват... |
14.05.2022 | Концепция умного указателя static_ptr в C++ | В C++ есть несколько "умных указателей" - std::unique_ptr, std::shared_ptr, std::weak_ptr. Также есть более нестандартные умные указатели, например в boost1: intrusive_ptr, local_shared_ptr.
В этой статье мы рассмотрим новый вид у... |
08.05.2022 | Библиотека вывода с использованием escape-последовательностей | Osmanip – это библиотека C++, предоставляющая полезные механизмы для работы с управляющими последовательностями ANSI и настройки потока вывода программ. С помощью этих механизмов вы можете оформлять выводимые строки различными цветами и сти... |
24.03.2022 | Обнаружение наличия функциональности в C++ на этапе компиляции | В этой статье хотелось бы кратко рассмотреть особенности применения механизма обнаружения наличия функциональности у используемых типов данных на этапе компиляции.
В большей степени такое обнаружение необходимо для возможности формирования ... |
14.03.2022 | Как написать рефлексию для C++ | C++ поистине противоречивый язык. Старый добрый С существует аж с 1972 года, С++ появился в 1985 и сохранил с ним обратную совместимость. За это время его не раз хоронили, сперва Java, теперь его потихоньку продолжают хоронить Go и Rust. Вс... |
22.11.2021 | Приложение для аудиозвонков с регулировкой звука, как в реальной жизни | Распространенная в пандемию ситуация: общаетесь с друзьями или коллегами по Zoom, несколько человек начинают говорить одновременно и… разобрать хоть что-то не представляется возможным. Эта проблема натолкнула нас на идею написать свое прило... |
31.10.2021 | Руководство Google по стилю в C++. Часть 7 | Часть 1. Вступление
…
Часть 6. Специфика Google
Часть 7. Ещё возможности C++
Часть 8. Именование
…
Это последняя переведённая часть руководства Google по стилю в C++.
Спасибо за замечания и комментарии к переводу.
Надеюсь это руководство бу... |
25.10.2021 | Ленивые диапазоны и стирание типов | В публикации Ленивые операции над множествами в C++ я показал, как можно проектировать ленивые операции над несколькими диапазонами. Теперь я хочу подробнее рассказать о важном решении, делающем такие операции удобными в использовании.
Один... |
04.09.2021 | Создаем новое ключевое слово в C++ | Этот код будет компилироваться!
C++ - один из языков, который можно назвать "легендарным". Его история насчитывает несколько десятилетий, принципы программирования на нем революционным образом менялись не раз, а черновик стандарта... |
11.06.2021 | Маленькие «малинки» в крупном дата-центре (часть 3 — Kea DHCP) | Мы двигаемся к финалу нашей саги об интеграции Raspberry Pi 4 в выделенные серверы. В первом тексте я рассказал об отличиях процесса загрузки «малинок» от «классических» серверов. Во втором — собрал образ, способный после загрузки файлов по... |
30.06.2018 | Кризис современных языков. Как абстракции, «наслаиваясь» с 1972 года, убивали производительность | Отдел новостей 30 июня 2018, 09:00 Кризис современных языков. Как абстракции, «наслаиваясь» с 1972 года, убивали производительность
Оставить комментарий... |
21.01.2013 | Шаблон для проектов на С++ с помощью Boost, CMake. Файловая система | Anonymous 21 января 2013, 16:15 Шаблон для проектов на С++ с помощью Boost, CMake. Файловая система
Оставить комментарий |
- | Рефлексия в C++Next на практике | Определение понятия "рефлексия" из Википедии:
In computer science, reflective programming or reflection is the ability of a process to examine, introspect, and modify its own structure and behavior.
В последние годы разрабатываютс... |
- | Эксперты рассказали, как в 2019 году нашли уязвимость генерации паролей в Kaspersky Password Manager | 6 июля 2021 года ИБ-эксперты из Ledger Donjon рассказали, как обнаружили в 2019 году уязвимость генерации паролей в Kaspersky Password Manager. Оказалось, что при использовании настроек низкой сложности для генерации паролей алгоритм менедж... |
- | Способы переписать логические параметры в С++ | Программисты читают код намного чаще, чем пишут его, поэтому важно писать понятный, последовательный, однозначный код. Автор книги С++17 in detail написал о способах избегать путаницы. Делимся его материалом к старту курса по разработке на ... |
- | Неклассические контейнеры в C++ | Устройство одного из контейнеров, описанного в статье
Контейнер - это объект, используемый для хранения других объектов. Контейнер берет на себя управление всей памятью, которые эти объекты занимают.
В стандартную библиотеку C++ входит неск... |