Развлечения с gRPC и C++
Погружение в асинхронные серверы и клиенты с использованием C++ и gRPC в 2023 году
Почему я пишу эту серию статей? Так получилось, что я хочу использовать gRPC в своем будущем DNS-сервере.
В прошлом я уже использовал gRPC - с большим трудом. В этот раз я посмотрел несколько примеров и сделал что-то вроде реализации - но понял, что это дерьмо. К тому же было слишком много вещей, которых я не знал и не понимал, чтобы исправить это. Поэтому я решил потратить некоторое время на игру с gRPC, чтобы лучше понять его.
https://lastviking.eu/fun_with_gRPC_and_C++/
#cpp #programming
👉 @cpp_lib
Погружение в асинхронные серверы и клиенты с использованием C++ и gRPC в 2023 году
Почему я пишу эту серию статей? Так получилось, что я хочу использовать gRPC в своем будущем DNS-сервере.
В прошлом я уже использовал gRPC - с большим трудом. В этот раз я посмотрел несколько примеров и сделал что-то вроде реализации - но понял, что это дерьмо. К тому же было слишком много вещей, которых я не знал и не понимал, чтобы исправить это. Поэтому я решил потратить некоторое время на игру с gRPC, чтобы лучше понять его.
https://lastviking.eu/fun_with_gRPC_and_C++/
#cpp #programming
👉 @cpp_lib
👍5
Выносим за скобки настройки CMake
Каждый день я создаю множество однотипных проектов C++ с системой сборки cmake. И открывая проекты в IDE, каждый раз снимаю галочки с типа сборки, оставляя только Debug. А ещё меняю путь к папке сборки. Мелочь, а утомляет.
Я решил изучить, как сделать эти действия автоматически, а в итоге узнал про удобный метод обмена настройками cmake между программистами.
Оказывается, существуют пресеты. Пресеты позволяют вынести параметры сборки из CMakeLists.txt. Это нужно для того, чтобы ваши проекты без проблем собирались под разные платформы и тулчейны. Пресет представляет из себя json-файл, в котором задаются различные параметры, влияющие на сборку проекта (опции конфигурации, флаги компилятора и т. д.).
https://habr.com/ru/companies/timeweb/articles/741868/
#cpp #programming
👉 @cpp_lib
Каждый день я создаю множество однотипных проектов C++ с системой сборки cmake. И открывая проекты в IDE, каждый раз снимаю галочки с типа сборки, оставляя только Debug. А ещё меняю путь к папке сборки. Мелочь, а утомляет.
Я решил изучить, как сделать эти действия автоматически, а в итоге узнал про удобный метод обмена настройками cmake между программистами.
Оказывается, существуют пресеты. Пресеты позволяют вынести параметры сборки из CMakeLists.txt. Это нужно для того, чтобы ваши проекты без проблем собирались под разные платформы и тулчейны. Пресет представляет из себя json-файл, в котором задаются различные параметры, влияющие на сборку проекта (опции конфигурации, флаги компилятора и т. д.).
https://habr.com/ru/companies/timeweb/articles/741868/
#cpp #programming
👉 @cpp_lib
👍4
Как два байта переслать: контрибьютим в KPHP
KPHP - компилятор для PHP. Он конвертирует PHP код в код на C++, компилируя который, ускоряет производительность в десятки раз. Это open-source проект, созданный ВКонтакте. Благодаря ему собирается огромный монолит ВКонтакте на 9 миллионов строк PHP кода в обычный бинарник, запуская который вы локально поднимаете полноценный ВКонтакте.
Цель
Я расскажу про добавление новых функций в runtime KPHP. Точнее про тернистую дорогу на пути.
https://habr.com/ru/articles/749792/
#cpp #programming
👉 @cpp_lib
KPHP - компилятор для PHP. Он конвертирует PHP код в код на C++, компилируя который, ускоряет производительность в десятки раз. Это open-source проект, созданный ВКонтакте. Благодаря ему собирается огромный монолит ВКонтакте на 9 миллионов строк PHP кода в обычный бинарник, запуская который вы локально поднимаете полноценный ВКонтакте.
Цель
Я расскажу про добавление новых функций в runtime KPHP. Точнее про тернистую дорогу на пути.
https://habr.com/ru/articles/749792/
#cpp #programming
👉 @cpp_lib
👍4🤔1
Молниеносный фреймворк нейронных сетей на C++/CUDA (by nvlabs)
https://www.libhunt.com/r/tiny-cuda-nn
#cpp #programming
👉 @cpp_lib
https://www.libhunt.com/r/tiny-cuda-nn
#cpp #programming
👉 @cpp_lib
Libhunt
Tiny-cuda-nn Alternatives and Reviews
Which is the best alternative to tiny-cuda-nn? Based on common mentions it is: Instant-ngp, MindsDB, Diffrax, Blis, Dex-lang, Einops, Juliaup, Vectorflow or Hasktorch
👍1
Media is too big
VIEW IN TELEGRAM
C++ Full Course (FOUR HOUR All-in-One Tutorial for Beginners)
00:00 - Introduction
09:40 - User Input and Output
20:56 - using namespace std (Potential Problems)
30:38 - if Statement and Comparisons
37:41 - Comparing char with tolower
43:43 - User Input with getchar()
48:59 - else Clause and else if
59:14 - Nested if Statements
01:03:12 - Logical Operators
01:10:27 - booleans (The Truth Exposed)
01:22:47 - Switch Statement
01:31:28 - Defining a Function Prototype and Definition
01:37:29 - Function Returns and Arguments
01:45:24 - While Loop with Guessing Games
01:52:58 - Random Number Generation
02:02:44 - Multiple C++ File Compilation
02:10:05 - for Loops vs While Loops
02:16:53 - Decrementing for Loop (Count Down)
02:24:50 - Arrays and Looping
02:35:57 - Vectors
02:40:40 - Passing Arrays and Vectors to Functions
02:56:38 - Function Overloading
03:00:53 - Function Templates and Template Overloads
03:10:27 - Intro to Deques (Double Ended Queue)
03:14:45 - Reading and Writing to Files (ifstream and ofstream)
03:21:06 - Intro to Classes and Objects (Object Oriented Programming)
03:26:44 - Reading and Writing Custom Object Collection from File
03:36:06 - Custom Constructors
03:41:53 - Static Methods
03:46:47 - Stacks and Queues Shopping List Exercise
источник
#cpp #programming
👉 @cpp_lib
00:00 - Introduction
09:40 - User Input and Output
20:56 - using namespace std (Potential Problems)
30:38 - if Statement and Comparisons
37:41 - Comparing char with tolower
43:43 - User Input with getchar()
48:59 - else Clause and else if
59:14 - Nested if Statements
01:03:12 - Logical Operators
01:10:27 - booleans (The Truth Exposed)
01:22:47 - Switch Statement
01:31:28 - Defining a Function Prototype and Definition
01:37:29 - Function Returns and Arguments
01:45:24 - While Loop with Guessing Games
01:52:58 - Random Number Generation
02:02:44 - Multiple C++ File Compilation
02:10:05 - for Loops vs While Loops
02:16:53 - Decrementing for Loop (Count Down)
02:24:50 - Arrays and Looping
02:35:57 - Vectors
02:40:40 - Passing Arrays and Vectors to Functions
02:56:38 - Function Overloading
03:00:53 - Function Templates and Template Overloads
03:10:27 - Intro to Deques (Double Ended Queue)
03:14:45 - Reading and Writing to Files (ifstream and ofstream)
03:21:06 - Intro to Classes and Objects (Object Oriented Programming)
03:26:44 - Reading and Writing Custom Object Collection from File
03:36:06 - Custom Constructors
03:41:53 - Static Methods
03:46:47 - Stacks and Queues Shopping List Exercise
источник
#cpp #programming
👉 @cpp_lib
👍2❤1
Самый быстрый и безопасный PNG декодер в мире
TL;DR: декодер изображений PNG из стандартной библиотеки языка программирования Wuffs работает в 1.22–2.75 раза быстрее, чем libpng (широко используемая реализация PNG декодера на C с открытым исходным кодом), C-библиотеки libspng, lodepng и stb_image, а также самые популярные библиотеки для работы с PNG на Go и Rust.
Декодирование PNG с помощью Wuffs обсуждалось на Hacker News №1, Hacker News №2, /r/programming, /r/rust и lobste.rs.
https://habr.com/ru/articles/751462/
#cpp #programming
👉 @cpp_lib
TL;DR: декодер изображений PNG из стандартной библиотеки языка программирования Wuffs работает в 1.22–2.75 раза быстрее, чем libpng (широко используемая реализация PNG декодера на C с открытым исходным кодом), C-библиотеки libspng, lodepng и stb_image, а также самые популярные библиотеки для работы с PNG на Go и Rust.
Декодирование PNG с помощью Wuffs обсуждалось на Hacker News №1, Hacker News №2, /r/programming, /r/rust и lobste.rs.
https://habr.com/ru/articles/751462/
#cpp #programming
👉 @cpp_lib
👍6
Что Должно Быть в Каждом FirmWare Pепозитории
В этом тексте я предлагаю порассуждать, что же должно быть в нормальном взрослом firmware репозитории (репе/общаке) безотносительно к конкретному проекту. То есть самые универсальные и переносимые программные компоненты (кирпичики/SubSystems), которые могут пригодиться в практически любой сборке.
#cpp #programming
👉 @cpp_lib
В этом тексте я предлагаю порассуждать, что же должно быть в нормальном взрослом firmware репозитории (репе/общаке) безотносительно к конкретному проекту. То есть самые универсальные и переносимые программные компоненты (кирпичики/SubSystems), которые могут пригодиться в практически любой сборке.
#cpp #programming
👉 @cpp_lib
👍2
Внутри STL: Строка
Можно подумать, что строка std::string (и все ее друзья из семейства std::basic_string) - это, по сути, вектор символов. Однако строки устроены иначе из-за специфических оптимизаций, допустимых для строк, но не для векторов.
https://devblogs.microsoft.com/oldnewthing/20230803-00/?p=108532
#cpp #programming
👉 @cpp_lib
Можно подумать, что строка std::string (и все ее друзья из семейства std::basic_string) - это, по сути, вектор символов. Однако строки устроены иначе из-за специфических оптимизаций, допустимых для строк, но не для векторов.
https://devblogs.microsoft.com/oldnewthing/20230803-00/?p=108532
#cpp #programming
👉 @cpp_lib
Microsoft News
Inside STL: The string
An allocation, with a twist.
👍5❤1
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Learning C++20
Jthreads and stop tokens
Concepts
Atomic References
Spans
The Spaceship Operator
Likely and Unlikely Attributes
Custom Concepts
Immediate Functions
Constrained Algorithms
источник
#cpp #programming
👉 @cpp_lib
Jthreads and stop tokens
Concepts
Atomic References
Spans
The Spaceship Operator
Likely and Unlikely Attributes
Custom Concepts
Immediate Functions
Constrained Algorithms
источник
#cpp #programming
👉 @cpp_lib
👍5
10 лучших практик безопасного программирования на С++
https://www.incredibuild.com/blog/top-10-secure-c-coding-practices
#cpp #programming
👉 @cpp_lib
https://www.incredibuild.com/blog/top-10-secure-c-coding-practices
#cpp #programming
👉 @cpp_lib
Incredibuild
Top 10 secure C++ coding practices - Incredibuild
Writing secure code that is not open for hacks and attacks is not a luxury. Learn about the top 10 secure C++ coding practices in this blog.
👍3
Неопределённое поведение в C/C++ и приёмы против лома
Некоторое время назад в Интернете ходила статья о неопределённом поведении, просто бесившая коренную аудиторию Rust. Завсегдатаи С и C++ в ответ только бурчали, что кто-то просто не понимает Всех Тонкостей и Нюансов Их Светлейшего Языка. Как обычно, пришло время и мне постараться изо всех сил и вставить мои пять копеек в эту застарелую дискуссию.
Готовьтесь поговорить об Основной Проблеме языков C и C++, а также о Принципе Лома.
Rus https://habr.com/ru/articles/756000/
Eng https://thephd.dev/c-undefined-behavior-and-the-sledgehammer-guideline
#cpp #programming
👉 @cpp_lib
Некоторое время назад в Интернете ходила статья о неопределённом поведении, просто бесившая коренную аудиторию Rust. Завсегдатаи С и C++ в ответ только бурчали, что кто-то просто не понимает Всех Тонкостей и Нюансов Их Светлейшего Языка. Как обычно, пришло время и мне постараться изо всех сил и вставить мои пять копеек в эту застарелую дискуссию.
Готовьтесь поговорить об Основной Проблеме языков C и C++, а также о Принципе Лома.
Rus https://habr.com/ru/articles/756000/
Eng https://thephd.dev/c-undefined-behavior-and-the-sledgehammer-guideline
#cpp #programming
👉 @cpp_lib
👍1🔥1
Обучения GoLang-разработке с постоплатой и гарантированное трудоустройство. Учись сейчас – плати, когда устроишься на работу. Не захотел работать в IT – ничего не должен! 💸
❗Старт нового потока по GoLang от школы IT Mentor уже в сентябре. Срок обучения 6-8 месяцев.
Ворвись в сферу высокооплачиваемого IT с поддержкой опытного ментора в течение 18 месяцев.
👉 Переходи по ссылке и записывайся на курс https://www.it-mentor.tech/golang?utm_source=tg&utm_medium=cpp_lib&utm_campaign=2023-08-22
Выпускники школы IT-mentor зарабатывают от 150 тыс.руб.
Почему тебе точно нужно в школу IT-mentor?
✔ Только актуальная инфа и востребованные стек технологий: Основы Go, Go Runtime, Concurrency, Frameworks, Tools, Testing, Базы данных, Оркестрация, Брокеры сообщений, и др.
✔ Индивидуальная программа, заточенная под твой уровень знаний
✔ Контроль знаний с обратной связью менторов
✔ Работа на реальном проекте – при выпуске готовый кейс
✔ Поддержка опытных менторов позволит подготовиться к собеседованиям и составить твое CVL, проведение тестовых собеседований - быть уверенным в результате.
✔ Закрытое комьюнити с коллегами и чаты помогут оставаться в тренде.
Стань частью IT-сообщества!
А если хорошо знаешь английский, вообще nice🔥! Для тебя есть опция - трудоустройство в иностранную компанию и возможность релокации зарубеж.
👉 Переходи по ссылке и записывайся на курс https://www.it-mentor.tech/golang?utm_source=tg&utm_medium=cpp_lib&utm_campaign=2023-08-22
Давай жми быстрее, мест осталось мало!
❗Старт нового потока по GoLang от школы IT Mentor уже в сентябре. Срок обучения 6-8 месяцев.
Ворвись в сферу высокооплачиваемого IT с поддержкой опытного ментора в течение 18 месяцев.
👉 Переходи по ссылке и записывайся на курс https://www.it-mentor.tech/golang?utm_source=tg&utm_medium=cpp_lib&utm_campaign=2023-08-22
Выпускники школы IT-mentor зарабатывают от 150 тыс.руб.
Почему тебе точно нужно в школу IT-mentor?
✔ Только актуальная инфа и востребованные стек технологий: Основы Go, Go Runtime, Concurrency, Frameworks, Tools, Testing, Базы данных, Оркестрация, Брокеры сообщений, и др.
✔ Индивидуальная программа, заточенная под твой уровень знаний
✔ Контроль знаний с обратной связью менторов
✔ Работа на реальном проекте – при выпуске готовый кейс
✔ Поддержка опытных менторов позволит подготовиться к собеседованиям и составить твое CVL, проведение тестовых собеседований - быть уверенным в результате.
✔ Закрытое комьюнити с коллегами и чаты помогут оставаться в тренде.
Стань частью IT-сообщества!
А если хорошо знаешь английский, вообще nice🔥! Для тебя есть опция - трудоустройство в иностранную компанию и возможность релокации зарубеж.
👉 Переходи по ссылке и записывайся на курс https://www.it-mentor.tech/golang?utm_source=tg&utm_medium=cpp_lib&utm_campaign=2023-08-22
Давай жми быстрее, мест осталось мало!
👍1👎1
Media is too big
VIEW IN TELEGRAM
C++ интервью с инженером Google
Посмотрите, как кто-то пытается решить задачу Closest Coin на C++ с помощью инженера Google. Это пробное интервью — смогут ли они найти решение?
источник
#cpp #programming
👉 @cpp_lib
Посмотрите, как кто-то пытается решить задачу Closest Coin на C++ с помощью инженера Google. Это пробное интервью — смогут ли они найти решение?
источник
#cpp #programming
👉 @cpp_lib
👍2🔥1