SlideShare a Scribd company logo
Introduction to JRuby
        Anthony Juckel
      ajuckel@gmail.com
           @ajuckel
What is Ruby?
• Dynamic/duck-typed language
• Strongly object oriented
• Open class definitions
• Closures, blocks, and generators, oh my!
What is JRuby?
What is JRuby?
• JRuby == Ruby
What is JRuby?
• JRuby == Ruby
• JRuby != Ruby
What is JRuby?
• JRuby == Ruby
• JRuby != Ruby
• JRuby == Ruby++
How to install it?
• Download from jruby.org
• Install via rvm (but not on this wifi)
What can I do with it?
• Run Ruby code (1.8 or 1.9)
• Access Java libraries from Ruby
• Embed Ruby within a Java application
Lab 1: Install it!
• $ jruby -e ‘puts “Hello, World!”’
• $ jruby hello.rb
• $ jruby --1.9 hello.rb
• $ jirb
• $ jruby --1.9 -S irb
• $ JRUBY_OPTS=”--1.9” jirb
RubyGems
• Gems are units of software reuse in the
  Ruby world
• Most Gems will work the same in JRuby as
  in MRI
• Gems with native code _may_ work, but
  seek alternatives
RubyGems
• Gems can install library files
 • $ gem install json
 • require ‘json’
• Gems can install scripts
 • $ gem install rspec
 • $ jruby --1.9 -S rspec
RubyGems
• Some gems are only of interest on JRuby
 • jruby-openssl
 • activerecord-jdbc-adapter
RubyGems
• Others have JRuby-specific versions
 • nokogiri
   • Uses libxml on MRI
   • Uses Java XML libraries on JRuby
Lab 2: Gems
• $ gem search -r [gem]   • jruby-openssl
• $ gem install [gem]     • rspec
• $ gem list              • json
• $ gem rdoc              • bundler
• $ gem server            • $ cd lab02
                          • $ rspec
Launch Time
• Yes, it can be a problem
• MRI: Quick to start, speed remains constant
• JVM: Slow to start, faster as hotspots are
  optimized
Launch Time
• What to do about it?
 • Tweak startup options to make JVM
    startup as fast as possible
Launch Time
• JVM Options (prefixed with -J with jruby)
 • -client (-J-client)
 • -XX:+TieredCompilation
 • -Xshare:dump / -Xshare:on
Launch Time
• JRuby Options
 • -X-C (turn off compilation)
 • --ng-server / --ng
    • --ng will get faster after several
       executions while the JVM optimizes
Launch Time
           ITERATIONS=1000 rspec

1000
                                          1.9.3
                                          JRuby
100                                       JRuby -X-C
                                          JRuby NailGun
 10


   1


 0.1
    1000           100000      10000000
Lab 3: Try it out
• -J-client
• -J-XX:+TieredCompilation
• -J-Xshare:on
• -X-C (turn off compilation)
• --ng-server / --ng
Launch Time (cont.)
• Can be improved, but for small tasks
  cannot (yet?) match MRI
• What options are left?
 • Guard
 • Spork
Launch Time (cont.)
• Iterate using MRI
  • Quickly verify small changes
• Integrate using JRuby
  • Less frequent
  • May have longer test suites, perhaps more
    work, can afford to pay the start up cost
ActiveRecord
• An Object-Relational Mapping (ORM)
  library
• Developed as part of Rails
• Maps database data to Ruby classes
ActiveRecord
• activerecord: Core functionality
• activerecord-*-adapter: Database-specific
  adapter layer
ActiveRecord
• MRI’s activerecord-*-adapters use native
  database libraries.
• JRuby can use JDBC drivers
• Must have JDBC adapter on classpath
• activerecord-jdbc*-adapters
Lab 4: ActiveRecord
• $ gem install activerecord-jdbc-adapter
•   $ gem install activerecord-jdbcpostgresql-adapter

•   $ gem install activerecord-jdbcsqlite3-adapter

•   $ gem install activerecord-derby-adapter
Converting Rails App
• Rails itself (aside from ActiveRecord) is
  very compatible with JRuby
• Gems used in any given project may or may
  not be.
• jruby-lint can help identify potential issues.
Converting Rails App
• What are some known issues?
 • Some ObjectSpace methods disabled by
    default
 • Native code use
 • Kernel#fork / backtick operator / system
    usage
Lab 5: Convert an App
• $ cd graphy # Rails app targeting MRI 1.9.3
• If you’ve got MRI installed, look at current
  app
  • bundle install
  • rake db:create db:migrate db:seed
  • rails s
