Выпуски

Generic Talks S02E08 - Вопросы И Ответы

  1. Обязан ли мейнтейнер проекта с открытым кодом фиксить баги и не просить за это деньги?
  2. news.ycombinator.com/item?id=25099862
  3. О структурировании проектов, архитектуре и переусложнении
  4. Software engineering vs. config editing
  5. “Книжный клуб” читаем и обсуждаем Titus Winters, Tom Manshreck, and Hyrum Wright / Software Engineering at Google: Lessons Learned from Programming Over Time (2020) CHAPTER 2 and 3 - “How to Work Well on Teams” and “Knowledge sharing”

Мы не успели ответить на все ваши вапросы поэтому постараемся обсудить их в одном из следующих выпусков. Если Вы хотели бы послушать наше интервью с кем-то интересным или хотите сами прийти - присылайте предложения сюда: @generictalks_bot

Generic Talks S02E07 - Тестирование Системного Програмного Обеспечения

Состав: Олег и Богдан и гость Сергей Бронников

  • Тестирование операционных систем, БД и другого низкоуровневого и системного ПО. Как искать баги там где их никто не ждет?
  • Тестирование распределенных систем. Проверка коректности и отказоустойчивости.
  • Мутационное тестирование системного и прикладного ПО.
  • Аналитика и метрики в тестировании.
  • Эффективность автоматического тестирования.

Generic Talks S02E06 - Девиртуализированый Контекст Отмены На Сжатом Дереве Большой Длины

  1. Timeouts and cancellation for humans
  2. vorpus.org/blog/timeouts-and-c…llation-for-humans/
  3. Adaptive Radix Tree и The ART of Practical Synchronization
  4. 15721.courses.cs.cmu.edu/spring2016/p…icde2013.pdf
  5. db.in.tum.de/~leis/papers/artsync.pdf
  6. Go 1.16 - early devirtualization pass и другие предложения по улучшению Go
  7. github.com/golang/go/issues/33160
  8. github.com/golang/go/issues/33502
  9. “Книжный клуб” читаем и обсуждаем Titus Winters, Tom Manshreck, and Hyrum Wright / Software Engineering at Google: Lessons Learned from Programming Over Time (2020) CHAPTER 1 - What Is Software Engineering?

Generic Talks S02E05 - Предметные сервисы и атомарные деревья

  1. Domain-Oriented Microservice Architecture
  2. eng.uber.com/microservice-architecture
  3. Bw-Tree
  4. www.cs.cmu.edu/~huanche1/publica…s/open_bwtree.pdf
  5. sled.rs
  6. “Книжный клуб” читаем и обсуждаем Martin Kleppmann / Designing Data-Intensive Applications (2017) CHAPTER 4 - Encoding and Evolution

Generic Talks S02E04 - Магия И Computer Science В GoLand

У нас в гостях Артем Хвастунов и Марат Хабибуллин - разработчики GoLand из JetBrains. И разговаривали мы об внутреностях и особеностях этой самой продвинутой IDE для Go.

Вопросы которые мы обсудили: - История. Как вообще родилась IDEA (первая IDE от JetBrains), почему написана на Java? - Как устроен отказоустойчивый и самовосстанавливающийся при сломаном коде парсинг? - Как выглядит внутреннее представление кода какие структуры данных используются внутри? - Зачем вам своя виртуальная файловая система? - Что делает GoLand когда долго что-то индексирует или делает начальную индексацию? - Как вообще живется на JVM не напрягает ли GC? - Как устроены плагины и почему иногда надо перегружать IDE для их установки? - Language Server Protocol, есть ли планы по поддержке? - Как тестировать такую сложную и гибкую систему с сотнями разных конфигураций и молудей? - Как начался GoLand как плагин и как потом переделался в самостоятельную IDE? - Переиспользуете ли какие-то части тулинга Go? - Специфичные инспекции и смарт комплиты. - Статистика - какими комплитами и постфиксами люди пользуются, какие ошибки вы чаще всего допускают. - Интеграция с дебагером. - Поддержка модулей. - Пропоузал по дженерикам. Насколько сложно их будет поддержать в IDE?

