SlideShare a Scribd company logo
1 of 38
Practical JRuby By David Keener Technical Architect, Voxant Inc.
Overview ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],JRuby is an implementation of the Ruby programming language that runs on the Java Virtual Machine (JVM). By the end of this presentation, you will be able to answer questions like:
 
A Real-Life Scenario Apache Tomcat JSP Pages Static Content Apache Mongrel Cluster Mongrel (3) Rails App Server 1 Server 2 One Web site at AOL, unified on look-and-feel… … a perfect candidate for JRuby
Part 1: JRuby in Perspective
Ruby Ecosystem Libs/Tools Language Platform ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Java Ecosystem Libs/Tools Language Platform ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JRuby Libs/Tools Language(s) Platform ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Why Use JRuby? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Adoption Paradigm Rails is in a unique place, just to the left of the “Chasm”. Its capacity for successful delivery of real business applications will probably be a key factor in crossing into “the enterprise.”
The Reality of the Market $ Java Ruby $ $ $ $ $ $ $ * Not to scale
Part 2: JRuby Setup
JRuby Installation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JRuby Commands ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Installation Tip #1 ,[object Object],JRuby has many of the same commands as Ruby, e.g. – “gem”. To run JRuby commands, use the –S option:   jruby –S gem install will_paginate But…
Installation Tip #2 ,[object Object],[object Object],JRuby Timeline May 1, 2009: 1.3 RC1 Mar 16, 2009: 1.2 Dec 17, 2008: 1.1.6 Jul 19, 2008:  1.1.3 May 27, 2008: 1.1.2 Apr 22, 2008: 1.1.1 Apr 5, 2008: 1.1 Dec 15, 2008: 1.0.3 Nov 1, 2007: 1.0.2 Aug 23, 2007: 1.0.1 Jun 7, 2007:  1.0
Testing the Installation ,[object Object],[object Object],[object Object],[object Object],[object Object],def powers(count) (0..count).each{ |i| puts 2**i } end powers(10) powers.rb
Installing Gems ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Important Gems ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
An IDE for Java and Ruby You might not need an IDE for Ruby… But you do for Java. Just accept it and move on.
Part 3: Working With Java
Java Integration ,[object Object],[object Object],[object Object],[object Object],How do you tell JRuby that you want to use Java?
What about Dual-Purpose Code? ,[object Object],[object Object],[object Object],[object Object],What if you have code that needs to run in both Ruby and JRuby?
Yes, You Need CLASSPATH ,[object Object],[object Object],[object Object],[object Object]
Referencing a Java Class ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ruby-ized Java ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Interfaces ,[object Object],[object Object],[object Object]
Packaging Rails as a War File ,[object Object],[object Object],[object Object],[object Object]
Part 4: Java Third Party Libs
The Java Ecosystem Bloated, over-engineered frameworks Legacy Classes Useful Libraries JFreeChart
What Is JFreeChart? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
A Typical Chart
Supported Chart Types ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Prerequisites for Use ,[object Object],[object Object],[object Object],[object Object]
Where Do You Get It? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Steps to Produce a Chart ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Other Ways to Use JFreeChart ,[object Object],[object Object]
Summary ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

Advance text rendering in i os
Advance text rendering in i osAdvance text rendering in i os
Advance text rendering in i os
Confiz
 
Introduction to JRuby
Introduction to JRubyIntroduction to JRuby
Introduction to JRuby
elliando dias
 
Ajax Tags Advanced
Ajax Tags AdvancedAjax Tags Advanced
Ajax Tags Advanced
AkramWaseem
 
Java 8 selected updates
Java 8 selected updatesJava 8 selected updates
Java 8 selected updates
Vinay H G
 

What's hot (19)

Mastering the Sling Rewriter
Mastering the Sling RewriterMastering the Sling Rewriter
Mastering the Sling Rewriter
 
From Ruby to Scala
From Ruby to ScalaFrom Ruby to Scala
From Ruby to Scala
 
Scala profiling
Scala profilingScala profiling
Scala profiling
 
What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!
What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!
What's a macro?: Learning by Examples / Scalaのマクロに実用例から触れてみよう!
 
Advance text rendering in i os
Advance text rendering in i osAdvance text rendering in i os
Advance text rendering in i os
 
Solid And Sustainable Development in Scala
Solid And Sustainable Development in ScalaSolid And Sustainable Development in Scala
Solid And Sustainable Development in Scala
 
DynamicRecord Presentation
DynamicRecord PresentationDynamicRecord Presentation
DynamicRecord Presentation
 