Lab 5: Convert an App
• $ jrlint
• Update Gemfile
 • :platforms => :jruby
   • activerecord-jdbc*-adapter
 • :platforms => :ruby
  • pg, sqlite3
Lab 5: Convert an App
• After performing the updates, test the app
  in JRuby
• Also test the app in MRI, if available
 • Having dependencies properly scoped
    should allow you to execute the app in
    either environment
Lab 5: Convert an App
• Have an app along with you? Try
  converting it now!
• Install/Run jrlint
• Update Gemfile (if necessary)
• bundle install
• Run your tests/specs or rails s.
• Ask questions!
Web App Deployment
• A Rails app is no good without a solid
  deployment environment
• MRI deployment strategies leverage MRI
  strengths
• Need JVM deployment options to leverage
  JVM strengths
Web App Deployment
• MRI: HTTP server -> Ruby process(es)
 • Mongrel / Unicorn
 • Passenger
• JRuby: HTTP server -> JRuby threads
 • Rails app: config.threadsafe!
 • Be mindful of the threadsafety of your
    dependencies
Web App Deployment
• Deploying in Java Application Server
• Most self-contained option: WARbler!
 • JRuby web app -> deployable WAR
• Other options
 • Trinidad / Glassfish Gem
 • Torquebox
Lab 6: Deploy it
• We’ve ported an app to JRuby. Now
  deploy it!
 • $ gem install warbler
 • $ warble config
 • Browse/edit config/warble.rb
 • $ warble war # builds WAR
 • $ cp app.war [tomcat-home]/webapps
Questions?

• https://github.com/ajuckel/intro-to-jruby
• @ajuckel
• ajuckel@gmail.com

More Related Content

What's hot (19)

PDF
J Ruby Whirlwind Tour
oscon2007
 
PDF
2008-12 OJUG JCR Demo
Paul Heaberlin
 
PDF
Garbage First and you
Kai Koenig
 
PPTX
RedisConf17 - Too Big to Failover - A cautionary tale of scaling Redis
Redis Labs
 
PDF
Inside The Java Virtual Machine
elliando dias
 
KEY
Ruby On Rails Ecosystem
Andrew Chalkley
 
PDF
The JVM is your friend
Kai Koenig
 
PPTX
Exploring Java Heap Dumps (Oracle Code One 2018)
Ryan Cuprak
 
PDF
JRuby and Google App Engine
joshsmoore
 
PDF
Scalatra 2.2
Ivan Porto Carrero
 
PDF
Diagnosing Your Application on the JVM
Staffan Larsen
 
PDF
Scaling the Rails
elliando dias
 
PDF
JRuby - The Perfect Alternative
Ram Vijapurapu
 
PDF
Jslab rssh: JS as language platform
Ruslan Shevchenko
 
PPTX
Apache Camel K - Fredericia
Claus Ibsen
 
PPTX
Nashorn: JavaScript that doesn’t suck (ILJUG)
Tomer Gabel
 
PDF
An introduction to the ruby ecosystem
Geison Goes
 
KEY
Ruby Midwest 2010 jRuby by Charles Nutter
Steven Chau
 
J Ruby Whirlwind Tour
oscon2007
 
2008-12 OJUG JCR Demo
Paul Heaberlin
 
Garbage First and you
Kai Koenig
 
RedisConf17 - Too Big to Failover - A cautionary tale of scaling Redis
Redis Labs
 
Inside The Java Virtual Machine
elliando dias
 
Ruby On Rails Ecosystem
Andrew Chalkley
 
The JVM is your friend
Kai Koenig
 
Exploring Java Heap Dumps (Oracle Code One 2018)
Ryan Cuprak
 
JRuby and Google App Engine
joshsmoore
 
Scalatra 2.2
Ivan Porto Carrero
 
Diagnosing Your Application on the JVM
Staffan Larsen
 
Scaling the Rails
elliando dias
 
JRuby - The Perfect Alternative
Ram Vijapurapu
 
Jslab rssh: JS as language platform
Ruslan Shevchenko
 
Apache Camel K - Fredericia
Claus Ibsen
 
Nashorn: JavaScript that doesn’t suck (ILJUG)
Tomer Gabel
 
An introduction to the ruby ecosystem
Geison Goes
 
Ruby Midwest 2010 jRuby by Charles Nutter
Steven Chau
 

Viewers also liked (20)

