Slide 1

Slide 1 text

dRuby 20th anniversary hands-on workshop @m_seki / [email protected]

Slide 2

Slide 2 text

@m_seki Ruby committer Author of ERB, dRuby, Rinda http://www.druby.org/fukuoka2019.pdf

Slide 3

Slide 3 text

What is dRuby Distributed Object System Can invoke methods in different process Can send objects between process Pure Ruby http://www.druby.org/fukuoka2019.pdf

Slide 4

Slide 4 text

দߐͷϫʔΫγϣοϓͷ࣭໰ dRuby http://www.druby.org/fukuoka2019.pdf

Slide 5

Slide 5 text

Goal of this workshop dRuby http://www.druby.org/fukuoka2019.pdf Feel what dRuby is. For details, read the book.

Slide 6

Slide 6 text

1999 [ruby-list:15406] 1st dRuby http://www.druby.org/fukuoka2019.pdf

Slide 7

Slide 7 text

1st dRuby on T-shirts suzuri.jp/m_seki

Slide 8

Slide 8 text

Ask them questions in English

Slide 9

Slide 9 text

2005 - ·ͩॳ࡮Γങ͑·͢ http://www.druby.org/fukuoka2019.pdf dRuby ʹΑΔ ؔকढ़ஶ ෼ࢄ ɾ Web ϓϩάϥϛϯά First printing from 2005 (Still available)

Slide 10

Slide 10 text

2012 (-2014 ઈ൛) http://www.druby.org/fukuoka2019.pdf Publication from 2012 (Become out of print in 2014)

Slide 11

Slide 11 text

΋ͬͱΘ͔Γ΍͘͢΄Ίͯʂ http://www.druby.org/fukuoka2019.pdf Praise it more directly, please!

Slide 12

Slide 12 text

dRuby͸ͳʹʹ࢖͏ͷʁ ... http://www.druby.org/fukuoka2019.pdf

Slide 13

Slide 13 text

Twitterͷ৔߹ http://www.druby.org/fukuoka2019.pdf In case of Twitter

Slide 14

Slide 14 text

Concurrency ?? http://www.druby.org/fukuoka2019.pdf It is very easy to use up multi-core

Slide 15

Slide 15 text

Demo @drbrain Mandelbrot set 8core http://www.druby.org/fukuoka2019.pdf

Slide 16

Slide 16 text

Agenda Hello, World Key value store Queue 4, 5 http://www.druby.org/fukuoka2019.pdf 4. Docker, 5. Docker and Ring are omitted.

Slide 17

Slide 17 text

1. Hello, World Setup dRuby Invoke a method in different process http://www.druby.org/fukuoka2019.pdf

Slide 18

Slide 18 text

1. Hello, World http://www.druby.org/fukuoka2019.pdf require 'drb' class Hello def greeting puts('Hello, World.') end end uri = 'druby://localhost:54000' DRb.start_service(uri, Hello.new) sleep require 'drb' DRb.start_service uri = 'druby://localhost:54000' it = DRbObject.new_with_uri(uri) it.greeting ← greeting

Slide 19

Slide 19 text

2. Key value store KVS arguments return value http://www.druby.org/fukuoka2019.pdf

Slide 20

Slide 20 text

2. Key value store http://www.druby.org/fukuoka2019.pdf KVS irb irb ● "greeting" ● "hello, world." ● "greeting" ● "hello, world."

Slide 21

Slide 21 text

3. Queue SizedQueue full/empty http://www.druby.org/fukuoka2019.pdf Synchronize process using thread synchronization mechanism

Slide 22

Slide 22 text

OOPARTS http://www.druby.org/fukuoka2019.pdf I was just reminded of dRuby's OOPARTS-ness

Slide 23

Slide 23 text

OOPARTS http://www.druby.org/fukuoka2019.pdf

Slide 24

Slide 24 text

·ͱΊ dRuby http://www.druby.org/fukuoka2019.pdf Conclusion Do you feel what dRuby is? For details, read the book.