The Throwdown will begin shortly#RubyThrowdown
“JRuby and Rubinius  are the best production      Ruby runtimes”          - Dr Nic                            “Ignore ever...
Todayʼs Line-up#RubyThrowdown
Agenda  Introduction & History  Ecosystem  Tooling  Concurrency  Windows  Deployment  Summary of the Good Bits  Q&A#RubyTh...
Aaron Patterson                  (@tenderlove)         HISTORY OF MRI             Aaronʼs appearance is made possible by#R...
MRI History  MRI = Matzʼ Ruby Implementation  Written in C  Reference Implementation#RubyThrowdown
Nick Sieger                  (@nicksieger)      HISTORY OF JRUBY             Nickʼs appearance is made possible by#RubyThr...
JRuby History  Written in Java, Runs on JVM  2001: Pet project  2007: 1.0  2009: Engine Yard  2011: 1.6: 1.8 + 1.9 all-in-...
Brian Ford                      (@brixen)    HISTORY OF RUBINIUS             Brianʼs appearance is made possible by#RubyTh...
Rubinius History  Evan Phoenix  RubyConf 2006  Engine Yard 2007  100s of Contributors#RubyThrowdown
Rubinius History  Custom VM  Generational GC  Just-in-time (JIT) Compiler  Ruby Core Library#RubyThrowdown
Agenda  Introduction & History  Ecosystem  Tooling  Concurrency  Windows  Deployment  Summary of the Good Bits  Q&A#RubyTh...
MRI Library Ecosystem  Any Gem (rubygems.org)  C (and C++) libraries are accessible  libffi, libyaml, openssl  Popular Gems...
JRuby Ecosystem  Ruby <=–bridge–=> Java  Use as Ruby impl. or Java library  C extension layer*  Access Java seamlessly  JR...
Rubinius Ecosystem  Identical Use as MRI  C-extension & Gems  Language Platform  http://rubini.us/projects#RubyThrowdown
Agenda  Introduction & History  Ecosystem  Tooling  Concurrency  Windows  Deployment  Summary of the Good Bits  Q&A#RubyTh...
Stability     JVM    Monitoring/                            Tools  Native Threads         Performance#RubyThrowdown
#RubyThrowdown
Rubinius Tooling  Profiler  Debugger  Memory Analysis  Rubinius::Agent#RubyThrowdown
MRI Tooling  perftools.rb (Google Perf Tools)  gdb  DTrace (only on OS X Ruby)  GC::Profiler (built in)  ObjectSpace.count_...
Perftools.rb#RubyThrowdown
GC::Profiler.result          Invoke User Size Total Size Total    GC Time Index         Time(sec) (byte)    (byte)   Object...
ObjectSpace   {:TOTAL=>14308, :FREE=>222, :T_OBJECT=>8,   :T_CLASS=>474, :T_MODULE=>21,   :T_FLOAT=>7, :T_STRING=>6248,   ...
Agenda  Introduction & History  Ecosystem  Tooling  Concurrency  Windows  Deployment  Summary of the Good Bits  Q&A#RubyTh...
MRI & Concurrency  Threads (native in 1.9)  Fibers (coroutines)  Evented IO (EventMachine)#RubyThrowdown
Rubinius & Concurrency  Native Threads  Fully concurrent in 2.0  Native Fibers  EventMachine  Actors#RubyThrowdown
JRuby & Concurrency  1st impl w/ Native Threads  Fibers backed by threads  Threading libraries  Java concurrency libraries...
 	  data	  =	  []            	  	  M.times	  do	  |m|            	  	  	  	  Thread.new	  do            	  	  	  	  	  	  ...
Agenda  Introduction & History  Ecosystem  Tooling  Concurrency  Windows  Deployment  Summary of the Good Bits  Q&A#RubyTh...
Rubinius & Windows™  Rubinius 2.0  1.8.7 / 1.9.2  Full concurrency  C-extension support  Native Installer#RubyThrowdown
MRI & Windows™  Ruby Installer (http://rubyinstaller.org/)  Rails Installer (http://railsinstaller.org/)  Some C based gem...
JRuby & Windows™  Just works  Installer: with/without JVM, 32- or 64-bit  Only Ruby w/ 64-bit Win32OLE#RubyThrowdown
Agenda  Introduction & History  Ecosystem  Tooling  Concurrency  Windows  Deployment  Summary of the Good Bits  Q&A#RubyTh...
MRI Deployment  For Ruby: apt, rpm, dpkg  For Rails: Capistrano, Vlad  Web Servers: Unicorn, etc#RubyThrowdown
Rubinius Deployment  Identical to MRI    but full concurrency  Passenger  Unicorn or Rainbows!  WEBrick#RubyThrowdown
JRuby DeploymentRuby servers     WAR files      Cloud   WEBrick       GlassFish   EY AppCloud   Trinidad       Tomcat     A...
Pick a Server         blog: http://ey.io/webservers         Trinidad             Mizuno           Kirk             TorqueB...
Distribute your app    https://github.com/nicksieger/warbler           INSTALL   gem install warbler#RubyThrowdown
$ cd recordstore         $ warble executable war         rm -f recordstore.war         Creating recordstore.war         $ ...
Q&A#RubyThrowdown
Top Reasons to use MRI  It is canonical  Large ecosystem / C support  Fast  Fun!#RubyThrowdown
Top Reasons: Rubinius  Use Today Like MRI  First-class Ruby  Modern Technology  Ruby Tools in Ruby#RubyThrowdown
Top Reasons: JRuby  Best of Java and Ruby  Mature Platform  Performance, Stability,  Concurrency#RubyThrowdown
Rails | Sinatra | Rack   Memcached |            MRI | JRuby | Rubinius      Redis                                         ...
#RubyThrowdown
http://ey.io/jrubyftw#RubyThrowdown
#rbxday              Friday, August 5, 2011A global day of Rubinius performance testing, bug reporting,community strengthe...
Want More?        Upcoming Webinars        August 18 - Rubinius         August 25 - JRuby#RubyThrowdown
Upcoming SlideShare
Loading in …5
×

Ruby Throwdown Hosted by Engine Yard

7,625 views

Published on

Slides for the following live webinar held on July 21st at 10AM PST

Published in: Technology
3 Comments
6 Likes
Statistics
Notes
  • Here's the recording: http://www.youtube.com/watch?v=UrrSx8H_GRI
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • I just paid $22.87 for an iPad2-64GB and my girlfriend loves her Panasonic Lumix GF 1 Camera that we got for $38.76 there arriving tomorrow by UPS. I will never pay such expensive retail prices in stores again. Especially when I also sold a 40 inch LED TV to my boss for $675 which only cost me $62.81 to buy. Here is the website we use to get it all from, CentShack.com
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Like this presentation? check back soon, we'll be adding a link to the replay!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
7,625
On SlideShare
0
From Embeds
0
Number of Embeds
18
Actions
Shares
0
Downloads
46
Comments
3
Likes
6
Embeds 0
No embeds

No notes for slide

Ruby Throwdown Hosted by Engine Yard

  1. The Throwdown will begin shortly#RubyThrowdown
  2. “JRuby and Rubinius are the best production Ruby runtimes” - Dr Nic “Ignore everything Dr Nic tells you. Use MRI instead” - Aaron#RubyThrowdown
  3. Todayʼs Line-up#RubyThrowdown
  4. Agenda Introduction & History Ecosystem Tooling Concurrency Windows Deployment Summary of the Good Bits Q&A#RubyThrowdown
  5. Aaron Patterson (@tenderlove) HISTORY OF MRI Aaronʼs appearance is made possible by#RubyThrowdown
  6. MRI History MRI = Matzʼ Ruby Implementation Written in C Reference Implementation#RubyThrowdown
  7. Nick Sieger (@nicksieger) HISTORY OF JRUBY Nickʼs appearance is made possible by#RubyThrowdown
  8. JRuby History Written in Java, Runs on JVM 2001: Pet project 2007: 1.0 2009: Engine Yard 2011: 1.6: 1.8 + 1.9 all-in-1#RubyThrowdown
  9. Brian Ford (@brixen) HISTORY OF RUBINIUS Brianʼs appearance is made possible by#RubyThrowdown
  10. Rubinius History Evan Phoenix RubyConf 2006 Engine Yard 2007 100s of Contributors#RubyThrowdown
  11. Rubinius History Custom VM Generational GC Just-in-time (JIT) Compiler Ruby Core Library#RubyThrowdown
  12. Agenda Introduction & History Ecosystem Tooling Concurrency Windows Deployment Summary of the Good Bits Q&A#RubyThrowdown
  13. MRI Library Ecosystem Any Gem (rubygems.org) C (and C++) libraries are accessible libffi, libyaml, openssl Popular Gems provide: libxml2, libem#RubyThrowdown
  14. JRuby Ecosystem Ruby <=–bridge–=> Java Use as Ruby impl. or Java library C extension layer* Access Java seamlessly JRuby-specific gems#RubyThrowdown
  15. Rubinius Ecosystem Identical Use as MRI C-extension & Gems Language Platform http://rubini.us/projects#RubyThrowdown
  16. Agenda Introduction & History Ecosystem Tooling Concurrency Windows Deployment Summary of the Good Bits Q&A#RubyThrowdown
  17. Stability JVM Monitoring/ Tools Native Threads Performance#RubyThrowdown
  18. #RubyThrowdown
  19. Rubinius Tooling Profiler Debugger Memory Analysis Rubinius::Agent#RubyThrowdown
  20. MRI Tooling perftools.rb (Google Perf Tools) gdb DTrace (only on OS X Ruby) GC::Profiler (built in) ObjectSpace.count_objects#RubyThrowdown
  21. Perftools.rb#RubyThrowdown
  22. GC::Profiler.result Invoke User Size Total Size Total GC Time Index Time(sec) (byte) (byte) Object (ms) 1 0.016 301640 572600 14315 1.035#RubyThrowdown
  23. ObjectSpace {:TOTAL=>14308, :FREE=>222, :T_OBJECT=>8, :T_CLASS=>474, :T_MODULE=>21, :T_FLOAT=>7, :T_STRING=>6248, :T_REGEXP=>24, :T_ARRAY=>1063, :T_HASH=>14, :T_BIGNUM=>3, :T_FILE=>10, :T_DATA=>393, :T_MATCH=>104, :T_COMPLEX=>1, :T_NODE=>5697, :T_ICLASS=>19}#RubyThrowdown
  24. Agenda Introduction & History Ecosystem Tooling Concurrency Windows Deployment Summary of the Good Bits Q&A#RubyThrowdown
  25. MRI & Concurrency Threads (native in 1.9) Fibers (coroutines) Evented IO (EventMachine)#RubyThrowdown
  26. Rubinius & Concurrency Native Threads Fully concurrent in 2.0 Native Fibers EventMachine Actors#RubyThrowdown
  27. JRuby & Concurrency 1st impl w/ Native Threads Fibers backed by threads Threading libraries Java concurrency libraries#RubyThrowdown
  28.    data  =  []    M.times  do  |m|        Thread.new  do            N.times  do  |n|                data  <<  m  *  n            end        end    end#RubyThrowdown
  29. Agenda Introduction & History Ecosystem Tooling Concurrency Windows Deployment Summary of the Good Bits Q&A#RubyThrowdown
  30. Rubinius & Windows™ Rubinius 2.0 1.8.7 / 1.9.2 Full concurrency C-extension support Native Installer#RubyThrowdown
  31. MRI & Windows™ Ruby Installer (http://rubyinstaller.org/) Rails Installer (http://railsinstaller.org/) Some C based gems may not work#RubyThrowdown
  32. JRuby & Windows™ Just works Installer: with/without JVM, 32- or 64-bit Only Ruby w/ 64-bit Win32OLE#RubyThrowdown
  33. Agenda Introduction & History Ecosystem Tooling Concurrency Windows Deployment Summary of the Good Bits Q&A#RubyThrowdown
  34. MRI Deployment For Ruby: apt, rpm, dpkg For Rails: Capistrano, Vlad Web Servers: Unicorn, etc#RubyThrowdown
  35. Rubinius Deployment Identical to MRI but full concurrency Passenger Unicorn or Rainbows! WEBrick#RubyThrowdown
  36. JRuby DeploymentRuby servers WAR files Cloud WEBrick GlassFish EY AppCloud Trinidad Tomcat AppEngine TorqueBox JBoss AWS EB#RubyThrowdown
  37. Pick a Server blog: http://ey.io/webservers Trinidad Mizuno Kirk TorqueBox#RubyThrowdown
  38. Distribute your app https://github.com/nicksieger/warbler INSTALL gem install warbler#RubyThrowdown
  39. $ cd recordstore $ warble executable war rm -f recordstore.war Creating recordstore.war $ java -jar recordstore.war <server starts on port 8080>#RubyThrowdown
  40. Q&A#RubyThrowdown
  41. Top Reasons to use MRI It is canonical Large ecosystem / C support Fast Fun!#RubyThrowdown
  42. Top Reasons: Rubinius Use Today Like MRI First-class Ruby Modern Technology Ruby Tools in Ruby#RubyThrowdown
  43. Top Reasons: JRuby Best of Java and Ruby Mature Platform Performance, Stability, Concurrency#RubyThrowdown
  44. Rails | Sinatra | Rack Memcached | MRI | JRuby | Rubinius Redis Chef Mongrel | Unicorn | Passenger Recipes MySQL nginx HAProxy Linux#RubyThrowdown
  45. #RubyThrowdown
  46. http://ey.io/jrubyftw#RubyThrowdown
  47. #rbxday Friday, August 5, 2011A global day of Rubinius performance testing, bug reporting,community strengthening and super awesome fun times Let’s make it a party! http://rbxday.rubini.us
  48. Want More? Upcoming Webinars August 18 - Rubinius August 25 - JRuby#RubyThrowdown

×