SlideShare a Scribd company logo
1 of 76
Download to read offline
React on Rails
Different ways of integrating. Pros and Cons
About me
• name’s Mikhail Bortnyk
About me
• name’s Mikhail Bortnyk

• team leader in Amoniac OU
About me
• name’s Mikhail Bortnyk

• team leader in Amoniac OU

• co-founder of kottans.org
About me
• name’s Mikhail Bortnyk

• team leader in Amoniac OU

• co-founder of kottans.org

• Ruby language researcher
About me
• name’s Mikhail Bortnyk

• team leader in Amoniac OU

• co-founder of kottans.org

• Ruby language researcher

• twitter: @mikhailbortnyk
About me
• name’s Mikhail Bortnyk

• team leader in Amoniac OU

• co-founder of kottans.org

• Ruby language researcher

• twitter: @mikhailbortnyk

• github: @vessi
Short history of SPA in Rails
Short history of SPA in Rails
• Started from UJS
Short history of SPA in Rails
• Started from UJS

• continued with Backbone.js (Marionette.js afterwards)
Short history of SPA in Rails
• Started from UJS

• continued with Backbone.js (Marionette.js afterwards)

• progressed to angular.js
Short history of SPA in Rails
• Started from UJS

• continued with Backbone.js (Marionette.js afterwards)

• progressed to angular.js

• appeared react.js support (3rd party gems)
Short history of SPA in Rails
• Started from UJS

• continued with Backbone.js (Marionette.js afterwards)

• progressed to angular.js

• appeared react.js support (3rd party gems)

• webpack becomes part of Rails via webpacker gem
DHH dislikes SPAs
DHH dislikes SPAs
https://www.reddit.com/r/ruby/comments/341dyk/
why_does_dhh_dislike_spas_so_much/
We are not DHH
and sometimes we need something more than Rails
How do we do frontend in Rails
from some hands-on experience
Case 1. Boring
(Standalone application)
Standalone frontend
• Pros and Cons
Standalone frontend
• Pros:

• full control on frontend development process
Standalone frontend
• Pros:

• full control on frontend development process

• use what you actually want
Standalone frontend
• Pros:

• full control on frontend development process

• use what you actually want

• no need to fight with assets pipeline
Standalone frontend
• Pros:

• full control on frontend development process

• use what you actually want

• no need to fight with assets pipeline

• SPA loads independently
Standalone frontend
• Cons:

• +1 AJAX request to load data
Standalone frontend
• Cons:

• +1 AJAX request to load data

• you need to coordinate build and deployment
Standalone frontend
• Cons:

• +1 AJAX request to load data

• you need to coordinate build and deployment

• dependencies hell management
Standalone frontend
• Cons:

• +1 AJAX request to load data

• you need to coordinate build and deployment

• dependencies hell management

• coordinate, coordinate, and coordinate again
Standalone frontend
• Cons:

• +1 AJAX request to load data

• you need to coordinate build and deployment

• dependencies hell management

• coordinate, coordinate, and coordinate again

• and don’t forget about API versioning!
Case 1.5. Creepy as hell
(In-Rails JS)
In-Rails JS
• Pros and Cons
In-Rails JS
• Pros:

• Almost nothing
In-Rails JS
• Pros:

• Almost nothing

• Deployed at the same time
In-Rails JS
• Cons:

• Hardly maintainable
In-Rails JS
• Cons:

• Hardly maintainable

• supports only in-browser JSX
In-Rails JS
• Cons:

• Hardly maintainable

• supports only in-browser JSX

• dependencies hell
In-Rails JS
• Cons:

• Hardly maintainable

• supports only in-browser JSX

• dependencies hell

• suits only for very simple SPAs
Case 2. Outdated
(react-rails gem)
react-rails gem
• Pros and Cons
react-rails gem
• Pros:

• fixed react.js version
react-rails gem
• Pros:

• fixed react.js version

• server-side rendering
react-rails gem
• Pros:

• fixed react.js version

• server-side rendering

• components generators
react-rails gem
• Pros:

• fixed react.js version

• server-side rendering

• components generators

• UJS integration
react-rails gem
• Pros:

• fixed react.js version

• server-side rendering

• components generators

• UJS integration

• turbolinks integration
react-rails gem
• Cons:

• fixed react.js version
react-rails gem
• Cons:

• fixed react.js version

• deep integration with assets pipeline
react-rails gem
• Cons:

• fixed react.js version

• deep integration with assets pipeline

• no source maps
react-rails gem
• Cons:

• fixed react.js version

