C++ and other lectures
8.46K subscribers
39 photos
2 files
209 links
Учебный канал в Телеграм: тут будут анонсы и ссылки на лекции и стримы. Написать автору: @Tilir
Download Telegram
Провёл лекцию и встречу с читателями в Школе 21 в Великом Новгороде. Качество фото увы, зато солнце приятно освещало амфитеатр.

Отличный зал, замечательный город, местные ребята и девушки очень интересуются программированием. После лекции (увы записи не было) обсудили широкий круг вопросов, таких как проблемы наказания нейросетей, пределы возможностей компиляторов к алгоритмической оптимизации и необходимость для разработчика знать своё железо.

Возможно покидаю в комментарии путевых заметок.

P. S. С Екатеринбургом пока всё сложно. Там кое-что сорвалось, но надеюсь встреча 13-го всё же будет.

#author_event
64👍29🔥12👏3🤯2😢1😍1💋1
Всем привет. Я всё-таки еду на Урал. Небольшая лекция и встреча с читателями состоится 13-го июня в Екатеринбурге в 19 часов. Примерно час на лекцию и час на ответы на вопросы, как обычно по широкому кругу тем.

Площадку предоставляет Библиотечный Центр «Екатеринбург».

Обязательная регистрация (бесплатно): https://bce.timepad.ru/event/3413045/
Дата и время: 13 июня 19:00–21:00
Адрес: Библиотечный Центр «Екатеринбург», ул. Мамина-Сибиряка, 193

Обращаю внимание: купить книгу на месте будет нельзя, приносите с собой.

На Урале я после этого скорее всего буду не скоро, так что обязательно приходите.

#author_event
👍71🔥274🆒1
Провёл встречу с читателями в Екатеринбурге. Пришли люди из местного УрФУ, приехали из Челябинска и из Тагила и из других городов. Было много народа, очень хорошая аудитория. Увы, было жестко лимитированное время, так что мне показалось, что немного не договорили.

Тем не менее, был прекрасный живо реагирующий зал, интересные вопросы, мне очень понравилось. Обсудили перспективы формальной верификации компиляторов, причины будущего успеха убийцы языка Раст и управление зависимостями в C++. Ну и про компиляторы поговорили. Записи, увы, не было.

К слову в "Библиотечном центре Екатеринбург" отличная площадка, большое спасибо за неё.

Кроме того, люди из УрФУ сказали что просто не знали, что меня можно позвать с гостевой лекцией и осенью возможно позовут.

Екатеринбург очень хорош и я по нему очень приятно погулял в отличной компании. Путевые заметки скину в комментарии.

Список из прошлого опроса исчерпан, так что скоро сделаю новый опрос по дальнейшим поездкам ))

#author_event
73🔥40👍23👌1🍓1
Please open Telegram to view this post
VIEW IN TELEGRAM
🤷18🔥52😱1
Принял вчера экзамен по C++ у магистрантов на физтехе. Из 17 человек в ведомости, 6 сдали на оценку "отлично", это прекрасный результат для группы.

Есть ли на канале те, кто весь год смотрел (немного обновлённый) магистерский курс по ссылкам в дискорде (или даже лично ходил, т.к. у меня были вольнослушатели в аудитории) и теперь хочет сдать экзамен?