Ссылочки: - Доклад “Алексей Кудрявцев — Computer Science еще жива” bit.ly/3kkixoH - GoLand - www.jetbrains.com/go/

Generic Talks S02E03 - Языковая блокировка с рекурсивным обходом на диске

  1. Github Codespaces
  2. github.com/features/codespaces
  3. О причинах появления языков:
  4. nim-lang.org
  5. ziglang.org
  6. www.beeflang.org
  7. www.red-lang.org
  8. Locking in WebKit:
  9. webkit.org/blog/6161/locking-in-webkit/
  10. aspenuwu.me/posts/rust-optimization.html
  11. github.com/Amanieu/parking_lot
  12. Type filters & Ruleguard
  13. twitter.com/dgryski/status/1317245210041012224
  14. Что такое фильтры типов в ruleguard
  15. Фильтры структурных типов в ruleguard (type matching)
  16. Underlying types
  17. Что означает “contains?”
  18. Как выразить фильтр для подвыражения фильтра bit.ly/2FEfEjq

  19. “Книжный клуб” читаем и обсуждаем Martin Kleppmann / Designing Data-Intensive Applications (2017) CHAPTER 3 - Storage and Retrieval

На следующий раз в “Книжный клуб” читаем и обсуждаем Martin Kleppmann / Designing Data-Intensive Applications (2017) CHAPTER 4 - Encoding and Evolution Свои вопросы и заметки по главе пишите сюда: @generictalks_bot

Generic Talks S02E02 - Generic заворушка

  1. Как будут имплементировать generics в Go? Осуждаем возможные варианты, их преимущества и недостатки.
  2. обусждение: groups.google.com/g/golang-dev/c/OcW0ATRS4oM
  3. имплементация в Swift: www.youtube.com/watch?v=ctS8FzqcRug
  4. Пишем БД на языках с рантаймом, чего не хватает?
  5. крутой оптимизирующий компилятор
  6. доступ к векторизированым операциям
  7. отсутствие глобального хипа по дефолту
  8. гранулярный контроль над скедулером
  9. возможность работы с памятью мимо сборщика муссора
  10. переписать стд либ чтобы она по дефолту меньше аллоцировала и давала контроль над аллокациями
  11. дать возможность четко отслеживать размеры обьектов
  12. сделать апи для фриза обьектов при шаринге между горутинами
  13. персистентные структуры данных
  14. “Книжный клуб” читаем и обсуждаем Martin Kleppmann / Designing Data-Intensive Applications (2017) CHAPTER 2 - Data Models and Query Languages 3.1. Обсуждаем вопросы к предыдущей главе.

На следующий раз в “Книжный клуб” читаем и обсуждаем Martin Kleppmann / Designing Data-Intensive Applications (2017) CHAPTER 3 - Storage and Retrieval Свои вопросы и заметки по главе пишите сюда: @generictalks_bot

Generic Talks S02E01 - Мы опять в деле

Старт второго сезона. Новые темы, рубрики, гости… В этом выпуске оригинальный состав Олег, Искандер и Богдан.

  1. Энтерпрайз ли язык этот Go?
  2. bit.ly/34jnabS
  3. Challenges in Thread-per-core Implementations. & Vectorized.io blog.
  4. bit.ly/3ivwYEL
  5. vectorized.io/tpc-buffers/
  6. www.youtube.com/watch?v=p8d28t4qCTY
  7. DigitalOcean’s Hacktoberfest is Hurting Open Source.
  8. Анонс новой рубрики. “Книжный клуб”. Читаем и обсуждаем Martin Kleppmann / Designing Data-Intensive Applications (2017) CHAPTER 1 - Reliable, Scalable, and Maintainable Applications.
  9. Чем смыть горечь после интевью или “Коллеги, вы меня огорчаете.”
  10. bit.ly/3jvEj8p
  11. Игрушка для программистов, кодинг на Go, yaegi внутри wasm для serverless исполнения кода на клиенте.
  12. quasilyte.dev/gophers-and-dragons/
  13. Сжатия кода, а разжатие через gofmt; serverless шаринг кода через lz-compress для данных в URL.
  14. github.com/quasilyte/minformat

