088 RR Concurrency and Celluloid with Tony Arcieri




The Ruby Rogues show

Summary: Panel Tony Arcieri (twitter github blog) Avdi Grimm (twitter github blog book) Katrina Owen (twitter github blog) James Edward Gray (twitter github blog) Discussion 01:07 - Tony’s Introduction LivingSocial Celluloid 01:36 - Unofficial Rogue: Adam Robbie 01:54 - Ruby Rogues Parley: Sign up via Stripe! 02:32 - The History of Ruby’s Concurrency/Threading Green threads New Relic 08:49 - The Multiprocess Model 12:56 - Processes vs Threading 14:38 - Taking Better Advantage of Threading 15:38 - The GIL (Global Interpreter Lock) YARV by Koichi Sasada JRuby.org Rubinius 21:47 - Celluloid Actor-Based Object-Oriented Concurrency Erlang & Scala RubyConf 12 - The Celluloid Ecosystem by Tony Arcieri Celluloid.io tarcieri/reeltalk 25:55 - Inter-Thread Communication 28:49 - Celluloid Starter Projects Dining philosophers problem Cigarette smokers problem 31:38 - Celluloid Competing with node.js and Erlang Adhearsion Akka 33:25 - Projects using Celluloid Sidekiq 34:34 - Using Celluloid in the Future Peer-to-peer System 36:59 - Rack 39:02 - Helping to develop Celluloid Akka Typesafe Console 41:02 - “Let it Crash” Philosophy 44:20 - Tips for Concurrent Programming VisualVM Programming Concurrency on the JVM: Mastering Synchronization, STM, and Actors by Venkat Subramaniam Celluloid (Google Group) Picks Spy (Avdi) Git Commit Snapshots (Katrina) Your Logical Fallacy Is (Katrina) statsd (James) Robert’s Rules Of Order Newly Revised In Brief by Henry M. III Robert (James) Fist-to-Five Consensus-Building (James) hamster (Tony) cloby (Tony) Book Club Patterns of Enterprise Application Architecture by Martin Fowler Next Week Rogues Only Episode Transcript JAMES:  I figured we’d just ask him every hard question we could think of and see if we could stress him out.  [Hosting and bandwidth provided by Blue Box Group. Check them out at BlueBox.net.] [This episode was sponsored by Jet Brains, makers of Ruby Mine. If you like having an IDE that provides great inline debugging tools, built-in version control and intelligent code insight and refactorings, check out Ruby Mine by going to JetBrains.com/Ruby.] [This podcast is sponsored by New Relic. To track and optimize your application performance, go to RubyRogues.com/NewRelic.] JAMES:  Hey everybody and welcome to Episode 88 of the Ruby Rogues podcast. I’m James Gray. And with me today are Avdi Grimm. AVDI:  Hello. JAMES:  Katrina Owen. KATRINA:  Hello from Oslo. JAMES:  And Tony, is it Arcieri? TONY:  Arcieri, yes close enough. JAMES:  Okay. Tony, this is your first time on the show so, why don’t you introduce yourself? TONY:  I’m Tony Arcieri. I work on the Site Reliability Team at Living Social and I’m also the author of ‘Celluloid’ which is a concurrent object-oriented programming framework for Ruby. JAMES:  So, we asked him on the show to ask him a lot of XML questions. TONY:  Yeah, awesome. [laughter] JAMES:  Before we get to the show, we do have a few announcements. First of all, I think the last time I hosted the show because Chuck was gone we had our first official Unofficial Rogue that we announced then. And now that I’m hosting another show, we have another one. It’s Adam Robbie. Adam, thank you very much for your support of the show, we appreciate you. Another announcement is that everybody underdog has been bugging us to make it possible to sign up to Parley without PayPal and Chuck has done that. So, you can go to Parley.RubyRogues.com and you can sign up there using your credit card through Stripe. AVDI:  Yehey, Stripe! JAMES:  Yehey, Stripe! Yes, this is very good. And I think that’s it for announcements. So, today we thought we would discuss concurrency in general and probably Celluloid more specifically since we have Tony here to pick his brains. Tony,