Schedule
May 28th, 2016
All talks will be given in Japanese.
9:30 Doors Open
9:50 Opening
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.
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.