PDF
Bringing Concurrency to Ruby - RubyConf India 2014
Charles Nutter
 
PDF
Music insitutions
SalaffinaDore
 
PPT
Inglês
xavelhinha
 
PDF
Michael Gilmour: 50% ROI Per Year on Domain Name Parking
domainsherpa
 
PPTX
Do you feel secure online? Beliefs and Attitudes on Security and Privacy
Oxford Martin Centre, OII, and Computer Science at the University of Oxford
 
PDF
worksheets for oblique innovation models
a-small-lab
 
PDF
Younicos-Image-Brochure-
Neil Durno
 
PDF
Marketing Agenzie di Viaggio
T SOLUTIONS
 
PDF
Hackathons - learnings, tips and tricks...
Lasse Chor
 
PDF
Human(e) aspects of Tokyo
a-small-lab
 
PPT
อนุ แซ่โค้ว 51040968 แก้ไข
โอ้เอ้ การวีดิทัศน์
 
PPT
Next Internet Users: Perspectives on the UK and Poland
Oxford Martin Centre, OII, and Computer Science at the University of Oxford
 
PPT
Toolboxes wiifm2 optimised
Queensland VET Development Centre
 
PPSX
Photoshop designs presentation
James Green
 
PPT
P19 netinvet bcn_2013-1
Jose Moratal Miñana
 
PPTX
American government aspca
lmylmy1205
 
PPT
Sustainability
Montgomery Norton
 
PPTX
Sql waits
Miroslav Dimitrov
 
Bringing Concurrency to Ruby - RubyConf India 2014
Charles Nutter
 
Music insitutions
SalaffinaDore
 
Inglês
xavelhinha
 
Michael Gilmour: 50% ROI Per Year on Domain Name Parking
domainsherpa
 
Do you feel secure online? Beliefs and Attitudes on Security and Privacy
Oxford Martin Centre, OII, and Computer Science at the University of Oxford
 
worksheets for oblique innovation models
a-small-lab
 
Younicos-Image-Brochure-
Neil Durno
 
Marketing Agenzie di Viaggio
T SOLUTIONS
 
Hackathons - learnings, tips and tricks...
Lasse Chor
 
Human(e) aspects of Tokyo
a-small-lab
 
อนุ แซ่โค้ว 51040968 แก้ไข
โอ้เอ้ การวีดิทัศน์
 
Next Internet Users: Perspectives on the UK and Poland
Oxford Martin Centre, OII, and Computer Science at the University of Oxford
 
Toolboxes wiifm2 optimised
Queensland VET Development Centre
 
Photoshop designs presentation
James Green
 
P19 netinvet bcn_2013-1
Jose Moratal Miñana
 
American government aspca
lmylmy1205
 
Sustainability
Montgomery Norton
 
Ad

Similar to Introduction to JRuby (20)

KEY
Практики применения JRuby
.toster
 
KEY
Euruko 2012 - JRuby
Charles Nutter
 
PDF
JRuby - The Best of Java and Ruby
Evgeny Rahman
 
PDF
Ruby Performance - The Last Mile - RubyConf India 2016
Charles Nutter
 
KEY
Jruby synergy-of-ruby-and-java
Keith Bennett
 
PDF
The Year of JRuby - RubyC 2018
Charles Nutter
 
PDF
The Enterprise Strikes Back
Burke Libbey
 
KEY
Polyglot Grails
Marcin Gryszko
 
KEY
Polyglot and Functional Programming (OSCON 2012)
Martijn Verburg
 
KEY
Why JRuby? - RubyConf 2012
Charles Nutter
 
PPTX
Day 8 - jRuby
Barry Jones
 
PDF
GraalVM
Manfredi Giordano
 
PPTX
Exploring Ruby on Rails and PostgreSQL
Barry Jones
 
PDF
JRuby Basics
elliando dias
 
PPTX
What’s expected in Java 9
Gal Marder
 
PDF
Polyglot Plugin Programming
Atlassian
 
ZIP
Ruby on the JVM
Kresten Krab Thorup
 
PPTX
GOTO Night with Charles Nutter Slides
Alexandra Masterson
 
PPTX
Seattlerb why jruby
snacktime
 
KEY
Aloha RubyConf 2012 - JRuby
Charles Nutter
 
Практики применения JRuby
.toster
 
Euruko 2012 - JRuby
Charles Nutter
 
JRuby - The Best of Java and Ruby
Evgeny Rahman
 
Ruby Performance - The Last Mile - RubyConf India 2016
Charles Nutter
 
