May 28th, 2016

All talks will be given in Japanese.

9:30 Doors Open


9:50 Opening


10:10 Invited Speaker

Yukihiro 'Matz' Matsumoto

Streem


Kazuaki Tanaka

mruby/c

mruby is a lightweight Ruby interpreter with the intention of being easily embeddable. mruby/c is a VM implementation that works on even less resources than the OSS version of mruby. It works with around 40KB of memory. This implementation assumes the use of a one-chip microcomputer, so it has a considerably reduced number of classes. Therefore, it is not suitable for general Ruby programming; however, its application is aimed at the control of embedded system devices and the development of IoT products.

Speaker Bio

mruby and mruby/c developper, and also a researcher in embedded software area


Yuki Kurihara

Pseudo Type System on Struct

Everyone knows Ruby is a dynamic programming language, but what if it was statically typed? In this talk, I'll talk about whether having a type system in Ruby would be useful or not by walking through what we can do with type_struct. Come and join me for a conversation about the future of Ruby 3 and its type system.

Speaker Bio

A software engineer, one of the RubyKaja 2014 winners and a father. He enjoys writing small libraries when he has free time.


12:05 Lunch


13:25 Invited Speaker

Kazuho Oku

How to make the fastest web server

In recent years, performance bottleneck of the Web has shifted from network bandwidth to latency. In response, technologies that reduce and / or conceal the latency are getting standardized, which include, but not limited to TCP Fast Open, HTTP/2, TLS 1.3. In the session, lead developer of the HTTP/2 server H2O will present server programming techniques that reduce the negative influence of latency, introduce "Cache Digest" - a proposed approach to farther optimize HTTP/2, etc., and also discuss how to control them from ruby.


Kouhei Sutou

How I embedded a Ruby interpreter into my apps

I'll talk about how to embed CRuby to milter manager. milter manager is an email filtering application. It should be able to handle a large number of simultaneous connections, so it’s been implemented as multi-processing and event-driven server program. I've made a self-contained package in order to customize it using Ruby. Let’s take a deep dive into the implementation of the elements needed for this case to work successfully: GC, forks, signals, and event loops.

Speaker Bio

Kouhei is a software engineer who is passionate about free software development. He is also the president of ClearCode, Inc. and the author of Rabbit, a presentation tool for Rubyists.


Kazuki Tsujimoto

Re: Pattern Matching in Ruby

I'll talk about implementation details of the pattern-match gem which uses Ruby's powerful features like metaprogramming and Refinements.

Speaker Bio

A Ruby committer/power_assert developer


15:15 Break


15:40 Invited Speaker

Aaron Patterson

Image Recognition and Code that shouldn't exist

In this presentation we will look at how to use Ruby to do image recognition that will improve over time. We will also look at some other code that has no reason to exist. The point of the projects I will present is not to produce something useful, but to challenge myself to do something creative. Think of this presentation as a Quine that cannot print itself.


Kenta Murata

IMF: Image Manipulation Framework

I've recently started developing a library for processing images. In this talk, I'll demonstrate what we can do with the library, and explain the future development plans.

I hope to remove the need for RMagick with this library as soon as possible, and I would be delighted if my presentation inspired people to help make this kind of library a reality.

Speaker Bio

Kenta is a Ruby committer and maintains Ruby's BigDecimal. He works for Recruit Holdings Media Technology Lab as a software engineer.


Yusuke Endoh

Optcarrot: A pure-ruby NES emulator

We developed a Nintendo Entertainment System (NES) emulator in Ruby, called Optcarrot, as a non-trivial benchmark program for driving performance improvement of Ruby implementations. We present ProTips(TM) for writing a fast Ruby program and a benchmark result of some Ruby implementations, and discuss some promising approaches to improve performance of MRI.

Speaker Bio

'A Ruby committer. He used to engage in testing, code coverage, and release management. He is not so interested in performance improvement. He is an advocate of "transcendental programming" that creates a useless program like this description.'.tap{|s|printf(t=%{'%s'.tap{|s|printf(t=%%{%s},s,t)}},s,t)}


17:35 Break


17:55 Keynote

Sadayuki Furuhashi

"Digdag" - Implementation of A Distributed Workflow Engine

A workflow engine is a tool that processes multiple tasks with dependencies. Historically, there are a lot of implementations including traditional Makefile, open-source Python software "Luigi", and "JP1/AJS3" made by Hitachi. Digdag is a new workflow engine that is in active development. In this session, I'll cover implementation techniques used in workflow engines by explaining details of Digdag such as efficient state transition of nodes in a tree structure, persistent store and transfer of execution state of tasks over network, fair task scheduling, and sandboxed task execution in Docker containers.

Speaker Bio

An OSS hacker. He founded successful projects including MessagePack - a binary serialization format, Fluentd - streaming log collector, and Embulk - a parallel ETL. He has been working on distributed systems for a decade, and developing a distributed storage named "PlazmaDB" at Treasure Data.


18:50 Closing

All talks will be given in Japanese.

After Party

19:30 - 21:30
Three Monckey's Cafe Akihabara
Sotokanda 1-1-10 3F, Chiyoda, Tokyo, 101-0021

People wishing to join the after-party social event may purchase separate after-party tickets.
Please note that only the participants attending the afternoon conference will be allowed to join the after-party event.
Speakers and members of staff are not required to purchase after-party tickets.