SlideShare a Scribd company logo
JRuby,	
  a	
  Pi	
  and	
  a	
  Database	
  
PHILIPP	
  FEHRE	
  
Twi3er:	
  @ischi	
  	
  
Github:	
  @sideshowcoder	
  
Developer	
  Advocate,	
  Couchbase	
  
It’s	
  just	
  ruby!	
  
Jruby a Pi and a database
Jruby a Pi and a database
Jruby a Pi and a database
NaEve	
  threads	
  
99%	
  vs	
  125%	
  |	
  17	
  sec	
  vs	
  11	
  sec	
  
Yes	
  jruby	
  startup	
  Eme	
  is	
  slow	
  …	
  
And	
  more	
  
GC,	
  Java	
  Debugging	
  tools,	
  Java	
  
Servers…	
  
-­‐-­‐dev	
  tradeoff	
  performance	
  for	
  startup	
  @me	
  
Lets	
  see	
  it	
  in	
  pracEce	
  
Couchbase	
  Lite	
  
Couchbase	
  Mobil	
  
Couchbase	
  Lite	
  +	
  Sync	
  Gateway	
  
Couchbase	
  Mobil	
  
Couchbase	
  Lite	
  +	
  Sync	
  Gateway	
  
Channels	
  
Tags…	
  
AuthenEcaEon	
  
Facebook,	
  Mozilla	
  Persona,	
  User	
  +	
  
Password,	
  OAuth	
  	
  
Sync	
  FuncEon	
  
Channels	
  
AuthenEcaEon	
  
Why	
  JRuby?	
  
Jruby a Pi and a database
Jruby a Pi and a database
NEED	
  TO	
  CALL	
  TO	
  JAVA	
  
Java	
  has	
  loads	
  of	
  libraries	
  (like	
  Couchbase	
  Lite)	
  which	
  are	
  only	
  on	
  Java	
  
Pi	
  on	
  Couch	
  
Jruby a Pi and a database
Jruby a Pi and a database
Using	
  JRuby	
  
Loading	
  JARs	
  
Loading	
  naEve	
  JARs	
  
Just	
  for	
  reference…	
  ;)	
  
Calling	
  Java	
  Methods	
  
Calling	
  Java	
  Methods	
  
CreaEng	
  Items	
  in	
  the	
  database	
  
Some	
  Java	
  Idioms	
  
in	
  Ruby	
  
Naming	
  
Se3er	
  and	
  Ge3er	
  
Se3er	
  and	
  Ge3er	
  
Se3er	
  and	
  Ge3er	
  
Method	
  names	
  
Anonymous	
  Classes	
  
Java	
  
Ruby	
  way	
  number	
  1	
  
Ruby	
  way	
  number	
  2	
  
GENERICS	
  
They	
  don’t	
  auto	
  convert	
  types	
  
