Выложил десятую лекцию магистерского курса на английском
https://youtu.be/cg1D-t_7ZSk
В этой лекции мы начнём разговор о вычислениях на этапе компиляции. Мы начнём с определения константно-выраженных переменных и функций, рассмотрим детали константно-выраженного потока управления. Также мы разберемся как работает в контексте компиляции неопределённое поведение и какую пользу мы сможем из этого извлечь. Далее мы познакомимся с концепцией constexpr all the things и с историей "констекспризации" стандартной библиотеки. В конце лекции нам предстоит зайти в пещеру чудес, познакомиться с охраняющим её джином и научиться показывать фокус с пальцем: нас ждут такие странные вещи, как виртуальные функции и выделение динамической памяти времени компиляции.
Timeline
00:00 Introduction: constant expressions
06:53 constinit and constexpr variables
13:04 Control flow in constexpr contexts
17:02 constexpr functions
25:29 Implementing countl_zero
34:15 Core constant expressions
40:04 Undefined behavior in consteval functions
45:02 User-defined literal types and suffixes
55:25 Constexpr all the things
01:00:50 constexpr arrays
01:05:10 Virtual constexpr functions: sleight of hand
01:09:47 constexpr new and the Cave of Wonders
01:16:45 Homework and bibliography
#cpp_postgraduate
https://youtu.be/cg1D-t_7ZSk
В этой лекции мы начнём разговор о вычислениях на этапе компиляции. Мы начнём с определения константно-выраженных переменных и функций, рассмотрим детали константно-выраженного потока управления. Также мы разберемся как работает в контексте компиляции неопределённое поведение и какую пользу мы сможем из этого извлечь. Далее мы познакомимся с концепцией constexpr all the things и с историей "констекспризации" стандартной библиотеки. В конце лекции нам предстоит зайти в пещеру чудес, познакомиться с охраняющим её джином и научиться показывать фокус с пальцем: нас ждут такие странные вещи, как виртуальные функции и выделение динамической памяти времени компиляции.
Timeline
00:00 Introduction: constant expressions
06:53 constinit and constexpr variables
13:04 Control flow in constexpr contexts
17:02 constexpr functions
25:29 Implementing countl_zero
34:15 Core constant expressions
40:04 Undefined behavior in consteval functions
45:02 User-defined literal types and suffixes
55:25 Constexpr all the things
01:00:50 constexpr arrays
01:05:10 Virtual constexpr functions: sleight of hand
01:09:47 constexpr new and the Cave of Wonders
01:16:45 Homework and bibliography
#cpp_postgraduate
👍32🔥21❤11🦄1
Всем привет.
Если кто-то из новых читателей этого канала не знает, у меня год назад вышла книжка: https://t.me/cpp_lects_rus/191 и неплохо разошлась.
В этом году я проводил встречи с читателями в разных городах и зачастую в офисах разных компаний, например в VK меня позвали ещё весной. Надо какое-то красивое завершение года, финальная встреча. И я думаю вы уже поняли где она пройдёт.
https://meetups.yadro.com/autograph-session-k-vladimirov
Да, это будет встреча с читателями в офисе Yadro в Москве, причём двери будут открыты для всех, вам не обязательно быть сотрудником. Ну а уж если вы сотрудник то вообще просто — спускаетесь к общедоступному ресепшену на первом этаже (где столовая) и всё там. Карту для остальных куда подходить приложу в комментариях. Встречаемся в среду 10 декабря, в 20:00. Как обычно могу пообещать максимум общения с залом при максимально открытых интеллектуальных шлюзах. И даже будет какое-то количество еды.
Встреча пройдёт в довольно большом помещении, 50 мест точно есть. Обычно народа столько не бывает. Но мало ли, лучше регистрируйтесь заранее.
UPD: ответного письма после регистрации ждать не обязательно, можно просто отправить форму и приходить.
UPD2: регистрации частично идут с ошибками. Если у вас такая возникла, просто отправьте свой email мне в лс, протолкнём руками ))
#author_event
Если кто-то из новых читателей этого канала не знает, у меня год назад вышла книжка: https://t.me/cpp_lects_rus/191 и неплохо разошлась.
В этом году я проводил встречи с читателями в разных городах и зачастую в офисах разных компаний, например в VK меня позвали ещё весной. Надо какое-то красивое завершение года, финальная встреча. И я думаю вы уже поняли где она пройдёт.
https://meetups.yadro.com/autograph-session-k-vladimirov
Да, это будет встреча с читателями в офисе Yadro в Москве, причём двери будут открыты для всех, вам не обязательно быть сотрудником. Ну а уж если вы сотрудник то вообще просто — спускаетесь к общедоступному ресепшену на первом этаже (где столовая) и всё там. Карту для остальных куда подходить приложу в комментариях. Встречаемся в среду 10 декабря, в 20:00. Как обычно могу пообещать максимум общения с залом при максимально открытых интеллектуальных шлюзах. И даже будет какое-то количество еды.
Встреча пройдёт в довольно большом помещении, 50 мест точно есть. Обычно народа столько не бывает. Но мало ли, лучше регистрируйтесь заранее.
UPD: ответного письма после регистрации ждать не обязательно, можно просто отправить форму и приходить.
UPD2: регистрации частично идут с ошибками. Если у вас такая возникла, просто отправьте свой email мне в лс, протолкнём руками ))
#author_event
🔥58❤33🙏4💩3👏1🎉1🤮1🐳1💅1🦄1
Выложил одиннадцатую лекцию магистерского курса на английском.
https://youtu.be/o765J7jlWNg
Мы продолжим обсуждение техник программирования времени компиляции. Начнём с красивой проблемы, поставленной и решённой ещё Фон Нейманом. Далее переместимся в современный C++ и исследуем рефлексию через операторы, напоминающие ушки кошкодевочек. Посмотрим что делать с разнообразием методом метапрограммирования и исследуем интересный подход к метапрограммированию, ориентированному на функции и значения, принятый в Boost::Hana. Для восприятия этой лекции лучше посмотреть прошлую лекцию, вводную в мир constexpr.
Timeline
00:00 Introduction: Trits
06:40 Consteval-Constructible Trits
12:30 A Bit of C++26: Template For and the Ears Operator
19:30 Catgirls in the Cave of Wonders
24:13 Case Study: Is It an Object Type?
29:40 Constexpr for Metaprogramming
39:00 A Variety of Metaprogramming Styles: The Sumfoos Riddle
46:23 Another Example: Physical Quantities
50:45 Boost.Hana and the Idea of "Normal" Compile-Time Programming
58:30 Homework and Bibliography
#cpp_postgraduate
https://youtu.be/o765J7jlWNg
Мы продолжим обсуждение техник программирования времени компиляции. Начнём с красивой проблемы, поставленной и решённой ещё Фон Нейманом. Далее переместимся в современный C++ и исследуем рефлексию через операторы, напоминающие ушки кошкодевочек. Посмотрим что делать с разнообразием методом метапрограммирования и исследуем интересный подход к метапрограммированию, ориентированному на функции и значения, принятый в Boost::Hana. Для восприятия этой лекции лучше посмотреть прошлую лекцию, вводную в мир constexpr.
Timeline
00:00 Introduction: Trits
06:40 Consteval-Constructible Trits
12:30 A Bit of C++26: Template For and the Ears Operator
19:30 Catgirls in the Cave of Wonders
24:13 Case Study: Is It an Object Type?
29:40 Constexpr for Metaprogramming
39:00 A Variety of Metaprogramming Styles: The Sumfoos Riddle
46:23 Another Example: Physical Quantities
50:45 Boost.Hana and the Idea of "Normal" Compile-Time Programming
58:30 Homework and Bibliography
#cpp_postgraduate
🔥61👍14😐7❤5🤯1
Провёл последнюю в этом году встречу с читателями. В Москве в офисе Yadro. Было не очень много людей, но кажется прошло довольно неплохо. Из тех кто ходит на встречи, книгу так никто за год и не прочитал. Зато обсудили всё остальное: NixOS, задачи компиляторов, проблемы RISC-V Vector Extension и когда я наконец заведу канал на Boosty и начну там поглавную выкладку книги про C++. Пора бы уже, конечно.
#author_event
#author_event
👍134🔥57❤23😢3💩2😱1
Выложил двенадцатую лекцию магистерского курса на английском
https://youtu.be/Xvdcz_vnddw
На этой лекции мы поговорим про лямбды и всё, что с ними связано. Мы начнём с их введения как обычных анонимных функторов. Далее окажется, что каждый объект лямбды это объект специального класса-замыкания. Ненадолго мы вернёмся в пещеру чудес и рассмотрим как лямбды работают в невычислимом контексте. Особое внимание мы уделим захвату в замыкание и решим интересную задачу проброса списка захвата: так мы изобретём кортежи. В конце лекции нас ждёт погружение в стирание типов -- начав от более простых механизмов вроде std::any мы дойдём до std::function. И конечно в процессе мы отроем технику deducing this и далее неоднократно к ней вернёмся.
Timeline
00:00 Intro: Anonymous Functors.
04:22 Universal Way to Call Anything
11:45 Lambdas, Closures and Concepts
19:30 Unevaluated Contexts
23:00 Capturing Arguments
30:45 Move Capture and Forwarding
36:00 Deducing This
40:18 Variadic Captures
49:40 Forwarding Capture: Inception of Tuples
55:07 Ways to Create a Tuple
01:01:45 Type Erasure: std::any, std::variant
01:08:00 Type Erasure with std::function
01:14:10 Homework and Bibliogrpahy
#cpp_postgraduate
https://youtu.be/Xvdcz_vnddw
На этой лекции мы поговорим про лямбды и всё, что с ними связано. Мы начнём с их введения как обычных анонимных функторов. Далее окажется, что каждый объект лямбды это объект специального класса-замыкания. Ненадолго мы вернёмся в пещеру чудес и рассмотрим как лямбды работают в невычислимом контексте. Особое внимание мы уделим захвату в замыкание и решим интересную задачу проброса списка захвата: так мы изобретём кортежи. В конце лекции нас ждёт погружение в стирание типов -- начав от более простых механизмов вроде std::any мы дойдём до std::function. И конечно в процессе мы отроем технику deducing this и далее неоднократно к ней вернёмся.
Timeline
00:00 Intro: Anonymous Functors.
04:22 Universal Way to Call Anything
11:45 Lambdas, Closures and Concepts
19:30 Unevaluated Contexts
23:00 Capturing Arguments
30:45 Move Capture and Forwarding
36:00 Deducing This
40:18 Variadic Captures
49:40 Forwarding Capture: Inception of Tuples
55:07 Ways to Create a Tuple
01:01:45 Type Erasure: std::any, std::variant
01:08:00 Type Erasure with std::function
01:14:10 Homework and Bibliogrpahy
#cpp_postgraduate
YouTube
Lecture 12. Lambdas: Functor, Closures and Type Erasure (MIPT, 2025-2026).
Master's degree lectures at MIPT on modern C++ in English. Department of Microprocessor Technologies.
In this lecture we explore C++ lambdas and the ideas behind them. We start by introducing lambdas as anonymous functors and then show that every lambda…
In this lecture we explore C++ lambdas and the ideas behind them. We start by introducing lambdas as anonymous functors and then show that every lambda…
❤🔥40👍14🔥11❤8✍4
Продолжаю хвастаться своими студентами.
https://www.youtube.com/watch?v=lYZIDX6oU74
Илья Гаврилин учится в магистратуре на нашей кафедре и работает у меня в команде рантаймов. Его доклад посвящён Chromium и интерпретатору V8. Илья участвовал в портировании V8 и Maglev на архитектуру RISC-V и мне кажется доклад стал отличным обобщением этой работы. Он не сосредоточен именно на RISC-V. Для вас он может быть просто очень интересной экскурсией внутрь вашего браузера.
Timeline:
00:00 Введение, представление докладчика и т.д.
05:07 V8: движок для оптимизации JavaScript, TypeScript и WebAssembly.
10:50 Проблемы исполнения JavaScript в браузере и оптимизирующий компилятор TurboFan в составе V8.
24:03 Добавляем билтины к байткоду: шаблонный компилятор SparkPlug
27:40 Компилятор Maglev как золотая середина: самый быстрый оптимизирующий JIT-компилятор.
33:00 Немного о портировании Maglev на RISC-V и немного о котопсах.
39:20 Ответы на вопросы.
#conference #talks
https://www.youtube.com/watch?v=lYZIDX6oU74
Илья Гаврилин учится в магистратуре на нашей кафедре и работает у меня в команде рантаймов. Его доклад посвящён Chromium и интерпретатору V8. Илья участвовал в портировании V8 и Maglev на архитектуру RISC-V и мне кажется доклад стал отличным обобщением этой работы. Он не сосредоточен именно на RISC-V. Для вас он может быть просто очень интересной экскурсией внутрь вашего браузера.
Timeline:
00:00 Введение, представление докладчика и т.д.
05:07 V8: движок для оптимизации JavaScript, TypeScript и WebAssembly.
10:50 Проблемы исполнения JavaScript в браузере и оптимизирующий компилятор TurboFan в составе V8.
24:03 Добавляем билтины к байткоду: шаблонный компилятор SparkPlug
27:40 Компилятор Maglev как золотая середина: самый быстрый оптимизирующий JIT-компилятор.
33:00 Немного о портировании Maglev на RISC-V и немного о котопсах.
39:20 Ответы на вопросы.
#conference #talks
YouTube
Илья Гаврилин — V8: RISCованные недра Chromium
Подробнее о конференции sysconf: https://jrg.su/Czu8Za
— —
Скачать презентацию с сайта sysconf — https://jrg.su/AtdP4m
Знаете ли вы, как браузер справляется со сложными веб-страницами, больше похожими на приложения на JavaScript? Как умудряется быстро исполнять…
— —
Скачать презентацию с сайта sysconf — https://jrg.su/AtdP4m
Знаете ли вы, как браузер справляется со сложными веб-страницами, больше похожими на приложения на JavaScript? Как умудряется быстро исполнять…
👍63🔥42❤10😎6🦄3⚡2👏2
Выложил тринадцатую лекцию магистерского курса на английском
https://youtu.be/8C2u9QrGygY
На этой лекции мы начнём разговор о диапазонах -- фундаментальном улучшении стандартной библиотеки. Мы покажем как даже классические алгоритмы были улучшены концептами в пространстве имён ranges. Далее мы введём понятие диапазона -- между итератором и ограничителем. Нас ждёт увлекательная встреча с механизмом безопасности итераторов -- borrowed ranges. Во второй части лекции мы рассмотрим views -- легковесные отображения и увидим по настоящему странные ограничители, позволяющие даже бесконечные диапазоны. Закончим мы на общем обзоре стандартных отображений.
Timeline
00:00 Intro: When the Standard Library Was Young
05:00 Sentinels
09:58 Hierarchical Range Concepts
16:35 Dangling Iterators and Borrowed Ranges
22:22 Views: Lightweight Ranges
26:01 CRTP and view_interface
30:15 Why string_view Is a Poor View
35:27 Curious Uses of Sentinels
46:50 Infinite Views and Their Finite Parts
49:41 Constness Propagation -- End of Part I
#cpp_postgraduate
https://youtu.be/8C2u9QrGygY
На этой лекции мы начнём разговор о диапазонах -- фундаментальном улучшении стандартной библиотеки. Мы покажем как даже классические алгоритмы были улучшены концептами в пространстве имён ranges. Далее мы введём понятие диапазона -- между итератором и ограничителем. Нас ждёт увлекательная встреча с механизмом безопасности итераторов -- borrowed ranges. Во второй части лекции мы рассмотрим views -- легковесные отображения и увидим по настоящему странные ограничители, позволяющие даже бесконечные диапазоны. Закончим мы на общем обзоре стандартных отображений.
Timeline
00:00 Intro: When the Standard Library Was Young
05:00 Sentinels
09:58 Hierarchical Range Concepts
16:35 Dangling Iterators and Borrowed Ranges
22:22 Views: Lightweight Ranges
26:01 CRTP and view_interface
30:15 Why string_view Is a Poor View
35:27 Curious Uses of Sentinels
46:50 Infinite Views and Their Finite Parts
49:41 Constness Propagation -- End of Part I
#cpp_postgraduate
YouTube
Lecture 13. Ranges part I: Concepts and Basics (MIPT, 2025-2026).
Master's degree lectures at MIPT on modern C++ in English. Department of Microprocessor Technologies.
In this lecture, we begin our discussion of ranges -- a fundamental improvement to the C++ standard library. We'll see how even classic algorithms were…
In this lecture, we begin our discussion of ranges -- a fundamental improvement to the C++ standard library. We'll see how even classic algorithms were…
👍37❤21🔥10❤🔥2🤯2👀1
Опубликовали наше с Юлием Тарасовым выступление по корутинным оптимизациям в LLVM. Всегда интересно заглянуть как это там под капотом. Прекрасный способ провести пятничный вечер, я считаю ))
https://youtu.be/UH2Y1I2HuBE
Timeline:
01:00 Intro: Routine, Subroutine
05:36 Thread Routines and Coroutines
10:20 Stackfull and Stackless Coroutines
14:11 C++ Coroutines Flexibility And Thread Independence
17:10 What Compiler Shall Do?
20:50 Yuly Appears: Clang/LLVM Coroutines
25:40 How C++ Coroutines Transformed in LLVM
31:25 How To Help Compiler With Elide?
36:13 Wrap-up and Q&A
#conference
https://youtu.be/UH2Y1I2HuBE
Timeline:
01:00 Intro: Routine, Subroutine
05:36 Thread Routines and Coroutines
10:20 Stackfull and Stackless Coroutines
14:11 C++ Coroutines Flexibility And Thread Independence
17:10 What Compiler Shall Do?
20:50 Yuly Appears: Clang/LLVM Coroutines
25:40 How C++ Coroutines Transformed in LLVM
31:25 How To Help Compiler With Elide?
36:13 Wrap-up and Q&A
#conference
YouTube
Корутинные оптимизации в компиляторах, Константин Владимиров, Юлий Тарасов, Синтакор
Вы узнаете, что компилятор может сделать с корутиной. Мы кратко обсудили необходимые для понимания детали корутин в стандарте C++ и показали, как теория стандарта ложится на компиляторную практику.
Константин Владимиров,
руководитель отдела компиляторов…
Константин Владимиров,
руководитель отдела компиляторов…
🔥53👍13❤8❤🔥3
Выложил последнюю лекцию первой части англоязычного магистерского курса.
https://youtu.be/ME1PJmOSMYg
Эта лекция продолжает разговор о диапазонах. Мы посмотрим как устроены изнутри стандартные отображения и на какие компромиссы приходится идти при работе с ними. Также мы углубимся в pull model и разберём некоторые её неочевидные последствия. Далее нас ждёт главное преимущество диапазонов -- возможность их бесшовной адаптации и склеивания с помощью специальных функцие-подобных объектов -- Ниблоидов. И в самом конце я покажу какие ошибки могут возникать при работе с диапазонами и как выглядит борьба с этими ошибками.
00:00 Intro: Views as Projections
05:52 Inside transform_view and More Dangling
12:27 Hesitant Behavior
16:41 Inside filter_view and Caching
22:48 Quirks of the Pull Model
30:25 Range Adaptation and Niebloids
37:20 Case Study: Trimming a String
46:55 CRTP Base for Adaptors
52:42 Bug Hunt: Dealing with Ranges in Practice
01:04:45 Lessons Learned and Bibliography
#cpp_graduate
https://youtu.be/ME1PJmOSMYg
Эта лекция продолжает разговор о диапазонах. Мы посмотрим как устроены изнутри стандартные отображения и на какие компромиссы приходится идти при работе с ними. Также мы углубимся в pull model и разберём некоторые её неочевидные последствия. Далее нас ждёт главное преимущество диапазонов -- возможность их бесшовной адаптации и склеивания с помощью специальных функцие-подобных объектов -- Ниблоидов. И в самом конце я покажу какие ошибки могут возникать при работе с диапазонами и как выглядит борьба с этими ошибками.
00:00 Intro: Views as Projections
05:52 Inside transform_view and More Dangling
12:27 Hesitant Behavior
16:41 Inside filter_view and Caching
22:48 Quirks of the Pull Model
30:25 Range Adaptation and Niebloids
37:20 Case Study: Trimming a String
46:55 CRTP Base for Adaptors
52:42 Bug Hunt: Dealing with Ranges in Practice
01:04:45 Lessons Learned and Bibliography
#cpp_graduate
🔥54❤16👍9
Из докладов System Level Meetup могу также порекомендовать доклад Насти Черниковой (вы её уже видели на этом канале) про чекеры в clang-tidy.
https://www.youtube.com/watch?v=UCc2xtyMhuo
00:00 Intro: что делать с UB?
06:50 Статический анализ.
11:48 Как выглядит AST и что такое матчеры.
18:10 Пишем собственный чекер.
25:38 Ограничения статического анализа и выводы
30:05 Ответы на вопросы.
Он частично развивает и дополняет мою уже довольно древнюю лекцию про clang internals, раскрывая её с несколько более практичной стороны.
P. S. Хотя бы полистайте по таймстемпам посмотрите разных драконов. Мне кажется получилось гениально (дракон официальный маскот clang).
#conference
https://www.youtube.com/watch?v=UCc2xtyMhuo
00:00 Intro: что делать с UB?
06:50 Статический анализ.
11:48 Как выглядит AST и что такое матчеры.
18:10 Пишем собственный чекер.
25:38 Ограничения статического анализа и выводы
30:05 Ответы на вопросы.
Он частично развивает и дополняет мою уже довольно древнюю лекцию про clang internals, раскрывая её с несколько более практичной стороны.
P. S. Хотя бы полистайте по таймстемпам посмотрите разных драконов. Мне кажется получилось гениально (дракон официальный маскот clang).
#conference
YouTube
Анатомия чекеров в Clang-Tidy - Анастасия Черникова, Синтакор
Доклад посвящен устройству и созданию чекеров в статическом анализаторе clang-tidy. Анастасия кратко рассказала об архитектуре Clang-Tidy и роли AST (Abstract Syntax Tree), а затем показала, как превратить эти знания в инструмент поиска ошибок в вашем коде.…
🔥44👍14❤7🍌3💅2🦄2
Пост итогов 2025-го года.
Новый год уже стучится в двери. В этом посте я подведу свои итоги. Призываю всех в комментариях делиться своими ощущениями от года и нашего канала. Или просто поздравлять меня и друг друга. Особенно круто поздравлять непосредственно в новогоднюю ночь. В эту новогоднюю ночь я буду далеко от цивилизации (в лесу) и присоединюсь к вашим поздравлениям в лучшем случае утром. И, поскольку у всех жителей нашей страны от Владивостока до Калининграда новогодняя ночь наступает по разному, я выложил этот пост чуточку заранее.
К слову о нашей необъятной стране -- за этот год я основательно её объездил (благодаря вышедшей книге). Встречи с читателями были мной проведены в Санкт-Петербурге, Москве, Новосибирске, Минске, Нижнем Новгороде, Ростове на Дону, Йошкар Оле, Великом Новгороде, Екатеринбурге, Казани, и в конце года ещё разок в Москве. Суммарно на встречах со мной и на гостевых лекциях побывало человек 350-400. Для меня это был важный опыт и я наконец-то посмотрел Россию. Россия замечательная страна, если вы не знали. У меня немного не сложилось с Владивостоком, с Магасом и с Нижним Тагилом, во все три меня в общем звали но я не доехал по разным причинам. Может быть ещё сложится.
Среди докладов этого года самые важные это доклад про модули на C++ Russia и доклад на SnowOne про ограничения статических компиляторов. Также много позитивных отзывов собрали моя лекция про коэволюцию языков, компиляторов и инструментов разработки в iSpring и про распределение регистров в ИТМО.
Как обычно, я продолжаю выводить в свет своих учеников и коллег. Среди тех, кого хочется отметить, конечно, Настя Черникова (со мной и без меня и ещё разок без меня), Илья Андреев, Владислав Белов, Никита Руденко, Илья Гаврилин и Юлий Тарасов.
Гигантским достижением этого года я считаю курс на Stepik по RISC-V, сделанный совместно с Марком Гончаровым и Настей Черниковой. Он взят на вооружение в пяти университетах, и на него уже более тысячи регистраций.
Своим чередом развивался мой любимый проект генератора llvm-snippy. Я прочитал пару докладов (например этот), мы выпустили опен-сорс релиз и сделали документацию на github pages. Генератор был принят в симулятор spike (он же riscv-isa-sim) для тестирования модели случайными тестами.
Главной авантюрой этого года я считаю начало выкладки англоязычного курса. Я не был уверен, что из этого вообще получится что-то хорошее. Отмечу, что влияние этой выкладки на мой Linkedin было колоссальным: моя профессиональная сеть выросла до 2.4к (+1.5к) за счёт добавляющихся в друзья разработчиков из дружественных стран. Теперь, если что, я точно найду себе работу. По крайней мере -- в Индии. По просмотрам пока не так радужно, но лиха беда начало. Громадная благодарность Владиславу Белову, Насте Черниковой и Даниилу Авдееву за постоянную поддержку. Без них я бы не справился.
В целом, мой телеграм-канал вырос до более чем 9к человек (+2.5к), а мой youtube-канал до более чем 29к (+5к). Хочется выразить огромную благодарность Владиславу Белову и Максиму Москальцу за неусыпную модерацию нашего сообщества.
Планы на следующий год пока не ясны -- у меня с ними традиционно сложно. Но, возможно, в начале года что-то расскажу насчёт книги по C++, которую от меня все так долго ждали. Концепция у меня уже есть, кое-что уже готово. Может быть, я даже попрошу вашей помощи.
Я хотел бы пожелать всем моим уважаемым друзьям на этом канале (всем более чем девяти тысячам), чтобы в наступающем году у вас было много амбициозных планов, много мотивации и сил для их претворения и чтобы не было проблем с внешними обстоятельствами.
Всех с наступающим Новым Годом!
P. S. Бонусом -- мнение микроволновки о моих итогах года. В комментариях можете пошарить мнение вашего пылесоса о вас.
#official #happynewyear
Новый год уже стучится в двери. В этом посте я подведу свои итоги. Призываю всех в комментариях делиться своими ощущениями от года и нашего канала. Или просто поздравлять меня и друг друга. Особенно круто поздравлять непосредственно в новогоднюю ночь. В эту новогоднюю ночь я буду далеко от цивилизации (в лесу) и присоединюсь к вашим поздравлениям в лучшем случае утром. И, поскольку у всех жителей нашей страны от Владивостока до Калининграда новогодняя ночь наступает по разному, я выложил этот пост чуточку заранее.
К слову о нашей необъятной стране -- за этот год я основательно её объездил (благодаря вышедшей книге). Встречи с читателями были мной проведены в Санкт-Петербурге, Москве, Новосибирске, Минске, Нижнем Новгороде, Ростове на Дону, Йошкар Оле, Великом Новгороде, Екатеринбурге, Казани, и в конце года ещё разок в Москве. Суммарно на встречах со мной и на гостевых лекциях побывало человек 350-400. Для меня это был важный опыт и я наконец-то посмотрел Россию. Россия замечательная страна, если вы не знали. У меня немного не сложилось с Владивостоком, с Магасом и с Нижним Тагилом, во все три меня в общем звали но я не доехал по разным причинам. Может быть ещё сложится.
Среди докладов этого года самые важные это доклад про модули на C++ Russia и доклад на SnowOne про ограничения статических компиляторов. Также много позитивных отзывов собрали моя лекция про коэволюцию языков, компиляторов и инструментов разработки в iSpring и про распределение регистров в ИТМО.
Как обычно, я продолжаю выводить в свет своих учеников и коллег. Среди тех, кого хочется отметить, конечно, Настя Черникова (со мной и без меня и ещё разок без меня), Илья Андреев, Владислав Белов, Никита Руденко, Илья Гаврилин и Юлий Тарасов.
Гигантским достижением этого года я считаю курс на Stepik по RISC-V, сделанный совместно с Марком Гончаровым и Настей Черниковой. Он взят на вооружение в пяти университетах, и на него уже более тысячи регистраций.
Своим чередом развивался мой любимый проект генератора llvm-snippy. Я прочитал пару докладов (например этот), мы выпустили опен-сорс релиз и сделали документацию на github pages. Генератор был принят в симулятор spike (он же riscv-isa-sim) для тестирования модели случайными тестами.
Главной авантюрой этого года я считаю начало выкладки англоязычного курса. Я не был уверен, что из этого вообще получится что-то хорошее. Отмечу, что влияние этой выкладки на мой Linkedin было колоссальным: моя профессиональная сеть выросла до 2.4к (+1.5к) за счёт добавляющихся в друзья разработчиков из дружественных стран. Теперь, если что, я точно найду себе работу. По крайней мере -- в Индии. По просмотрам пока не так радужно, но лиха беда начало. Громадная благодарность Владиславу Белову, Насте Черниковой и Даниилу Авдееву за постоянную поддержку. Без них я бы не справился.
В целом, мой телеграм-канал вырос до более чем 9к человек (+2.5к), а мой youtube-канал до более чем 29к (+5к). Хочется выразить огромную благодарность Владиславу Белову и Максиму Москальцу за неусыпную модерацию нашего сообщества.
Планы на следующий год пока не ясны -- у меня с ними традиционно сложно. Но, возможно, в начале года что-то расскажу насчёт книги по C++, которую от меня все так долго ждали. Концепция у меня уже есть, кое-что уже готово. Может быть, я даже попрошу вашей помощи.
Я хотел бы пожелать всем моим уважаемым друзьям на этом канале (всем более чем девяти тысячам), чтобы в наступающем году у вас было много амбициозных планов, много мотивации и сил для их претворения и чтобы не было проблем с внешними обстоятельствами.
Всех с наступающим Новым Годом!
P. S. Бонусом -- мнение микроволновки о моих итогах года. В комментариях можете пошарить мнение вашего пылесоса о вас.
#official #happynewyear
❤171🎄73🔥19🍾15👏5☃3👍2🙏2
draft-26-01-11.pdf
3.2 MB
Всем привет! Хотелось бы начать новый год с какого-то большого и важного анонса.
Многие спрашивали, будет ли у меня всё-таки книга по C++. Мне бы и самому хотелось это знать. Поэтому я решил выложить драфт -- первые три главы потенциальной книги. Объём -- примерно 20 страниц на главу, плюс ещё страниц 10–15 константного оверхеда, потому что выкладываю одним куском вместе с обложкой. К слову, обложкой искренне горжусь, очень концептуальная, очень.
Подчеркну: это демо-версия потенциальной книги. Я пока даже не очень уверен в её составе на уровне крупных разделов. И уж точно у меня пока нет контракта с издательством и всего такого.
Почитайте и напишите в комментариях, что думаете. А я через некоторое время вернусь с информацией (и опросом) на тему того, как вы сможете помочь этой книге состояться — если вам её идея покажется интересной. По первым трём главам, мне кажется, уже можно сделать какие-то выводы.
#official #cpp_graduate #cpp_postgraduate
Многие спрашивали, будет ли у меня всё-таки книга по C++. Мне бы и самому хотелось это знать. Поэтому я решил выложить драфт -- первые три главы потенциальной книги. Объём -- примерно 20 страниц на главу, плюс ещё страниц 10–15 константного оверхеда, потому что выкладываю одним куском вместе с обложкой. К слову, обложкой искренне горжусь, очень концептуальная, очень.
Подчеркну: это демо-версия потенциальной книги. Я пока даже не очень уверен в её составе на уровне крупных разделов. И уж точно у меня пока нет контракта с издательством и всего такого.
Почитайте и напишите в комментариях, что думаете. А я через некоторое время вернусь с информацией (и опросом) на тему того, как вы сможете помочь этой книге состояться — если вам её идея покажется интересной. По первым трём главам, мне кажется, уже можно сделать какие-то выводы.
#official #cpp_graduate #cpp_postgraduate
🔥244❤40👍22👏6❤🔥3🙏3🤔2