На следующий раз в “Книжный клуб” читаем и обсуждаем Martin Kleppmann / Designing Data-Intensive Applications (2017) CHAPTER 2 - Data Models and Query Languages. Свои вопросы и заметки по главе пишите сюда: @generictalks_bot

Generic Talks 0035 - Агрегатор Новостей Для Телеграм

В гостях у нас Данила Кутенин и Артемий Рябинков. Мы говорим про конкурс Телеграма по созданию агрегатора новостей: общая архитектура, распожнавания языка, категоризация, создание тематической ленты и оптимизации. Также упомянули несколько других тем)

Generic Talks 0034 - В Гостях Иван Присяжный. Базы данных, транзакции, Go, Java

В гостях Иван Присяжный из Scylla. Поговорили про такие базы как Sled, Aerospike, LMDB. Про языки Rust, Go, Java. Немножко про транзации и процы.

Generic Talks 0033 - В Гостях Иван Углянский. Рантаймы, Сборщики Мусора, Будущее JVM

В гостях Иван Углянский. Мы поговорили про: - cборщики мусора: двигающие и недвигающие, поколенчиские и нет, консервативные и точные - cэйфпойнты, кооперативная и принудительная остановка потоков выполнения - как дружить толстый рантайм с нативными вызовами: JNI, Panama - немножко затронули другие большие проекты в Java мире: Valhala, Loom

Generic Talks 0032 - Новости и вопросы слушателей

Вместе с Егором мы обсудили последние новости про Jai и Zig, а также ответили на вопросы слушателей.

Generic Talks 0031 - Байки про найм и собеседования

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

Generic Talks 0030 - В Гостях Александр Валялкин

В гостях Александр Валялкин автор FastHttp и VictoriaMetrics. Мы поговорили про то как команда VictoriaMetrics пилит супер быструю и оптимизированую базу данных для временых рядов с упором на мониторинг и совместимую по протоколу с Prometheus. Обсудили: - как устроена архитектура - внутренние структры данных - менеджмент памяти - лейаут данных на диске - работу с кешами - ужатие точек - всякие оптимизации которые применяются - отказоустойчевости и востановление после падений - будущие планы и развитие

Еще на закуску мы с Олегом обсудили новый пропоузал про дженерики в Go (в гости забежал Артём от VictoriaMetrics!).

Generic Talks 0029 - Что Нового В Go 1.15. Новый Линкер. Аллокатор на передаче сообщений

Что Нового В Go 1.15. Новый Линкер. Аллокатор на передаче сообщений. Конец записи у нас немного повредился поэтому без прощаний)

https://tip.golang.org/doc/go1.15

https://docs.google.com/document/d/1D13Qh…efEd6_k1z91U/view

https://github.com/microsoft/snmalloc

Generic Talks 0028 - Басни Из Прода

Выпуск в котором: - мы травили басни из прода - поясняли за рективщину - обсуждали статью об том что компилятору Go пора становится более умным - ну и ГУЛАГ, рабов и расстрельные списки

Generic Talks 0027 - В Гостях Егор Мыскин

Мы говорили об вызовах написания рекламного серверсайда, Go, базах данных Aerospike, Postgres, Casandra, Druid и многом другом.

Generic Talks 0025 - В Гостях Слава Бахмутов

У нас в гостях Слава Бахмутов из GolangShow. Мы говорили про то как был устроен бекенд в Dropbox: - как были устроены сервисы и как они развивались со временем - какие языки использовались, какие прижились и как проходили перезды с одних технологий на другие - монорепозиторий, инфраструктура сборки и разработки - как устроена интроспекция: логеры, мониторинг, обнаружение ошибок - и самое вкусное 😀: масштабирование баз данных, шардирование, умные прокси сервисы, отказоустойчивость и управление трафиком…

Eще поговорили об стартапе над которым сейчас работает Слава: в чем идея, как все устроено внутри, на чем написано, как планируете масштабировать и делать большие ивенты…

В конце немного про переезды и жизнь в разных странах 🛤