Jruby a Pi and a database
Jruby a Pi and a database
Jruby a Pi and a database
Se[ng	
  up	
  sync	
  
Jruby a Pi and a database
Querying	
  Couchbase	
  Lite	
  
Querying	
  Couchbase	
  Lite	
  
Querying	
  Couchbase	
  Lite	
  
Querying	
  Couchbase	
  Lite	
  
LOOKING	
  UNDER	
  THE	
  HOOD	
  
How	
  JRuby	
  is	
  implemented	
  
HACKING	
  JRUBY	
  
CreaEng	
  a	
  method	
  from	
  Scratch	
  
git	
  clone	
  h3ps://github.com/jruby/jruby	
  
	
  
mvn	
  -­‐pBoostrap	
  
Running	
  the	
  tests	
  
	
  
1.to_froscon	
  #	
  =>	
  “froscon”	
  
Adding	
  to	
  RubyFixnum	
  
Couchbase	
  Server	
  3.0	
  Beta	
  Bug	
  Bash	
  	
  
Download,	
  Find,	
  Report,	
  Win	
  
•  DOWNLOAD	
  Couchbase	
  Server	
  3.0	
  Beta	
  
•  Run	
  some	
  workload,	
  play	
  with	
  it,	
  FIND	
  a	
  bug	
  
•  If	
  you	
  find	
  a	
  bug,	
  REPORT	
  it!	
  	
  
­  All	
  bugs	
  count	
  –	
  anything	
  from	
  correctness,	
  to	
  performance,	
  to	
  
usability,	
  to	
  docs	
  
•  WIN	
  Prizes!!	
  
	
  
h`p://www.couchbase.com/bugbash	
  
	
  	
  Contest	
  ends	
  Aug	
  31st	
  2014	
  
QuesEons?	
  
Links	
  
•  h3p://github.com/couchbaselabs/pi-­‐on-­‐couch	
  
•  h3p://www.couchbase.com/communiEes	
  
•  h3p://jruby.org	
  

More Related Content

What's hot (20)

KEY
Building MapAttack
Kyle Drake
 
PDF
Great Tools Heavily Used In Japan, You Don't Know.
Junichi Ishida
 
PPTX
Server::Starter meets Java
Tokuhiro Matsuno
 
ODP
Fabric: A Capistrano Alternative
Panoptic Development, Inc.
 
PDF
Torquebox OSCON Java 2011
tobiascrawley
 
KEY
A rough guide to JavaScript Performance
allmarkedup
 
PPTX
201904 websocket
월간 IT 슬라이드
 
PDF
JUDCon 2010 Boston : TorqueBox
marekgoldmann
 
KEY
Capistrano, Puppet, and Chef
David Benjamin
 
PDF
Perl6 meets JVM
Tokuhiro Matsuno
 
PDF
CPAN Training
Pedro Figueiredo
 
PDF
Asynchronous I/O in Python 3
Feihong Hsu
 
KEY
Rails development environment talk
Reuven Lerner
 
PPTX
How did puppet change our system's life?
Hung Phung Dac
 
PDF
How to develop the Standard Libraries of Ruby?
Hiroshi SHIBATA
 
KEY
Runmodes and Configs for Fun and Profit
Mike Pfaff
 
ODP
Ruby as a glue language
quakewang
 
PDF
CRaSH the shell for the Java Virtual Machine
GR8Conf
 
PDF
Bootstrapping Puppet and Application Deployment - PuppetConf 2013
Puppet
 
PDF
Ruby projects of interest for DevOps
Ricardo Sanchez
 
Building MapAttack
Kyle Drake
 
Great Tools Heavily Used In Japan, You Don't Know.
Junichi Ishida
 
Server::Starter meets Java
Tokuhiro Matsuno
 
Fabric: A Capistrano Alternative
Panoptic Development, Inc.
 
Torquebox OSCON Java 2011
tobiascrawley
 
A rough guide to JavaScript Performance
allmarkedup
 
201904 websocket
월간 IT 슬라이드
 
JUDCon 2010 Boston : TorqueBox
marekgoldmann
 
Capistrano, Puppet, and Chef
David Benjamin
 
Perl6 meets JVM
Tokuhiro Matsuno
 
CPAN Training
Pedro Figueiredo
 
Asynchronous I/O in Python 3
Feihong Hsu
 
Rails development environment talk
Reuven Lerner
 
How did puppet change our system's life?
Hung Phung Dac
 
How to develop the Standard Libraries of Ruby?
Hiroshi SHIBATA
 
Runmodes and Configs for Fun and Profit
Mike Pfaff
 
Ruby as a glue language
quakewang
 
CRaSH the shell for the Java Virtual Machine
GR8Conf
 
Bootstrapping Puppet and Application Deployment - PuppetConf 2013
Puppet
 
Ruby projects of interest for DevOps
Ricardo Sanchez
 

Similar to Jruby a Pi and a database (20)

KEY
Introduction to JRuby
ajuckel
 
PDF
Ugo Cei Presentation
RubyOnRails_dude
 
PDF
JRuby and Google App Engine
joshsmoore
 
PDF
Node.js and couchbase Full Stack JSON - Munich NoSQL
Philipp Fehre
 
PDF
JRuby - The Best of Java and Ruby
Evgeny Rahman
 
KEY
Jruby synergy-of-ruby-and-java
Keith Bennett
 
PPT
Practical JRuby
David Keener
 
PPT
Ruby - The Hard Bits
Paul Gallagher
 
PDF
JRuby in the enterprise
Jerry Gulla
 
KEY
Практики применения JRuby
.toster
 
PPT
Introduction to JRuby And JRuby on Rails
Framgia Vietnam
 
PDF
Introduction to JRuby
Amit Solanki
 
PDF
The Year of JRuby - RubyC 2018
Charles Nutter
 
PDF
Lightweight APIs in mRuby
Pivorak MeetUp
 
ZIP
Ruby Kaigi 2008 LT
Motohiro Takayama
 
PDF
The Enterprise Strikes Back
Burke Libbey
 
ODP
First Day With J Ruby
Praveen Kumar Sinha
 
PPTX
JRuby in Java Projects
jazzman1980
 
PDF
Ola Bini J Ruby Power On The Jvm
deimos
 
PDF
Developing cross platform desktop application with Ruby
Anis Ahmad
 
Introduction to JRuby
ajuckel
 
Ugo Cei Presentation
RubyOnRails_dude
 
JRuby and Google App Engine
joshsmoore
 
Node.js and couchbase Full Stack JSON - Munich NoSQL
Philipp Fehre
 
JRuby - The Best of Java and Ruby
Evgeny Rahman
 
Jruby synergy-of-ruby-and-java
Keith Bennett
 
Practical JRuby
David Keener
 
Ruby - The Hard Bits
Paul Gallagher
 
JRuby in the enterprise
Jerry Gulla
 
Практики применения JRuby
.toster
 
Introduction to JRuby And JRuby on Rails
Framgia Vietnam
 
Introduction to JRuby
Amit Solanki
 
The Year of JRuby - RubyC 2018
Charles Nutter
 
Lightweight APIs in mRuby
Pivorak MeetUp
 
Ruby Kaigi 2008 LT
Motohiro Takayama
 
The Enterprise Strikes Back
Burke Libbey
 
First Day With J Ruby
Praveen Kumar Sinha
 
JRuby in Java Projects
jazzman1980
 
Ola Bini J Ruby Power On The Jvm
deimos
 
Developing cross platform desktop application with Ruby
Anis Ahmad
 
Ad

More from Philipp Fehre (18)

PPTX
node.js and native code extensions by example
Philipp Fehre
 
PDF
Couchbase Mobile on Android
Philipp Fehre
 
PDF
From 0 to syncing
Philipp Fehre
 
PDF
You got schema in my json
Philipp Fehre
 
PDF
What is new in Riak 2.0
Philipp Fehre
 
PDF
Ember background basics
Philipp Fehre
 
PDF
Ember learn from Riak Control
Philipp Fehre
 
PDF
Testing tdd jasmine
Philipp Fehre
 
PDF
Testing tdd dom
Philipp Fehre
 
PDF
Something about node basics
Philipp Fehre
 
PDF
A little more advanced node
Philipp Fehre
 
PDF
Something about node in the realworld
Philipp Fehre
 
PDF
Riak Intro at Munich Node.js
Philipp Fehre
 
PDF
PUT Knowledge BUCKET Brain KEY Riak
Philipp Fehre
 
PDF
Campfire bot lightning talk
Philipp Fehre
 
PDF
Lighting fast rails with zeus
Philipp Fehre
 
PDF
JavaScript frontend testing from failure to good to great
Philipp Fehre
 
KEY
Network with node
Philipp Fehre
 
node.js and native code extensions by example
Philipp Fehre
 
Couchbase Mobile on Android
Philipp Fehre
 
From 0 to syncing
Philipp Fehre
 
You got schema in my json
Philipp Fehre
 
What is new in Riak 2.0
Philipp Fehre
 
Ember background basics
Philipp Fehre
 
Ember learn from Riak Control
Philipp Fehre
 
Testing tdd jasmine
Philipp Fehre
 
Testing tdd dom
Philipp Fehre
 
Something about node basics
Philipp Fehre
 
A little more advanced node
Philipp Fehre
 
Something about node in the realworld
Philipp Fehre
 
Riak Intro at Munich Node.js
Philipp Fehre
 
PUT Knowledge BUCKET Brain KEY Riak
Philipp Fehre
 
Campfire bot lightning talk
Philipp Fehre
 
Lighting fast rails with zeus
Philipp Fehre
 
JavaScript frontend testing from failure to good to great
Philipp Fehre
 
Network with node
Philipp Fehre
 
Ad

Recently uploaded (20)

PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
July Patch Tuesday
Ivanti
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
July Patch Tuesday
Ivanti
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 

Jruby a Pi and a database