• deep integration with assets pipeline

• no source maps

• forget about “all-in-component” behavior
Case 3. Current
(react_on_rails gem)
react_on_rails gem
• Pros and Cons
react_on_rails gem
• Pros:

• separate SPA folder
react_on_rails gem
• Pros:

• separate SPA folder

• a lot of helpers for react and redux
react_on_rails gem
• Pros:

• separate SPA folder

• a lot of helpers for react and redux

• templates for SPAs
react_on_rails gem
• Pros:

• separate SPA folder

• a lot of helpers for react and redux

• templates for SPAs

• webpack as an app builder
react_on_rails gem
• Pros:

• separate SPA folder

• a lot of helpers for react and redux

• templates for SPAs

• webpack as an app builder

• yarn as a package manager
react_on_rails gem
• Cons:

• separate SPA folder
react_on_rails gem
• Cons:

• separate SPA folder

• dirty dances to get HMR working
react_on_rails gem
• Cons:

• separate SPA folder

• dirty dances to get HMR working

• complicated documentation
react_on_rails gem
• Cons:

• separate SPA folder

• dirty dances to get HMR working

• complicated documentation

• need to wait for upgrade dependencies
react_on_rails gem
• Cons:

• separate SPA folder

• dirty dances to get HMR working

• complicated documentation

• need to wait for upgrade dependencies

• a lot of side-selling in documentation
Case 4. Probably future
(webpacker gem)
webpacker gem
• Pros and Cons
webpacker gem
• Pros:

• easily managed components (via packs)
webpacker gem
• Pros:

• easily managed components (via packs)

• works with Turbolinks
webpacker gem
• Pros:

• easily managed components (via packs)

• works with Turbolinks

• supports hot loading out of box
webpacker gem
• Pros:

• easily managed components (via packs)

• works with Turbolinks

• supports hot loading out of box

• integrated into Rails starting from 5.1
webpacker gem
• Pros:

• easily managed components (via packs)

• works with Turbolinks

• supports hot loading out of box

• integrated into Rails starting from 5.1

• package.json lives in the same folder
webpacker gem
• Pros:

• easily managed components (via packs)

• works with Turbolinks

• supports hot loading out of box

• integrated into Rails starting from 5.1

• package.json lives in the same folder

• config lives altogether with your app config
webpacker gem
• Cons:

• No server-side rendering
webpacker gem
• Cons:

• No server-side rendering

• SPA is highly integrated into Rails App source code
webpacker gem
• Cons:

• No server-side rendering

• SPA is highly integrated into Rails App source code

• Still needs some setup ceremonies
Showtime
Conclusions
Questions?
Thanks!

More Related Content

What's hot

What's hot (20)

improving the performance of Rails web Applications
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web Applications
 
AWS Users Meetup April 2015
AWS Users Meetup April 2015AWS Users Meetup April 2015
AWS Users Meetup April 2015
 
How NOT to get lost in the current JavaScript landscape
How NOT to get lost in the current JavaScript landscapeHow NOT to get lost in the current JavaScript landscape
How NOT to get lost in the current JavaScript landscape
 
Rapid development with Rails
Rapid development with RailsRapid development with Rails
Rapid development with Rails
 
Live Coverage at The New York Times
Live Coverage at The New York TimesLive Coverage at The New York Times
Live Coverage at The New York Times
 
Torquebox rubyhoedown-2012
Torquebox rubyhoedown-2012Torquebox rubyhoedown-2012
Torquebox rubyhoedown-2012
 
Ruby Masters 2011
Ruby Masters 2011Ruby Masters 2011
Ruby Masters 2011
 
Taking Micronaut out for a spin
Taking Micronaut out for a spinTaking Micronaut out for a spin
Taking Micronaut out for a spin
 
REST In Action: The Live Coverage Platform at the New York Times
REST In Action: The Live Coverage Platform at the New York TimesREST In Action: The Live Coverage Platform at the New York Times
REST In Action: The Live Coverage Platform at the New York Times
 
What I wish I knew about maven years ago
What I wish I knew about maven years agoWhat I wish I knew about maven years ago
What I wish I knew about maven years ago
 
WordPress: Getting Under the Hood
WordPress: Getting Under the HoodWordPress: Getting Under the Hood
WordPress: Getting Under the Hood
 
2015 WordCamp Maine Keynote
2015 WordCamp Maine Keynote2015 WordCamp Maine Keynote
2015 WordCamp Maine Keynote
 
Deployment Nirvana
Deployment NirvanaDeployment Nirvana
Deployment Nirvana
 
淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2
 
An Introduction to the Laravel Framework (AFUP Forum PHP 2014)
An Introduction to the Laravel Framework (AFUP Forum PHP 2014)An Introduction to the Laravel Framework (AFUP Forum PHP 2014)
An Introduction to the Laravel Framework (AFUP Forum PHP 2014)
 
They why behind php frameworks
They why behind php frameworksThey why behind php frameworks
They why behind php frameworks
 
Merging two big Symfony based applications - SymfonyCon 2017
Merging two big Symfony based applications - SymfonyCon 2017Merging two big Symfony based applications - SymfonyCon 2017
Merging two big Symfony based applications - SymfonyCon 2017
 
Webservices: The RESTful Approach
Webservices: The RESTful ApproachWebservices: The RESTful Approach
Webservices: The RESTful Approach
 
Web a Quebec - JS Debugging
Web a Quebec - JS DebuggingWeb a Quebec - JS Debugging
Web a Quebec - JS Debugging
 
Transactions and Concurrency Control Patterns - 2019
Transactions and Concurrency Control Patterns - 2019Transactions and Concurrency Control Patterns - 2019
Transactions and Concurrency Control Patterns - 2019
 

Viewers also liked

Adventures of a risk arbitrageur
Adventures of a risk arbitrageurAdventures of a risk arbitrageur
Adventures of a risk arbitrageur
Sanjay Bakshi
 
Machine Learning as a Daily Work for a Programmer- Volodymyr Vorobiov
Machine Learning as a Daily Work for a Programmer- Volodymyr VorobiovMachine Learning as a Daily Work for a Programmer- Volodymyr Vorobiov
Machine Learning as a Daily Work for a Programmer- Volodymyr Vorobiov
Ruby Meditation
 

Viewers also liked (12)

Adventures of a risk arbitrageur
Adventures of a risk arbitrageurAdventures of a risk arbitrageur
Adventures of a risk arbitrageur
 
Lets Get Real About Angel Investing Presentation for BSW16 Boulder Startup We...
Lets Get Real About Angel Investing Presentation for BSW16 Boulder Startup We...Lets Get Real About Angel Investing Presentation for BSW16 Boulder Startup We...
Lets Get Real About Angel Investing Presentation for BSW16 Boulder Startup We...
 
Is Value Investing the “Holy Grail” of financial investing ?
Is Value Investing the “Holy Grail” of financial investing ?Is Value Investing the “Holy Grail” of financial investing ?
Is Value Investing the “Holy Grail” of financial investing ?
 
What is Value Investing
 What is Value Investing  What is Value Investing
What is Value Investing
 
Angel Investing 101 - Part 1 - Pre-screening
Angel Investing 101 - Part 1 - Pre-screeningAngel Investing 101 - Part 1 - Pre-screening
Angel Investing 101 - Part 1 - Pre-screening
 
Machine Learning as a Daily Work for a Programmer- Volodymyr Vorobiov
Machine Learning as a Daily Work for a Programmer- Volodymyr VorobiovMachine Learning as a Daily Work for a Programmer- Volodymyr Vorobiov
Machine Learning as a Daily Work for a Programmer- Volodymyr Vorobiov
 
How to be an Angel Investor, Part 3
How to be an Angel Investor, Part 3How to be an Angel Investor, Part 3
How to be an Angel Investor, Part 3
 
Aggregate db Lessons Learned H4Dip Stanford 2016
Aggregate db Lessons Learned H4Dip Stanford 2016Aggregate db Lessons Learned H4Dip Stanford 2016
Aggregate db Lessons Learned H4Dip Stanford 2016
 
Hacking CT Lessons Learned H4Dip Stanford 2016
Hacking CT Lessons Learned H4Dip Stanford 2016Hacking CT Lessons Learned H4Dip Stanford 2016
Hacking CT Lessons Learned H4Dip Stanford 2016
 
Trace Lessons Learned H4Dip Stanford 2016
Trace Lessons Learned H4Dip Stanford 2016 Trace Lessons Learned H4Dip Stanford 2016
Trace Lessons Learned H4Dip Stanford 2016
 
Space Evaders Lessons Learned H4Dip Stanford 2016
Space Evaders Lessons Learned H4Dip Stanford 2016Space Evaders Lessons Learned H4Dip Stanford 2016
Space Evaders Lessons Learned H4Dip Stanford 2016
 
