2025/08/09-10

National Taiwan University
of
Science and Technology

Free Entry

SPEAKERS

TBD

TBD

MATSUMOTO Yukihiro (Matz)

MATSUMOTO Yukihiro (Matz)

Creator of Ruby, Heroku
Samuel Giddins

Samuel Giddins

Security Engineer in Residence, Ruby Central
Sampo Kuokkanen

Sampo Kuokkanen

Head of Evil Martians GK
Hitoshi HASUMI

Hitoshi HASUMI

Creator of PicoRuby, Committer of mruby and mruby/c
Cristian Planas

Cristian Planas

Engineer at Combinaut
Ryo Kajiwara

Ryo Kajiwara

A wild (freelance) programmer. I can do cryptography and authentication/authorization a little.
Kazuaki TANAKA

Kazuaki TANAKA

Core developer of mruby and mruby/c Associate Professor, Kyushu Institute of Technology Embedded Systems and IoT Researcher In particular
Hayao Kimura

Hayao Kimura

freee 株式会社 - Web Application Developer
Yuichiro Kaneko

Yuichiro Kaneko

CRuby committer. The author of https://github.com/ruby/lrama LALR parser generator.
OKURA Masafumi

OKURA Masafumi

Chief organizer of KaigiOnRails
卡米哥 / Etrex Kuo

卡米哥 / Etrex Kuo

Line API Expert
Samuel Williams

Samuel Williams

Senior Staff Software Engineer, Shopify
Aleksandr Kunin

Aleksandr Kunin

NexHealth.com : Backend Engineer
Yatish Mehta

Yatish Mehta

Staff Software Engineer, Asana
Yudai Takada

Yudai Takada

CRuby committer. Committer of Lrama, committee. RuboCop RSpec team
Cindy Liu

Cindy Liu

Rails Developer, DEVCORE
Andrey Novikov

Andrey Novikov

Software engineer at @evilmartians
蒼時弦也 / Aotoki Tsuruya

蒼時弦也 / Aotoki Tsuruya

Senior Software Engineer, Gogolook
Saturday
9 Aug, 2025
Sunday
10 Aug, 2025

SCHEDULE

Opening (RB105)

TBD

TBD

EN

TBD (RB105)

MATSUMOTO Yukihiro (Matz)

MATSUMOTO Yukihiro (Matz)

Creator of Ruby, Heroku

EN

Break

Funding Ruby Infrastructure as a Non-Profit (RB105)

Samuel Giddins

Samuel Giddins

Security Engineer in Residence, Ruby Central

EN

What is happening with strings in Ruby and why is it feeling chilly? 🥶 (TR209)

Sampo Kuokkanen

Sampo Kuokkanen

Head of Evil Martians GK

EN

Break

Well, PicoRuby Can Do That (TR209)

Hitoshi HASUMI

Hitoshi HASUMI

Creator of PicoRuby, Committer of mruby and mruby/c

EN

Break

Rails Scales! - Why startups fail and how you can succeed (TR209)

Cristian Planas

Cristian Planas

Engineer at Combinaut

EN

Lunch Break

End-to-End Encryption Saves Lives. You Can Start Saving Lives In Ruby, Too (TR209)

Ryo Kajiwara

Ryo Kajiwara

A wild (freelance) programmer. I can do cryptography and authentication/authorization a little.

EN

Break

From Scripts to Circuits: IoT Applications with mruby/c (TR209)

Kazuaki TANAKA

Kazuaki TANAKA

Core developer of mruby and mruby/c Associate Professor, Kyushu Institute of Technology Embedded Systems and IoT Researcher In particular

EN

Break

RISC-V CPU emulator made with Ruby (TR209)

Hayao Kimura

Hayao Kimura

freee 株式会社 - Web Application Developer

EN

Break

Understanding Ruby Grammar Through Conflicts (TR209)

Yuichiro Kaneko

Yuichiro Kaneko