По хорошей традиции (см. https://t.me/cpp_lects_rus/106 и далее) я устраиваю пиринговые экзамены для всех желающих. Это когда вы пишете задание и оно отправляется на проверку двум другим людям сдающим экзамен и вам тоже приходят два задания от других людей сдающих тот же экзамен. Вы проводите ревью и ставите две оценки. Очень важны обе фазы -- вам нужно и хорошо написать экзамен и потом качественно провести ревью (это не значит занизить оценку). Вы сами получаете за каждый вопрос среднее из двух оценок которые вам поставили другие люди.

Задание будет состоять из двух задач. Одна вида "спроектируйте класс" (нечто многопоточное или с умными указателями или с аллокаторами или всё вместе), другая вида "напишите код" (обычно что-то с корутинами или параллелизмом или всё вместе). Решения вы пишете на годболте и отлаживаете до минимальной работоспособности.

Четыре часа на выполнение, потом четыре часа на кросс-проверку. На прошлом пиринговом экзамене люди очень жаловались на нехватку времени, но мне кажется уложиться реалистично, да и современные нейросети могут очень сильно помочь. Ну и потом это же экзамен, он должен быть сложным и стрессовым. В процессе решения, как вы догадываетесь, можно подглядывать куда угодно, а также использовать любые материалы и любые инструменты.

Регистрация: https://forms.gle/fQbF9wCjcPmeeX7P7

Зарегистрироваться можно до 12 часов понедельника 16-го июня. Дата проведения: суббота, 21 июня. Будет отдельный чат для сдающих, поэтому в анкете я прошу ссылку на телеграм.

#official
88🔥28👍19😱10😢1
Всем привет. Немного о ближайшем и повседневном.

1. 5 июля в 14 часов я провожу встречу с читателями в Казани в магазине "Книга плюс" (ТРЦ Южный, Проспект Победы, 91). Никакой формы для записи организаторы не дали, так что пока записывайтесь по моей чтобы я примерно знал чего ждать по посещаемости.

https://forms.gle/fZTnAeuFTZTKwgzQA

2. Открыт набор в летний лагерь Неймарк для 9-11 классов. Участие бесплатное, но есть отбор. Я скорее всего приеду туда выступить перед подрастающим поколением где-то в июле.

https://neimark-it.ru/camp2025

3. Сделал плейлист из своих выступлений на конференциях. Если было несколько дубликатов по темам, я оставил лучшее из. Буду его пополнять.

https://www.youtube.com/playlist?list=PL3BR09unfgcgT5av9JVYlcuE84RgXkRss

4. Подал заявку на Zero Cost Conf, которая будет где-то в конце июля в Москве. Участие бесплатное, но есть отбор. Всех буду рад там увидеть, можно будет пообщаться и подписать книги кто в Москве ещё не успел.

#author_event #conference #official
🔥78👍105👏4😱2👎1
Всем привет. Включил новую телеграмную штуковину direct messages, разумеется бесплатно. Её можно и нужно использовать для предложений по каналу в целом. Например если вы очень хотите видеть какой-то пост или какую-то лекцию, напишите туда. У меня раньше был для этого пост, теперь я его удалю т.к. это стало удобнее через официальный механизм. Также обновлю закреп.

Для тех кто не может найти: заходите на канал https://t.me/cpp_lects_rus и жмёте значок сообщения внизу слева. Большая просьба не писать бессмысленных сообщений вроде "Привет", а сразу переходить к делу.

Есть ещё одна штука которую давно хотел: говорят с достижением каналом так называемого "уровня 50" можно отключить рекламу чтобы её не видел никто, а не только платные пользователи. Проблема в том что дойти до этого уровня почти нереально, нужна тонна бустов. А ничего полезного кроме этого бусты не дают кроме всяких сторисов (тех, кто постит сторисы, я лично считаю электросамокатчиками) обложечек и новых смайликов. Так что тут пока даже не знаю.

#official
🔥92👍1916😁7👾3👌2🦄2
В отпуске дошли руки написать обзор на книгу Андрея Карпова "Вредные советы для C++ программистов". Тем более мне недавно подарили физический экземпляр, как раз появился повод.

https://telegra.ph/Vrednyj-obzor-vrednyh-sovetov-06-23

Я бы конечно хотел видеть больше самых разных книг по программированию, выходящих в России. Здесь автор явно постарался и с оформлением и с изданием и с продвижением своей книги. Ну и я в обзоре постарался не жестить сверх минимально необходимого. Have fun.

В обзор также приложена фотка моего рабочего стола в Туле с этой книгой и моим конспектом. Можно поизучать что у меня там под стеклом.

P. S. Если у вас тоже есть книга по программированию, вы хотите мне её подарить и бесплатно получить честный отзыв, стучитесь ))

#books
👍12618🔥7❤‍🔥6🤔3
Всем привет. Напоминаю, что на ближайших выходных я приезжаю в Казань провести там встречу с читателями. Встреча будет в классическом формате и в основном в режиме живого диалога. Можно будет затронуть как обычно широкий круг вопросов.

Дата и время: суббота, 5 июля в 14 часов. Место: магазин "Книга плюс" (ТРЦ Южный, Проспект Победы, 91).

Территориально локация не очень удобная: это как если бы в Москве встреча была где-то на МКАДе. Зато локация вроде бы большая, хорошая. Транспортная доступность, в общем, тоже не худшая из всего, что бывало в других городах. И, как обычно, неизвестно когда я вообще ещё окажусь в Казани. Книжки можно приносить свои, можно будет купить на месте гарантированно актуальный тираж.

Магазин прислал свою ссылку на регистрацию: https://forms.gle/18MF1qctrqwG6cwe6