Полезные материалы: - протоколы для коммуникации: dropbox.tech/infrastructure/cou…-migration-to-grpc - графовая база edgestore с бекендом на mysql: dropbox.tech/infrastructure/rei…roducing-edgestore - инцидент менеджмент и какие-то веселые истории из прода: medium.com/life-inside-dropbox…e-ever-3d5e2d502062 - небольшой подкаст про потоковые кодеки и всякие сетевые штуки, который мы обещали найти слушателям на стриме в Youtube. ☣️☣️☣️ Но будте осторожны авторы подкаста хардкорные последователи FP 👹: www.youtube.com/watch?v=5UNbZzOA-70

Приходите к нам в bit.ly/3bpP7QL тут можно обсудить выпуски, задать вопросы ведущим и предложить темы для следующих выпусков. Если хотите прийти в гости пишите или оставить анонимный отзыв пишите сюда: @generictalks_bot

🎙Наш канал в YouTube -
📹 Шоу с код ревью и кучей интересных советов - bit.ly/2zc2w1j (и Телеграм @good_bad_reviewer) 💵 Patreon - www.patreon.com/generictalks


Generic Talks 0024 - Архивный Выпуск С Юраном (Yuriy Nasretdinov)

Всем привет, мы на этой неделе не записывались, но приготовили вам сюрприз из нашего архива: офигенный выпуск с Yuriy Nasretdinov.

Тем временем приходите к нам в bit.ly/3bpP7QL тут можно обсудить выпуски, задать вопросы ведущим и предложить темы для следующих выпусков. Если хотите прийти в гости пишите или оставить анонимный отзыв пишите сюда: @generictalks_bot


Generic Talks 0023 - В Гостях Александр Разумов И Денис Исаев

Мы поговорили об GolangCI-Lint, WebRTC на Go, а также про новые языки и их адопшен в больших компаниях.


Generic Talks 0022 - В Гостях Илья Токарь И Мы Говорим Об Диктаторстве И Монополиях

У нас в гостях Илья Токарь и мы поговорили о дикататуре в Open Source, монополии в браузерах, будущем Go и еще о всяких вещах.


Generic Talks 0021 - В Гостях Артемий Рябинков И Мы Говорим О Всяком

Этот выпуск был записан в разслабленом режиме после Stay homе и GOnline митапа. Мы разговаривали об самом митапе, докладах, немного о базах и всякой всячине.


Generic Talks 0020 - PVS И Его Деревья

У нас в гостях разработчики PVS-Studio Филипп Хандельянц и Юрий Минаев. Поговорили про внутренности их статического анализатора, необычные и хардкорные фичи: 1) На каком представлении работают? 🌲🌳🌴 2) Как это все умещают в память? 💾 3) Как сделали однопроходный анализатор? 🚀 4) Как кэшируют, работают с разными языками, обходят препроцессоры/макросы/темплейты и многое другое.

📣 Еще PVS-Studio стали нашими спонсорами. 📣 Здесь вы можете скачать PVS-Studio: bit.ly/3bhfzgm ✅ и если ввести промокод #generictalks в поле “Сообщение” на странице скачивания, можно получить бесплатную лицензию на месяц, вместо 7 дней.


Generic Talks 0018 - В Гостях Алексей Акулович И Мы Говорим О Всяком

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

Парочка ссылок: Go heap limits - go-review.googlesource.com/c/go/+/227767/ Ludum dare 2020 - ldjam.com/

Блоги про разработку игр: www.youtube.com/user/handmadeheroarchive/videos www.youtube.com/user/jblow888/videos www.youtube.com/channel/UCUmLRMER…tgnbFfknAg/videos www.youtube.com/user/ThinMatrix


Generic Talks 0017 - Говорим Про GPU С Георгием Евтушенко

Говорим Про GPU. Гость Георгий Евтушенко (Georgy Evtushenko) Twitter: @g_evtushenko Blog: medium.com/@evtushenko.georgy

  1. Источники ускорения при использовании GPU.
  2. Специфика разработки под множественные GPU
  3. JIT компиляция как источник оптимизации
  4. HIP как способ поддержания единого кода для GPU от AMD и NVIDIA
  5. Подходы к поддержанию единого кода для GPU и CPU.

Generic Talks 0016 - Zig, LLVM и как всегда Go

