10 episodes

Душевные беседы о программировании и смежных темах. Говорим о коде: высоко- и низкоуровневых вещах, правильном использовании технологий и, конечно, производительности.

Олег: https://twitter.com/oleg_kovalov
Богдан: https://twitter.com/BStorozhuk
Искандер: https://twitter.com/quasilyte

Generic Talks Generic Talks

    • Technology

Душевные беседы о программировании и смежных темах. Говорим о коде: высоко- и низкоуровневых вещах, правильном использовании технологий и, конечно, производительности.

Олег: https://twitter.com/oleg_kovalov
Богдан: https://twitter.com/BStorozhuk
Искандер: https://twitter.com/quasilyte

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

    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 - Почему бы машинам самим не научится проверять код и ломать его полностью, в целях общего блага.

    • 2 hrs 3 min
    0009. Когда сервису хватит насыпать, в гостях Роман Хавроненко

    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 - Экзотические техники работы с перегрузками: батчинг, агрегация, сэмплирование.

    • 1 hr 46 min
    0008. GC на серверах и трудностях разработки с concurrency

    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 лет. Почему писать базы очень сложно и как строить архитектуру приложения для максимально эффективного тестирования

    • 1 hr 31 min
    0007. Ваши бенчмарки (скорее всего) ничего не значат

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

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

    Хотим напомнить, что лента подкаста находится в Телеграме, как и чат, где можно добавить вопросы и набросы: https://t.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 - Затравочка будущих выпусков

    • 1 hr 41 min
    0006. Подождём в очереди

    0006. Подождём в очереди

    С вами Богдан и Олег, вещи упомянутые в выпуске можно найти в нашем Телеграме https://t.me/generictalks

    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, о котором не все знают.

    • 1 hr 15 min
    0005. Defensive и чуть-чуть Offensive programming

    0005. Defensive и чуть-чуть Offensive programming

    Generic talks 0005 и с вами Богдан и Олег.

    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 - все сливается в Кафку и о следующих выпусках

    • 1 hr 12 min

Customer Reviews

olegkovalov ,

Довольно хорошо, но можно лучше.

Тут надо написать объяснение, но я пожалу не буду.

Top Podcasts In Technology

Listeners Also Subscribed To