Lightning Talks

katsyoshi
katsyoshi
@katsyoshi

I'm a programmer.

Building Ruby Native Extention using Ruby

I build a native ruby compiler for x86. This product is a native binary running on Linux. I build a native ruby extension using this product.

kokuyou
kokuyou
@kokuyouwind

Web developer using Ruby on Rails. He has a master's degree from the University of Tsukuba, where he used OCaml in his research, and is interested in functional programming and type systems. He is currently working for Leaner Technologies, Inc. and surveys LLMs and ChatGPT as part of his technical research.

RBS meets LLMs - Type inference using LLM

Recently, Large Language Models (LLMs), such as ChatGPT, have been rapidly evolving. LLMs are characterized by their ability to interpret word meanings and contexts, and by their very wide range of applications.

By the way, common static analyzers and execution systems treat class and variable names as mere labels, but they are important clues when humans read code. By using LLMs, we can interpret those intentions and use them for type inference.

Also, static analysis is not good at dynamic definitions such as define_method, which cannot be distinguished from a simple method call in Ruby syntax. LLMs may be able to successfully generate type definitions in these cases.

In this session, we will introduce our efforts to use ChatGPT for RBS generation and discuss the possibility of incorporating LLMs into development tools.

OKURA Masafumi
OKURA Masafumi
@okuramasafumi

Ruby and Rails developer. Vimmer. Creator of Alba gem. The chief organizer of Kaigi on Rails.

Customize your Vim/Neovim directly with Ruby

My editor of choice is Neovim. Do you know what advantage Vim/Neovim have for us Rubyists? Yes, we can write plugins with Ruby! This facility made it possible to develop rspec-current.vim, a Vim/Neovim plugin to tell you what subject and context are in your cursor position. It's useful with deeply nested RSpec file. As I mentioned, we can use Ruby as a plugin development language. This means we can even use RubyVM::AbstractSyntaxTree in our plugin. In this talk I'll talk about the implementation detail of the plugin and encourage you to do the same!

Yukihiro "Matz" Matsumoto
Yukihiro "Matz" Matsumoto
@yukihiro_matz

The Creator of Ruby

mruby VM

In this talk, the core of the mruby VM will be explained.

lulalala
lulalala
@lulalala

A Rubyist from Taiwan who works for GitLab. My hobbies include traveling, developing 2ch-like imageboard, and to draw doujinshi.

Natsukantou the XML translator

Natsukantou gem enables seamless XML translation by allowing users to mix & match filters and translation services (DeepL, みんなの自動翻訳, or ChatGPT). The gem's architecture will be presented, showcasing its middleware pattern, the use cases and wizard configuration inference.

Shugo Maeda
Shugo Maeda
@shugomaeda

The Creator of Textbringer, a Ruby committer, Director of Network Applied Communication Laboratory, and Secretary general of the Ruby Association

BINGO!

I became the president of Network Applied Communication Laboratory Ltd. (NaCl) last year, and one of the most important duties of the president at NaCl is to hold a lottery at a year-end party. So I've created a bingo machine and cards using Rails and ruby.wasm for the last year-end party. In this talk, I will explain how to write useful applications using ruby.wasm.

Yla Aioi
Yla Aioi
@Little_Rubyist

I am little Rubyist. A web application developer at BOOKWALKER.

Adding custom rule for Rubocop in the 2 month of employment

I will talk about how I contributed to the team by developing about "nice to have, but not too much trouble without" rule in Rubocop.

Yuichiro Kaneko
Yuichiro Kaneko
@spikeolaf

Ruby committer.

Unexplored Region - parse.y -

Someone calls it "Demon Castle", other calls simply "hell". However, have you visited parse.y? This is a quick & safe tour of unexplored region, "parse.y".

YuyaFujiwara
YuyaFujiwara
@asonas

Software engineer

Ultra-fast test-driven development

Software testing is crucial in our daily development process. Our team adopts mob programming to develop many features. While we also use TDD for development, it is known that running tests with Rspec can be slow. In particular, loading and initializing files can be a bottleneck.

One solution to this problem is rspec-daemon. rspec-daemon is an echo server implemented over TCP. When a file name is sent through nc, it simply executes it with Rspec. This is a simple idea, but by maintaining a process that has been started once, there is no need to load and initialize files, allowing for fast execution of examples.

Peter Zhu
Peter Zhu
@peterzhu2118

Peter is a Ruby core committer and Senior Developer at Shopify. He is currently working on improving the performance of Ruby through projects such as Variable Width Allocation. He is the author of ruby_memcheck, a gem used to find memory leaks in native gems. It has found memory leaks in popular gems such as Nokogiri, protobuf, gRPC, and liquid-c.

Optimizing Ruby’s Memory Layout: Variable Width Allocation

Ruby 3.2 comes with Variable Width Allocation, a new feature inside of the garbage collector that increases allocation speed and improves memory efficiency. In this talk, I'll talk about the motivation behind this feature, what changes we made, and the performance improvements.

Yudai Takada
Yudai Takada
@ydah_

Yudai Takada is a committer for RuboCop Capybara and a Rubyist. He is a software engineer at Andpad, Inc. and he was born and raised in Osaka, Japan.

Dividing and Managing: The Cops Squad of RuboCop RSpec Dept

As you all know, RuboCop is a static code analyzer and formatter for Ruby. It also has extensions that are specialized for external Ruby libraries/frameworks. RuboCop RSpec is one of those extensions.

RuboCop RSpec has four major departments: RSpec, Rails, Capybara, and FactoryBot. However, the latter two departments are not limited to RSpec and can also be used with other test frameworks.

For example:

  • Test::Unit
  • Cucumber
  • Minitest
  • Minitest::Spec

Users of these test frameworks may not need RSpec cops, but may find value in Capybara and FactoryBot cops. Therefore, RuboCop RSpec has started a project to separate these departments into individual gems.

I would like to report on the progress of this project.

Sorah Fukumori
Sorah Fukumori
@sora_h

Staff Software Engineer at Cookpad for employee experiences. Sometimes operates AS59128 at KMC, build conference Wi-Fi, and helps RubyKaigi and Ruby core. Interested in IP Network, digital identity, authz/authn. https://sorah.jp/

Serverless IdP for small team

Traditional IdPs like Google, Azure AD don't fit for small team formed with members from multiple organization or individuals, because no one want to manage additional credentials just for specific project, and those tend to be expensive; OTOH, I was thinking about IdP for RubyKaigi organizing team. In this lightning talk, I'm going to introduce sorah/himari, a Rack-based small OpenID Connect IdP, which uses Omniauth for its identity source. Additionally, to minimize overhead running cost, this small IdP can be deployed on serverless AWS environment. I'd also like quickly introduce the sorah/apigatewayv2_rack gem which allows cheap deployment.