CRuby committer. The author of https://github.com/ruby/lrama LALR parser generator.

EN

Break

Why doesn't Ruby have Boolean class? (TR209)

OKURA Masafumi

OKURA Masafumi

Chief organizer of KaigiOnRails

EN

SCHEDULE

用 Ruby 寫一個 MCP Server (TR209)

卡米哥 / Etrex Kuo

卡米哥 / Etrex Kuo

Line API Expert

cht

Break

Building, Deploying, and Monitoring Ruby Web Applications with Falcon (TR209)

Samuel Williams

Samuel Williams

Senior Staff Software Engineer, Shopify

EN

Break

Loosing Seat in Concurrency: A tale of Transactions and Locks (TR209)

Aleksandr Kunin

Aleksandr Kunin

NexHealth.com : Backend Engineer

EN

Break

No "Pundit" Intended (TR209)

Yatish Mehta

Yatish Mehta

Staff Software Engineer, Asana

EN

Lunch Break

Joy with 3D Graphics Using Ruby (TR209)

Yudai Takada

Yudai Takada

CRuby committer. Committer of Lrama, committee. RuboCop RSpec team

EN

Break

Rails Active Storage 如何避免被同事攻擊 — 你,懂 BAC 嗎? (TR209)

Cindy Liu

Cindy Liu

Rails Developer, DEVCORE

cht

Break

Nuances of running Ruby on Kubernetes (TR209)

Andrey Novikov

Andrey Novikov

Software engineer at @evilmartians

EN

Break

Crafting AI-Friendly Application in Ruby (TR209)

蒼時弦也 / Aotoki Tsuruya

蒼時弦也 / Aotoki Tsuruya

Senior Software Engineer, Gogolook

cht

VENUE

National Taiwan University of
Science and Technology
台灣科技大學 活動中心 4 樓

venue
場地資訊 Venue Info

地點

台灣科技大學 活動中心 4 樓
National Taiwan University of Science and Technology

地址

106台北市大安區基隆路四段43號
No. 43, Sec. 4, Keelung Rd., Da'an Dist., Taipei City 106335, Taiwan (R.O.C.)

PARTY

party
Event Info

Schedule

8/9(Sat)18:30~21:30

Location

PicCollage Office(3F, No. 102, Guangfu S. Road, Daan Dist., Taipei)

Registration

Please Register Here to Join the Code Party.

COSCUP

TBD

TBD

RB105

2025/8/9

9:10 ~ 9:35

(EN) Opening

TBD

MATSUMOTO Yukihiro (Matz)

MATSUMOTO Yukihiro (Matz)

Creator of Ruby, Heroku

RB105

2025/8/9

9:35 ~ 10:20

(EN) TBD

TBD

Samuel Giddins

Samuel Giddins

Security Engineer in Residence, Ruby Central

RB105

2025/8/9

10:30 ~ 11:00

(EN) Funding Ruby Infrastructure as a Non-Profit

Over the past half decade, software supply chains have become an increasing focus for governments and large companies. This has created an interesting dynamic, as Ruby infrastructure (our package manager, package repository, etc.) used to be developed by volunteers. This is the story of how Ruby Central has adapted to the changing times, and has managed to fund work (including a full-time employee!) on our infrastructure. Along with the story of Ruby Central’s evolution, we’ll cover the current landscape surrounding funding and governance of infrastructural open source projects, and hopefully come away feeling hopeful about the future of critical open source.

Sampo Kuokkanen

Sampo Kuokkanen

Head of Evil Martians GK

TR209

2025/8/9

10:30 ~ 11:00

(EN) What is happening with strings in Ruby and why is it feeling chilly? 🥶

  1. What is happening with strings in the Ruby source code?
  2. Ruby Archaeology: How did we get frozen strings with a magic comment in the first place?
  3. What effect will this have on everyday Rubyists?
  4. What are “chilled” strings? Is it just like shaved ice with mango?
  5. Why do we even freeze strings in Ruby?
  6. What will change?

