Упомянутые вещи, если что-то забыли - напомните в чате, пожалуйста.
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 - Затравочка будущих выпусков
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
Искандер:…