Пожалуйста зарегистрируйтесь по ней. По моей ссылке из прошлого поста зарегистрировалось существенно меньше людей, чем проголосовали вот тут https://t.me/cpp_lects_rus/283. Там было 80 голосов, а по моей ссылке я пока вижу только 20 регистраций. Мне интересно где все проголосовавшие? Вероятно будут на встрече, не могут же люди просто так тыкать в рандомные города ))

Также я буду в Казани в воскресенье. Я пока планирую просто гулять, но если у вас есть возможность организовать что-то полезное, скажем встречу ещё где-то ещё с кем-то или какое-то выступление, то ещё не поздно мне написать в лс обсудить детали.

P. S. пост временный, снесу по проведении мероприятия.

#author_event
👍30👌43
Выложили мой доклад, посвящённый компиляторным технологиям в верификации, сделанный на конференции Sysconf этого года. Мы продолжаем развивать проект llvm-snippy и я продолжаю про него рассказывать, освещая новые возможности инструмента. На этот раз я несколько сместил акценты: я рассматриваю не только железо, а весь спектр моделей RISC-V разного уровня -- от функциональных симуляторов до потактовых моделей. На самом деле на работе мы тестируем с помощью snippy даже отладчики и валгринд.

https://www.youtube.com/watch?v=J6MjH4kb0ag

00:00 Intro
01:28 Начало: моделирование RISC-V
06:45 Идея и проблемы генератора потока инструкций
11:48 Компиляторы спешат на помощь: LLVM и llvm-snippy
15:06 Базовые возможности llvm-snippy
20:24 Сложность операций с памятью
25:12 Поток управления и вызовы функций
33:30 Использование в опен-сорс и учебных проектах и призыв к действию
36:45 Вопросы и завершение

Вообще в этом году Sysconf была, пожалуй, пока что самой сильной по составу конференцией из тех, где я был. Там было много отличных докладов и про компиляторы и про отладчики и про операционные системы. Когда всё выложат надо будет сделать обзор лучших. Конференция проходит первый год и у них на канале всего 66 подписчиков. Если вы интересуетесь такими темами, вы знаете что делать ))

Альтернативное видео: https://vkvideo.ru/video-228047553_456239026

#conference #snippy
🔥9015👍124💩2🐳1🦄1
Провёл встречу с читателями в Казани. Обсудили детали сосуществования ML-guided и profile-guuded оптимизаций, компиляторы для разработки аппаратуры, перспективы нейросетей и состояние преподавания информатики.

Было довольно камерно, в топе не более 20 человек (не все в кадре, некоторые опоздали к началу, многие ушли до общей фотки в конце). Мне понравилась исключительно приветливая площадка, нас терпели три часа и потом меня ещё и поблагодарили. Огромное спасибо всему персоналу магазина Книга-плюс особенно ведущей Саше (на моих фотках нет, я выложу в комментарии когда мне скинут фотки от площадки если она там будет).

Сама Казань очень интересна, мне ещё предстоит её исследовать сегодня и завтра. Какие то путевые заметки тоже положу в комментарии.

Спасибо всем кто пришёл за то что пришли и за отличные вопросы, было супер.

#author_event
👍123🔥4110👌4👾1
Пятница, вечер. Время чилаута и развлекательного C++.

Представим у вас есть куча специализаций некоего шаблона функции foo.

template <typename T> int foo() { return 1; } 
template <> int foo<int>() { return 2; }
template <> int foo<float>() { return 4; }


И функция sumfoos которая подставляет по ним пачку типов и как-то её сворачивает. Ну скажем складывает.

template <typename ...T>
int sumfoos() { return (foo<T>() + ...); }


Вы хотели бы написать шаблон функции apply_sumfoos с вот такой сигнатурой

template <typename Tuple> auto apply_sumfoos();


Идея в том что он принимает кортеж, разворачивает его и для его содержимого вызывает sumfoos.

std::tuple<int, float, double> t;
assert(apply_sumfoos<decltype(t)>() == 7);


Можно предложить кривой и косой, уродливый как черт с рогами, но рабочий вариант с dummy-аргументом.

https://godbolt.org/z/zxY1qf9hT

Но это не наш метод. Я утверждаю что есть более красивые способы (и даже можно обойтись без сворачивания с index sequence).

Наливайте себе чаю с булочкой или пивка с орешками и подключайтесь. Попробуйте придумать как это решали бы вы, а потом смотрите в комментарии и ставьте лайки лучшим вариантам. Ну и если вашего там не будет — смело постите. Если никто не угадает мой вариант, скажу его завтра.

