Генерируем X509 сертификат с OpenSSL C++
В данной статья я хочу рассказать, как работать с X509 сертификатом используя OpenSSL 3.0.0 в С++, начиная от генерации своего сертификата и заканчивая его валидацией.
Так как информации в интернете по этой теме почти нет, то все, что я вам расскажу, я узнал исходя из своего печального опыта работы с этой библиотекой. Я очень надеюсь, что эта статья окажется вам полезной и сможет сохранить ваше время.
https://habr.com/ru/articles/730852/
#cpp #programming
👉 @cpp_lib
В данной статья я хочу рассказать, как работать с X509 сертификатом используя OpenSSL 3.0.0 в С++, начиная от генерации своего сертификата и заканчивая его валидацией.
Так как информации в интернете по этой теме почти нет, то все, что я вам расскажу, я узнал исходя из своего печального опыта работы с этой библиотекой. Я очень надеюсь, что эта статья окажется вам полезной и сможет сохранить ваше время.
https://habr.com/ru/articles/730852/
#cpp #programming
👉 @cpp_lib
👍2🤯1
Bytes of Architecture
Compilation Phases with GCC
Execution Time Breakdown
Performance Profiling Basics
Multithreading Basics
The RISC-V Interpreter
Integer and Floating Point Types
источник
#cpp #programming
👉 @cpp_lib
Compilation Phases with GCC
Execution Time Breakdown
Performance Profiling Basics
Multithreading Basics
The RISC-V Interpreter
Integer and Floating Point Types
источник
#cpp #programming
👉 @cpp_lib
👍1
Flashlight - это быстрая, гибкая библиотека машинного обучения, написанная полностью на C++ от Facebook AI Research и создателей Torch, TensorFlow, Eigen и Deep Speech. Ее основные возможности включают:
https://github.com/flashlight/flashlight
документация https://fl.readthedocs.io/en/latest/
#cpp #programming
👉 @cpp_lib
https://github.com/flashlight/flashlight
документация https://fl.readthedocs.io/en/latest/
#cpp #programming
👉 @cpp_lib
GitHub
GitHub - flashlight/flashlight: A C++ standalone library for machine learning
A C++ standalone library for machine learning. Contribute to flashlight/flashlight development by creating an account on GitHub.
👍2
Как проверить, находится ли указатель в диапазоне памяти
https://devblogs.microsoft.com/oldnewthing/20170927-00/?p=97095
#cpp #programming
👉 @cpp_lib
https://devblogs.microsoft.com/oldnewthing/20170927-00/?p=97095
#cpp #programming
👉 @cpp_lib
Microsoft News
How to check if a pointer is in a range of memory
Thanks to the C language standard, it's trickier than it seems.
❤1👍1
C++ OpenGL Tutorial
1 - Installation
2 - Hello, OpenGL
Всего доступно 58 уроков на youtube
#cpp #programming
👉 @cpp_lib
1 - Installation
2 - Hello, OpenGL
Всего доступно 58 уроков на youtube
#cpp #programming
👉 @cpp_lib
👍2🔥2
Для тех, кто программирует на Go!
Golang-разработчиков с опытом от трех лет приглашают на Go Weekend Offer в Тинькофф. Все этапы интервью можно будет пройти за выходные. А еще вы познакомитесь с командой и спросите обо всем, что вас интересует.
В Тинькофф нет бюрократии, много интересных проектов и прозрачная система карьерного роста. А работать можно в гибридном режиме в офисах в 22 городах России или в Казахстане, Беларуси и Армении.
И главное: Go Weekend Offer состоится 3 и 4 июня. Но подать заявку надо до 31 мая. Регистрируйтесь!
Golang-разработчиков с опытом от трех лет приглашают на Go Weekend Offer в Тинькофф. Все этапы интервью можно будет пройти за выходные. А еще вы познакомитесь с командой и спросите обо всем, что вас интересует.
В Тинькофф нет бюрократии, много интересных проектов и прозрачная система карьерного роста. А работать можно в гибридном режиме в офисах в 22 городах России или в Казахстане, Беларуси и Армении.
И главное: Go Weekend Offer состоится 3 и 4 июня. Но подать заявку надо до 31 мая. Регистрируйтесь!
👎2💩1🤡1
Использование std::chrono
Цель этой заметки - показать, как библиотека <chrono> может быть использована для решения практической, но не столь очевидной проблемы. В Интернете есть много хорошего материала, по которому можно изучить <chrono>, например, цикл лекций Говарда Хиннанта - автора библиотеки:
https://akrzemi1.wordpress.com/2022/04/11/using-stdchrono/
#cpp #programming
👉 @cpp_lib
Цель этой заметки - показать, как библиотека <chrono> может быть использована для решения практической, но не столь очевидной проблемы. В Интернете есть много хорошего материала, по которому можно изучить <chrono>, например, цикл лекций Говарда Хиннанта - автора библиотеки:
https://akrzemi1.wordpress.com/2022/04/11/using-stdchrono/
#cpp #programming
👉 @cpp_lib
👍2
Debugging a Mixed Python and C Language Stack
https://developer.nvidia.com/blog/debugging-mixed-python-and-c-language-stack/
#cpp #programming
👉 @cpp_lib
https://developer.nvidia.com/blog/debugging-mixed-python-and-c-language-stack/
#cpp #programming
👉 @cpp_lib
userver — что мы узнали за полгода в open-source
Прошло больше полугода с момента выхода фреймворка для C++ 🐙 userver в open-source. За это время мы многое узнали, на многом настрадались, а главное — получили много приятных сюрпризов.
И мы решили об этом написать. Рассказ будет полезен тем, кто ведёт или планирует вести свой open-source проект или занимается контрибьютами. Остальным будет интересно почитать про чужое набивание шишек и что вообще open-source даёт проекту.
https://habr.com/ru/companies/yandex/articles/729588/
#cpp #programming
👉 @cpp_lib
Прошло больше полугода с момента выхода фреймворка для C++ 🐙 userver в open-source. За это время мы многое узнали, на многом настрадались, а главное — получили много приятных сюрпризов.
И мы решили об этом написать. Рассказ будет полезен тем, кто ведёт или планирует вести свой open-source проект или занимается контрибьютами. Остальным будет интересно почитать про чужое набивание шишек и что вообще open-source даёт проекту.
https://habr.com/ru/companies/yandex/articles/729588/
#cpp #programming
👉 @cpp_lib
👍3
Разбираемся с использованием неблокируещего ввода-вывода в ОС Linux. Пишем пример сервера на голых системных вызовах
Как обычно пишут сервер, если не особо заботиться производительности? Программа запускается, затем начинает принимать входящие соединения от клиентов и для каждого клиента запускает новый поток, который занимается обслуживанием этого клиента. Если вы используете какой-нибудь, прости господи, Spring или Flask или там Poco, то он что-такое внутри себя и делает - разве что потоки можно переиспользовать, то есть брать из некого пула. Это всё довольно удобно, но не слишком эффективно. Скорее всего, ваши потоки, обслуживающие клиентов, живут недолго и большую часть времени ожидают либо получения данных от клиента, либо отправки их клиенту - то есть ждут возвращения системных вызовов. Создание потока ОС - довольно дорогая операция, как и переключение контекста между потоками ОС. Если вы хотите уметь обслуживать много клиентов эффективно, надо придумать что-то другое. Например, коллбеки. Но это довольно неудобно.
https://habr.com/ru/articles/733948/
#cpp #programming
👉 @cpp_lib
Как обычно пишут сервер, если не особо заботиться производительности? Программа запускается, затем начинает принимать входящие соединения от клиентов и для каждого клиента запускает новый поток, который занимается обслуживанием этого клиента. Если вы используете какой-нибудь, прости господи, Spring или Flask или там Poco, то он что-такое внутри себя и делает - разве что потоки можно переиспользовать, то есть брать из некого пула. Это всё довольно удобно, но не слишком эффективно. Скорее всего, ваши потоки, обслуживающие клиентов, живут недолго и большую часть времени ожидают либо получения данных от клиента, либо отправки их клиенту - то есть ждут возвращения системных вызовов. Создание потока ОС - довольно дорогая операция, как и переключение контекста между потоками ОС. Если вы хотите уметь обслуживать много клиентов эффективно, надо придумать что-то другое. Например, коллбеки. Но это довольно неудобно.
https://habr.com/ru/articles/733948/
#cpp #programming
👉 @cpp_lib
Хабр
Разбираемся с использованием неблокируещего ввода-вывода в ОС Linux. Пишем пример сервера на голых системных вызовах
Как обычно пишут сервер, если не особо заботиться производительности? Программа запускается, затем начинает принимать входящие соединения от клиентов и для каждого клиента запускает новый поток,...
👍5❤1
Media is too big
VIEW IN TELEGRAM
Безопасное копирование, перемещение и уничтожение объектов в современном C++ по правилу «все или ничего»
Какие конструкторы нужны классу C++? Какие он генерирует сам? Как насчет различных операторов присваивания? А деструктор? Как не отстрелить себе ногу и без труда ориентироваться в этих водах?
Это и многое другое мы рассмотрим в этом видео, которое расскажет нам о простом правиле, которому нужно следовать при реализации классов в современном C++, - правиле "все или ничего". Мы погрузимся в причины его существования и посмотрим, как оно облегчает нам жизнь.
источник
#cpp #programming
👉 @cpp_lib
Какие конструкторы нужны классу C++? Какие он генерирует сам? Как насчет различных операторов присваивания? А деструктор? Как не отстрелить себе ногу и без труда ориентироваться в этих водах?
Это и многое другое мы рассмотрим в этом видео, которое расскажет нам о простом правиле, которому нужно следовать при реализации классов в современном C++, - правиле "все или ничего". Мы погрузимся в причины его существования и посмотрим, как оно облегчает нам жизнь.
источник
#cpp #programming
👉 @cpp_lib
👍5🥰1
Better than Singletons: The Service Locator Pattern
https://abstractexpr.com/2023/04/25/better-than-singletons-the-service-locator-pattern/
#cpp #programming
👉 @cpp_lib
https://abstractexpr.com/2023/04/25/better-than-singletons-the-service-locator-pattern/
#cpp #programming
👉 @cpp_lib
Media is too big
VIEW IN TELEGRAM
TCP/IP сети с помощью Boost.Asio
Boost.Asio - это кроссплатформенная библиотека C++ для программирования сетей и низкоуровневого ввода-вывода, которая предоставляет разработчикам последовательную асинхронную модель с использованием современного подхода C++.
В этом месяце Ричард Томсон продолжит наше знакомство с Boost.Asio рассмотрением сетевых технологий TCP/IP. Мы рассмотрим, как реализовать клиент NNTP (Network News Transport Protocol) с помощью Boost.Asio. NNTP - это линейно-ориентированный протокол для чтения новостных статей usenet. Это даст нам представление обо всех типичных проблемах, связанных с сетевыми приложениями TCP/IP:
- Как преобразовать имя хоста в IP-адрес?
- Как установить долговременное соединение с сервером NNTP?
- Как обрабатывать произвольно большие объемы данных с NNTP-сервера, которые поступают асинхронно?
- Как мы координируем ввод данных пользователем с вводом/выводом NNTP?
- Как мы справляемся с неожиданными сетевыми ошибками?
источник
#cpp #programming
👉 @cpp_lib
Boost.Asio - это кроссплатформенная библиотека C++ для программирования сетей и низкоуровневого ввода-вывода, которая предоставляет разработчикам последовательную асинхронную модель с использованием современного подхода C++.
В этом месяце Ричард Томсон продолжит наше знакомство с Boost.Asio рассмотрением сетевых технологий TCP/IP. Мы рассмотрим, как реализовать клиент NNTP (Network News Transport Protocol) с помощью Boost.Asio. NNTP - это линейно-ориентированный протокол для чтения новостных статей usenet. Это даст нам представление обо всех типичных проблемах, связанных с сетевыми приложениями TCP/IP:
- Как преобразовать имя хоста в IP-адрес?
- Как установить долговременное соединение с сервером NNTP?
- Как обрабатывать произвольно большие объемы данных с NNTP-сервера, которые поступают асинхронно?
- Как мы координируем ввод данных пользователем с вводом/выводом NNTP?
- Как мы справляемся с неожиданными сетевыми ошибками?
источник
#cpp #programming
👉 @cpp_lib
👍3🔥2
Include guards и их оптимизация
В этой статье обсуждается назначение и важность include guards в проектах на C/C++. В ней также рассматриваются оптимизации, которые компиляторы применяют вокруг include guards для улучшения времени сборки, и то, как легко можно непреднамеренно отключить эти оптимизации!
https://includeguardian.io/article/include-guards-and-their-optimizations
#cpp #programming
👉 @cpp_lib
В этой статье обсуждается назначение и важность include guards в проектах на C/C++. В ней также рассматриваются оптимизации, которые компиляторы применяют вокруг include guards для улучшения времени сборки, и то, как легко можно непреднамеренно отключить эти оптимизации!
https://includeguardian.io/article/include-guards-and-their-optimizations
#cpp #programming
👉 @cpp_lib
👍1
Как итерироваться через std::tuple, std::apply и многое другое
https://www.cppstories.com/2022/tuple-iteration-apply/
#cpp #programming
👉 @cpp_lib
https://www.cppstories.com/2022/tuple-iteration-apply/
#cpp #programming
👉 @cpp_lib
👍2
Реализация утилиты cat на C
Программисты часто используют встроенные команды unix для решения задач. Давайте реализуем cat. cat - утилита которая объединяет файлы и выводит их в стандартный вывод.
Цель
Идея довольно проста - принять файл в качестве аргумента, открыть его, занести в буфер по частям и вывести на стандартный вывод. Утилита cat также оснащена различными флагами опций, которые позволяют пользователю манипулировать буфером перед его отправкой на стандартный вывод.
https://habr.com/ru/articles/734254/
#cpp #programming
👉 @cpp_lib
Программисты часто используют встроенные команды unix для решения задач. Давайте реализуем cat. cat - утилита которая объединяет файлы и выводит их в стандартный вывод.
Цель
Идея довольно проста - принять файл в качестве аргумента, открыть его, занести в буфер по частям и вывести на стандартный вывод. Утилита cat также оснащена различными флагами опций, которые позволяют пользователю манипулировать буфером перед его отправкой на стандартный вывод.
https://habr.com/ru/articles/734254/
#cpp #programming
👉 @cpp_lib
👍3