Apache Velocity
Apache VelocityApache Velocity
Apache Velocity
 
[2015/2016] Require JS and Handlebars JS
[2015/2016] Require JS and Handlebars JS[2015/2016] Require JS and Handlebars JS
[2015/2016] Require JS and Handlebars JS
 
Introduction to JRuby
Introduction to JRubyIntroduction to JRuby
Introduction to JRuby
 
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディングXitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
 
Prototype-1
Prototype-1Prototype-1
Prototype-1
 
Css
CssCss
Css
 
Hibernate ORM: Tips, Tricks, and Performance Techniques
Hibernate ORM: Tips, Tricks, and Performance TechniquesHibernate ORM: Tips, Tricks, and Performance Techniques
Hibernate ORM: Tips, Tricks, and Performance Techniques
 
Ajax Tags Advanced
Ajax Tags AdvancedAjax Tags Advanced
Ajax Tags Advanced
 
Apache Sling Generic Validation Framework
Apache Sling Generic Validation FrameworkApache Sling Generic Validation Framework
Apache Sling Generic Validation Framework
 
The CoFX Data Model
The CoFX Data ModelThe CoFX Data Model
The CoFX Data Model
 
Java 8 selected updates
Java 8 selected updatesJava 8 selected updates
Java 8 selected updates
 
Not Just ORM: Powerful Hibernate ORM Features and Capabilities
Not Just ORM: Powerful Hibernate ORM Features and CapabilitiesNot Just ORM: Powerful Hibernate ORM Features and Capabilities
Not Just ORM: Powerful Hibernate ORM Features and Capabilities
 

Viewers also liked

Ilt in teaching and learning
Ilt in teaching and learningIlt in teaching and learning
Ilt in teaching and learning
James West
 
Tþnisepäev
TþnisepäevTþnisepäev
Tþnisepäev
Grete
 
Eurasia21 20110301
Eurasia21 20110301Eurasia21 20110301
Eurasia21 20110301
EurAsia21
 
Exploitatieplicht en Goed Huurderschap
Exploitatieplicht en Goed HuurderschapExploitatieplicht en Goed Huurderschap
Exploitatieplicht en Goed Huurderschap
Jakke_Cloin
 
2013 ikerketa balorazioa
2013 ikerketa balorazioa2013 ikerketa balorazioa
2013 ikerketa balorazioa
amaiafilo
 
VĂ­a LĂĄctea 2012 6ÂşA
VĂ­a LĂĄctea 2012 6ÂşAVĂ­a LĂĄctea 2012 6ÂşA
VĂ­a LĂĄctea 2012 6ÂşA
Fernando Guadix
 
Revista MĂłbile Decore | NĂŁo ĂŠ gasto, ĂŠ investimento!
Revista MĂłbile Decore | NĂŁo ĂŠ gasto, ĂŠ investimento!Revista MĂłbile Decore | NĂŁo ĂŠ gasto, ĂŠ investimento!
Revista MĂłbile Decore | NĂŁo ĂŠ gasto, ĂŠ investimento!
Senior Sistemas
 

Viewers also liked (20)

2. per una strategia digitale
2. per una strategia digitale2. per una strategia digitale
2. per una strategia digitale
 
Ilt in teaching and learning
Ilt in teaching and learningIlt in teaching and learning
Ilt in teaching and learning
 
Tþnisepäev
TþnisepäevTþnisepäev
Tþnisepäev
 
Eurasia21 20110301
Eurasia21 20110301Eurasia21 20110301
Eurasia21 20110301
 
Lezione 7 4 2011
Lezione 7 4 2011Lezione 7 4 2011
Lezione 7 4 2011
 
James Metcalfe's Real Estate Update August 2012
James Metcalfe's Real Estate Update August 2012James Metcalfe's Real Estate Update August 2012
James Metcalfe's Real Estate Update August 2012
 
FDC Ban - What's Right and What's Wrong?
FDC Ban - What's Right and What's Wrong?FDC Ban - What's Right and What's Wrong?
FDC Ban - What's Right and What's Wrong?
 
Exploitatieplicht en Goed Huurderschap
Exploitatieplicht en Goed HuurderschapExploitatieplicht en Goed Huurderschap
Exploitatieplicht en Goed Huurderschap
 
Pharma Front-line Manager Certification Program
Pharma Front-line Manager Certification ProgramPharma Front-line Manager Certification Program
Pharma Front-line Manager Certification Program
 