Jruby synergy-of-ruby-and-java
Keith Bennett
 
The Year of JRuby - RubyC 2018
Charles Nutter
 
The Enterprise Strikes Back
Burke Libbey
 
Polyglot Grails
Marcin Gryszko
 
Polyglot and Functional Programming (OSCON 2012)
Martijn Verburg
 
Why JRuby? - RubyConf 2012
Charles Nutter
 
Day 8 - jRuby
Barry Jones
 
Exploring Ruby on Rails and PostgreSQL
Barry Jones
 
JRuby Basics
elliando dias
 
What’s expected in Java 9
Gal Marder
 
Polyglot Plugin Programming
Atlassian
 
Ruby on the JVM
Kresten Krab Thorup
 
GOTO Night with Charles Nutter Slides
Alexandra Masterson
 
Seattlerb why jruby
snacktime
 
Aloha RubyConf 2012 - JRuby
Charles Nutter
 
Ad

Recently uploaded (20)

PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 

Introduction to JRuby

  • 1. Introduction to JRuby Anthony Juckel [email protected] @ajuckel
  • 2. What is Ruby? • Dynamic/duck-typed language • Strongly object oriented • Open class definitions • Closures, blocks, and generators, oh my!
  • 4. What is JRuby? • JRuby == Ruby
  • 5. What is JRuby? • JRuby == Ruby • JRuby != Ruby
  • 6. What is JRuby? • JRuby == Ruby • JRuby != Ruby • JRuby == Ruby++
  • 7. How to install it? • Download from jruby.org • Install via rvm (but not on this wifi)
  • 8. What can I do with it? • Run Ruby code (1.8 or 1.9) • Access Java libraries from Ruby • Embed Ruby within a Java application
  • 9. Lab 1: Install it! • $ jruby -e ‘puts “Hello, World!”’ • $ jruby hello.rb • $ jruby --1.9 hello.rb • $ jirb • $ jruby --1.9 -S irb • $ JRUBY_OPTS=”--1.9” jirb
  • 10. RubyGems • Gems are units of software reuse in the Ruby world • Most Gems will work the same in JRuby as in MRI • Gems with native code _may_ work, but seek alternatives
  • 11. RubyGems • Gems can install library files • $ gem install json • require ‘json’ • Gems can install scripts • $ gem install rspec • $ jruby --1.9 -S rspec
  • 12. RubyGems • Some gems are only of interest on JRuby • jruby-openssl • activerecord-jdbc-adapter
  • 13. RubyGems • Others have JRuby-specific versions • nokogiri • Uses libxml on MRI • Uses Java XML libraries on JRuby
  • 14. Lab 2: Gems • $ gem search -r [gem] • jruby-openssl • $ gem install [gem] • rspec • $ gem list • json • $ gem rdoc • bundler • $ gem server • $ cd lab02 • $ rspec
  • 15. Launch Time • Yes, it can be a problem • MRI: Quick to start, speed remains constant • JVM: Slow to start, faster as hotspots are optimized
  • 16. Launch Time • What to do about it? • Tweak startup options to make JVM startup as fast as possible
  • 17. Launch Time • JVM Options (prefixed with -J with jruby) • -client (-J-client) • -XX:+TieredCompilation • -Xshare:dump / -Xshare:on
  • 18. Launch Time • JRuby Options • -X-C (turn off compilation) • --ng-server / --ng • --ng will get faster after several executions while the JVM optimizes
  • 19. Launch Time ITERATIONS=1000 rspec 1000 1.9.3 JRuby 100 JRuby -X-C JRuby NailGun 10 1 0.1 1000 100000 10000000
  • 20. Lab 3: Try it out • -J-client • -J-XX:+TieredCompilation • -J-Xshare:on • -X-C (turn off compilation) • --ng-server / --ng
  • 21. Launch Time (cont.) • Can be improved, but for small tasks cannot (yet?) match MRI • What options are left? • Guard • Spork
  • 22. Launch Time (cont.) • Iterate using MRI • Quickly verify small changes • Integrate using JRuby • Less frequent • May have longer test suites, perhaps more work, can afford to pay the start up cost
  • 23. ActiveRecord • An Object-Relational Mapping (ORM) library • Developed as part of Rails • Maps database data to Ruby classes
  • 24. ActiveRecord • activerecord: Core functionality • activerecord-*-adapter: Database-specific adapter layer
  • 25. ActiveRecord • MRI’s activerecord-*-adapters use native database libraries. • JRuby can use JDBC drivers • Must have JDBC adapter on classpath • activerecord-jdbc*-adapters
  • 26. Lab 4: ActiveRecord • $ gem install activerecord-jdbc-adapter • $ gem install activerecord-jdbcpostgresql-adapter • $ gem install activerecord-jdbcsqlite3-adapter • $ gem install activerecord-derby-adapter
  • 27. Converting Rails App • Rails itself (aside from ActiveRecord) is very compatible with JRuby • Gems used in any given project may or may not be. • jruby-lint can help identify potential issues.
  • 28. Converting Rails App • What are some known issues? • Some ObjectSpace methods disabled by default • Native code use • Kernel#fork / backtick operator / system usage
  • 29. Lab 5: Convert an App • $ cd graphy # Rails app targeting MRI 1.9.3 • If you’ve got MRI installed, look at current app • bundle install • rake db:create db:migrate db:seed • rails s
  • 30. Lab 5: Convert an App • $ jrlint • Update Gemfile • :platforms => :jruby • activerecord-jdbc*-adapter • :platforms => :ruby • pg, sqlite3
  • 31. Lab 5: Convert an App • After performing the updates, test the app in JRuby • Also test the app in MRI, if available • Having dependencies properly scoped should allow you to execute the app in either environment
  • 32. Lab 5: Convert an App • Have an app along with you? Try converting it now! • Install/Run jrlint • Update Gemfile (if necessary) • bundle install • Run your tests/specs or rails s. • Ask questions!
  • 33. Web App Deployment • A Rails app is no good without a solid deployment environment • MRI deployment strategies leverage MRI strengths • Need JVM deployment options to leverage JVM strengths
  • 34. Web App Deployment • MRI: HTTP server -> Ruby process(es) • Mongrel / Unicorn • Passenger • JRuby: HTTP server -> JRuby threads • Rails app: config.threadsafe! • Be mindful of the threadsafety of your dependencies
  • 35. Web App Deployment • Deploying in Java Application Server • Most self-contained option: WARbler! • JRuby web app -> deployable WAR • Other options • Trinidad / Glassfish Gem • Torquebox
  • 36. Lab 6: Deploy it • We’ve ported an app to JRuby. Now deploy it! • $ gem install warbler • $ warble config • Browse/edit config/warble.rb • $ warble war # builds WAR • $ cp app.war [tomcat-home]/webapps