Разговариваем про LLVM 10, Zig CC, Lazy Values в Go, парсеры Прата.


Generic Talks 0015 - Что же там происходит в CPU и гость Илья Токарь

15й выпуск Generic Talks, к нам пришел супер-гость Илья Токарь, и выпуск получился крутой.

  • 00:00:00 - Илья из Гугла и его перформанс ремесло.
  • 00:05:00 - Говорим об ProtocolBuffers и отличиях от FlatBuffers.
  • 00:13:30 - Пример прикладной оптимизации: сериализация float.
  • 00:35:54 - Как собеседовать перформанс инженера? На что обращать внимание?
  • 00:21:40 - Насколько часто мы сваливаемся в асемблер кода оптимизируем последние процентики?
  • 00:40:27 - Как мы следим за прогресом Go и сколько мы будем оптимизировать всего когда появятся generics.
  • 01:02:44 - Костыли для C++ которые делают его немного безопасние vs костыли которые делают Java быстрее.
  • 01:25:00 - Можно ли изменить сalling convention для Go?
  • 01:42:27 - Закон Мура умер? Что теперь делать? Можем ли мы передвинуть примитивные структуры данных в камень? Говорим про FPGA.
  • 02:16:40 - Сколько оверхеда вносит виртуализация. Почему между скоростью и безопасностью мы выбираем скорость? JavaScript vs C++ vs Rust - кто к кому заходит на поляну?

Generic Talks 0014 - Live show, гость Юра

Новый выпуск Generic Talks про GolangCI-Lint, как настраивать линтеры на CI, дизайнить API под батчинг по дефолту, делать кеширование и другие вещи. А еще к нам зашел Юра, наш друг и гость.

Это запись live-подкаста которая также доступна в Youtube www.youtube.com/watch?v=RUVEewnD5ww

В Телеграме помимо канала есть и чат, там можно все обсудить t.me/generictalks


Generic Talks 0013 - Таймеры, почему языки такие, GopherСon, гость Александр Морозов

Стабильная, как Go 1, тройка Generic Talks снова на связи. К нам зашел Александр Морозов, напомнить о GopherCon Russia 2020 и поговорить о таймерах.

В Телеграме помимо канала есть и чат, там можно все обсудить t.me/generictalks

  • 00:00:00 - Гость Александр и его карьерный путь за руку с Go к C++
  • 00:06:52 - Как Гугл делает так, чтобы инженеры придерживались одного стиля написания кода. Анонс 2х докладов на GopherCon Russia от Александра и Елены Морозовы.
  • 00:08:25 - Говорим про таймеры в Go и вообще) Связь таймеров со scheduler. Структуры данных для хранения таймеров плюсы и минусы разных подходов.
  • 00:31:05 - Менеджмент сложности в языке и runtime. Гибкость и скорость экспериментов в разных языках.
  • 00:50:43 - Статья про то, как какой-то человек потратил целую жизнь зря из-за того, что начал работать с Go вместо Rust.
  • 01:17:09 - Spanner, и n00b intro в newSQL от Богдана :)

Generic Talks 0012 - Интерпретатор который нагибает плюсы, гость Александр Никитин

Богдан, Олег и Александр (наш крутой гость) собрались поговорить про язык К и базу данных kdb.

Александр еще ведёт 2 канала в Телеграме t.me/linkstream и t.me/notatky А еще напомним о нашем Патреоне www.patreon.com/generictalks

  • 00:00:00 - Гость Александр и его биржевые будни)
  • 00:18:40 - Что такое kdb и язык K? Как его придумали на что это похоже, зачем применяется?
  • 00:31:59 - Автовекторизация кода, встроеные типы языка, data-driven design. Сколько это стоит и как скейлится?
  • 00:43:34 - Как деплоить, мониторить и эксплуатировать такие системы? Как устроена репликация и отказоустойчивость?
  • 00:56:52 - А чем это отличается от NumPy или обычной библиотеки для векторных вычислений?
  • 01:06:00 - Какие есть проблемы чего хотелось бы добавить этой среде и языку? Завершающие мысли и обсуждение применимости этой технологии вне узкоспециализированных кейсов. Можно ли загонять все эти вычисления в GPU?

