Telegram Group & Telegram Channel
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 штук friend class.

5️⃣ Elvis Operator 🕺
"elvis operator" это запись:
a ?: b

что равносильно:
a ? a : b

Пригождается несколько раз в год 😎
Это поддерживается основными компиляторами с -Wnognu-conditional-omitted-operand.
Please open Telegram to view this post
VIEW IN TELEGRAM



group-telegram.com/cxx95/152
Create:
Last Update:

#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 штук friend class.

5️⃣ Elvis Operator 🕺
"elvis operator" это запись:

a ?: b

что равносильно:
a ? a : b

Пригождается несколько раз в год 😎
Это поддерживается основными компиляторами с -Wnognu-conditional-omitted-operand.

BY C++95


Warning: Undefined variable $i in /var/www/group-telegram/post.php on line 260

Share with your friend now:
group-telegram.com/cxx95/152

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

Andrey, a Russian entrepreneur living in Brazil who, fearing retaliation, asked that NPR not use his last name, said Telegram has become one of the few places Russians can access independent news about the war. Perpetrators of these scams will create a public group on Telegram to promote these investment packages that are usually accompanied by fake testimonies and sometimes advertised as being Shariah-compliant. Interested investors will be asked to directly message the representatives to begin investing in the various investment packages offered. After fleeing Russia, the brothers founded Telegram as a way to communicate outside the Kremlin's orbit. They now run it from Dubai, and Pavel Durov says it has more than 500 million monthly active users. "And that set off kind of a battle royale for control of the platform that Durov eventually lost," said Nathalie Maréchal of the Washington advocacy group Ranking Digital Rights. "The result is on this photo: fiery 'greetings' to the invaders," the Security Service of Ukraine wrote alongside a photo showing several military vehicles among plumes of black smoke.
from us


Telegram C++95
FROM American