Ruby Throwdown Hosted by Engine Yard

  • 5,869 views
Uploaded on

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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • Here's the recording: http://www.youtube.com/watch?v=UrrSx8H_GRI
    Are you sure you want to
    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
    Are you sure you want to
    Your message goes here
  • Like this presentation? check back soon, we'll be adding a link to the replay!
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
5,869
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
45
Comments
3
Likes
6

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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