Generic Talks 0011 - Go 1.14 и что он нам несёт

Выпуск о новой версии Go, а еще и Java и как же весь runtime работает. С вами Олег, Богдан и Искандер. Ждем в нашем Телеграме @generictalks.

  • 00:00:00 - Вводная. Go 1.14
  • 00:01:00 - Изменения в языке и тулинге.
  • 00:07:34 - Новая оптимизация defer. Как это работало, как теперь будет работать. Хендлинг паник. Использование defer в performance-critical коде.
  • 00:22:52 - RISCV как новый экспериментальный таргет.
  • 00:29:24 - Некооперативная многозадачность. Изменения в скедулере чтобы поддержать асинхронный goroutine preemption. Говорим об общем устройстве многозадачности в текущем runtime и как оно изменится в 1.14. Консервативная сборка мусора.
  • 01:20:10 - Оптимизация аллокатора в 1.14. Общее устройство текущего аллокатора, как и почему его поменяли.
  • 01:53:04 - Оптимизация таймеров в рантайме

Generic Talks 0010 - Пару слов о статическом анализе кода

И вот Богдан, Искандер и Олег собрались поговорить о таких темах (а ссылки на материалы доступны в нашем Телеграме).

  • 00:00:00 - Discord переписывает что-то с Go на Rust. Ну и что тут такого? В чем проблема то? Разбираемся в том что именно они переписывали, какая именно была архитектура.
  • 00:06:50 - Какую проблему они решали, как они ее решили, как можно было решать по другому. В чем проблема LRU кэшей внутри управляемых рантаймов.
  • 00:14:05 - Они использовали старый Go. Можно ли сравнивать новую реализацию на расте и старую на старой версии компилятора?
  • 00:17:45 - Что можно было сделать и какой результат они бы получили и почему В ИХ КОНКРЕТНОМ случае выбор Rust вполне оправдан.
  • 00:32:52 - Странный кусок про кривую Шипилева🙃 Низкоуровневость, производительность, безопасность. Применение слабых ссылок и коллекторов с поколениями.
  • 00:42:01 - Rust и сила эксперимента. Текущий прогресс языка от Джонатана Блоу. Параллелизация компилятора Go и новый линкер.
  • 00:56:12 - Статический анализ в Bash, Go и вообще. Сколько мы еще будем автоматизировать рутинные задачи на продакшене с помощью небезопасных интерпретируемых языков?
  • 01:07:32 - Учим машины понимать нашу бредятину и подсказывать по возможности. GoGrep, Ruleguard, шаблоны поиска кода и написание кастомных правил для вашего проекта или команды. Прямая интерпретация AST. Супер фича: мы можем не просто ткнуть носом в ошибку, но и предложить как исправить.
  • 01:43:46 - Почему бы машинам самим не научится проверять код и ломать его полностью, в целях общего блага.

Generic Talks 0009 - Когда сервису хватит насыпать, в гостях Роман Хавроненко

Богдан, Олег и специальный гость Роман Хавроненко из Cloudflare.

  • 00:00:00 - Вводная. Патроны. Гость Роман из Cloudflare.
  • 00:02:21 - С места в карьер. Есть ли замена ClickHouse? Druid, Redshift и ручные поделки. Как работать с большим количеством выборок в ClickHouse.
  • 00:13:55 - Отказоустойчивость. Минутка SRE. Graceful degradation. Планирование и внедрение SLA и SLO. Зачем нужен Error Budget. Травим байки.
  • 00:29:51 - Обузданый хаос. Как заставить своих программистов правильно обрабатывать ошибки и не падать по первому чиху. Поможет ли нам service mesh?
  • 00:37:25 - Где предел паранойи? Можно ли отхендлить какую угодно ошибку? Когда пора остановится?
  • 00:46:44 - Пытаемся разобрать конкретный пример и паттерны которые можно использовать.
  • 00:55:45 - Графиков так много что глаза разбегаются. Автоматический корреляционный анализ. Metrics Driven Development.
  • 01:07:58 - Adaptive capacity limiting и smart load balancing. Как косвенно или напрямую измерять загруженность сервера и почему мерять CPU load не всегда правильно.
  • 01:18:08 - Приоритизация трафика и load shedding. Как работать с запросами произвольной сложности. Event sourcing and CQRS.
  • 01:34:10 - Экзотические техники работы с перегрузками: батчинг, агрегация, сэмплирование.