A deep dive into strings in Ruby. The Ruby string.c file is currently 13,198 lines long (in contrast, if you exclude comments, the string.rb file is only one line of code!), so it should come as no surprise that it’s sometimes not easy to follow what is changing around there.

With Ruby 3.4, we got chilled strings, and after that, we can get rid of the magic comments that probably decorate almost all of our Ruby files! Not so fast, though. What are chilled strings? And why do we have to keep the magic comments in our files for a little bit longer?

But why is this change happening, and what historical background does it have? What will it mean for ordinary Rubyists like us?

And we’ll take a look at what Matz said before Ruby 3: “All String literals are immutable (frozen) on Ruby 3”. Will this finally be true for Ruby?

And actually, there is a way of getting default frozen strings on current Rubies too… like almost always with Ruby, there is a gem for that.

Hitoshi HASUMI

Hitoshi HASUMI

Creator of PicoRuby, Committer of mruby and mruby/c

TR209

2025/8/9

11:05 ~ 11:35

(EN) Well, PicoRuby Can Do That

Ruby might just be the only language in the world built around the joy of programming. PicoRuby adds a new kind of fun to that joy — not just as an IoT platform, but as a fresh and exciting new way to experience Ruby itself. Let AI take care of the strict and tedious parts. With PicoRuby, let’s go back to where programming was all about creativity and delight.

Cristian Planas

Cristian Planas

Engineer at Combinaut

TR209

2025/8/9

11:40 ~ 12:10

(EN) Rails Scales! - Why startups fail and how you can succeed

Many engineers hold the belief that Rails does not scale. Indeed, many startups have problems scaling their Rails application. At the same time, massive companies like Shopify or Zendesk run Rails monoliths at a planetary scale. How do they do it?

In this presentation, Cristian Planas, former start-up founder/CTO and Group Tech Lead for performance at Zendesk will share with you what these companies know that you don’t. He will introduce you to the scalability problems that he had in his start-up, how he failed at solving them, and what are the actual options to fix them.

Ryo Kajiwara

Ryo Kajiwara

A wild (freelance) programmer. I can do cryptography and authentication/authorization a little.

TR209

2025/8/9

13:30 ~ 14:00

(EN) End-to-End Encryption Saves Lives. You Can Start Saving Lives In Ruby, Too

“Why do you need End-to-End Encryption in Ruby? Because…”

This talk will cover the Ruby implementation of the Messaging Layer Security Protocol (RFC 9420), and recent developments in Ruby’s modern cryptography. Messaging Layer Security enables authenticated key exchange in group messaging systems, providing end-to-end security to messaging apps. By learning how end-to-end encryption in group messaging works, you could be more confident about the security of your daily messages that are sent through your messaging apps. And yes, it does save actual lives.

Kazuaki TANAKA

Kazuaki TANAKA

Core developer of mruby and mruby/c Associate Professor, Kyushu Institute of Technology Embedded Systems and IoT Researcher In particular

TR209

2025/8/9

14:05 ~ 14:35

(EN) From Scripts to Circuits: IoT Applications with mruby/c

mruby/c is a lightweight implementation of mruby, designed specifically for environments with limited resources, supprting for IoT device development. It enables Ruby programs to run with minimal memory consumption; even the smallest application requires only about 20 KB of memory.

One of the key features of mruby/c is its concurrent execution capability, a feature not found in CRuby or standard mruby. This allows multiple programs to run in parallel without the need for an operating system. Additionally, mruby/c includes power-saving mechanisms, enabling IoT devices to operate for extended periods on limited power sources.

In this session, we’ll explore how mruby/c functions, with a focus on its power-efficiency and portability to various hardware platforms. We’ll conclude with a hands-on demonstration using a one-chip microcontroller.

Hayao Kimura

Hayao Kimura

freee 株式会社 - Web Application Developer

TR209

2025/8/9

14:40 ~ 15:10

