C++95
plusich1.png
#jostik
Intro
Прошлой осенью на работе подарили брелок-"ремувку" с вышитыми логотипом компании и надписью "Born to win".
Посыл хороший - круто от рождения быть победителем в чем-то (например в беге или баскетболе).
Но этот предмет совсем не передает дух времени - ремувки это для путешествий, а сейчас они сильно затруднены, например маршрут Амстердам - Москва имеет две пересадки⚰️
Решил сделать что-то более актуальное - по приколу сделал патчи на липучке, эти услуги предлагают десятки контор😁 На фото их среда обитания:
1. Вот они слева направо❌
2. За несколько лет наиграл 800+ часов в хойке, тут мод "Kaiserredux"😡
3. Образовываюсь во время долгих ребилдов всего репозитория👩💻
Обзор жостиков C++🤔 (номер 4️⃣ )
1️⃣ Ужасы собеседований в HFT 😳
Иногда прохожу собесы в другие HFT - чтобы узнать что спрашивают по👩💻 и какие условия. Сначала тебя находит очередная эйчарка и выпрашивает звонок под разными предлогами. Вообще, это guilty pleasure смотреть на их кринжово-смешные подкаты 😐
Потом наступает технический собес. Приятный техлид на том проводе предлагает перейти на "ты", и начать с короткого знакомства. Начинаем - я Евгений, мне 25, рост 192, <...>, люблю уравнения Максвелла, не люблю сырники. Какие планы на вечер? В планах провести собес.
- Напиши "single-producer single-consumer lock-free queue"
После этой простой задачи идет жесткое погружение в разные куски C++ - модель памяти, иерархия value category, особенности strict aliasing, чем хороши trivially-copyable в контейнерах и что там с лайфтаймами, и так далее.
Визави углубляется дальше, находятся вопросы которые заставляют реально думать...🤔
- Для чего нужен std::hardware_destructive_interference_size?
- Расскажи какие ты знаешь протоколы когерентности кэшей в современных процессорах?
Наконец двухчасовая жесть закончена и мы прощаемся. Хотя формально вердикт скажет потом эйчарка, я понимаю что есть куда расти - а эта встреча была всего на один вечер. "Бро, тебе надо тренироваться"💩 И смотреть больше лекций
Вот такие собесы надо проводить, а не "напиши бинпоиск" и "разверни список"😎
2️⃣ GDB pretty printer 🎨
Часто в GDB трудно понять что за значение у объекта🤔 Так как выводятся значения структур "как есть" (грубо говоря, вместо вектора - адрес в памяти и размер), и без дополнительных команд ничего не понятно.
В таком случае надо использовать pretty printers - это код на👩💻 Python, который вызывается со стороны GDB и может помочь в выводе более человекочитаемой инфы - трогая указатели, вызывая всякие функции, и так далее 😎
В первую очередь такие есть для реализаций std - например для libcxx.
Потом свой принтер можно сделать для каждой крупной кодовой базы - пример для LLVM где куча своих контейнеров.
Сейчас для рабочей кодовой базы есть свой pretty-printer для вывода значений таких объектов наших классов:
(1) strong types
(2) fixed-point числа
(3) json-объекты
(4) даты
3️⃣ Лютая скриптовая система с LLVM 💪
Недавно вышло видео с C++ Russia, где круто описано как можно сделать скриптовую систему👍
Там скриптовый язык либо (1) на лету компилится в объектник и используется; либо (2) компилится с основной прогой для большей оптимизации.
Из "налогов" - диспетчеризация вызова, по сути вызов виртуальной функции.
Эта система - для игровых движков, но думаю в других местах тоже было полезно.
Например, писать рисечерам торговые стратежки проще на скриптовом языке, потому что С++ не их домен
4️⃣ Passkey Idiom 🔒
Читая один пропозал, увидел интересную идиому "Passkey", которую можно использовать как урезанный "friend class" (нарезает доступ по функциям).
Судя по гуглингу, вроде популярная вещь, но раньше нигде ее не видел.
Может пригодиться в кодовых базах, где овер9000 штук
5️⃣ Elvis Operator 🕺
"elvis operator" это запись:
Пригождается несколько раз в год😎
Это поддерживается основными компиляторами с
Intro
Прошлой осенью на работе подарили брелок-"ремувку" с вышитыми логотипом компании и надписью "Born to win".
Посыл хороший - круто от рождения быть победителем в чем-то (например в беге или баскетболе).
Но этот предмет совсем не передает дух времени - ремувки это для путешествий, а сейчас они сильно затруднены, например маршрут Амстердам - Москва имеет две пересадки
Решил сделать что-то более актуальное - по приколу сделал патчи на липучке, эти услуги предлагают десятки контор
1. Вот они слева направо
2. За несколько лет наиграл 800+ часов в хойке, тут мод "Kaiserredux"
3. Образовываюсь во время долгих ребилдов всего репозитория
Обзор жостиков C++
Иногда прохожу собесы в другие HFT - чтобы узнать что спрашивают по
Потом наступает технический собес. Приятный техлид на том проводе предлагает перейти на "ты", и начать с короткого знакомства. Начинаем - я Евгений, мне 25, рост 192, <...>, люблю уравнения Максвелла, не люблю сырники. Какие планы на вечер? В планах провести собес.
- Напиши "single-producer single-consumer lock-free queue"
После этой простой задачи идет жесткое погружение в разные куски C++ - модель памяти, иерархия value category, особенности strict aliasing, чем хороши trivially-copyable в контейнерах и что там с лайфтаймами, и так далее.
Визави углубляется дальше, находятся вопросы которые заставляют реально думать...
- Для чего нужен std::hardware_destructive_interference_size?
- Расскажи какие ты знаешь протоколы когерентности кэшей в современных процессорах?
Наконец двухчасовая жесть закончена и мы прощаемся. Хотя формально вердикт скажет потом эйчарка, я понимаю что есть куда расти - а эта встреча была всего на один вечер. "Бро, тебе надо тренироваться"
Вот такие собесы надо проводить, а не "напиши бинпоиск" и "разверни список"
Часто в GDB трудно понять что за значение у объекта
В таком случае надо использовать pretty printers - это код на
В первую очередь такие есть для реализаций std - например для libcxx.
Потом свой принтер можно сделать для каждой крупной кодовой базы - пример для LLVM где куча своих контейнеров.
Сейчас для рабочей кодовой базы есть свой pretty-printer для вывода значений таких объектов наших классов:
(1) strong types
(2) fixed-point числа
(3) json-объекты
(4) даты
Недавно вышло видео с C++ Russia, где круто описано как можно сделать скриптовую систему
Там скриптовый язык либо (1) на лету компилится в объектник и используется; либо (2) компилится с основной прогой для большей оптимизации.
Из "налогов" - диспетчеризация вызова, по сути вызов виртуальной функции.
Эта система - для игровых движков, но думаю в других местах тоже было полезно.
Например, писать рисечерам торговые стратежки проще на скриптовом языке, потому что С++ не их домен
Читая один пропозал, увидел интересную идиому "Passkey", которую можно использовать как урезанный "friend class" (нарезает доступ по функциям).
Судя по гуглингу, вроде популярная вещь, но раньше нигде ее не видел.
Может пригодиться в кодовых базах, где овер9000 штук
friend class."elvis operator" это запись:
a ?: b
что равносильно:a ? a : b
Пригождается несколько раз в год
Это поддерживается основными компиляторами с
-Wnognu-conditional-omitted-operand.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍13❤2😈2🤪1
C++95
billy.jpg
#notes_from_underground
На фото один из наших коллег в офисе на фоне заката🚬 Это многое говорит об уровне юмора в компании...
Записки из подполья №1📝
Я ограничен технологиями своего времени (в Telegram неудобно писать длинные посты), поэтому решил попробовать новый формат - записки в Телеграфе.
Там я буду писать мысли про C++, про работу в целом, иногда сатиру на общество, как этакий Жокир🤡
1️⃣ Как быстро обучаться (пособие для 10x engineers) 🏃
Читай поскорее, чтобы стать 10x инженером!
https://telegra.ph/Kak-bystro-obuchatsya-posobie-dlya-10x-engineers-05-11
2️⃣ По поводу ненужностей в C++20/23/26 🤔
Субъективный рейтинг нужных и ненужных вещей в современных стандартах
https://telegra.ph/Po-povodu-nenuzhnostej-v-C202326-06-13
На фото один из наших коллег в офисе на фоне заката
Записки из подполья №1
Я ограничен технологиями своего времени (в Telegram неудобно писать длинные посты), поэтому решил попробовать новый формат - записки в Телеграфе.
Там я буду писать мысли про C++, про работу в целом, иногда сатиру на общество, как этакий Жокир
Читай поскорее, чтобы стать 10x инженером!
https://telegra.ph/Kak-bystro-obuchatsya-posobie-dlya-10x-engineers-05-11
Субъективный рейтинг нужных и ненужных вещей в современных стандартах
https://telegra.ph/Po-povodu-nenuzhnostej-v-C202326-06-13
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥34❤7👍3🤔1💩1
C++95
cereal.png
#notes_from_underground
Пересматривал видос про коробки от хлопьев любимого блогера детства, решил с ChatGPT сделать свою коробку🍜
Записки из подполья №2✍️
1️⃣ Обзор технических блогов по HFT-конторам 💳
Что пишут в своих блогах компании, которые занимаются HFT + бонус
https://telegra.ph/Obzor-tehnicheskih-blogov-po-HFT-kontoram-06-24
2️⃣ "Нижний интернет" нашей сферы 👨🔬
Обзор треш-стримеров и анонимных площадок
https://telegra.ph/Nizhnij-internet-nashej-sfery-06-25
Пересматривал видос про коробки от хлопьев любимого блогера детства, решил с ChatGPT сделать свою коробку
Записки из подполья №2
Что пишут в своих блогах компании, которые занимаются HFT + бонус
https://telegra.ph/Obzor-tehnicheskih-blogov-po-HFT-kontoram-06-24
Обзор треш-стримеров и анонимных площадок
https://telegra.ph/Nizhnij-internet-nashej-sfery-06-25
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥6❤2🤔2
#notes_from_underground
Прежде всего хочу посоветовать канал Вани @thisnotes - Ваня мыслант, выступатель на конференциях, и автор постиронии📕 📖 Подписывайтесь!
Записки из подполья S01E03
Я уже многовато написал "записок" по каким-то сильно около-C++-темам, но обещаю что эти будут последние, далее будет идти нормальный контент как раньше😎
1️⃣ Обзор на 16ю главу "Employee Stock Options" 🤑
Обзор на 16ю главу из книги "Options, Futures, and Other Derivatives", с личным примером про стоки в бигтехе
https://telegra.ph/Obzor-na-16yu-glavu-Employee-Stock-Options-07-19
2️⃣ Как писать на C++ чтобы все видели что ты крутой 😎
Делай так каждый день и спина болеть не будет
https://telegra.ph/Kak-pisat-na-C-chtoby-vse-videli-chto-ty-krutoj-07-19
3️⃣ Как я хикковал 😔
Обзор на периоды когда я сидел дома как сыч, осторожно - присутствуют глубокие мысли жокира...
https://telegra.ph/Kak-ya-hikkoval-07-26
Прежде всего хочу посоветовать канал Вани @thisnotes - Ваня мыслант, выступатель на конференциях, и автор постиронии
Записки из подполья S01E03
Я уже многовато написал "записок" по каким-то сильно около-C++-темам, но обещаю что эти будут последние, далее будет идти нормальный контент как раньше
Обзор на 16ю главу из книги "Options, Futures, and Other Derivatives", с личным примером про стоки в бигтехе
https://telegra.ph/Obzor-na-16yu-glavu-Employee-Stock-Options-07-19
Делай так каждый день и спина болеть не будет
https://telegra.ph/Kak-pisat-na-C-chtoby-vse-videli-chto-ty-krutoj-07-19
Обзор на периоды когда я сидел дома как сыч, осторожно - присутствуют глубокие мысли жокира...
https://telegra.ph/Kak-ya-hikkoval-07-26
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23❤6👍5❤🔥2🥴1
C++95
wes_herd_dies_auch_sei.png
#books
Текст в окружности - первые слова в опере (услышать)🎤
📕 Обзор на книгу про память в C++ и две заметки
👋 Прочитал классную книгу про память в C++, решил написать обзор, а также она навела меня на еще две темы - про неизбежность undefined behavior и про то какие бывают смарт-поинтеры
1️⃣ Обзор на книгу "C++ Memory Management" 📖
https://telegra.ph/Obzor-na-knigu-C-Memory-Management-08-17
2️⃣ Почему в 100% наших программ есть undefined behavior 💧
https://telegra.ph/Pochemu-v-100-nashih-programm-est-undefined-behaviour-08-17
3️⃣ Десять видов смарт-поинтеров вы будете ржать 😁
https://telegra.ph/Desyat-vidov-smart-pointerov-vy-budete-rzhat-08-17
Текст в окружности - первые слова в опере (услышать)
https://telegra.ph/Obzor-na-knigu-C-Memory-Management-08-17
https://telegra.ph/Pochemu-v-100-nashih-programm-est-undefined-behaviour-08-17
https://telegra.ph/Desyat-vidov-smart-pointerov-vy-budete-rzhat-08-17
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍6🔥3
#compiler #ai
На фото из марта 2024 - мерч с работы, это кофта и набор нашивок, которые можно прикрепить к кофте сзади, чтобы все со спины знали, кто ты такой. Подарком остался очень доволен, развитие айдентики это важно. А также я представил - на одной из нашивок написан твой ник, и была бы очень даже забавная ситуация, если бы у какого-то коллеги был ник "Kick My Butt". Что, не смеетесь? Не смешно? Не поняли? Расслабтесь господа, это называется "черный юмор"😎
... Как я выбираю, где работать? Ну конечно, на первом месте стоит польза для общества🤔
— Сначала я работал ~1 год в Т-Банке над алгоритмом распределения заказов по агентам, и вы сталкивались с результатом моей работы, если хоть раз заказывали карточку или другие услуги банка со встречей💳
— Потом ~4 года прошло в Яндексе над Алисой над разными сценариями (погода, музыка, etc.) и прошивкой, вы также сталкивались с результатом работы если хоть раз трогали кнопки колонки руками или спрашивали погоду/включали музыку🎧
— А сейчас ~2 года провожу в фонде, и вы сталкивались с результатом моей работы, если недавно теряли свои деньги на бирже, пробуя спекулировать на рынке💸
Несколько заметок, которыми хочу поделиться:
1️⃣ Когда temporary-объекты долго живут 👨🦳 #compiler
Описание всех кейсов, включая новые из C++23 и C++26
https://telegra.ph/Kogda-temporary-obekty-dolgo-zhivut-01-07
2️⃣ Advent of code optimizations 📆 #compiler
Сборник статей, кайфовое описание разных примеров оптимизации, автор - Matt Godbolt / godbolt.org
https://xania.org/AoCO2025-archive
3️⃣ Слоп Слопыч 🍌 #ai
Авторский взгляд на эволюцию AI с личным опытом
https://telegra.ph/Slop-Slopych-01-07
4️⃣ Bunte Kuh / Пестрая Корова 🐄 #offtop
Поток бессознательного. Может быть опасно к прочтению. Написал еще в августе, но решил вкинуть только сейчас.
https://telegra.ph/Bunte-Kuh--Pestraya-Korova-08-30
На фото из марта 2024 - мерч с работы, это кофта и набор нашивок, которые можно прикрепить к кофте сзади, чтобы все со спины знали, кто ты такой. Подарком остался очень доволен, развитие айдентики это важно. А также я представил - на одной из нашивок написан твой ник, и была бы очень даже забавная ситуация, если бы у какого-то коллеги был ник "Kick My Butt". Что, не смеетесь? Не смешно? Не поняли? Расслабтесь господа, это называется "черный юмор"
... Как я выбираю, где работать? Ну конечно, на первом месте стоит польза для общества
— Сначала я работал ~1 год в Т-Банке над алгоритмом распределения заказов по агентам, и вы сталкивались с результатом моей работы, если хоть раз заказывали карточку или другие услуги банка со встречей
— Потом ~4 года прошло в Яндексе над Алисой над разными сценариями (погода, музыка, etc.) и прошивкой, вы также сталкивались с результатом работы если хоть раз трогали кнопки колонки руками или спрашивали погоду/включали музыку
— А сейчас ~2 года провожу в фонде, и вы сталкивались с результатом моей работы, если недавно теряли свои деньги на бирже, пробуя спекулировать на рынке
Несколько заметок, которыми хочу поделиться:
Описание всех кейсов, включая новые из C++23 и C++26
https://telegra.ph/Kogda-temporary-obekty-dolgo-zhivut-01-07
Сборник статей, кайфовое описание разных примеров оптимизации, автор - Matt Godbolt / godbolt.org
https://xania.org/AoCO2025-archive
Авторский взгляд на эволюцию AI с личным опытом
https://telegra.ph/Slop-Slopych-01-07
Поток бессознательного. Может быть опасно к прочтению. Написал еще в августе, но решил вкинуть только сейчас.
https://telegra.ph/Bunte-Kuh--Pestraya-Korova-08-30
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤🔥5❤3🤯1
C++95
soneg.png
#jostik
Обзор жостиков C++💼 (номер 5️⃣ )
В последние несколько месяцев совсем ничего не писал. Возможно, приоритеты немного меняются со временем. По личной оценке "крутость" человека зависит от степени влияния на разные процессы, что может выражаться в разных метриках👑
Собственно паблег про C++ никаким образом вклад в это не делает, по той причине что всякие elite ball knowledge с точки зрения бизнес-процессов не влияют на значение указанных метрик, а просто увеличивает ЧСВ. На скриншоте к посту - фрагмент, где автор языка тонко троллит знатоков си плас плас🌃
За прошедшие полгода принцип моей работы сильно поменялся - сейчас 100% моего кода генерируется через AI модели🖥 Через них же автономно дебагаются все проблемы в проде, парсятся апдейты с бирж, разгребаются падения тасок, ревьюится код, авто-фиксятся падения тестов в ветке. Весь контур используемых инструментов замкнут через их MCP, регулярно пишутся новые skills для повторяющихся задач, изучаются best practices.
Нежелающие "вписываться в рынок" и учиться работе с AI на полугодовом ревью показывают гигантский разрыв в перфе со "вписавшимися". Стало ли легче? Ну, внешнее напряжение растет, копейки на токены не экономятся, у всех конкурентов безлимит на все модели в max-режиме🎰 Поэтому задач меньше не становится - "как из ведра идёт пулемет", бывают моменты когда открыто одновременно 5-6 вкладок со слопом 👀 "Отбоя не было, борьба продолжается" ☠️
Воспоминания, как мы в до-LLM эпоху в 2020 году разрабатывали "Алису" и какие технологии для разных вещей там были (на одном уровне с конкурентами как Amazon Alexa и др.), теперь больше подходят на условное "как мы в 1990 писали игры под Sega Mega Drive🏃♂️ ⭕️ на ассемблере Motorola 68000" 🖥
Таким образом C++ дополнительно отодвинут на задний план. Но и в этой ситуации находятся темы, достойные освещения:
1️⃣ Offload Core для оптимизации cache miss 👍
Борьба с вытеснением L1/L2 кэшей
https://telegra.ph/Offload-Core-dlya-optimizacii-cache-miss-06-15
2️⃣ Быстрый Variable Length String View в бинарных протоколах 💨
Быстрые чтение и запись месседжей протоколов вариабельной длины
https://telegra.ph/Bystryj-Variable-Length-String-View-v-binarnyh-protokolah-06-17
3️⃣ Growing Circular Buffer общего назначения 🟢
Неужели это лучший ring buffer?
https://telegra.ph/Growing-Circular-Buffer-obshchego-naznacheniya-06-17
4️⃣ Версионирование протоколов маркет-даты 📑
Что делать, если они апдейтятся сильно чаще, чем стандарт C++?
https://telegra.ph/Versionirovanie-protokolov-market-daty-06-17
5️⃣ High frequency trading optimizations at Pinely - Mikhail Matrosov 👀 📹
Видео от коллеги @cppjedi про оптимизации
https://youtu.be/qDhVrxqb40c
Обзор жостиков C++
В последние несколько месяцев совсем ничего не писал. Возможно, приоритеты немного меняются со временем. По личной оценке "крутость" человека зависит от степени влияния на разные процессы, что может выражаться в разных метриках
Собственно паблег про C++ никаким образом вклад в это не делает, по той причине что всякие elite ball knowledge с точки зрения бизнес-процессов не влияют на значение указанных метрик, а просто увеличивает ЧСВ. На скриншоте к посту - фрагмент, где автор языка тонко троллит знатоков си плас плас
За прошедшие полгода принцип моей работы сильно поменялся - сейчас 100% моего кода генерируется через AI модели
Нежелающие "вписываться в рынок" и учиться работе с AI на полугодовом ревью показывают гигантский разрыв в перфе со "вписавшимися". Стало ли легче? Ну, внешнее напряжение растет, копейки на токены не экономятся, у всех конкурентов безлимит на все модели в max-режиме
Воспоминания, как мы в до-LLM эпоху в 2020 году разрабатывали "Алису" и какие технологии для разных вещей там были (на одном уровне с конкурентами как Amazon Alexa и др.), теперь больше подходят на условное "как мы в 1990 писали игры под Sega Mega Drive
Таким образом C++ дополнительно отодвинут на задний план. Но и в этой ситуации находятся темы, достойные освещения:
Борьба с вытеснением L1/L2 кэшей
https://telegra.ph/Offload-Core-dlya-optimizacii-cache-miss-06-15
Быстрые чтение и запись месседжей протоколов вариабельной длины
https://telegra.ph/Bystryj-Variable-Length-String-View-v-binarnyh-protokolah-06-17
Неужели это лучший ring buffer?
https://telegra.ph/Growing-Circular-Buffer-obshchego-naznacheniya-06-17
Что делать, если они апдейтятся сильно чаще, чем стандарт C++?
https://telegra.ph/Versionirovanie-protokolov-market-daty-06-17
Видео от коллеги @cppjedi про оптимизации
https://youtu.be/qDhVrxqb40c
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17😢8🤯4🤡4👍2🔥1