Generic Talks 0008 - GC на серверах и трудностях разработки с concurrency

На связи Олег и Богдан, ссылки на озвученные вещи в Телеграме @generictalks

  • 00:00:00 - IBM прекращает инвестировать в серверный Swift. Почему так получилось?
  • 00:05:41 - GC в Swift, специфика использования и оптимизации.
  • 00:14:00 - Имплементация сетевых драйверов в userspace, сравнение рантаймов языков.
  • 00:18:29 - Продолжаем рассмотрение статей и результатов. Сравнения разных GC в Java. Зачем добавили Epsilon GC в JVM. Догадка почему латенси колектора который ничего не делает выше, чем у Shenandoah.
  • 00:24:15 - Почему у Swift получились плохие результаты. Думаем как обходить эти проблемы.
  • 00:28:20 - C# молодец ибо позволяет умным человекам сделать как им хочется. Java пока не дотягивает и что сейчас делается чтобы улучшить эту ситуацию.
  • 00:31:50 - Блеск и нищета open source. Что делать и как быть, стоит ли писать свои велосипеды или тащить за собой монструозные проекты с открытым кодом.
  • 00:45:45 - Изучение Go, такой ли это простой язык как его позиционируют? Почему с concurrency никогда не бывает просто?
  • 00:59:40 - Можно ли скомпилировать TensorFlow врукопашную за 48 часов? AOT vs JIT и гибридные решения.
  • 01:14:48 - Сплетни о новой архитектуре процов от Apple
  • 01:25:34 - Ломаем базы с помощью генератора произвольных запросов. Сколько еще багов можно найти в коде которому 20 лет. Почему писать базы очень сложно и как строить архитектуру приложения для максимально эффективного тестирования

Generic Talks 0007 - Ваши бенчмарки (скорее всего) ничего не значат

Богдан, Олег и Искандер опять собрались поговорить.

Хотим напомнить, что лента подкаста находится в Телеграме, как и чат, где можно добавить вопросы и набросы: https://telegram.me/generictalks (инвайт в чат в описании)

  • 00:00:00 - Посчитать размер объекта в Go. Что может быть проще? Зачем вообще это делать?
  • 00:12:22 - Как ограничивают память другие известные проекты на Go. Разбираем подходы.
  • 00:17:00 - Как понять что мы достигли предела по оптимизациям и пора внедрять другие подходы. Шипилев и его график)
  • 00:20:22 - В бар заходит Искандер. Unsafe.Sizeof и отдельный пропозал.
  • 00:29:40 - Рекурсивный обход структур в хипе для расчета размера, потенциальные использования рантайма и сборщика мусора.
  • 00:33:46 - Как возможность расчета размеров в рантайме может открыть возможность для других оптимизаций.
  • 00:47:11 - Pluggable GC в Go стоит ли форкать стандартный компилятор и рантайм?
  • 00:50:11 - Говяжий язык. Beef - шаг вперед или очередной велосипед?
  • 01:02:30 - Actix-web - open source, восприятие критики и мнения которые ничего не значат.
  • 01:13:03 - Spinlock vs Mutex почему все так получилось? Почему так сложно правильно бенчмаркать?
  • 01:24:00 - Erlang vs Go vs Java vs NodeJS бенчмарк серверов который не смог. Как сделать adaptive capacity limiter вручную для того чтобы выровнять latency. Говорим о том как анализировать результаты бенчмарков, делать выводы и проверять гипотезы.
  • 01:37:25 - Затравочка будущих выпусков

Generic Talks 0006 - Подождём в очереди

