C++ and other lectures
8.46K subscribers
39 photos
2 files
209 links
Учебный канал в Телеграм: тут будут анонсы и ссылки на лекции и стримы. Написать автору: @Tilir
Download Telegram
Пример неожиданной полемики.

У меня в ленте подписок следующие два доклада идут рядом. Они были сделаны на разных конференциях, выложены на youtube практически одномоментно и в целом я думаю тут нельзя подозревать никакого умысла. Каждый пел о том, о чём пел, а полифония возникла сама.

1. Phisl Nash, "Rewiring your brain with test driven thinking in C++", Meeting C++ 2023, https://youtu.be/Hx-1Wtvhvgw
2. Ian Cooper, "TDD Revisited", NDC Porto 2023, https://youtu.be/IN9lftH0cJc

Смотреть именно в таком порядке. Первый доклад это не доклад, это проповедь. У уважаемого докладчика горят глаза. Он уличает аудиторию в недостаточном следовании учению, а потом на восхитительно дурацком примере (начало в 20:25) показывает как приходят к спасению. За десять минут. У меня правда есть вопрос к 29:45 -- а почему собственно он прекратил писать тесты в этот момент? Может там ещё что осталось невыловленное? Я имею в виду -- у него до этого каждый новый тест ловил по багу. Он написал пятый и бросил. Но за общие презентационные скиллы всё это можно простить, доклад очень хорош и я могу его очень порекомендовать.

Правда после него остаются более фундаментальные вопросы. Например такой: TDD это мягко скажем не новая практика. Оно известно давно. Оно очень и очень мало где применяется в чистом виде. Может быть это само по себе означает что в нём есть какое-то место где всё идёт не по плану? Ну например самое простое: большое количество написанных юнит-тестов делает дизайн негибким, а программирование это всё ещё исследовательская область. Или там -- зачем вообще тратить время программистов на юнит-тесты, может мы лучше сделаем генератор и сгенерируем миллиард таких тестов автоматически из спецификации? И сделаем это после того как основные бизнес-задачи решены чтобы просто почистить перед релизом? Ну и прочие вопросы.

Второй доклад гораздо глубже и интереснее. Там почти нет специфики конкретного языка (я не удивлюсь если докладчик вообще пишет на каком-нибудь js). Там нет примеров кода. Но он вскрывает именно глубокие и сложные моменты TDD, действительную (и очень существенную) полезность этой методологии, но кроме того и те подводные камни которые там действительно есть и как её можно использовать неправильно или даже совсем неправильно.

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

И заметьте, я не утверждаю что проповеди не надо слушать. Иногда доклады первого типа куда полезней. Скажем я на втором курсе абсолютно сознательно рассказываю в жанре проповеди лекцию по стандартным алгоритмам.

Просто это два очень разных жанра. Примерно как прочитать про некоего героя любовный роман, где повествуется о его нежных чувствах. А потом прочитать про него же детектив. Где его нежные чувства тщательно расследуются. И раскрываются совсем по новому.

#talks
👍6910🔥8
Всем привет. 2 февраля читаю (очередную) вводную лекцию по RISC-V на "зимней школе" в Нижнем Новгороде.

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

Насчёт того будет ли запись я, если честно, не уверен, но если будет я дам ссылку. Можно послушать онлайн бесплатно по регистрации.

Подробности: https://careers.yadro.com/risc-v-school/

#conference #riscv
🔥63👍25😍41👎1👏1
Начался новый семестр и я продолжаю выкладку семинаров по языку C.

https://www.youtube.com/watch?v=6s5HIJDlLiE

На этом занятии мы начнём второй семестр знакомства с основами языка C и разберём работу с индивидуальными символами и со строками. Кроме того мы возобновим знакомство с объединениями и перечисляемыми типами.

#c_graduate
👍86🔥3113👏9😐1
Очередной семинар по языку C посвящён регулярным выражениям и автоматам.

https://youtu.be/KlV1srH5erQ

На этом занятии мы погрузимся в более интересную обработку строковой информации. Мы познакомимся с понятиями конечного автомата и регулярного выражения, поиграем с утилитой grep, научимся писать наши собственные регулярные выражения на C и даже используем их для условно-практических задач (скажем распознавания email в тексте).

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

#c_graduate
👍65🔥208😁1
Заканчиваем пятый логический семинар.