UPD: мой вариант вычислили за 20 минут. Горжусь своим каналом ))

UPD2: выношу из комментариев самые интересные варианты.

0. Просто уход от nullptr за счёт type_identity, но всё ещё dummy arg https://godbolt.org/z/P41eeTcfK via @PaRat07
1. Биндинг свёртки: https://godbolt.org/z/85EhzdWve совместно @savvatelegram и @xray_3d
2. Рефлексия: https://godbolt.org/z/Pdqd75nxq via @xray_3d
3. Вывод типов и deduction guides: https://godbolt.org/z/6zTT6M8zh via @redPergament
3a. Его разновидность через оператор приведения: https://godbolt.org/z/cTh1W3r3e от него же
4. Hana-style (я добавил к решению подписчика пару consteval потому что смог): https://godbolt.org/z/GxcqKnWMK via @n13625124998637487500
4a. Его очень красивая и лакончиная разновидность через decltype (я тоже добавил consteval от себя) https://godbolt.org/z/zjErr58zz via @alamat1
5. Виртуозный std::apply https://godbolt.org/z/Ydd5e86oP via @savvatelegram
5a. То же самое руками через index sequence https://godbolt.org/z/6feh3fvex via @vmishanin
6. Сохранение промежуточного адреса инстанцированной функции https://godbolt.org/z/racKGYnW1 опять @xray_3d
7. in_place_type подход https://godbolt.org/z/Gq9G9n773 via @alamat1

Ну и самый наивный вариант: https://godbolt.org/z/48jnhKz45 здесь в редакции @ePilnikoff но вообще до него многие дошли и он совпадает с моим решением.

Наивный вариант очень интересно улучшил @s_i_g_a до состояния https://godbolt.org/z/GePnj8qE1 чтобы функция принимала любой tuple-like тип вроде того же std::array. Понятно что так можно улучшить каждый из предложенных вариантов.

Итого мы с вами нашли десять нетривиальных и принципиально разных способов добиться цели. Очень круто.

#questions
🔥7185👍3🤔2🆒1💊1
Media is too big
VIEW IN TELEGRAM
Всем привет. Открыта регистрация на Zero Cost Conf этого года. Выступаем с Владиславом Беловым на вечнозелёную тему алиасинга.

Владислав работает в моей команде и он недавно подготовил довольно сложный патч в компилятор который наконец-то позволяет LLVM агрессивно оптимизировать код в котором соответствующие аннотации висят на локальных переменных, например. По пути мы оба, понятное дело, многое узнали.

https://cppzerocostconf.yandex.ru/2025

Пост временный, сотру как выложу видео (они обычно быстро выкладывают). А может и оставлю ради гифки. Гифка от организаторов уж очень хороша.

#conference
👍68🔥17😍62🐳1
Вечер пятницы и время чилаута в области C++. На этот раз мы снова сыграем в увлекательную игру "кто из компиляторов прав".

Я вытащил этот пример из переписки со студентом более чем годичной давности и проверил на свежих gcc и clang. Они всё ещё не согласны друг с другом.

https://godbolt.org/z/fe14q8aoz

Это упражнение на чтение стандарта, так что ссылки на стандарт обязательны.

Как обычно — наливайте себе пивка с орешками или чая с булочкой и сначала попробуйте решить сами, никуда не подглядывая. Потом пролайкайте самые вдумчивые из ответов.

#questions
👍246🔥2🐳2
На канале sysconf выложили первое сольное видео моей студентки и постоянной содокладчицы Анастасии Черниковой с детальным рассказом про llvm-exegesis и компиляторный бенчмаркинг.

https://www.youtube.com/watch?v=5Bsa1nBQRQU

00:00 Начало. RISC-V и LLVM
05:24 Компиляторный бенчмаркинг
09:14 Использование и возможности llvm-exegesis
18:03 История инструмента, его разнообразные применения и его путь в RISC-V
25:22 llvm-jit его устройство и использование: как отдельно так и внутри инструментов
29:56 Ответы на вопросы
35:00 Моё камео: ответ про соотношение llvm-mca и llvm-exegesis. Далее Настя продолжает отвечать сама.

Давайте поддержим Настю лайками и комментариями на youtube. У меня будет ещё несколько видео моих студентов с конференции sysconf, буду тут их анонсировать по мере выкладки.

P. S. И уже в эту субботу 2 августа мы с Владиком Беловым выступим на Zero Cost Conf, всех буду рад там увидеть.

#conference
👍9231🔥13💩4🐳2👎1😁1😱1🕊1🙉1