https://github.com/golang/go/issues/29982
https://github.com/golang/go/issues/34561
https://github.com/actix/actix-web
https://youtu.be/r-TLSBdHe1A
https://shape-of-code.coding-guidelines.com/2020/01/05/performance-variation-in-2386-identical-processors/
https://stressgrid.com/blog/webserver_benchmark/
https://www.techempower.com/benchmarks/#section=data-r18
И кривая Шипилёва: https://t.iss.one/oleg_log/726
https://github.com/golang/go/issues/34561
https://github.com/actix/actix-web
https://youtu.be/r-TLSBdHe1A
https://shape-of-code.coding-guidelines.com/2020/01/05/performance-variation-in-2386-identical-processors/
https://stressgrid.com/blog/webserver_benchmark/
https://www.techempower.com/benchmarks/#section=data-r18
И кривая Шипилёва: https://t.iss.one/oleg_log/726
Интересна ли вам тема статического анализа кода?
Anonymous Poll
79%
Да, очень хочу послушать
20%
Неоч, разве что кратенько
1%
Пойду предложу свою в чате
На связи Олег и Богдан в 8м выпуске.
https://soundcloud.com/generictalks/0008-gc-na-serverakh-i-trudnostyakh-razrabotki-s-concurrency
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. Что делать и как быть, стоит ли писать свои велосипеды или тащить за собой монструозные проекты с открытым кодом.
0045:45 - Изучение Go, такой ли это простой язык как его позиционируют? Почему с concurrency никогда не бывает просто?
00:59:40 - Можно ли скомпилировать TensorFlow врукопашную за 48 часов? AOT vs JIT и гибридные решения.
01:14:48 - Сплетни о новой архитектуре процов от Apple
01:25:34 - Ломаем базы с помощью генератора произвольных запросов. Сколько еще багов можно найти в коде которому 20 лет. Почему писать базы очень сложно и как строить архитектуру приложения для максимально эффективного тестирования
https://soundcloud.com/generictalks/0008-gc-na-serverakh-i-trudnostyakh-razrabotki-s-concurrency
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. Что делать и как быть, стоит ли писать свои велосипеды или тащить за собой монструозные проекты с открытым кодом.
0045:45 - Изучение Go, такой ли это простой язык как его позиционируют? Почему с concurrency никогда не бывает просто?
00:59:40 - Можно ли скомпилировать TensorFlow врукопашную за 48 часов? AOT vs JIT и гибридные решения.
01:14:48 - Сплетни о новой архитектуре процов от Apple
01:25:34 - Ломаем базы с помощью генератора произвольных запросов. Сколько еще багов можно найти в коде которому 20 лет. Почему писать базы очень сложно и как строить архитектуру приложения для максимально эффективного тестирования
В догонку хотим напомнить, что у нас обновилась ссылка на Spotify, актуальную можно найти на https://generictalks.com
Generictalks
Generic Talks Подкаст
Душевные беседы о программировании и смежных темах. Говорим о коде: высоко- и низкоуровневых вещах, правильном использовании технологий и, конечно, производительности. Любим Go и уважаем другие языки.
Foundation DB: Autonomous Testing and the Future of Software Development - Will Wilson
https://youtu.be/fFSPwJFXVlw
Valhalla Update with Brian Goetz
https://youtu.be/1H4vmT-Va4o
The Case for Writing Network Drivers in
High-Level Programming Languages
https://www.net.in.tum.de/fileadmin/bibtex/publications/papers/the-case-for-writing-network-drivers-in-high-level-languages.pdf
Тестирование БД https://arxiv.org/abs/2001.04174
Блог* @dereference_pointer_there :)
https://youtu.be/fFSPwJFXVlw
Valhalla Update with Brian Goetz
https://youtu.be/1H4vmT-Va4o
The Case for Writing Network Drivers in
High-Level Programming Languages
https://www.net.in.tum.de/fileadmin/bibtex/publications/papers/the-case-for-writing-network-drivers-in-high-level-languages.pdf
Тестирование БД https://arxiv.org/abs/2001.04174
Блог* @dereference_pointer_there :)
О! а у нас новость, мы теперь в Google Podcasts. По новой засабмитились, если использовали раньше, то проверьте, что вот по этой ссылке теперь слушаете.
В 2019 гугл обещал завезти подкасты на web и ios, так что подождем.
https://podcasts.google.com/?feed=aHR0cDovL2ZlZWRzLnNvdW5kY2xvdWQuY29tL3VzZXJzL3NvdW5kY2xvdWQ6dXNlcnM6NzAyMDE4Njc3L3NvdW5kcy5yc3M
В 2019 гугл обещал завезти подкасты на web и ios, так что подождем.
https://podcasts.google.com/?feed=aHR0cDovL2ZlZWRzLnNvdW5kY2xvdWQuY29tL3VzZXJzL3NvdW5kY2xvdWQ6dXNlcnM6NzAyMDE4Njc3L3NvdW5kcy5yc3M
Google Podcasts
Generic Talks
Душевные беседы о программировании и смежных темах. Говорим о коде: высоко- и низкоуровневых вещах, правильном использовании технологий и, конечно, производительности.
Олег: https://twitter.com/oleg_kovalov
Богдан: https://twitter.com/BStorozhuk
Искандер:…
Олег: https://twitter.com/oleg_kovalov
Богдан: https://twitter.com/BStorozhuk
Искандер:…
А вам интересна текстовая версия подкаста? к примеру автоматической тулзой выдать все в виде текста (с небольшой ручкой доработкой)
Anonymous Poll
67%
Да!!!
31%
Неоч
2%
В чате скажу
Богдан, Олег и специальный гость Роман Хавроненко из Cloudflare.
https://soundcloud.com/generictalks/0009-kogda-servisu-khvatit-nasypat-v-gostyakh-roman-khavronenko
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 - Экзотические техники работы с перегрузками: батчинг, агрегация, сэмплирование.
https://soundcloud.com/generictalks/0009-kogda-servisu-khvatit-nasypat-v-gostyakh-roman-khavronenko
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 - Экзотические техники работы с перегрузками: батчинг, агрегация, сэмплирование.
А еще у нас появился Патреон, где Вы (дада, именно Вы) можете поддержать подкаст "чеканной монетой" (и тут эта шутка)
https://www.patreon.com/generictalks
https://www.patreon.com/generictalks
https://youtu.be/m64SWl9bfvk
https://github.com/Netflix/concurrency-limits
ClickHouse at Cloudflare
https://www.slideshare.net/Altinity/http-analytics-for-6m-requests-per-second-using-clickhouse-by-alexander-bocharov
QALM at Uber https://eng.uber.com/qalm/
Honeycomb https://www.honeycomb.io/blog/dynamic-sampling-by-example/
Lovely VictoriaMetrics ❤️ https://victoriametrics.com/
https://github.com/Netflix/concurrency-limits
ClickHouse at Cloudflare
https://www.slideshare.net/Altinity/http-analytics-for-6m-requests-per-second-using-clickhouse-by-alexander-bocharov
QALM at Uber https://eng.uber.com/qalm/
Honeycomb https://www.honeycomb.io/blog/dynamic-sampling-by-example/
Lovely VictoriaMetrics ❤️ https://victoriametrics.com/
YouTube
"Stop Rate Limiting! Capacity Management Done Right" by Jon Moore
In an era of cloud computing and microservices, it's imperative to be able to isolate clients from one another in terms of the resources they can use--otherwise, one misconfigured or malicious client can make a service unusable for everyone else. Steve Yegge…
Возник вопрос - а нет ли у вас идей для какой-то рубрики в подкасте?
К примеру:
Кого опять обматерил Линус?
Какие дыры безопастности пофиксил syzkaller?
Есть ли новый роутер на го?
Почему нет вакансий на раст?
Будем рады видеть ваши предложения в чате, может в боте @generictalks_bot, можно просто мне в лс @olegkovalov
К примеру:
Кого опять обматерил Линус?
Какие дыры безопастности пофиксил syzkaller?
Есть ли новый роутер на го?
Почему нет вакансий на раст?
Будем рады видеть ваши предложения в чате, может в боте @generictalks_bot, можно просто мне в лс @olegkovalov
На какой платформе вы _преимущественно_ слушаете GenericTalks?
Anonymous Poll
33%
Telegram
11%
iTunes
12%
SoundCloud
8%
Spotify
12%
Google Podcast
1%
vk
4%
Overcast
7%
Pocketcasts
5%
Просто mp3 скачиваю (к примеру из Телеги)
7%
Другой сервис / другой вариант ответа (очень просим зайти и написать в чат)
Что-то тут тихо....
Так вот, новость, мы теперь на Яндекс.Музыка. Выпуск за прошлую неделю почтииии закончен и будет опубликован. Соряньте за паузу, буду стараться так не делать впредь.
https://music.yandex.ru/album/9937786
Так вот, новость, мы теперь на Яндекс.Музыка. Выпуск за прошлую неделю почтииии закончен и будет опубликован. Соряньте за паузу, буду стараться так не делать впредь.
https://music.yandex.ru/album/9937786
Audio
И вот Богдан, Искандер и Олег собрались поговорить о таких темах.
https://soundcloud.com/generictalks/0010-paru-slov-o-staticheskom-analize-koda
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 и новый линкер.
https://soundcloud.com/generictalks/0010-paru-slov-o-staticheskom-analize-koda
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 и новый линкер.
Generic Talks
И вот Богдан, Искандер и Олег собрались поговорить о таких темах. https://soundcloud.com/generictalks/0010-paru-slov-o-staticheskom-analize-koda 00:00:00 - Discord переписывает что-то с Go на Rust. Ну и что тут такого? В чем проблема то? Разбираемся в том…
00:56:12 - Статический анализ в Bash, Go и вообще.
Сколько мы еще будем автоматизировать рутинные задачи на продакшене с помощью небезопасных интерпретируемых языков?
01:07:32 - Учим машины понимать нашу бредятину и подсказывать по возможности. GoGrep, Ruleguard, шаблоны поиска кода и написание кастомных правил для вашего проекта или команды. Прямая интерпритация AST. Супер фича: мы можем не просто ткнуть носом в ошибку, но и предложить как исправить.
01:43:46 - Почему бы машинам самим не научится проверять код и ломать его полностью, в целях общего блага.
Ссылки:
0. https://blog.discordapp.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f
1. https://www.vidarholen.net/contents/blog/?p=746 человек писал
2. https://habr.com/ru/company/pvs-studio/blog/484208 ML и статический анализ (статья от PVS Studio).
3. структурный поиск кода: gogrep, phpgrep, Intellij SSR (AST patterns).
4. https://github.com/quasilyte/go-ruleguard кастомные правила на основе AST patterns.
5. https://godoc.org/golang.org/x/tools/go/analysis Немного про то, что из себя представляет
6. https://help.semmle.com/ CodeQL и его переход в руки GitHub.
7. https://code2vec.org/ https://code2seq.org/
Сколько мы еще будем автоматизировать рутинные задачи на продакшене с помощью небезопасных интерпретируемых языков?
01:07:32 - Учим машины понимать нашу бредятину и подсказывать по возможности. GoGrep, Ruleguard, шаблоны поиска кода и написание кастомных правил для вашего проекта или команды. Прямая интерпритация AST. Супер фича: мы можем не просто ткнуть носом в ошибку, но и предложить как исправить.
01:43:46 - Почему бы машинам самим не научится проверять код и ломать его полностью, в целях общего блага.
Ссылки:
0. https://blog.discordapp.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f
1. https://www.vidarholen.net/contents/blog/?p=746 человек писал
//
как комментарий в баше, что в итоге интерпретировалось как /
и rm -rf
удалил больше, чем хотелось.2. https://habr.com/ru/company/pvs-studio/blog/484208 ML и статический анализ (статья от PVS Studio).
3. структурный поиск кода: gogrep, phpgrep, Intellij SSR (AST patterns).
4. https://github.com/quasilyte/go-ruleguard кастомные правила на основе AST patterns.
5. https://godoc.org/golang.org/x/tools/go/analysis Немного про то, что из себя представляет
go/analysis
и кому на него стоит обратить внимание + его интеграция с gopls
.6. https://help.semmle.com/ CodeQL и его переход в руки GitHub.
7. https://code2vec.org/ https://code2seq.org/
Medium
Why Discord is switching from Go to Rust
Rust is becoming a first class language in a variety of domains. At Discord, we’ve seen success with Rust on the client side and server…
Generic Talks
00:56:12 - Статический анализ в Bash, Go и вообще. Сколько мы еще будем автоматизировать рутинные задачи на продакшене с помощью небезопасных интерпретируемых языков? 01:07:32 - Учим машины понимать нашу бредятину и подсказывать по возможности. GoGrep, Ruleguard…
да, опять эта закорючка