С вами Богдан и Олег, вещи упомянутые в выпуске можно найти в нашем Телеграме

  • 00:00 - Начнём с очереди
  • 10:00 - Capacity planing, metrics
  • 23:25 - Когда работать асинхронно, как правильно? Архитектура SEDA
  • 42:28 - Твит Кармака о Python, C++, C# и Java и что уже железо
  • 47:40 - Не С++ единым, Rust no_std
  • 56:28 - И снова вернёмся к очередям
  • 1:02:05 - Классический race condition, о котором не все знают.

Generic Talks 0005 - Defensive и чуть-чуть Offensive

Все верно, 5й выпуск и с вами Богдан и Олег.

  • 00:00 - Использование Context не только для request scope
  • 13:00 - Названия переменных с типом error
  • 20:27 - Убираем причину возникновения багов а не только сам баг (+hexagonal architecture)
  • 32:05 - Как помочь пользователям библиотеки обработать ошибки и закрыть все ресурсы
  • 46:54 - Contract-based vs Defensive programming
  • 56:26 - Load balancing at Twitter
  • 1:08:45 - все сливается в Кафку и о следующих выпусках

Generic Talks 0004 - C++ и в гостях Данила Кутенин

Да, еще 1 выпуск с Олегом, Богданом, Искандером. Говорили о C++ с нашим первым гостем Данилом.

(а еще он пишет о крутых вещах в блоге, советуем Telegram: @experimentalchill)

  • 00:00 - Гость Данила и его кресты)
  • 06:50 - Почему в С++ все пишут свои корутины и хеш мапы.
  • 11:16 - Стандартная библиотека против Abseil.
  • 13:52 - Программисты оптимизируют свой код под библиотеки а не наоборот 🤷🏻‍♂️
  • 15:57 - Кастомные алокаторы в C++, Zig и Go
  • 24:00 - Санитайзеры в плюсах и ядре Linux
  • 27:40 - Читаем асемблер и считаем регистры в уме 🙃
  • 40:26 - Что делать если твой язык слишком сложный. Будущее С++. Переход на новые стандарты и депрекейшн
  • 53:18 - Корутины, горутины и цена рантайма
  • 58:35 - На каком уровне мы мыслим и уровень абстракций в языках
  • 1:03:10 - О расширениях к С при помощи GCC
  • 1:08:50 - C++ ranges, совместимость и поддержка в будущем
  • 1:14:14 - Ускоряем С++ без смс
  • 1:17:55 - Мета-вопрос о подкасте, а потом мысли вслух и планы на след выпуск.

Generic Talks 0003 - Rust & LLVM

И вот 3й выпуск подкаста Generic Talks. С вами Богдан и Олег!

  • 0:00 - интро
  • 0:10 - High & Mid IR в Rust, а так же LLVM и компиляция кода
  • 16:54 - Compiler <-> GC
  • 27:30 - академический код
  • 33:05 - асинхронный код
  • 44:55 - грустная заметка про Nginx
  • 45:44 - а может Nginx на Rust? и грустные реалии
  • 51:10 - длинная арифметика в Go
  • 57:49 - лирическое отступление

Generic Talks 0002 - Кодген, аллокаторы и ошибки

2й выпуск подкаста Generic Talks. С вами Олег, Богдан и даже Искандер!

  • 0:00 - интро
  • 0:10 - аннотация ошибок в го
  • 11:00 - контроль ресурсов (хотя там и ошибки, и аллокаторы, и кодген)
  • 25:10 - кодогенерация (привет t.me/teamerlin :)
  • 39:14 - пропозал про встраивание данных в го + опять модули
  • 49:52 - решаем инженерные проблемы аргументируя их безопасностью
  • 1:02:05 - про безопасность и как пишутся крипто-алгоритмы
  • 1:07:52 - следующий выпуск

Generic Talks 0001 - Начнём

Всем привет и добро пожаловать в 1й выпуск подкаста Generic Talks. С вами Олег и Богдан.

(Богдан сказал, что это 2й выпуск, потому что 1й мы решили перезаписать)

  • 0:00 - интро
  • 1:32 - будущее языков
  • 6:52 - скрытая сложность
  • 15:00 - о языках (pony, zig)
  • 28:00 - аллокаторы
  • 33:35 - aeron (not a chair)
  • 39:30 - generics
  • 45:30 - try proposal
  • 57:10 - следующий выпуск