diff --git a/db/seeds/presentations.yml b/db/seeds/presentations.yml index 0932f2b8..701ad79b 100644 --- a/db/seeds/presentations.yml +++ b/db/seeds/presentations.yml @@ -38,9 +38,9 @@ segiddins: live_or_recorded: venue description: Though the Marshal serialization format has fallen out of favor over the past decade, due to a lack cross-language interoperability and security vulnerabilities, - I think there窶冱 a lot to learn from it. Having recently reimplemented Marshal.load + I think there’s a lot to learn from it. Having recently reimplemented Marshal.load to sidestep the security concerns, I want to reintroduce the Ruby community to - the gem (see what I did there?) that is binary serialization. Let窶冱 walk through + the gem (see what I did there?) that is binary serialization. Let’s walk through how Marshal works under the hood, and see what ideas from it we can salvage for a modern take on data serialization. speakers: @@ -103,7 +103,7 @@ tagomoris: speakers: - id: tagomoris kokuyouwind: - title: Let's use LLMs from Ruby 縲� Refine RBS type definitions using + title: Let's use LLMs from Ruby 〜 Refine RBS type definitions using type: presentation language: JA live_or_recorded: venue @@ -112,7 +112,7 @@ kokuyouwind: Though Python is recognized as a de facto standard language to use LLMs, we are Rubyists so we would like to explore how we use LLMs in the Ruby language. In this session, we'll cover Langchain.rb as a way to use LLMs in the Ruby language and share examples of managing prompts and using various LLMS. - The development of RBS Goose, which is a tool to refine RBS type definitions, is a good practical example. We窶冤l share how it works including prompt construction, as well as the tips for LLMs development and our evaluation of its performance, including accuracy and speed, at the combination of various prompts, Few-Shot examples, and LLMs. + The development of RBS Goose, which is a tool to refine RBS type definitions, is a good practical example. We’ll share how it works including prompt construction, as well as the tips for LLMs development and our evaluation of its performance, including accuracy and speed, at the combination of various prompts, Few-Shot examples, and LLMs. speakers: - id: kokuyouwind osyoyu: @@ -178,7 +178,7 @@ ko1: description: |- This talk presents recent updates to Ractor, which enables parallel and concurrent programming on Ruby. - Ractor still lacks fundamental features. For example, we cannot use 窶徨equire窶� method and 窶徼imeout窶� methods on non-main Ractors because of synchronization and implementation issues. We will discuss such problems and how to solve them. + Ractor still lacks fundamental features. For example, we cannot use “require” method and “timeout” methods on non-main Ractors because of synchronization and implementation issues. We will discuss such problems and how to solve them. From a performance point of view, we have introduced the M:N thread scheduler in Ruby 3.3 and we will show the performance analysis with recent improvements. speakers: - id: ko1 @@ -288,13 +288,13 @@ KnuX: language: EN live_or_recorded: venue description: |- - In certain online circles, Ruby has a reputation for """being slow""" (very vigorous air quotes). I don窶冲 think this is true; often applications are slow because they are doing a lot more work than expected or intended. It's easy to write innocent-looking code that is actually using expensive abstractions. + In certain online circles, Ruby has a reputation for """being slow""" (very vigorous air quotes). I don’t think this is true; often applications are slow because they are doing a lot more work than expected or intended. It's easy to write innocent-looking code that is actually using expensive abstractions. The Ruby 3 series has seen amazing advances in performance. What if, in addition to these advances, we don't have to run as much code? Have you heard the saying "The fastest code is the code which does not run"? - This is where a profiler comes in: A profiler lets you see where cpu, time, memory and other resources are being spent, and thus can be used to pinpoint exactly why an application is slow, and it窶冱 doing. + This is where a profiler comes in: A profiler lets you see where cpu, time, memory and other resources are being spent, and thus can be used to pinpoint exactly why an application is slow, and what it’s doing. - In this talk, I explore how Datadog窶冱 `ddtrace` open-source profiler works: what窶冱 needed to build a profiler that can be always on, why use sampling, what sources of data the Ruby VM provides, and how you can investigate your Ruby applications with it. + In this talk, I explore how Datadog’s `ddtrace` open-source profiler works: what’s needed to build a profiler that can be always on, why use sampling, what sources of data the Ruby VM provides, and how you can investigate your Ruby applications with it. speakers: - id: KnuX jeremyevans0: @@ -344,9 +344,9 @@ maximecb: language: EN live_or_recorded: venue description: |- - With each of the past 3 Ruby releases, YJIT has delivered higher and higher performance. However, we are seeing diminishing returns, because as JIT-compiled code becomes faster, it makes up less and less of the total execution time, which is now becoming dominated by C function calls. As such, it may appear like there is a fundamental limit to Ruby窶冱 performance. + With each of the past 3 Ruby releases, YJIT has delivered higher and higher performance. However, we are seeing diminishing returns, because as JIT-compiled code becomes faster, it makes up less and less of the total execution time, which is now becoming dominated by C function calls. As such, it may appear like there is a fundamental limit to Ruby’s performance. - In the first half of the 20th century, some early airplane designers thought that the speed of sound was a fundamental limit on the speed reachable by airplanes, thus coining the term 窶徭ound barrier窶�. This limit was eventually overcome, as it became understood that airflow behaves differently at supersonic speeds. + In the first half of the 20th century, some early airplane designers thought that the speed of sound was a fundamental limit on the speed reachable by airplanes, thus coining the term “sound barrier”. This limit was eventually overcome, as it became understood that airflow behaves differently at supersonic speeds. In order to break the Ruby performance barrier, it will be necessary to reduce the dependency on C extensions, and start writing more gems in pure Ruby code. In this talk, I want to look at this problem more in depth, and explore how YJIT can help enable writing pure-Ruby software that delivers high performance levels. speakers: @@ -382,7 +382,7 @@ udzura: and mruby-wasmized-by-emscripten, which only support top-level script execution.\n\nTo accomplish these objectives, the author decided to build a VM from scratch, utilizing mruby's elegant bytecode spec for its instruction set. This places mruby/edge - within the 窶徇ruby family窶� as a new member.\n\nThe talk will cover its internal + within the “mruby family” as a new member.\n\nThe talk will cover its internal technologies, challenges, mruby VM and WASM insights, and future prospects, including support for WASM Component Model in mruby/edge." speakers: @@ -405,16 +405,16 @@ mametter: speakers: - id: mametter ahogappa0613: - title: It's about time to pack Ruby and Ruby script in one binary + title: It's about time to pack Ruby and Ruby scripts in one binary type: presentation language: JA live_or_recorded: venue description: |- Ruby is designed to execute every combination of operating systems and architectures. - However, it窶冱 not easily portable because it's impossible to execute by only sharing a Ruby script. + However, it’s not easily portable because it's impossible to execute by only sharing a Ruby scripts. It needs to install Ruby of the same version and Gems in order to execute. - One solution to the issues is "one binary,窶� which involves creating an executable file that contains Ruby script and Gems necessary to execute. + One solution to the issues is "one binary,” which involves creating an executable file that contains Ruby script and Gems necessary to execute. I am developing a game engine by Ruby, so I must create one binary when distributing the game. I developed a Gem to package Ruby, scripts, and Gems into a single executable file. This Gem was developed to not depend on the Ruby version without changing Ruby. @@ -432,7 +432,7 @@ eregontp: However it also has some downsides including long warmup times (it takes a while to JIT compile all the C extension code), compatibility with huge C extensions (e.g. grpc) and slower installation of C extensions gems. In the last release, TruffleRuby changed the approach to run C extensions natively, like CRuby. In this talk, we would like to tell you this story, illustrate the challenges and discuss which parts of the C API could be improved. - We also explore how to run C extensions faster by using 窶廬nline caches in C窶�, which could also be applied in CRuby. + We also explore how to run C extensions faster by using “Inline caches in C”, which could also be applied in CRuby. Come and learn from 10 years of implementing and optimizing C extensions in various ways! speakers: - id: eregontp @@ -486,9 +486,9 @@ k0kubun: language: EN live_or_recorded: venue description: |- - Have you enabled Ruby 3.3 YJIT? You窶决e using a much slower Ruby if you haven窶冲. YJIT makes Railsbench 1.7x faster. In production, YJIT presents a 17% speedup to millions of requests per second at Shopify. + Have you enabled Ruby 3.3 YJIT? You’re using a much slower Ruby if you haven’t. YJIT makes Railsbench 1.7x faster. In production, YJIT presents a 17% speedup to millions of requests per second at Shopify. - Why does YJIT make Ruby so much faster? In this talk, you窶冤l explore the latest YJIT optimizations that have a huge impact on your application窶冱 performance. Once you understand what you're missing out on, you can't help but enable YJIT. + Why does YJIT make Ruby so much faster? In this talk, you’ll explore the latest YJIT optimizations that have a huge impact on your application’s performance. Once you understand what you're missing out on, you can't help but enable YJIT. speakers: - id: k0kubun m3m0r7: @@ -524,7 +524,7 @@ tenderlove: reads as well as decreased the machine code required for JIT compilation. But what about cache misses? Is there any way we can speed up instance variable access in that case? Ruby 3.3 introduced a red-black tree cache to speed up instance - variable cache misses. Let窶冱 learn how instance variables are implemented, and + variable cache misses. Let’s learn how instance variables are implemented, and how the red black tree cache speeds them up! speakers: - id: tenderlove @@ -569,13 +569,13 @@ m_seki: speakers: - id: m_seki junk0612: - title: 'From LALR to IELR: A Lrama''s next step' + title: 'From LALR to IELR: A Lrama''s Next Step' type: presentation language: JA live_or_recorded: venue description: |- - In `parse.y`, there is a variable that represents the state of the Lexer, based on the idea that the Parser and the Lexer can be separated. However, in reality, the state of Parser and Lexer are shared and cannot be said to be separated. Also, the Lexer state is manually managed, but historical history has clouded the view, and additions and modifications must be done with care. - With the replacement of the parser generator from Bison to Lrama, the time has come to attack `parse.y` from the parser generator side, and Lrama is trying to solve this problem by generating an algorithmic parser called PSLR. As a first step, I will show how Lrama can generate a parser for a new algorithm called IELR, which is a prerequisite for PSLR. + In parse.y, there is a variable that represents the state of the Lexer, based on the idea that the Parser and the Lexer can be separated. However, in reality, the state of Parser and Lexer are shared and cannot be said to be separated. Also, the Lexer state is manually managed, but historical history has clouded the view, and additions and modifications must be done with care. + With the replacement of the parser generator from Bison to Lrama, the time has come to attack parse.y from the parser generator side, and Lrama is trying to solve this problem by generating an algorithmic parser called PSLR. As a first step, I will show how Lrama can generate a parser for a new algorithm called IELR, which is a prerequisite for PSLR. IELR is an improved version of LALR and can parse grammars that LALR cannot. In this presentation, I will explain the implementation of Lrama and how the parser is actually generated. speakers: - id: junk0612 @@ -585,11 +585,11 @@ Yuryu: language: EN live_or_recorded: venue description: |- - I broke the world record of pi calculations with 100 trillion digits. When I was preparing for the challenge, I created a small Ruby script and an ERB template for the calculation software config file to automate benchmarking, and a shell one-liner to create a CSV file for review. The script saved me days of manual work and allowed me to find optimal parameters. The final calculation took 157 days, almost twice as fast as the earliest configurations, which could窶况e taken more than 300 days. + I broke the world record of pi calculations with 100 trillion digits. When I was preparing for the challenge, I created a small Ruby script and an ERB template for the calculation software config file to automate benchmarking, and a shell one-liner to create a CSV file for review. The script saved me days of manual work and allowed me to find optimal parameters. The final calculation took 157 days, almost twice as fast as the earliest configurations, which could’ve taken more than 300 days. - This talk will show you how I turned the vague problem scope (breaking the pi world record) into a smaller solvable task (automation with Ruby). You窶冤l also learn scripting techniques for benchmarking such as invoking an external program in Ruby, and multiline text formatting with the sed, grep, and paste commands. + This talk will show you how I turned the vague problem scope (breaking the pi world record) into a smaller solvable task (automation with Ruby). You’ll also learn scripting techniques for benchmarking such as invoking an external program in Ruby, and multiline text formatting with the sed, grep, and paste commands. - You may not calculate pi, but I窶冦 sure you have a thing or two that you want your computer to do for you! + You may not calculate pi, but I’m sure you have a thing or two that you want your computer to do for you! speakers: - id: Yuryu KJTsanaktsidis: @@ -624,9 +624,9 @@ palkan_tula: language: EN live_or_recorded: venue description: |- - How often have you heard, 窶廬 wish Ruby had X from Y窶�? Developers tend to desire features they love in one language to be available in another. That窶冱 why, for example, we got pattern matching and shorthand Hashes added to Ruby. What窶冱 next? What will inspire the next Ruby syntax addition? Crystal? Elixir? Zig (have you heard about it)? PHP (why not)? + How often have you heard, “I wish Ruby had X from Y”? Developers tend to desire features they love in one language to be available in another. That’s why, for example, we got pattern matching and shorthand Hashes added to Ruby. What’s next? What will inspire the next Ruby syntax addition? Crystal? Elixir? Zig (have you heard about it)? PHP (why not)? - Let窶冱 embark on a fantastic journey of exploring syntax features from other languages, such as method overloading or null coalescing assignment, and how to port them to Ruby. But why is it fantastic? I want to turn fantasy into reality and show how we can experiment with Ruby syntax additions without waiting for official releases with experimental features. + Let’s embark on a fantastic journey of exploring syntax features from other languages, such as method overloading or null coalescing assignment, and how to port them to Ruby. But why is it fantastic? I want to turn fantasy into reality and show how we can experiment with Ruby syntax additions without waiting for official releases with experimental features. speakers: - id: palkan_tula makenowjust: @@ -664,7 +664,7 @@ vinistock: description: |- During the last few years, the Ruby community invested significant effort into improving developer tooling. A lot of this effort has been divergent; trying out many solutions to find out what works best and fits Rubyists expectations. - So where are we at this point? How do we compare to other ecosystems? Is it time to converge, unite efforts and reduce fragmentation? And where are we going next? Let窶冱 analyze the full picture of Ruby developer tooling and try to answer these questions together. + So where are we at this point? How do we compare to other ecosystems? Is it time to converge, unite efforts and reduce fragmentation? And where are we going next? Let’s analyze the full picture of Ruby developer tooling and try to answer these questions together. speakers: - id: vinistock yukihiro_matz: diff --git a/db/seeds/speakers.yml b/db/seeds/speakers.yml index 3c85bee7..d3f62924 100644 --- a/db/seeds/speakers.yml +++ b/db/seeds/speakers.yml @@ -26,7 +26,7 @@ keynotes: id: rubylangorg name: CRuby Committers bio: '' - github_id: + github_id: twitter_id: rubylangorg gravatar_hash: ce6d997265cefede13ee7e7e2a2cf9b2 yukihiro_matz: @@ -53,15 +53,16 @@ speakers: working on improving Ruby for GitHub (and everyone else). He was an early contributor to Ruby's new parser Prism and an avid compiler nerd. github_id: HParker - twitter_id: + twitter_id: gravatar_hash: 18a40c6996fbaa47562e16bd42b0f430 ahogappa0613: id: ahogappa0613 name: ahogappa - bio: I am developing a game engine and a video game using Ruby. Additionally, - I am working on a one-binary tool for Ruby. + bio: |- + I am a web application developer at STORES, Inc. + As a hobby, I develop game engines and tools to pack ruby in one binary. github_id: ahogappa0613 - twitter_id: + twitter_id: gravatar_hash: c53f1542d84fc28ab81b979173af50ae eregontp: id: eregontp @@ -122,7 +123,7 @@ speakers: Ph.D. student at SOKENDAI (NII, National Institute of Informatics). Researcher for information security and formal language. Ruby committer. I am the author of Regexp optimization to prevent ReDoS in Ruby 3.2.0. github_id: makenowjust - twitter_id: + twitter_id: gravatar_hash: db1b7e3c6fe6f6a0e9752b2c19bf5473 hasumikin: id: hasumikin @@ -160,15 +161,15 @@ speakers: id: jhawthorn name: John Hawthorn bio: John is a Ruby Committer, a Rails Core member, and a Staff Engineer at GitHub - on the Ruby Architecture team. He窶冱 based in Victoria, Canada. + on the Ruby Architecture team. He’s based in Victoria, Canada. github_id: jhawthorn twitter_id: jhawthorn gravatar_hash: 355cd35cc4e716547c8bf3c6b507a1ca junk0612: id: junk0612 name: Junichi Kobayashi - bio: Working at ESM, Inc., with a keen interest in Ruby parsers and their related - technologies. + bio: Working as a Rails programmer at ESM, Inc., with a keen interest in Ruby + parsers and their related technologies. github_id: junk0612 twitter_id: junk0612 gravatar_hash: afdb8e40066f7939ff82727bc0c892ce @@ -179,7 +180,7 @@ speakers: That's why and how he met Ruby. He is currently working as a senior serverless strategist at Fastly. He also plays the contrabass once in a while. github_id: remore - twitter_id: + twitter_id: gravatar_hash: fbe207d1bece86feb799fbc1841ce735 KJTsanaktsidis: id: KJTsanaktsidis @@ -207,7 +208,7 @@ speakers: Tokyo, 2007. Now he is still working on MRI development at STORES, Inc. He is also a director of Ruby Association. github_id: ko1 - twitter_id: + twitter_id: gravatar_hash: 990397e8b38d6f5f4ae8ff343e8b883a ima1zumi: id: ima1zumi @@ -218,7 +219,7 @@ speakers: gravatar_hash: 74b5a82b8710accc1e6189a19f0b4935 duerst: id: duerst - name: Martin J. Dテシrst + name: Martin J. Dürst bio: Martin is a Professor of Computer Science at Aoyama Gakuin University in Japan. He has been one of the main drivers of Internationalization (I18N) and the use of Unicode on the Web and the Internet. He published the first proposals @@ -227,7 +228,7 @@ speakers: his students have contributed to the implementation of Ruby, mostly in the area of I18N. github_id: duerst - twitter_id: + twitter_id: gravatar_hash: f52e87b92cafb1e8c6d155076b56ecff qnighy: id: qnighy @@ -256,7 +257,7 @@ speakers: id: m_seki name: Masatoshi SEKI bio: Masatoshi Seki is a Ruby committer and the author of several Ruby standard - libraries including dRuby, ERB, and Rinda. He窶冱 an expert in object-oriented + libraries including dRuby, ERB, and Rinda. He’s an expert in object-oriented programming, distributed systems, and eXtreme programming. He has been speaking at RubyKaigi every year since 2006 when the Kaigi first started. He is also Principal Engineer at Canon Medical Systems corp. @@ -269,7 +270,7 @@ speakers: bio: Matt Muller is a software engineer and maintainer of AWS SDK for Ruby. You can find him on GitHub as @mullermp. github_id: mullermp - twitter_id: + twitter_id: gravatar_hash: 050a145197ec5162f0cf4c2711f47bdc eightbitraptor: id: eightbitraptor @@ -281,7 +282,7 @@ speakers: When he's not scratching his head over a segfault he can be found brewing coffee and building keyboards. github_id: eightbitraptor - twitter_id: + twitter_id: gravatar_hash: 43f0363b6c12155c36d0c06043c268fd maximecb: id: maximecb @@ -292,7 +293,7 @@ speakers: She is currently leading a project at Shopify to build YJIT, a new JIT compiler built inside CRuby. github_id: maximecb - twitter_id: + twitter_id: gravatar_hash: f1457acc3f8d176db1d28e9f30779ae6 m3m0r7: id: m3m0r7 @@ -301,8 +302,8 @@ speakers: of experience as a software engineer, and I have served as a CTO in the past. Currently, I am working as an Engineering Manager. I frequently speak at events primarily within the PHP community. I am the author of books titled "Software - Design (Magazine)", "縺ソ繧薙↑縺ョ PHP ��Minna no PHP��" and "繝ャ繧ャ繧キ繝シ繧ウ繝シ繝峨→縺ゥ縺�サ倥″蜷医≧縺具シ�Legacy code - to dou tsukiau ka��" + Design (Magazine)", "みんなの PHP (Minna no PHP)" and "レガシーコードとどう付き合うか(Legacy code + to dou tsukiau ka)" github_id: m3m0r7 twitter_id: m3m0r7 gravatar_hash: 218473ff7abad0fcd72865da2b23bb5b @@ -349,7 +350,7 @@ speakers: bio: A wild (freelance) programmer. I can do cryptography and authentication/authorization a little. github_id: sylph01 - twitter_id: + twitter_id: gravatar_hash: 3cffaccb703ff33ea0028f9f0caa8e4d gedorinku: id: gedorinku @@ -367,7 +368,7 @@ speakers: never sleep). He's been working on Ruby tooling for the past decade, and has shipped hundreds of bugs across RubyGems & Bundler. github_id: segiddins - twitter_id: + twitter_id: gravatar_hash: 4d6be90af74894fd132fb06dacec04d7 tagomoris: id: tagomoris @@ -485,5 +486,5 @@ speakers: A newbie committer to Ruby, Swift, and LLVM, especially working on WebAssembly support for the languages. Also a graduate CS student at Waseda University. github_id: kateinoigakukun - twitter_id: + twitter_id: gravatar_hash: 7a4968fbcd56e81f95a4f3c186141b52