(EN) RISC-V CPU emulator made with Ruby

Does low-level programming feel intimidating? In this session, we’ll build a RISC-V CPU emulator entirely in Ruby, step by step, while clearly explaining the CPU’s core cycle—fetch, decode, and execute—and the essentials of binary analysis. Learn how web engineers can venture into an unfamiliar layer of computing with a familiar language, and experience the spirit of ‘Build with Ruby.’

Yuichiro Kaneko

Yuichiro Kaneko

CRuby committer. The author of https://github.com/ruby/lrama LALR parser generator.

TR209

2025/8/9

15:15 ~ 15:45

(EN) Understanding Ruby Grammar Through Conflicts

Have you ever created a parser using an LR parser generator such as Lrama or GNU Bison? If so, you’ve likely encountered conflicts – perhaps even many times – leaving you feeling lost and unsure of what to do. However, conflicts offer incredibly valuable insights for understanding the grammar of programming languages. In this presentation, we will delve into the structure of Ruby’s grammar by intentionally introducing changes to its syntax, triggering conflicts, and then analyzing those conflicts. Through this process, we aim to deepen our understanding of how Ruby’s grammar is constructed.

OKURA Masafumi

OKURA Masafumi

Chief organizer of KaigiOnRails

TR209

2025/8/9

15:50 ~ 16:20

(EN) Why doesn't Ruby have Boolean class?

Ruby is a fully object-oriented language. While other OO languages such as Java have a Boolean class, Ruby doesn’t have it. It doesn’t have methods like to_bool. So, is it bad for Ruby programmers? No, we feel comfortable without Boolean class or to_bool method. This leads to questions: What is Boolean, what is class and how Ruby designs it? And finally, why doesn’t Ruby have Boolean class? This talk answers “Why doesn’t Ruby have Boolean class?” question and explores the world of OOP and language design.

卡米哥 / Etrex Kuo

卡米哥 / Etrex Kuo

Line API Expert

TR209

2025/8/10

10:00 ~ 10:30

(cht) 用 Ruby 寫一個 MCP Server

我是卡米哥,一個使用 Ruby 十年的開發者。Ruby 對我來說是一種既優雅又充滿表達力的語言,只要有機會,我都希望用 Ruby 來解決問題。

這次我將分享自己用 Ruby 實作 MCP(Model Context Protocol)Server 的經驗。MCP 是一個近期討論度很高的通訊協定,實用性高,為了深入理解這個協定的設計,我從零開始打造了一個開源的 MCP Server demo。

我的演講將涵蓋以下幾個重點:

  1. MCP 協定的基本結構與核心理念
  2. 如何從零開始寫一個最小可行的 MCP Server
  3. MCP Server 的測試方式與思路
  4. 常見的安全性問題與應對策略

我希望透過這場分享,幫助更多開發者了解 MCP,也讓大家在聽完之後,有信心自己動手做出一個屬於自己的 MCP Server。

Samuel Williams

Samuel Williams

Senior Staff Software Engineer, Shopify

TR209

2025/8/10

10:35 ~ 11:05

(EN) Building, Deploying, and Monitoring Ruby Web Applications with Falcon

Ruby is beloved for its developer experience, but it’s not always known for raw performance or scalability. With Falcon and Async, we’re changing that.

In this talk, I’ll walk you through building modern, concurrent Ruby web applications using Falcon — a high-performance async web server — and Async, the foundation for non-blocking I/O in Ruby. We’ll cover the full lifecycle of a production-ready app:

  • Building: Writing non-blocking, fiber-based web apps using Async and Protocol::HTTP.
  • Deploying: Running Falcon in production environments, from containers to the cloud.
  • Monitoring: Observability strategies for async systems — logging, metrics, and tracing.

Whether you’re serving APIs, streaming data, or scaling real-time features, this talk will equip you with practical tools and patterns to confidently run async Ruby apps in production.

Aleksandr Kunin

Aleksandr Kunin

