SlideShare a Scribd company logo
( °͡ ʖ͜ °͡) .oO(Hi)
Aaron 
Patterson
Design Summit - Rails 4 Migration - Aaron Patterson
Design Summit - Rails 4 Migration - Aaron Patterson
Design Summit - Rails 4 Migration - Aaron Patterson
Ruby Core 
Rails Core
Enterprise 
Software
Twitter: tenderlove 
GitHub: tenderlove 
Instagram: tenderlove 
Yo: tenderlove
Design Summit - Rails 4 Migration - Aaron Patterson
apatters@redhat.com
tenderlove@redhat.com
Tender 
Parents
OMG 
INTERNET 
POINTS
Revert Commits 
Count Too!
More mistakes == 
more points!!!!
Short Stack 
Engineer
Design Summit - Rails 4 Migration - Aaron Patterson
Design Summit - Rails 4 Migration - Aaron Patterson
Gorbachev Puff Puff Thunderhorse
SEA-TAC Airport YouTube
Design Summit - Rails 4 Migration - Aaron Patterson
I am new!
Lost 
Passport
Very 
I am new!
Upgrading to 
Rails 4.x
Upgrading to 
Edge Rails
Rails Release 
Timeline
4.2 is Very Soon™
Next is 5.0
Upgrading Rails
Why?
Performance
Memory Reduction
Cost
How?
Push upstream
Move to gems
Change 
implementation
Issues Today
Rails Fork
Rails 
Monkey Patches
Monkey Patches
Rails Fork
Active Record 
Object Allocation Time
ms = Benchmark.ms do 
records = rows.map { |model| 
# … 
}.uniq 
end 
logger.debug(' %s Inst Including 
Associations (%.1fms - %drows)' % 
[join_base.active_record.name || 'SQL', 
ms, records.length])
We can’t 
upstream this :-(
ActiveSupport 
Notifications
ActiveSupport::Notifications.instrument( 
"some.key", payload 
) do 
records = rows.map { |model| 
# ... 
}.uniq 
end
ActiveSupport::Notifications.subscribe( 
'some.key' 
) do |value| 
# same logger statement 
end
Truncate table
# Executes the truncate statement. 
def truncate(table_name, name = nil) 
execute("TRUNCATE TABLE 
#{quote_table_name(table_name)}", name) 
end
Pushed up stream
Added a 
monkey patch 
to backport
64 bit 
primary keys
In PG: 
"integer" == 32bit
In PG: 
"bigint" == 64bit
Default is 32bit
Why?
¯_(ツ)_/¯
Schema.rb 
No PK 
declared 
create_table "accounts" do |t| 
t.string "name" 
t.integer "acctid" 
end 
Means 
32bit
We can 
upstream this
Determine backwards 
compat scheme
Default PK 
sequences
+ return if options[:id] == false 
+ return unless self.respond_to? 
(:set_pk_sequence!) 
+ 
+ value = ActiveRecord::Base.rails_sequence_start 
+ set_pk_sequence!(table_name, value) unless 
value == 0
We can’t 
upstream this
Extract and 
"super"
Add 
"extension" points.
Auto-reconnect
Supposedly fixed?
+ def 
self.did_retry_db_connection(connection 
,count) 
+ logger.info "CONNECTION RETRY: 
#{connection.class.name} retry 
##{count}." if logger 
+ end
Push Up 
Better Exceptions
Connection 
Extensions
Database 
Statistics
Create a new gem: 
activerecord-pg-stats
Virtual Columns
Declaration 
virtual_column :name, :type 
=> :string
2 Responsibilities
Declare a "column 
type" for reporting
Declare associations 
used by the method
Separate these 
concerns
Extract reporting
Push up relation 
declaration.
RJS
Land the Angular 
patch!!!!
jquery-rjs
prototype-rails
Monkey Patches
First Glance
Churn
"How often is stuff 
changing?"
git log --all -M -C --name-only -- 
format='format:' "$@" | sort | grep -v 
'^$' | uniq -c | sort -n | awk 'BEGIN 
{print "counttfile"} {print $1 "t" 
$2}'
445 vmdb/app/models/miq_server.rb 
498 vmdb/app/models/miq_provision_workflow.rb 
508 vmdb/app/models/miq_provision.rb 
590 vmdb/app/models/miq_report.rb 
720 vmdb/app/controllers/report_controller.rb 
777 vmdb/app/models/vm.rb 
802 vmdb/app/models/host.rb 
825 vmdb/app/helpers/application_helper.rb 
1186 vmdb/app/controllers/application.rb
Cyclomatic 
Complexity
Quantify Code 
Complexity
flog
1965.9: vmdb/db/migrate/20100302205959_collapsed_initial_migration.rb:7 
1131.5: vmdb/app/controllers/ops_controller/settings/common.rb:621 
1024.9: vmdb/app/controllers/application_controller/filter.rb:137 
951.9: vmdb/app/controllers/application_controller/performance.rb:220 
862.9: vmdb/spec/models/ems_refresh/refreshers/vc_refresher_spec.rb:27 
842.8: vmdb/app/controllers/ops_controller/settings/common.rb:881 
824.5: vmdb/spec/models/ems_refresh/refreshers/ 
rhevm_refresher_3_1_spec.rb:230 
791.5: vmdb/app/helpers/application_helper.rb:648
application_helper 
$$$$$$
Static Analysis
Find unused 
methods
Ripper
require 'ripper' 
class MyParser < Ripper 
def on_def name, _, _ 
# do something 
end 
end 
parser = MyParser.new "some code" 
parser.parse
class MyParser < Ripper 
attr_reader :methods, :calls 
def initialize code, file, line 
super 
@methods = [] 
@calls = [] 
end 
def on_def name, *rest 
@methods << name 
end 
alias :on_command :on_def 
def on_defs target, dot, name, *args 
@methods << name 
end 
def on_call target, dot, name 
@calls << name 
end 
def on_fcall name 
@calls << name 
end 
alias :on_symbol :on_fcall 
alias :on_vcall :on_fcall 
end
Find.find(ARGV[0]) do |file| 
next if File.directory? file 
ext = file[/(?<=.)w+$/] 
next unless ext 
case ext 
when 'rb' 
parser = MyParser.new(File.read(file), 
file, 1) 
parser.parse 
when 'erb' 
parser = MyParser.new 
ERB.new(File.read(file)).src, file, 1 
parser.parse 
end 
end
Dynamic Dispatch 
superclass.send("virtual_#{m}")
Static Analysis + 
Ruby = 
Probably also why 
Brakeman isn’t perfect
This Summit is 
GREAT!
Communication
Browser 
WebServer 
Memcached
Design Summit - Rails 4 Migration - Aaron Patterson
Every 500ms 
Browser 
WebServer 
Memcached
Every 500ms 
Browser 
WebServer 
Memcached
Cache Size
Code Complexity
Bugs
Server Load
Every 500ms 
Browser 
WebServer 
Memcached
Always Question 
Assumptions
Ask Why
Business 
Requirements 
aren’t set in stone.
Thanks Everyone!
Questions?
Ad

More Related Content

What's hot (20)

Create a web-app with Cgi Appplication
Create a web-app with Cgi AppplicationCreate a web-app with Cgi Appplication
Create a web-app with Cgi Appplication
olegmmiller
 
Ansible 202
Ansible 202Ansible 202
Ansible 202
Sebastian Montini
 
AnsibleFest 2014 - Role Tips and Tricks
AnsibleFest 2014 - Role Tips and TricksAnsibleFest 2014 - Role Tips and Tricks
AnsibleFest 2014 - Role Tips and Tricks
jimi-c
 
Getting Started with Capistrano
Getting Started with CapistranoGetting Started with Capistrano
Getting Started with Capistrano
LaunchAny
 
Mojo as a_client
Mojo as a_clientMojo as a_client
Mojo as a_client
Marcus Ramberg
 
Rack is Spectacular
Rack is SpectacularRack is Spectacular
Rack is Spectacular
Bryce Kerley
 
Capistrano - automate all the things
Capistrano - automate all the thingsCapistrano - automate all the things
Capistrano - automate all the things
John Cleary
 
fabfile.py
fabfile.pyfabfile.py
fabfile.py
Corey Oordt
 
From * to Symfony2
From * to Symfony2From * to Symfony2
From * to Symfony2
Manuel Baldassarri
 
V2 and beyond
V2 and beyondV2 and beyond
V2 and beyond
jimi-c
 
Ethiopian multiplication in Perl6
Ethiopian multiplication in Perl6Ethiopian multiplication in Perl6
Ethiopian multiplication in Perl6
Workhorse Computing
 
More tips n tricks
More tips n tricksMore tips n tricks
More tips n tricks
bcoca
 
Webrtc mojo
Webrtc mojoWebrtc mojo
Webrtc mojo
bpmedley
 
Kansai.pm 10周年記念 Plack/PSGI 入門
Kansai.pm 10周年記念 Plack/PSGI 入門Kansai.pm 10周年記念 Plack/PSGI 入門
Kansai.pm 10周年記念 Plack/PSGI 入門
lestrrat
 
Spark Jobserver
Spark JobserverSpark Jobserver
Spark Jobserver
Yegor Andreenko
 
Europython 2011 - Playing tasks with Django & Celery
Europython 2011 - Playing tasks with Django & CeleryEuropython 2011 - Playing tasks with Django & Celery
Europython 2011 - Playing tasks with Django & Celery
Mauro Rocco
 
Working with databases in Perl
Working with databases in PerlWorking with databases in Perl
Working with databases in Perl
Laurent Dami
 
Perl web frameworks
Perl web frameworksPerl web frameworks
Perl web frameworks
diego_k
 
Selenium sandwich-3: Being where you aren't.
Selenium sandwich-3: Being where you aren't.Selenium sandwich-3: Being where you aren't.
Selenium sandwich-3: Being where you aren't.
Workhorse Computing
 
How to Upgrade Your Database Plan on Heroku and Rails Setup?
How to Upgrade Your Database Plan on Heroku and Rails Setup?How to Upgrade Your Database Plan on Heroku and Rails Setup?
How to Upgrade Your Database Plan on Heroku and Rails Setup?
Katy Slemon
 
Create a web-app with Cgi Appplication
Create a web-app with Cgi AppplicationCreate a web-app with Cgi Appplication
Create a web-app with Cgi Appplication
olegmmiller
 
AnsibleFest 2014 - Role Tips and Tricks
AnsibleFest 2014 - Role Tips and TricksAnsibleFest 2014 - Role Tips and Tricks
AnsibleFest 2014 - Role Tips and Tricks
jimi-c
 
Getting Started with Capistrano
Getting Started with CapistranoGetting Started with Capistrano
Getting Started with Capistrano
LaunchAny
 
Rack is Spectacular
Rack is SpectacularRack is Spectacular
Rack is Spectacular
Bryce Kerley
 
Capistrano - automate all the things
Capistrano - automate all the thingsCapistrano - automate all the things
Capistrano - automate all the things
John Cleary
 
V2 and beyond
V2 and beyondV2 and beyond
V2 and beyond
jimi-c
 
Ethiopian multiplication in Perl6
Ethiopian multiplication in Perl6Ethiopian multiplication in Perl6
Ethiopian multiplication in Perl6
Workhorse Computing
 
More tips n tricks
More tips n tricksMore tips n tricks
More tips n tricks
bcoca
 
Webrtc mojo
Webrtc mojoWebrtc mojo
Webrtc mojo
bpmedley
 
Kansai.pm 10周年記念 Plack/PSGI 入門
Kansai.pm 10周年記念 Plack/PSGI 入門Kansai.pm 10周年記念 Plack/PSGI 入門
Kansai.pm 10周年記念 Plack/PSGI 入門
lestrrat
 
Europython 2011 - Playing tasks with Django & Celery
Europython 2011 - Playing tasks with Django & CeleryEuropython 2011 - Playing tasks with Django & Celery
Europython 2011 - Playing tasks with Django & Celery
Mauro Rocco
 
Working with databases in Perl
Working with databases in PerlWorking with databases in Perl
Working with databases in Perl
Laurent Dami
 
Perl web frameworks
Perl web frameworksPerl web frameworks
Perl web frameworks
diego_k
 
Selenium sandwich-3: Being where you aren't.
Selenium sandwich-3: Being where you aren't.Selenium sandwich-3: Being where you aren't.
Selenium sandwich-3: Being where you aren't.
Workhorse Computing
 
How to Upgrade Your Database Plan on Heroku and Rails Setup?
How to Upgrade Your Database Plan on Heroku and Rails Setup?How to Upgrade Your Database Plan on Heroku and Rails Setup?
How to Upgrade Your Database Plan on Heroku and Rails Setup?
Katy Slemon
 

Similar to Design Summit - Rails 4 Migration - Aaron Patterson (20)

Performance Optimization of Rails Applications
Performance Optimization of Rails ApplicationsPerformance Optimization of Rails Applications
Performance Optimization of Rails Applications
Serge Smetana
 
Behavior driven oop
Behavior driven oopBehavior driven oop
Behavior driven oop
Piyush Verma
 
Rails on Oracle 2011
Rails on Oracle 2011Rails on Oracle 2011
Rails on Oracle 2011
Raimonds Simanovskis
 
Fast Web Applications Development with Ruby on Rails on Oracle
Fast Web Applications Development with Ruby on Rails on OracleFast Web Applications Development with Ruby on Rails on Oracle
Fast Web Applications Development with Ruby on Rails on Oracle
Raimonds Simanovskis
 
Adventurous Merb
Adventurous MerbAdventurous Merb
Adventurous Merb
Matt Todd
 
Otimizando Aplicações em Rails
Otimizando Aplicações em RailsOtimizando Aplicações em Rails
Otimizando Aplicações em Rails
Juan Maiz
 
Ruby on Rails Oracle adaptera izstrāde
Ruby on Rails Oracle adaptera izstrādeRuby on Rails Oracle adaptera izstrāde
Ruby on Rails Oracle adaptera izstrāde
Raimonds Simanovskis
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloud
Wesley Beary
 
Using Ruby on Rails with legacy Oracle databases
Using Ruby on Rails with legacy Oracle databasesUsing Ruby on Rails with legacy Oracle databases
Using Ruby on Rails with legacy Oracle databases
Raimonds Simanovskis
 
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
Wesley Beary
 
Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB
Web aplikāciju izstrāde ar Ruby on Rails un Oracle DBWeb aplikāciju izstrāde ar Ruby on Rails un Oracle DB
Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB
Raimonds Simanovskis
 
Debugging of (C)Python applications
Debugging of (C)Python applicationsDebugging of (C)Python applications
Debugging of (C)Python applications
Roman Podoliaka
 
SproutCore and the Future of Web Apps
SproutCore and the Future of Web AppsSproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
Mike Subelsky
 
Oracle adapters for Ruby ORMs
Oracle adapters for Ruby ORMsOracle adapters for Ruby ORMs
Oracle adapters for Ruby ORMs
Raimonds Simanovskis
 
Speedy TDD with Rails
Speedy TDD with RailsSpeedy TDD with Rails
Speedy TDD with Rails
PatchSpace Ltd
 
Altitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, Ever
Altitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, EverAltitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, Ever
Altitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, Ever
Fastly
 
DataMapper
DataMapperDataMapper
DataMapper
Yehuda Katz
 
Rails 4.0
Rails 4.0Rails 4.0
Rails 4.0
Robert Gogolok
 
Riak at The NYC Cloud Computing Meetup Group
Riak at The NYC Cloud Computing Meetup GroupRiak at The NYC Cloud Computing Meetup Group
Riak at The NYC Cloud Computing Meetup Group
siculars
 
Data Summer Conf 2018, “Mist – Serverless proxy for Apache Spark (RUS)” — Vad...
Data Summer Conf 2018, “Mist – Serverless proxy for Apache Spark (RUS)” — Vad...Data Summer Conf 2018, “Mist – Serverless proxy for Apache Spark (RUS)” — Vad...
Data Summer Conf 2018, “Mist – Serverless proxy for Apache Spark (RUS)” — Vad...
Provectus
 
Performance Optimization of Rails Applications
Performance Optimization of Rails ApplicationsPerformance Optimization of Rails Applications
Performance Optimization of Rails Applications
Serge Smetana
 
Behavior driven oop
Behavior driven oopBehavior driven oop
Behavior driven oop
Piyush Verma
 
Fast Web Applications Development with Ruby on Rails on Oracle
Fast Web Applications Development with Ruby on Rails on OracleFast Web Applications Development with Ruby on Rails on Oracle
Fast Web Applications Development with Ruby on Rails on Oracle
Raimonds Simanovskis
 
Adventurous Merb
Adventurous MerbAdventurous Merb
Adventurous Merb
Matt Todd
 
Otimizando Aplicações em Rails
Otimizando Aplicações em RailsOtimizando Aplicações em Rails
Otimizando Aplicações em Rails
Juan Maiz
 
Ruby on Rails Oracle adaptera izstrāde
Ruby on Rails Oracle adaptera izstrādeRuby on Rails Oracle adaptera izstrāde
Ruby on Rails Oracle adaptera izstrāde
Raimonds Simanovskis
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloud
Wesley Beary
 
Using Ruby on Rails with legacy Oracle databases
Using Ruby on Rails with legacy Oracle databasesUsing Ruby on Rails with legacy Oracle databases
Using Ruby on Rails with legacy Oracle databases
Raimonds Simanovskis
 
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
Wesley Beary
 
Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB
Web aplikāciju izstrāde ar Ruby on Rails un Oracle DBWeb aplikāciju izstrāde ar Ruby on Rails un Oracle DB
Web aplikāciju izstrāde ar Ruby on Rails un Oracle DB
Raimonds Simanovskis
 
Debugging of (C)Python applications
Debugging of (C)Python applicationsDebugging of (C)Python applications
Debugging of (C)Python applications
Roman Podoliaka
 
SproutCore and the Future of Web Apps
SproutCore and the Future of Web AppsSproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
Mike Subelsky
 
Altitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, Ever
Altitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, EverAltitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, Ever
Altitude NY 2018: Leveraging Log Streaming to Build the Best Dashboards, Ever
Fastly
 
Riak at The NYC Cloud Computing Meetup Group
Riak at The NYC Cloud Computing Meetup GroupRiak at The NYC Cloud Computing Meetup Group
Riak at The NYC Cloud Computing Meetup Group
siculars
 
Data Summer Conf 2018, “Mist – Serverless proxy for Apache Spark (RUS)” — Vad...
Data Summer Conf 2018, “Mist – Serverless proxy for Apache Spark (RUS)” — Vad...Data Summer Conf 2018, “Mist – Serverless proxy for Apache Spark (RUS)” — Vad...
Data Summer Conf 2018, “Mist – Serverless proxy for Apache Spark (RUS)” — Vad...
Provectus
 
Ad

More from ManageIQ (20)

ManageIQ - Sprint 259 Review - Slide Deck
ManageIQ - Sprint 259 Review - Slide DeckManageIQ - Sprint 259 Review - Slide Deck
ManageIQ - Sprint 259 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 258 Review - Slide Deck
ManageIQ - Sprint 258 Review - Slide DeckManageIQ - Sprint 258 Review - Slide Deck
ManageIQ - Sprint 258 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 257 Review - Slide Deck
ManageIQ - Sprint 257 Review - Slide DeckManageIQ - Sprint 257 Review - Slide Deck
ManageIQ - Sprint 257 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 256 Review - Slide Deck
ManageIQ - Sprint 256 Review - Slide DeckManageIQ - Sprint 256 Review - Slide Deck
ManageIQ - Sprint 256 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 255 Review - Slide Deck
ManageIQ - Sprint 255 Review - Slide DeckManageIQ - Sprint 255 Review - Slide Deck
ManageIQ - Sprint 255 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 254 Review - Slide Deck
ManageIQ - Sprint 254 Review - Slide DeckManageIQ - Sprint 254 Review - Slide Deck
ManageIQ - Sprint 254 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 247 Review - Slide Deck
ManageIQ - Sprint 247 Review - Slide DeckManageIQ - Sprint 247 Review - Slide Deck
ManageIQ - Sprint 247 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 253 Review - Slide Deck
ManageIQ - Sprint 253 Review - Slide DeckManageIQ - Sprint 253 Review - Slide Deck
ManageIQ - Sprint 253 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 252 Review - Slide Deck
ManageIQ - Sprint 252 Review - Slide DeckManageIQ - Sprint 252 Review - Slide Deck
ManageIQ - Sprint 252 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 251 Review - Slide Deck
ManageIQ - Sprint 251 Review - Slide DeckManageIQ - Sprint 251 Review - Slide Deck
ManageIQ - Sprint 251 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 250 Review - Slide Deck
ManageIQ - Sprint 250 Review - Slide DeckManageIQ - Sprint 250 Review - Slide Deck
ManageIQ - Sprint 250 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 249 Review - Slide Deck
ManageIQ - Sprint 249 Review - Slide DeckManageIQ - Sprint 249 Review - Slide Deck
ManageIQ - Sprint 249 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 248 Review - Slide Deck
ManageIQ - Sprint 248 Review - Slide DeckManageIQ - Sprint 248 Review - Slide Deck
ManageIQ - Sprint 248 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 246 Review - Slide Deck
ManageIQ - Sprint 246 Review - Slide DeckManageIQ - Sprint 246 Review - Slide Deck
ManageIQ - Sprint 246 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 245 Review - Slide Deck
ManageIQ - Sprint 245 Review - Slide DeckManageIQ - Sprint 245 Review - Slide Deck
ManageIQ - Sprint 245 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 244 Review - Slide Deck
ManageIQ - Sprint 244 Review - Slide DeckManageIQ - Sprint 244 Review - Slide Deck
ManageIQ - Sprint 244 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 243 Review - Slide Deck
ManageIQ - Sprint 243 Review - Slide DeckManageIQ - Sprint 243 Review - Slide Deck
ManageIQ - Sprint 243 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 242 Review - Slide Deck
ManageIQ - Sprint 242 Review - Slide DeckManageIQ - Sprint 242 Review - Slide Deck
ManageIQ - Sprint 242 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 241 Review - Slide Deck
ManageIQ - Sprint 241 Review - Slide DeckManageIQ - Sprint 241 Review - Slide Deck
ManageIQ - Sprint 241 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 240 Review - Slide Deck
ManageIQ - Sprint 240 Review - Slide DeckManageIQ - Sprint 240 Review - Slide Deck
ManageIQ - Sprint 240 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 259 Review - Slide Deck
ManageIQ - Sprint 259 Review - Slide DeckManageIQ - Sprint 259 Review - Slide Deck
ManageIQ - Sprint 259 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 258 Review - Slide Deck
ManageIQ - Sprint 258 Review - Slide DeckManageIQ - Sprint 258 Review - Slide Deck
ManageIQ - Sprint 258 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 257 Review - Slide Deck
ManageIQ - Sprint 257 Review - Slide DeckManageIQ - Sprint 257 Review - Slide Deck
ManageIQ - Sprint 257 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 256 Review - Slide Deck
ManageIQ - Sprint 256 Review - Slide DeckManageIQ - Sprint 256 Review - Slide Deck
ManageIQ - Sprint 256 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 255 Review - Slide Deck
ManageIQ - Sprint 255 Review - Slide DeckManageIQ - Sprint 255 Review - Slide Deck
ManageIQ - Sprint 255 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 254 Review - Slide Deck
ManageIQ - Sprint 254 Review - Slide DeckManageIQ - Sprint 254 Review - Slide Deck
ManageIQ - Sprint 254 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 247 Review - Slide Deck
ManageIQ - Sprint 247 Review - Slide DeckManageIQ - Sprint 247 Review - Slide Deck
ManageIQ - Sprint 247 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 253 Review - Slide Deck
ManageIQ - Sprint 253 Review - Slide DeckManageIQ - Sprint 253 Review - Slide Deck
ManageIQ - Sprint 253 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 252 Review - Slide Deck
ManageIQ - Sprint 252 Review - Slide DeckManageIQ - Sprint 252 Review - Slide Deck
ManageIQ - Sprint 252 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 251 Review - Slide Deck
ManageIQ - Sprint 251 Review - Slide DeckManageIQ - Sprint 251 Review - Slide Deck
ManageIQ - Sprint 251 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 250 Review - Slide Deck
ManageIQ - Sprint 250 Review - Slide DeckManageIQ - Sprint 250 Review - Slide Deck
ManageIQ - Sprint 250 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 249 Review - Slide Deck
ManageIQ - Sprint 249 Review - Slide DeckManageIQ - Sprint 249 Review - Slide Deck
ManageIQ - Sprint 249 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 248 Review - Slide Deck
ManageIQ - Sprint 248 Review - Slide DeckManageIQ - Sprint 248 Review - Slide Deck
ManageIQ - Sprint 248 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 246 Review - Slide Deck
ManageIQ - Sprint 246 Review - Slide DeckManageIQ - Sprint 246 Review - Slide Deck
ManageIQ - Sprint 246 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 245 Review - Slide Deck
ManageIQ - Sprint 245 Review - Slide DeckManageIQ - Sprint 245 Review - Slide Deck
ManageIQ - Sprint 245 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 244 Review - Slide Deck
ManageIQ - Sprint 244 Review - Slide DeckManageIQ - Sprint 244 Review - Slide Deck
ManageIQ - Sprint 244 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 243 Review - Slide Deck
ManageIQ - Sprint 243 Review - Slide DeckManageIQ - Sprint 243 Review - Slide Deck
ManageIQ - Sprint 243 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 242 Review - Slide Deck
ManageIQ - Sprint 242 Review - Slide DeckManageIQ - Sprint 242 Review - Slide Deck
ManageIQ - Sprint 242 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 241 Review - Slide Deck
ManageIQ - Sprint 241 Review - Slide DeckManageIQ - Sprint 241 Review - Slide Deck
ManageIQ - Sprint 241 Review - Slide Deck
ManageIQ
 
ManageIQ - Sprint 240 Review - Slide Deck
ManageIQ - Sprint 240 Review - Slide DeckManageIQ - Sprint 240 Review - Slide Deck
ManageIQ - Sprint 240 Review - Slide Deck
ManageIQ
 
Ad

Recently uploaded (20)

Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 

Design Summit - Rails 4 Migration - Aaron Patterson