https://youtu.be/LTFWuT21siY

На этом занятии мы познакомимся с принципом оптимальности Беллмана и дискретным динамическим программированием. Мы решим несколько классических задач: рюкзак, размен монет, расстояние редактирования в строках. Кроме того мы ещё немного сдвинем пределы регулярности и выясним связь формальных грамматик как с регулярными выражениями, так и с динамическим программированием. В конце будет небольшое объяснение про мемсет.

#c_graduate
60👍17🔥6👏3
Немного подзамочного контента для моих уважаемых подписчиков.

Прочитал лекцию на открытие лаборатории RISC-V в МФТИ.

Рассказываю обзорные вещи про тулчейны, кросс-компиляцию и RISC-V.

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

https://youtu.be/xY_Ne9ZznJ4

#toolchain #riscv
🔥86👍3462
Всем привет. 20 марта буду в Санкт-Петербурге выступать на митапе Yadro.

Рассмотрю самые разные механизмы абстракции в языке: от виртуальных функций до корутин и мы вместе попробуем найти среди них абстракции отрицательной стоимости.

Всех буду рад увидеть, особенно если раньше мы с вами в Питере не пересекались (я там не выступал кажется с 2022-го).

Участие бесплатное, количество мест ограничено регистрация по ссылке.

#conference
👍67🔥24🫡155
Выложил первое видео шестого логического семинара.

https://youtu.be/44uQ6Q3qHNQ

На этом занятии мы начнём своё путешествие в ассемблер. Для начала мы изобретём свой собственный несложный ассемблер и даже потренируемся писать для него кодировщик и декодер инструкций. Далее мы посмотрим на более взрослый ассемблер x86 его регистры и систему команд. Я также устрою большой сеанс live-coding и в конце мы подумаем над одной увлекательной головоломкой.

#c_graduate
👍72🔥595
Выложил второе видео семинара по ассемблеру.

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

На этом занятии мы погрузимся в работу с флагами. Мы начнём с того что обсудим детали goto. Далее вспомним кодировку для целых чисел. Далее мы увидим как отличаются знаковые и беззнаковые сравнения. Потом мы познакомимся с концепцией "эффективного адреса" и научимся работать с памятью. В конце нас ждёт погружение в тёмные искусства.

#c_graduate
🔥90👍265👏2😭21😁1💅1
Выложил третье, но внезапно не последнее видео по ассемблеру.

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

На этом занятии мы займёмся вызовами функций и познакомимся с основными концепциями ABI: работой со стеком, caller и callee saved регистрами и конвенциями передачи аргументов. Во второй половине мы немного обсудим инлайн-ассемблер и сформулируем главное правило разработки на ассемблере.

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

#c_graduate
🔥96👍3717🌭1
Выложил четвёртое видео по ассемблеру (но к слову именно ассемблера тут не так много).

https://youtu.be/iW-m98NCOTw

На этом занятии мы попробуем осознать сложность представления вещественных чисел, познакомимся со стандартом IEEE754, посмотрим на два способа работы с плавающими числами в ассемблере x86 и даже обсудим влияние на оптимизации. Параллельно будет введена концепция строгого алиасинга: в будущем она нам сильно пригодится.

#c_graduate
🔥86👍15👏61
Выложил самое солнечное из видео этого семестра (хотя кто знает, вдруг будут ещё солнечней).

https://youtu.be/W8SlojkhBas

Завершая разговор про ассемблер, мы рассмотрим ассемблеры ARM и RISCV, идею линк-регистра, постиндексную адресацию, жизнь без регистра флагов, векторизацию и прочее. В конце после обзора литературы не выключайте, будет бонус про релокации.

#c_graduate
🔥89👍159👏3🤩1
В выложенном сегодня видео была обнаружена критическая ошибка. Я вынужден прервать премьеру, стереть видео. Через час перевыложу когда смонтируется заново. Мои искренние извинения и очень прошу потерпеть.

#official
😢62👍4327🔥2
Начинаем новый логический семинар.

https://youtu.be/TYHefcf43Bw

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

P. S. я из-за перевыкладки потерял под видео кучу лайков, просьба накидать новых ))

#c_graduate
👍11613❤‍🔥12🔥8🤣1
Недавно посмотрел видео, которое кажется мне незаслуженно обойдённым вниманием широкой аудитории.

