Generic Talks
И вот 3й выпуск подкаста Generic Talks. С вами Богдан и Олег! Соцсети где нас найти: t.iss.one/generictalks twitter.com/generictalks vk.com/generictalks www.facebook.com/generictalks 0:00 - интро 0:10 - High & Mid IR в Rust, а так же LLVM и компиляция кода…
Ах да, там еще и разные ссылки упоминаются, надо бы их сюда добавить 🤔
Generic Talks
Ах да, там еще и разные ссылки упоминаются, надо бы их сюда добавить 🤔
Данил и LLVM https://t.iss.one/experimentalchill/25
Rust's MIR https://blog.rust-lang.org/2016/04/19/MIR.html
Про ускорение компилятора Rust https://blog.mozilla.org/nnethercote/2019/12/11/how-to-speed-up-the-rust-compiler-one-last-time-in-2019/
Тулза для проверки корректности Go https://www.youtube.com/watch?v=SzgRMrrbTnM
Loom https://wiki.openjdk.java.net/display/loom/Main
Jonathan Blow и потерянные знания https://t.iss.one/oleg_log/1462
Go decimal https://github.com/shopspring/decimal
Если чего-то из ссылок не хватает, то пишите в чат :)
Rust's MIR https://blog.rust-lang.org/2016/04/19/MIR.html
Про ускорение компилятора Rust https://blog.mozilla.org/nnethercote/2019/12/11/how-to-speed-up-the-rust-compiler-one-last-time-in-2019/
Тулза для проверки корректности Go https://www.youtube.com/watch?v=SzgRMrrbTnM
Loom https://wiki.openjdk.java.net/display/loom/Main
Jonathan Blow и потерянные знания https://t.iss.one/oleg_log/1462
Go decimal https://github.com/shopspring/decimal
Если чего-то из ссылок не хватает, то пишите в чат :)
Generic Talks 0004
Да, еще 1 выпуск с Олегом, Богданом, Искандером. Говорили о C++ с нашим первым гостем Данилом (а еще он пишет о крутых вещах в блоге, советуем https://t.iss.one/experimentalchill)
https://soundcloud.com/generictalks/c-i-v-gostyakh-danila-kutenin
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 - Мета-вопрос о подкасте, а потом мысли вслух и планы на след выпуск.
Да, еще 1 выпуск с Олегом, Богданом, Искандером. Говорили о C++ с нашим первым гостем Данилом (а еще он пишет о крутых вещах в блоге, советуем https://t.iss.one/experimentalchill)
https://soundcloud.com/generictalks/c-i-v-gostyakh-danila-kutenin
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 - Мета-вопрос о подкасте, а потом мысли вслух и планы на след выпуск.
Возможно некоторые из вас в курсе, что у нас появился свой(!) сайт https://generictalks.com/
Если есть замечания и предложения, то можете тыкать меня в лс @olegkovalov
PS: скоро обновим RSS ссылку, надеюсь все подкаст-аггрегаторы это проглотят без проблем.
Если есть замечания и предложения, то можете тыкать меня в лс @olegkovalov
PS: скоро обновим RSS ссылку, надеюсь все подкаст-аггрегаторы это проглотят без проблем.
Generic talks 0005 и с вами Богдан и Олег.
https://soundcloud.com/generictalks/0005-defensive-i-chut-chut-offensive-programming
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 - все сливается в Кафку и о следующих выпусках
https://soundcloud.com/generictalks/0005-defensive-i-chut-chut-offensive-programming
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 - все сливается в Кафку и о следующих выпусках
Упомянутые вещи, если что-то забыли - напомните в чате, пожалуйста.
https://github.com/storozhukBM/verifier
https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/daperture-load-balancer.html
https://en.wikipedia.org/wiki/Defensive_programming
https://en.wikipedia.org/wiki/Offensive_programming
https://en.wikipedia.org/wiki/Hexagonal_architecture_(software)
https://github.com/storozhukBM/verifier
https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/daperture-load-balancer.html
https://en.wikipedia.org/wiki/Defensive_programming
https://en.wikipedia.org/wiki/Offensive_programming
https://en.wikipedia.org/wiki/Hexagonal_architecture_(software)
Как вы относитесь к ошибкам с именем отличным от err ? К примеру errDB, errMetadata etc (речь про Go по большей части)
Anonymous Poll
49%
Отрицательно, пишу err и хватает
27%
Использую имена с контекстом
10%
Думаю попробовать с контекстом
2%
Пробовали и отказались от именованных
12%
Другой вариант -> пишите в чате
Мы теперь не просто в ВК, а еще и в офиц приложении Подкасты.
Под списком участников теперь доступно меню, пока-что там только последний 5й выпуск (другие в процессе заливки), и конечно следующие будут там же.
Группа https://vk.com/generictalks
Прямая ссылка на подкаст https://vk.com/podcasts-186571321
Под списком участников теперь доступно меню, пока-что там только последний 5й выпуск (другие в процессе заливки), и конечно следующие будут там же.
Группа https://vk.com/generictalks
Прямая ссылка на подкаст https://vk.com/podcasts-186571321
Generic talks 0006 с Богданом и Олегом.
https://soundcloud.com/generictalks/0006-podozhdyom-v-ocheredi
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, о котором не все знают.
https://soundcloud.com/generictalks/0006-podozhdyom-v-ocheredi
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, о котором не все знают.
https://twitter.com/peterbourgon/status/1212798644396519424
https://apenwarr.ca/log/20170814
https://programmingisterrible.com/post/162346490883/how-do-you-cut-a-monolith-in-half
https://sosp.org/2001/papers/welsh.pdf
https://youtube.com/watch?v=AOLPelcByBo
https://www.scylladb.com/2017/07/06/scyllas-approach-improve-performance-cpu-bound-workloads/
https://lmax-exchange.github.io/disruptor/
https://twitter.com/ID_AA_Carmack/status/1210997702152069120
https://twitter.com/hysteresis/status/1067266961711611904
https://blogtitle.github.io/sneaky-race-conditions-and-granular-locks/
https://apenwarr.ca/log/20170814
https://programmingisterrible.com/post/162346490883/how-do-you-cut-a-monolith-in-half
https://sosp.org/2001/papers/welsh.pdf
https://youtube.com/watch?v=AOLPelcByBo
https://www.scylladb.com/2017/07/06/scyllas-approach-improve-performance-cpu-bound-workloads/
https://lmax-exchange.github.io/disruptor/
https://twitter.com/ID_AA_Carmack/status/1210997702152069120
https://twitter.com/hysteresis/status/1067266961711611904
https://blogtitle.github.io/sneaky-race-conditions-and-granular-locks/
А, еще одна вещь из заметок к подкасту: если вы нашли какую-то тему/мини-диалог/интересную мысль в подкасте, и считаете, что её стоит вынести в описание - напишите в чат, будем признательны.
Мы (а именно Олег) чуууть прокололись и не залили выпуск на Spotify и Google Podcast. Но теперь все в строю.
Возможно мы (все же Олег) доберемся до сабмит форм на эти 2 сервиса и все будет появляться быстрее при помощи интеграции с SoundCloud.
(И Яндекс, давно пора)
Возможно мы (все же Олег) доберемся до сабмит форм на эти 2 сервиса и все будет появляться быстрее при помощи интеграции с SoundCloud.
(И Яндекс, давно пора)
Ах да, нужно выпуск залить.
Так как я(олег) отсутствовал в выходные, то ничего мы не записывали, но есть старая запись с октября. Можно залить её. Нужно?
Так как я(олег) отсутствовал в выходные, то ничего мы не записывали, но есть старая запись с октября. Можно залить её. Нужно?
Кстати, у нас обновилась ссылка на Спотифай, теперь там будут все выпуски без запоздания https://open.spotify.com/show/3Cb5XPaCkUaCP59rMzPLGX
Пока готовится новый выпуск, вопрос: а как вы относитесь к более soft выпуску? аля о работе, проектах, work-life balance и прочее жизненное
Anonymous Poll
76%
Норм, послушал(а) бы
22%
Хочу больше инженерии
2%
Сек, зайду в чат и напишу
Богдан, Олег и Искандер опять собрались поговорить.
https://soundcloud.com/generictalks/0007-vashi-benchmarki-skoree-vsego-nichego-ne-znachat
Хотим напомнить, что лента подкаста находится в Телеграме, как и чат, где можно добавить вопросы и набросы: t.iss.one/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 - Затравочка будущих выпусков
https://soundcloud.com/generictalks/0007-vashi-benchmarki-skoree-vsego-nichego-ne-znachat
Хотим напомнить, что лента подкаста находится в Телеграме, как и чат, где можно добавить вопросы и набросы: t.iss.one/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 - Затравочка будущих выпусков