Editor's Notes

  • #2: Target audience(s!): Ruby developers new to the JVM; Java developers new to the Ruby Language\nRuby folks, the material in the first few labs may be quite familiar, but we’ll likely be moving quickly.\nJava folks, we’re going to gloss over language features\n
  • #3: You can’t really talk about what JRuby is without first defining Ruby\nThis is not a primer on Ruby as a language. More a whirlwind tour of the JRuby ecosystem.\n
  • #4: JRuby is ruby syntax and semantics through and through. Deviations are bugs.\nJVM as a platform has different sweetspots than the MRI VM as a platform\nFor a given set of tasks (CPU-bound performance, high concurrency needs, esoteric platforms) JRuby is a better\n
  • #5: JRuby is ruby syntax and semantics through and through. Deviations are bugs.\nJVM as a platform has different sweetspots than the MRI VM as a platform\nFor a given set of tasks (CPU-bound performance, high concurrency needs, esoteric platforms) JRuby is a better\n
  • #6: JRuby is ruby syntax and semantics through and through. Deviations are bugs.\nJVM as a platform has different sweetspots than the MRI VM as a platform\nFor a given set of tasks (CPU-bound performance, high concurrency needs, esoteric platforms) JRuby is a better\n
  • #7: \n
  • #8: \n
  • #9: \n
  • #10: \n
  • #11: \n
  • #12: \n
  • #13: \n
  • #14: View the source, run the tests, perhaps play with the code.\n\nOnce everyone’s comfortable running the tests, it’s time to move on.\n
  • #15: \n
  • #16: \n
  • #17: \n
  • #18: \n
  • #19: \n
  • #20: \n
  • #21: \n
  • #22: \n
  • #23: \n
  • #24: \n
  • #25: \n
  • #26: \n
  • #27: \n
  • #28: \n
  • #29: \n
  • #30: SCOPING dependencies to platform\n
  • #31: \n
  • #32: \n
  • #33: \n
  • #34: \n
  • #35: Tuesday at 2:00, Joe Kutner will be talking further about deployment\n
  • #36: \n
  • #37: \n