Докладчик обаятельный, истории про кибербезопасность интересные. Но вот смотришь и думаешь: вот человек вроде как расследует преступность в сети. Но преступность против кого? Против извращенцев, фурри и заказывателей дерьма. Давайте все вместе бороться чтобы личные данные пользователей сайта знакомств для гомосексуалистов не попали в сеть. Докладчик (скорее всего действительно не за деньги а по зову сердца) сотрудничает ради этого со спецслужбами нескольких стран. А привлекают к отвественности в итоге мамкиных хакеров.

Ссылка и мой таймлайн доклада.

https://youtu.be/iUg0MmHyM-Y?si=oMw87KvpGPswy9HS

00:00 Как сложно быть владельцем сайта на котором можно проверить хакнули ли тебя.
06:51 Что обычно делают владельцы таких сайтов с теми кто туда приходит
12:22 История про утечку данных с сайта фурри
16:15 Киберпреступность молодеет: история про форум BF
25:57 Заказ дерьма онлайн и история про утечку данных с него.
33:11 История про утечку данных с сайта знакомств для гомосексуалистов
40:02 История про утечки куков с пройденной двухфакторкой

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

#talks
😁34👍11🤡11👏10👎7🤔64😢2
Выступил на митапе Yadro с докладом про цену абстракции в C++

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

Довольно таки новый для меня жанр, включающий активный бенчмаркинг и попытки сформулировать некие подсказки для того, чтобы человек, обдумывающий проект и принимающий решения вроде "использовать ли мне виртуальные функции" или "использовать ли мне корутины" мог принимать решение на ранних этапах проекта, используя некие обоснованные утверждения о цене своих решений.

#conference
👍135🔥42👏6🦄2🙏1💅1
Выложил вторую часть семинара про архитектуру.

https://youtu.be/2kfd58ChHCI

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

#c_graduate
🔥68👍213🙏1
В эфире рубрика "стёртые комментарии моих забаненных подписчиков".

Преамбула. На моём ютуб-канале 17+ тысяч подписчиков и это очень много. Я с некоторым опасением смотрел на цифры уже когда нас стало 10к+, потому что ясное дело, что для любого большого канала поддержание порядка, вдумчивой и конструктивной атмосферы в комментариях, взаимовежливости и взаимоуважения это проблема.

Но шло время и радостным удивлением для меня стало, что люди вокруг моего канала в целом очень хорошие. Сейчас я проверил список тех кто забанен -- там всего 80 аккаунтов, это меньше половины процента подписчиков. При том что я морально был готов к цифрам порядка 10-15%. Поэтому конечно начать хочу с того что всех поблагодарить -- вы все действительно супер. Ну или это я обаятельный и не вызываю особого негатива. Или и то и другое.

Тем не менее, когда серьёзных размеров стал достигать и телеграм-канал, многие начали интересоваться правилами (и есть ли у меня вообще правила). Я не вижу смысла в формальных правилах, потому что обходить формальные ограничения это главное развлечение моих добрых коллег и студентов (а для многих и работа). Поэтому я решил сделать правила прецендентными, написав пост с обзором того как не надо.

https://telegra.ph/Styortye-kommentarii-moih-zabanennyh-podpischikov-04-13

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

P. S. Разумеется не все комментарии, вошедшие в этот обзор были стёрты и не все подписчики забанены. Даже не половина. Название выбрано просто так, чтобы хорошо звучало.

#official
156😁53👍49🔥14🤡11🫡9❤‍🔥3🥰3🤮3💅2👨‍💻1
Выложил вставной семинар по стандарту C.

https://youtu.be/WAA04Wt48dE

Мы начнём с попытки изобрести очень простой язык программирования и увидим на его примере основные особенности поведения высокоуровневых программ. Далее мы подробно разберём разные формы поведения программ на языке C, познакомимся и потренируемся со стандартом языка.

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

В конце я приготовил небольшое рассуждение про важность стандартизации.

P. S. Многие могут заметить параллели с моим видео в продвинутом курсе по стандарту C++. Да, они есть, но исторически именно семинар в курсе по C был первым, а его вариант нацеленный на C++ я записал просто потому что первый курс ещё не был готов для записи.

#c_graduate
👍67🔥2810🤡1