NexHealth.com : Backend Engineer

TR209

2025/8/10

11:10 ~ 11:40

(EN) Loosing Seat in Concurrency: A tale of Transactions and Locks

Let’s say there is one seat left in the aircraft. And two people want to buy a ticket. And they submit a form at the almost same time. Who gets the seat? In this talk I’ll touch classic database concurrency problems, transaction isolation and anomalies, pessimistic, optimistic and advisory locking and patterns to use it.

Yatish Mehta

Yatish Mehta

Staff Software Engineer, Asana

TR209

2025/8/10

11:45 ~ 12:15

(EN) No "Pundit" Intended

Has your has_access? method morphed from a straightforward guard into a tangled mess? While most Rails applications rely on Pundit, truly complex systems demand a more robust approach. In this talk, we’ll dive into implementing a tuple-based authorization model—an approach leveraged by Google and other large-scale applications—right within Rails. Learn how to tackle intricate permission scenarios without migrating to an external authorization system.

Yudai Takada

Yudai Takada

CRuby committer. Committer of Lrama, committee. RuboCop RSpec team

TR209

2025/8/10

13:30 ~ 14:00

(EN) Joy with 3D Graphics Using Ruby

In recent years, I think we’ve often seen works and presentations on the theme of creating ‘sound’ with Ruby. While audio processing is very enjoyable, graphic expression is equally attractive. In this session, I would like to share with everyone the joy of creating 3D graphics with Ruby. This session will introduce everything from the basics of 3D rendering using Ruby to practical application examples. Watching 3D objects spinning around is fun. Let’s implement that in Ruby. I’ll explain step by step so that even beginners can understand easily, and show you code that actually works. 3D graphics is an area that we may not often have the opportunity to explore, but with Ruby, we can create together while having fun. Let’s experience the world of 3D graphics that we can play with starting tomorrow.

Cindy Liu

Cindy Liu

Rails Developer, DEVCORE

TR209

2025/8/10

14:05 ~ 14:35

(cht) Rails Active Storage 如何避免被同事攻擊 — 你,懂 BAC 嗎?

Rails 的 Active Storage 雖然提供了方便的檔案上傳與管理功能,但若開發者忽略了對檔案存取的授權檢查,極可能導致 Broken Access Control(BAC)漏洞,讓使用者能未經授權下載他人的檔案。在這場分享中,我將透過實際的 Rails 範例,展示一個看似正常的 Active Storage 實作如何讓其他人輕鬆取得不該擁有的機密文件。我們也會一步步分析漏洞產生的原因,並提供具體的修補方案。我們可以思考看看,當我們取得使用者的檔案 url 的時候,表示我們就有權限取得使用者的檔案嗎?其實這樣的問題在任何軟體都有可能發生,值得身為開發者的我們多想一點

Andrey Novikov

Andrey Novikov

Software engineer at @evilmartians

TR209

2025/8/10

14:40 ~ 15:10

(EN) Nuances of running Ruby on Kubernetes

It is not so difficult to “kubernetize” your application, but what’s next? There are so many subtle things to consider to make your application performant and reliable.

Unfortunately, it is easy to make it wrong: a small change in resource limits can slow your application, a wrong container liveness check will make your app crash faster under heavy load, and even following containerization best practices can make your application less performant. Let’s see why!

蒼時弦也 / Aotoki Tsuruya

蒼時弦也 / Aotoki Tsuruya

Senior Software Engineer, Gogolook

TR209

2025/8/10

15:15 ~ 15:45

(cht) Crafting AI-Friendly Application in Ruby

今年在使用 AI 協力開發有非常多討論,有不少工具和名詞被推出。使用 Ruby 語言能怎麼應用新的方式來開發,這場演講會搭配 Golang / TypeScript 中的實務經驗作為對照,探討過去的軟體開發知識如何延伸為 AI-Friendly 的設計,以及在 Ruby 語言在 AI 生成上的優勢與劣勢。