{"id":13404513,"url":"https://github.com/quasilyte/talks","last_synced_at":"2025-10-14T22:16:01.904Z","repository":{"id":85823335,"uuid":"134736575","full_name":"quasilyte/talks","owner":"quasilyte","description":"A collection of slides, notes and other related stuff from talks I have given.","archived":false,"fork":false,"pushed_at":"2024-04-24T08:44:21.000Z","size":36844,"stargazers_count":28,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-27T08:20:27.267Z","etag":null,"topics":["archive","articles","go","golang","pdf","slides","talks"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/quasilyte.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-05-24T15:43:27.000Z","updated_at":"2024-09-02T21:14:23.000Z","dependencies_parsed_at":"2024-04-24T10:02:08.265Z","dependency_job_id":null,"html_url":"https://github.com/quasilyte/talks","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quasilyte%2Ftalks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quasilyte%2Ftalks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quasilyte%2Ftalks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quasilyte%2Ftalks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quasilyte","download_url":"https://codeload.github.com/quasilyte/talks/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243814864,"owners_count":20352037,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["archive","articles","go","golang","pdf","slides","talks"],"created_at":"2024-07-30T19:01:46.416Z","updated_at":"2025-10-14T22:15:56.878Z","avatar_url":"https://github.com/quasilyte.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"# quasilyte talks\n\nMy slides for public talks, workshop materials plus articles in both English and Russian.\n\n## Meetup/Conference talks\n\n| Topic | Date | Location |\n|---|---|---|\n| [Go gamedev: XM music](talks/2024-27-Feb-tbilisi) | February, 2024 | Tbilisi (Georgia) |\n| [Zero alloc pathfinding](https://speakerdeck.com/quasilyte/zero-alloc-pathfinding) [:movie_camera:](https://www.youtube.com/watch?v=X8C-R-jDkG4) | September 27, 2023 | Online |\n| [Ebitengine Ecosystem Overview](https://speakerdeck.com/quasilyte/ebitengine-ecosystem-overview) [:movie_camera:](https://www.youtube.com/watch?v=0Fd_Ijku9Sc) | January 31, 2023 | Online (Russia) |\n| [Go gamedev patters](https://speakerdeck.com/quasilyte/go-gamedev-patterns) [:movie_camera:](https://www.youtube.com/watch?v=YWx80V_ccYk) | December, 2022 | Online (International) |\n| [Working with CPU profiles data](talks/2022-11-May-online) | May 11, 2022 | Online (Russia) |\n| [quasigo interpreter](talks/2022-14-Apr-moscow) | Apr 14, 2022 | Moscow (Russia) |\n| [profile-guided code analysis](talks/2022-5-Feb-kazan) | Feb 5, 2022 | Kazan (Russia) |\n| [KPHP FFI](talks/2021-14-Nov-innopolis) | Nov 14, 2021 | Innopolis (Russia) |\n| [Parsing and Go](talks/2021-5-Aug-online) [:movie_camera:](https://www.youtube.com/watch?v=Rwa66EpAzbk) | Aug 5, 2021 | Online (Russia) |\n| [Deterministic performance tests](talks/2021-29-May-online) [:movie_camera:](https://www.youtube.com/watch?v=ghri4bz_ybQ) | May 29, 2021 | Online (Russia) |\n| [KPHP for CLI](talks/2021-15-May-kazan) [:movie_camera:](https://youtu.be/nr1883za8tM?t=247) | May 15, 2021 | Kazan (Russia) |\n| [PHP Code -\u003e Linter rules](talks/2020-24-Oct-online) [:movie_camera:](https://www.youtube.com/watch?v=wHebTmcHZgY) | October 24, 2020 | Online (Russia) |\n| [Ruleguard vs Semgrep vs CodeQL](talks/2020-17-Oct-online) [:movie_camera:](https://www.youtube.com/watch?v=wCCeQC_A6b4) | October 17, 2020 | Online (Russian) |\n| [Efficient VM with JIT in Go](talks/2020-11-Jul-online) | July 12, 2020 | Online (International) |\n| [How to do regexp analysis](talks/2020-25-Apr-online) [:movie_camera:](https://www.youtube.com/watch?v=PO9A082Nqsk) | April 25, 2020 | Online (Russia) |\n| [The Missing Static Type Ballad](talks/2019-7-Dec-yoshkarola) [:movie_camera:](https://www.youtube.com/watch?v=9cbuXRWR1_g) | December 7, 2019 | Yoshkar-Old (Russia) |\n| [Applied Go code similarity analysis](talks/2019-7-Oct-moscow) [:movie_camera:](https://www.youtube.com/watch?v=WQB7pVtOFzw) | October 9, 2019 | Moscow (Russia) |\n| [Finding catastrophic backtracking statically](talks/2019-28-Sep-vladivostok) [:movie_camera:](https://www.youtube.com/watch?v=xH2ClIIGN94) | September 28, 2019 | Vladivostok (Russia) |\n| [Drawing gophers with Go](talks/2019-22-Sep-kazan) | September 2, 2019 | Kazan (Russia) |\n| [phpgrep: syntax-aware code search](talks/2019-2-Aug-innopolis) [:movie_camera:](https://www.youtube.com/watch?v=34Rk4uLPn1A) | August 2, 2019 | Innopolis (Russia) |\n| [NoVerify PHP linter](talks/2019-18-May-moscow) [:movie_camera:](https://www.youtube.com/watch?v=FQijPdVAnQw) | May 18, 2019 | Moscow (Russia) |\n| [VK API from Go](talks/2019-27-Apr-nizhny) | April 27, 2019 | Nizhny Novgorod (Russia) |\n| [Go goodies](talks/2019-5-Jan-kazan) [:movie_camera:](https://www.youtube.com/watch?v=ptCNC9lrg8U) | January 5, 2019 | Kazan (Russia) |\n| [What I love in your open source Go projects](talks/2018-8-Dec-nizhny) | December 8, 2018 | Nizhny Novgorod (Russia) |\n| [We need to rewrite everything in Go!](talks/2018-2-Dec-kazan) | December 2, 2018 | Kazan (Russia) |\n| [Go inliner: past, present and the future](talks/2018-24-Nov-novosib) | November 24, 2018 | Novosibirsk (Russia) |\n| [Efficient concurrency in Go](talks/2018-8-Nov-kazan) [:movie_camera:](https://www.youtube.com/watch?v=o4vd-lMRI54) | November 8, 2018 | Kazan (Russia) |\n| [Efficient usage of Go data structures](talks/2018-6-Nov-kazan) [:movie_camera:](https://www.youtube.com/watch?v=kClQ7rM5uBY) | November 6, 2018 | Kazan (Russia) |\n| [Go Inline Assembler: Dream or Reality](talks/2018-28-Sep-minsk) [:movie_camera:](https://www.youtube.com/watch?v=d_Vm05OaQYQ) | September 28, 2018 | Minsk (Belarus) |\n| [Go static analysis](talks/2018-10-Sep-innopolis) [:movie_camera:](https://www.youtube.com/watch?v=6SDk8ibowW4) | September 10, 2018 | Innopolis (Russia) |\n| [Why Go?](talks/2018-20-Aug-nizhny) [:movie_camera:](https://www.youtube.com/watch?v=eRgWQOUvm8Y) | August 20, 2018 | Nizhny Novgorod (Russia) |\n| [Binary size optimizations in Go](talks/2018-31-May-innopolis) [:movie_camera:](https://www.youtube.com/watch?v=HpriPuIfrGE) | May 31, 2018 | Innopolis (Russia) |\n\n## Workshops\n\n| Topic | Date | Location |\n|---|---|---|\n| [Ruleguard workshop](workshops/2021-24-Apr-online) [:movie_camera:](https://www.youtube.com/watch?v=wZMgZNtKCm0\u0026list=PLAjl-3QkinHvbgBKtIwlD2j3qqZ7iNOhE\u0026index=2) |  April 24, 2021 | Online (Russia) |\n| [Go contributors workshop](workshops/2019-13-Apr-moscow) | April 13, 2019 | Moscow (Russia) |\n| [Go contributors workshop](workshops/2018-23-Nov-novosib) | November 23, 2018 | Novosibirsk (Russia) |\n| [Hacktoberfest-2018](workshops/2018-13-Oct-innopolis) | October 13, 2018 | Innopolis (Russia) |\n\n## Articles\n\n### [quasilyte.dev/blog](https://quasilyte.dev/blog) (eng)\n\n| Topic | Date |\n|---|---|\n| [Zero alloc pathfinding in Go](https://quasilyte.dev/blog/post/pathfinding/) | October 13, 2023 |\n| [Generations-based array](https://quasilyte.dev/blog/post/gen-map/) | September 22, 2023 |\n| [Game development in Go: Ebitengine shaders](https://quasilyte.dev/blog/post/ebitengine-shaders/) | May 3, 2023 |\n| [A simpler scheme than SSA](https://quasilyte.dev/blog/post/naive-ssa-alternative/) | March 26, 2022 |\n| [Profile-guided code search](https://quasilyte.dev/blog/post/profile-guided-gogrep/) | December 21, 2021 |\n| [YAML is your JSON5](https://quasilyte.dev/blog/post/yaml5/) | September 10, 2020 |\n| [gogrep: structural search and replace](https://quasilyte.dev/blog/post/gogrep/) | June 8, 2020 |\n| [Let's Go write Pratt parsers!](https://quasilyte.dev/blog/post/pratt-parsers-go/) | March 27, 2020 |\n| [ruleguard: dynamic inspection rules for Go](https://quasilyte.dev/blog/post/ruleguard/) | January 9, 2020 |\n| [Step driven evaluation](https://quasilyte.dev/blog/post/step-pattern/) | February 27, 2019 |\n| [log.Fatal vs log.Panic](https://quasilyte.dev/blog/post/log-fatal-vs-log-panic/) | January 8, 2019 |\n| [Go compiler: SSA optimization rules description language](https://quasilyte.dev/blog/post/go_ssa_rules/) | June 30, 2018 |\n| [Go AVX-512 support](https://quasilyte.dev/blog/post/go-avx512/) | June 8, 2018 |\n| [Disassembling Go AVX-512](https://quasilyte.dev/blog/post/disassembling-go-avx512/) | June 8, 2018 |\n| [Dispatch tables in Go asm](https://quasilyte.dev/blog/post/go-asm-dispatch-tables/) | May 31, 2018 |\n| [Goism objects layout model](https://quasilyte.dev/blog/post/goism-objects-layout-mode/) | January 14, 2018 |\n| [Writing Emacs Lisp compiler intrinsics](https://quasilyte.dev/blog/post/writing-emacs-lisp-compiler-intrinsics/) | September 23, 2017 |\n| [Go assembly language complementary reference](https://quasilyte.dev/blog/post/go-asm-complementary-reference/) | September 20, 2017 |\n| [Go nested functions and static locals](https://quasilyte.dev/blog/post/go-nested-functions-and-static-locals/) | September 18, 2017 |\n| [Path to convenient C FFI in Go](https://quasilyte.dev/blog/post/cgo-funcall/) | August 18, 2017 |\n| [RISC-V: custom instruction and its simulation](https://quasilyte.dev/blog/post/riscv32-custom-instruction-and-its-simulation/) | June 21, 2017 |\n| [Emacs Lisp multi return values](https://quasilyte.dev/blog/post/elisp-multi-return-values/) | May 19, 2017 |\n\n### [habr.com](https://habr.com/ru/users/quasilyte/posts/) (rus)\n\n| Topic | Date |\n|---|---|\n| [Делаем RPG на Go: часть 0.5](https://habr.com/ru/articles/799497/) | March 12, 2024 |\n| [Делаем RPG на Go: часть 0](https://habr.com/ru/articles/791192/) | February 3, 2024 |\n| [Самый быстрый поиск пути на Go без аллокаций и СМС](https://habr.com/ru/articles/766882/) | October 11, 2023 |\n| [Битва за производительность: SparseMap vs GenerationsMap](https://habr.com/ru/articles/762984/) | September 23, 2023 |\n| [Разработка игр на Go: шейдеры](https://habr.com/ru/articles/730848/) | April 22, 2023 |\n| [Улучшенный benchstat для оптимизирующих гоферов](https://habr.com/ru/post/703294/) | December 3, 2022 |\n| [Текстовые шаблонизаторы и их реализация](https://habr.com/ru/company/vk/blog/698532/) | November 29, 2022 |\n| [Встраиваем Lua в PHP через FFI](https://habr.com/ru/company/vk/blog/681400/) | August 23, 2022 |\n| [Используем SQLite в KPHP и PHP через FFI](https://habr.com/ru/post/653677/) | March 11, 2022 |\n| [Анализируем bound checks в Go по CPU профилю](https://habr.com/ru/post/651203/) | February 13, 2022 |\n| [Ускоряем hugo на 20% простым изменением в пакете reflect](https://habr.com/ru/post/645727/) | January 14, 2022 |\n| [profile-guided поиск по коду](https://habr.com/ru/post/596755/) | December 21, 2021 |\n| [gocorpus: открытый корпус Go кода, поддерживающий запросы](https://habr.com/ru/post/593349/) | December 3, 2021 |\n| [Создаём игру на KPHP с помощью FFI и SDL](https://habr.com/ru/company/vk/blog/581238/) | November 19, 2021 |\n| [Заметки KPHP: тестирование и бенчмарки](https://habr.com/ru/company/vk/blog/572424/) | August 24, 2021 |\n| [Релиз ruleguard v0.3.0](https://habr.com/ru/post/538930/) | January 27, 2021 |\n| [Статический анализ: baseline файлы vs diff](https://habr.com/ru/post/508094/) | June 25, 2020 |\n| [gogrep: структурный поиск и замена Go кода](https://habr.com/ru/post/505652/) | June 7, 2020 |\n| [Парсеры Пратта для чайников](https://habr.com/ru/post/494316/) | March 27, 2020 |\n| [Что нужно знать, если вы хотите вызывать Go функции из ассемблера](https://habr.com/ru/post/489482/) | February 22, 2020 |\n| [ELFийские трюки в Go](https://habr.com/ru/post/482392/) | December 29, 2019 |\n| [ruleguard: динамические проверки для Go](https://habr.com/ru/post/481696/) | December 26, 2019 |\n| [Как добавить проверки в NoVerify, не написав ни строчки Go-кода](https://habr.com/ru/company/vk/blog/473718/) | November 7, 2019 |\n| [Ищем баги в PHP коде без статических анализаторов](https://habr.com/ru/post/464893/) | August 26, 2019 |\n| [Дефективное встраивание функций в Go](https://habr.com/ru/post/438636/) | February 5, 2019 |\n| [Сообщество Go в Казани и наши митапы](https://habr.com/ru/post/433916/) | December 21, 2018 |\n| [Путешествие gocritic'а в прошлое](https://habr.com/ru/post/432848/) | December 11, 2018 |\n| [Go lintpack: менеджер компонуемых линтеров](https://habr.com/ru/post/430196/) | November 17, 2018 |\n| [Контроль консистентности кода в Go](https://habr.com/ru/post/429354/) | November 10, 2018 |\n| [bytes.Buffer в Go: оптимизации, которые не работают](https://habr.com/ru/company/intel/blog/422447/) | September 6, 2018 |\n| [Ускорение конкатенации строк в Go своими руками](https://habr.com/ru/post/417479/) | July 18, 2018 |\n| [Контрибьютим в Go с помощью статического анализатора go-critic](https://habr.com/ru/post/416903/) | July 12, 2018 |\n| [Компилятор Go: язык описания правил SSA оптимизаций](https://habr.com/ru/post/415771/) | June 30, 2018 |\n| [go-critic: самый упрямый статический анализатор для Go](https://habr.com/ru/post/414739/) | June 21, 2018 |\n| [Go contribution workshop в России](https://habr.com/ru/post/413815/) | June 11, 2018 |\n| [Go 1.11: AVX-512 со вкусом Go](https://habr.com/ru/post/359132/) | June 8, 2018 |\n| [GCCGO против «стандартной» реализации](https://habr.com/ru/company/intel/blog/348230/) | February 20, 2018 |\n| [Альтернатива Emacs Lisp'у](https://habr.com/ru/post/331134/) | June 18, 2017 |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquasilyte%2Ftalks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquasilyte%2Ftalks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquasilyte%2Ftalks/lists"}