Peacekeeping Lessons Learned H4Dip Stanford 2016
Peacekeeping Lessons Learned H4Dip Stanford 2016Peacekeeping Lessons Learned H4Dip Stanford 2016
Peacekeeping Lessons Learned H4Dip Stanford 2016
 

Similar to Different ways of integrating React into Rails - Mikhail Bortnyk

大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
Takayuki Kyowa
 
Single Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.WebSingle Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.Web
Chris Canal
 

Similar to Different ways of integrating React into Rails - Mikhail Bortnyk (20)

大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
 
Node.JS: Do you know the dependency of your dependencies dependency
Node.JS: Do you know the dependency of your dependencies dependencyNode.JS: Do you know the dependency of your dependencies dependency
Node.JS: Do you know the dependency of your dependencies dependency
 
Scaling with swagger
Scaling with swaggerScaling with swagger
Scaling with swagger
 
AJAX & jQuery - City University WAD Module
AJAX & jQuery - City University WAD ModuleAJAX & jQuery - City University WAD Module
AJAX & jQuery - City University WAD Module
 
EmberCLI Rails: An Integration Love Story.
EmberCLI Rails: An Integration Love Story.EmberCLI Rails: An Integration Love Story.
EmberCLI Rails: An Integration Love Story.
 
Contributing to rails
Contributing to railsContributing to rails
Contributing to rails
 
Windycityrails page performance
Windycityrails page performanceWindycityrails page performance
Windycityrails page performance
 
MidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
MidwestJS 2014 Reconciling ReactJS as a View Layer ReplacementMidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
MidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
 
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
 
Reactive All the Way Down the Stack
Reactive All the Way Down the StackReactive All the Way Down the Stack
Reactive All the Way Down the Stack
 
Streams API (Web Engines Hackfest 2015)
Streams API (Web Engines Hackfest 2015)Streams API (Web Engines Hackfest 2015)
Streams API (Web Engines Hackfest 2015)
 
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
 
RubyConf China 2015 - Rails off assets pipeline
RubyConf China 2015 - Rails off assets pipelineRubyConf China 2015 - Rails off assets pipeline
RubyConf China 2015 - Rails off assets pipeline
 
Polyglot Grails
Polyglot GrailsPolyglot Grails
Polyglot Grails
 
UPenn on Rails intro
UPenn on Rails introUPenn on Rails intro
UPenn on Rails intro
 
WordPress 4.4 and Beyond
WordPress 4.4 and BeyondWordPress 4.4 and Beyond
WordPress 4.4 and Beyond
 
My Little Webap - DevOpsSec is Magic
My Little Webap - DevOpsSec is MagicMy Little Webap - DevOpsSec is Magic
My Little Webap - DevOpsSec is Magic
 
Single Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.WebSingle Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.Web
 
Application Deployment at UC Riverside
Application Deployment at UC RiversideApplication Deployment at UC Riverside
Application Deployment at UC Riverside
 
JavaScript Build System Battle Royale | PrDC 2017
JavaScript Build System Battle Royale | PrDC 2017JavaScript Build System Battle Royale | PrDC 2017
JavaScript Build System Battle Royale | PrDC 2017
 

More from Ruby Meditation

More from Ruby Meditation (20)

Is this Legacy or Revenant Code? - Sergey Sergyenko | Ruby Meditation 30
Is this Legacy or Revenant Code? - Sergey Sergyenko  | Ruby Meditation 30Is this Legacy or Revenant Code? - Sergey Sergyenko  | Ruby Meditation 30
Is this Legacy or Revenant Code? - Sergey Sergyenko | Ruby Meditation 30
 
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
 
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29
 
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...
 
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28 How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28
 
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28
 
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
 
Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...
Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...
Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...
 
Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...
Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...
Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...
 
The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...
The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...
The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...
 
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
 
New features in Rails 6 - Nihad Abbasov (RUS) | Ruby Meditation 26
New features in Rails 6 -  Nihad Abbasov (RUS) | Ruby Meditation 26New features in Rails 6 -  Nihad Abbasov (RUS) | Ruby Meditation 26
New features in Rails 6 - Nihad Abbasov (RUS) | Ruby Meditation 26
 
Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26
Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26
Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26
 
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
 
Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26
Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26
Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26
 
Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25
Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25
Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25
 
Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...
Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...
Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...
 
Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...
Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...
Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...
 
Rails App performance at the limit - Bogdan Gusiev
Rails App performance at the limit - Bogdan GusievRails App performance at the limit - Bogdan Gusiev
Rails App performance at the limit - Bogdan Gusiev
 
GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23
GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23
GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

Different ways of integrating React into Rails - Mikhail Bortnyk