The App Economy - #pmicloud
The App Economy - #pmicloudThe App Economy - #pmicloud
The App Economy - #pmicloud
 
Portfolio stef van der gaag
Portfolio stef van der gaagPortfolio stef van der gaag
Portfolio stef van der gaag
 
2013 ikerketa balorazioa
2013 ikerketa balorazioa2013 ikerketa balorazioa
2013 ikerketa balorazioa
 
Quella volta che il sito ce lo siamo immaginati noi. E anche lo spettacolo.
Quella volta che il sito ce lo siamo immaginati noi. E anche lo spettacolo.Quella volta che il sito ce lo siamo immaginati noi. E anche lo spettacolo.
Quella volta che il sito ce lo siamo immaginati noi. E anche lo spettacolo.
 
Assignment 2
Assignment 2Assignment 2
Assignment 2
 
One week job india album 28 jobs 28 weeks 28 states - jubanashwa mishra
One week job india album   28 jobs 28 weeks 28 states - jubanashwa mishraOne week job india album   28 jobs 28 weeks 28 states - jubanashwa mishra
One week job india album 28 jobs 28 weeks 28 states - jubanashwa mishra
 
Organ donation by death prisoners
Organ donation by death prisonersOrgan donation by death prisoners
Organ donation by death prisoners
 
VĂ­a LĂĄctea 2012 6ÂşA
VĂ­a LĂĄctea 2012 6ÂşAVĂ­a LĂĄctea 2012 6ÂşA
VĂ­a LĂĄctea 2012 6ÂşA
 
Why to get started with 3 d printing in
Why to get started with 3 d printing inWhy to get started with 3 d printing in
Why to get started with 3 d printing in
 
Preview guide st852ifr1
Preview guide st852ifr1Preview guide st852ifr1
Preview guide st852ifr1
 
Revista MĂłbile Decore | NĂŁo ĂŠ gasto, ĂŠ investimento!
Revista MĂłbile Decore | NĂŁo ĂŠ gasto, ĂŠ investimento!Revista MĂłbile Decore | NĂŁo ĂŠ gasto, ĂŠ investimento!
Revista MĂłbile Decore | NĂŁo ĂŠ gasto, ĂŠ investimento!
 

Similar to Practical JRuby

Jruby synergy-of-ruby-and-java
Jruby synergy-of-ruby-and-javaJruby synergy-of-ruby-and-java
Jruby synergy-of-ruby-and-java
Keith Bennett
 
Dynamic Languages on the JVM
Dynamic Languages on the JVMDynamic Languages on the JVM
Dynamic Languages on the JVM
elliando dias
 

Similar to Practical JRuby (20)

Java, Ruby & Rails
Java, Ruby & RailsJava, Ruby & Rails
Java, Ruby & Rails
 
Bitter Java, Sweeten with JRuby
Bitter Java, Sweeten with JRubyBitter Java, Sweeten with JRuby
Bitter Java, Sweeten with JRuby
 
First Day With J Ruby
First Day With J RubyFirst Day With J Ruby
First Day With J Ruby
 
Jruby synergy-of-ruby-and-java
Jruby synergy-of-ruby-and-javaJruby synergy-of-ruby-and-java
Jruby synergy-of-ruby-and-java
 
JRuby - Programmer's Best Friend on JVM
JRuby - Programmer's Best Friend on JVMJRuby - Programmer's Best Friend on JVM
JRuby - Programmer's Best Friend on JVM
 
Rjb
RjbRjb
Rjb
 
Dynamic Languages on the JVM
Dynamic Languages on the JVMDynamic Languages on the JVM
Dynamic Languages on the JVM
 
Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009
 
Ruby On Google App Engine 2nd Athens Ruby Me
Ruby On Google App Engine 2nd Athens Ruby MeRuby On Google App Engine 2nd Athens Ruby Me
Ruby On Google App Engine 2nd Athens Ruby Me
 
JRuby and Google App Engine
JRuby and Google App EngineJRuby and Google App Engine
JRuby and Google App Engine
 
Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010
Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010
Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010
 
Introduction to java
Introduction to java Introduction to java
Introduction to java
 
Ruby on Rails survival guide of an aged Java developer
Ruby on Rails survival guide of an aged Java developerRuby on Rails survival guide of an aged Java developer
Ruby on Rails survival guide of an aged Java developer
 
JRuby in the enterprise
JRuby in the enterpriseJRuby in the enterprise
JRuby in the enterprise
 
Developing cross platform desktop application with Ruby
Developing cross platform desktop application with RubyDeveloping cross platform desktop application with Ruby
Developing cross platform desktop application with Ruby
 
JRuby Basics
JRuby BasicsJRuby Basics
JRuby Basics
 
Rails On Spring
Rails On SpringRails On Spring
Rails On Spring
 
Jet presentation
Jet presentationJet presentation
Jet presentation
 
Практики применения JRuby
Практики применения JRubyПрактики применения JRuby
Практики применения JRuby
 
Plugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGemsPlugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGems
 

More from David Keener

More from David Keener (20)

Writing Killer Fight Scenes
Writing Killer Fight ScenesWriting Killer Fight Scenes
Writing Killer Fight Scenes
 
Build a Space Battle
Build a Space BattleBuild a Space Battle
Build a Space Battle
 
Creating an Adaptive Setting
Creating an Adaptive SettingCreating an Adaptive Setting
Creating an Adaptive Setting
 
Public Speaking for Writers
Public Speaking for WritersPublic Speaking for Writers
Public Speaking for Writers
 
21st Century Writer
21st Century Writer21st Century Writer
21st Century Writer
 
Titanic: The Forgotten Passengers
Titanic: The Forgotten PassengersTitanic: The Forgotten Passengers
Titanic: The Forgotten Passengers
 
Rails Tips and Best Practices
Rails Tips and Best PracticesRails Tips and Best Practices
Rails Tips and Best Practices
 
Elevator Up, Please!
Elevator Up, Please!Elevator Up, Please!
Elevator Up, Please!
 
Rails and the Apache SOLR Search Engine
Rails and the Apache SOLR Search EngineRails and the Apache SOLR Search Engine
Rails and the Apache SOLR Search Engine
 
Killer Business Models
Killer Business ModelsKiller Business Models
Killer Business Models
 
Rails Security
Rails SecurityRails Security
Rails Security
 
Building Facebook Apps
Building Facebook AppsBuilding Facebook Apps
Building Facebook Apps
 
Leveraging Rails to Build Facebook Apps
Leveraging Rails to Build Facebook AppsLeveraging Rails to Build Facebook Apps
Leveraging Rails to Build Facebook Apps
 
Quick Start: ActiveScaffold
Quick Start: ActiveScaffoldQuick Start: ActiveScaffold
Quick Start: ActiveScaffold
 
Creating Custom Charts With Ruby Vector Graphics
Creating Custom Charts With Ruby Vector GraphicsCreating Custom Charts With Ruby Vector Graphics
Creating Custom Charts With Ruby Vector Graphics
 
A Tour of Ruby On Rails
A Tour of Ruby On RailsA Tour of Ruby On Rails
A Tour of Ruby On Rails
 
Using Rails to Create an Enterprise App: A Real-Life Case Study
Using Rails to Create an Enterprise App: A Real-Life Case StudyUsing Rails to Create an Enterprise App: A Real-Life Case Study
Using Rails to Create an Enterprise App: A Real-Life Case Study
 
Implementing OpenID for Your Social Networking Site
Implementing OpenID for Your Social Networking SiteImplementing OpenID for Your Social Networking Site
Implementing OpenID for Your Social Networking Site
 
Quick Start: Rails
Quick Start: RailsQuick Start: Rails
Quick Start: Rails
 
Creating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services APICreating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services API
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
Christopher Logan Kennedy
 

Recently uploaded (20)

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 

Practical JRuby

  • 1. Practical JRuby By David Keener Technical Architect, Voxant Inc.
  • 2.
  • 4. A Real-Life Scenario Apache Tomcat JSP Pages Static Content Apache Mongrel Cluster Mongrel (3) Rails App Server 1 Server 2 One Web site at AOL, unified on look-and-feel… … a perfect candidate for JRuby
  • 5. Part 1: JRuby in Perspective
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. Adoption Paradigm Rails is in a unique place, just to the left of the “Chasm”. Its capacity for successful delivery of real business applications will probably be a key factor in crossing into “the enterprise.”
  • 11. The Reality of the Market $ Java Ruby $ $ $ $ $ $ $ * Not to scale
  • 12. Part 2: JRuby Setup
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. An IDE for Java and Ruby You might not need an IDE for Ruby… But you do for Java. Just accept it and move on.
  • 21. Part 3: Working With Java
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29. Part 4: Java Third Party Libs
  • 30. The Java Ecosystem Bloated, over-engineered frameworks Legacy Classes Useful Libraries JFreeChart
  • 31.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.