SlideShare ist ein Scribd-Unternehmen logo
1 von 126
Downloaden Sie, um offline zu lesen
SQUASHINGTHE HEISENBUGS
Trotter Cashion / Chariot CI Event 2010
http://www.flickr.com/photos/gliuoo/2539512435/sizes/z/in/photostream/
SQUASHINGTHE HEISENBUGS
Trotter Cashion / Chariot CI Event 2010
http://www.flickr.com/photos/gliuoo/2539512435/sizes/z/in/photostream/
BOHRBUGS
SQUASHINGTHE BOHRBUGS
Trotter Cashion / Chariot CI Event 2010
http://www.flickr.com/photos/gliuoo/2539512435/sizes/z/in/photostream/
THIS WILL BE ON THE INTERNET!
CO-FOUNDER
http://mashion.net
http://www.charlesheflin.com/wp-content/uploads/2010/06/fail-whale.jpg
@CASHION
http://gems.github.com/octocat.png
github.com/trotter
AGENDA
HEISENBUGS AND BOHRBUGS
THE MANUAL PROBLEM
CHEF
TYING CHEF INTO CI
QUESTIONS (AQAFT)
HEISENBUGS
http://upload.wikimedia.org/wikipedia/commons/8/84/Hindenburg_burning.jpg
OBSERVER EFFECT
EventYou
http://en.wikipedia.org/wiki/File:Bohr-atom-PAR.svg
BOHRBUGS
MANDELBUGS
SCHRÖDINBUGS
NOOBBUGS
THE MANUAL PROBLEM
http://www.dolphinsc.com/images/Dolphin.jpg
MYSQL
http://images.buycostumes.com/mgen/merchandiser/32494.jpg
POSTGRES
http://www.wallpapers-free.org/34/-/Apache_Longbow_Helicopter/
APACHE
http://www.allbestwallpapers.com/travel-kremlin_and_red_square_fireworks,_moscow,_russia_wallpapers.html
NGINX
Memcached
Memcached
Redis
Memcached
Redis
Mongodb
Memcached
Redis
Mongodb Riak
Memcached
Redis
Mongodb Riak
Cassandra
Memcached
Redis
Mongodb Riak
Cassandra
ProjectVoldemort
Memcached
Redis
Mongodb Riak
Cassandra
ProjectVoldemort
Ubuntu
Memcached
Redis
Mongodb Riak
Cassandra
ProjectVoldemort
Ubuntu
Redhat
Memcached
Redis
Mongodb Riak
Cassandra
ProjectVoldemort
Ubuntu
Redhat
Solaris
Memcached
Redis
Mongodb Riak
Cassandra
ProjectVoldemort
Ubuntu
Redhat
Solaris
iptables
Memcached
Redis
Mongodb Riak
Cassandra
ProjectVoldemort
Ubuntu
Redhat
Solaris
iptables
sshd
Memcached
Redis
Mongodb Riak
Cassandra
ProjectVoldemort
Ubuntu
Redhat
Solaris
iptables
sshd
DNS Servers
Memcached
Redis
Mongodb Riak
Cassandra
ProjectVoldemort
Ubuntu
Redhat
Solaris
iptables
sshd
DNS Servers
TCP/IP internals
We Idolize the Artisan Sysadmin
... but what do we end up with?
http://www.enviro-bc.ca/wp-content/uploads/2009/04/bowlake-aval_clair-israelson.jpg
SNOWFLAKES
... that become avalanches
http://upload.wikimedia.org/wikipedia/commons/6/6d/Niels_Bohr.jpg
BOHRBUGS
http://assets.troubledteenswizard.com/uploaded/WoW/nomoney1.jpg
NO MORE MONEY!
We’re really left with two choices
Automate... or die.
Automation is not hard!
BASH
http://hackedgadgets.com/wp-content/2/LEGO_V8_Engine_1.jpg
CFENGINE
http://www.flickr.com/photos/willemvelthoven/381608678/sizes/l/
PUPPET
http://www.flickr.com/photos/venndiagram/4891510333/sizes/l/
CHEF!
http://www.opscode.com/
WRITTEN BY
http://www.prestonlee.com/wp-content/uploads/2008/09/ruby.png
WRITTEN IN
Two Delicious Flavors
http://upload.wikimedia.org/wikipedia/commons/e/e0/Google%E2%80%99s_First_Production_Server.jpg
SERVER
HOW IT WORKS
HOW IT WORKS
Your
Computer
HOW IT WORKS
Your
Computer
Box to
Provision
HOW IT WORKS
Your
Computer
Chef Server
Box to
Provision
HOW IT WORKS
Your
Computer
Chef Server
Box to
Provision
Prepare
HOW IT WORKS
Your
Computer
Chef Server
Box to
Provision
Prepare
What now?
HOW IT WORKS
Your
Computer
Chef Server
Box to
Provision
Prepare
What now?
Cookbooks
HOW IT WORKS
Your
Computer
Chef Server
Box to
Provision
Prepare
What now?
Cookbooks
Run!
http://www.pbs.org/parents/supersisters/han_solo-thumb-454x654.jpg
SOLO
HOW IT WORKS
HOW IT WORKS
Your
Computer
HOW IT WORKS
Your
Computer
Box to
Provision
HOW IT WORKS
Your
Computer
Box to
Provision
Prepare
HOW IT WORKS
Your
Computer
Box to
Provision
Cookbooks
Prepare
HOW IT WORKS
Your
Computer
Box to
Provision
Cookbooks
Prepare
Go!
Chef Structure
CHEF HEIRARCHY
Node
Roles
Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
ROLES ARE REUSABLE!
config/dev.json config/db.json
roles/db.rb
http://www.flickr.com/photos/seandreilinger/959864706/sizes/o/
GETTING
GOING
WHAT YOU NEED
WHAT YOU NEED
Ruby &
Rubygems
WHAT YOU NEED
Ruby &
Rubygems
`gem install chef` Chef Gem
WHAT YOU NEED
Ruby &
Rubygems
`gem install chef` Chef Gem
`git clone http://github.com/
opscode/chef-repo.git`
Chef Repo
http://cookbooks.opscode.com/
COOKBOOKS.OPSCODE.COM
TERMINAL JUNKIES
TERMINAL JUNKIES
•spatula search mysql
TERMINAL JUNKIES
•spatula search mysql
•spatula install mysql
TERMINAL JUNKIES
•spatula search mysql
•spatula install mysql
•spatula show mysql
TERMINAL JUNKIES
•spatula search mysql
•spatula install mysql
•spatula show mysql
•... knife has similar functionality
GET THE BOX READY
spatula prepare db-one.host
ssh db-one.host “install ruby”
ssh db-one.host “install chef”
=
GO GO GO!
spatula cook db-one.host db ssh db-one.host “sudo 
chef-solo -c config/solo.rb 
-j config/db.json”
rsync repo to db-one.host
=
WITH CHEF SERVER
install dependencies
turn on client
send cookbooks to client
http://media.photobucket.com/image/minecraft/bluekabal/roma/minesofroma.jpg
DIGGING DEEPER
CHEF HEIRARCHY
Node
Roles
Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
// ./config/db_one.json
{ "run_list": ["role[db]"] }
A NODE
Recipes and Roles go here
CHEF HEIRARCHY
Node
Roles
Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
# ./roles/db.rb
name "database"
description "Be a DB"
run_list [ "apache2", "mysql::server" ]
A ROLE
# ./roles/db.rb
name "database"
description "Be a DB"
run_list [ "apache2", "mysql::server" ]
A ROLE
Recipes to run
# ./roles/db.rb
name "database"
description "Be a DB"
run_list [ "apache2", "mysql::server" ]
A ROLE
./cookbooks/apache2/recipes/default.rb
# ./roles/db.rb
name "database"
description "Be a DB"
run_list [ "apache2", "mysql::server" ]
A ROLE
./cookbooks/mysql/recipes/server.rb
CHEF HEIRARCHY
Node
Roles
Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
# ./cookbooks/mysql/attributes/server.rb
default[:mysql][:server_debian_password] = secure_password
default[:mysql][:server_root_password] = secure_password
default[:mysql][:server_repl_password] = secure_password
default[:mysql][:bind_address] = ipaddress
default[:mysql][:datadir] = "/var/lib/mysql"
# Tunables
default[:mysql][:tunable][:key_buffer] = "250M"
default[:mysql][:tunable][:max_connections] = "800"
default[:mysql][:tunable][:wait_timeout] = "180"
ATTRIBUTES
// ./config/db.json
{ "mysql": { "server_root_password": "beefcake" },
  "recipes": [ "mysql" ] }
OVERRIDING ATTRIBUTES
# ./roles/db.rb
name "database"
description "Be a DB"
run_list [ "mysql::server" ]
default_attributes :mysql => { :server_root_password =>
"beefcake" }
Node
Role
CHEF HEIRARCHY
Node
Roles
Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
# ./cookbooks/mysql/recipes/server.rb
include_recipe "mysql::client"
THE RECIPE... PART 1
package "mysql-server" do
action :install
end
THE RECIPE... PART 2
template "/etc/mysql/my.cnf" do
source "my.cnf.erb"
owner "root"
group "root"
mode "0644"
notifies :restart,
resources(:service => "mysql"),
:immediately
end
THE RECIPE... PART 3
CHEF HEIRARCHY
Node
Roles
Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = <%= @datadir %>
bind-address = <%= @node[:mysql][:bind_address] %>
A TEMPLATE SAMPLE
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = <%= @datadir %>
bind-address = <%= @node[:mysql][:bind_address] %>
A TEMPLATE SAMPLE
OMG, ERB!!
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = <%= @datadir %>
bind-address = <%= @node[:mysql][:bind_address] %>
A TEMPLATE SAMPLE
From Attributes
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = <%= @datadir %>
bind-address = <%= @node[:mysql][:bind_address] %>
A TEMPLATE SAMPLE
FromTemplate
template "/etc/mysql/my.cnf" do
source "my.cnf.erb"
owner "root"
group "root"
mode "0644"
variables :datadir => “/var/lib/mysql”
end
ASSIGNING VARIABLES
CHEF HEIRARCHY
Node
Roles
Cookbooks
Cookbooks
Recipes Attributes Templates Definitions
define :apache_conf do
dir = node[:apache][:dir]
template "#{dir}/mods-available/#{params[:name]}.conf" do
source "mods/#{params[:name]}.conf.erb"
notifies :restart, resources(:service => "apache2")
end
end
# In your recipe
apache_conf "mod_ssl"
DEFINITIONS
TYING IT INTO CI
USE CHEFTO PROVISION CI
http://images.nationalgeographic.com/wpf/media-live/photos/000/148/custom/heart-ngk0207_14824_470x300.jpg
attribution
CHEF AS PART OF TEST SCRIPT
CONTINUOUS DEPLOYMENT
http://www.flickr.com/photos/andresthor/3946773501/sizes/l/in/photostream/
LET’S
WRAP
IT UP
http://www.flickr.com/photos/kenfagerdotcom/3409813881/
AUTOMATE EVERYTHING!!
Deploying == Provisioning
http://www.flickr.com/photos/martin_borjesson/4083726805/sizes/o/
USE CHEF!!!!!
ONTHE INTERNETS
ONTHE INTERNETS
•twitter - @cashion
ONTHE INTERNETS
•twitter - @cashion
•github - http://github.com/trotter
ONTHE INTERNETS
•twitter - @cashion
•github - http://github.com/trotter
•email - cashion on the gmailz
http://www.flickr.com/photos/dancoulter/21042744/sizes/o/
THANK YOU!
RESOURCES
RESOURCES
•http://wiki.opscode.com/display/chef/Resources
RESOURCES
•http://wiki.opscode.com/display/chef/Resources
•#chef on freenode
RESOURCES
•http://wiki.opscode.com/display/chef/Resources
•#chef on freenode
•cashion@gmail.com

Weitere ähnliche Inhalte

Was ist angesagt?

Rails Routes off the tracks
Rails Routes off the tracksRails Routes off the tracks
Rails Routes off the tracksSilvio Relli
 
Multisite Van Dyk Walkah
Multisite Van Dyk WalkahMultisite Van Dyk Walkah
Multisite Van Dyk Walkahjvandyk
 
Getting Started With Play Framework
Getting Started With Play FrameworkGetting Started With Play Framework
Getting Started With Play FrameworkTreasury user10
 
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」Yasuharu Nakano
 
Using Buildout to Develop and Deploy Python Projects
Using Buildout to Develop and Deploy Python ProjectsUsing Buildout to Develop and Deploy Python Projects
Using Buildout to Develop and Deploy Python ProjectsClayton Parker
 
Introduction to CouchDB
Introduction to CouchDBIntroduction to CouchDB
Introduction to CouchDBGavin Cooper
 
14 Ways to be Amazingly Productive!
14 Ways to be Amazingly Productive!14 Ways to be Amazingly Productive!
14 Ways to be Amazingly Productive!Harish
 
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehrBeyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehrJens-Christian Fischer
 
Data Citation from the perspective of tracking data reuse
Data Citation from the perspective of tracking data reuseData Citation from the perspective of tracking data reuse
Data Citation from the perspective of tracking data reuseHeather Piwowar
 
Discovering ElasticSearch
Discovering ElasticSearchDiscovering ElasticSearch
Discovering ElasticSearchBen Corlett
 
NantKwest Chairman & CEO Dr. Patrick Soon-Shiong to Present Vision for Next G...
NantKwest Chairman & CEO Dr. Patrick Soon-Shiong to Present Vision for Next G...NantKwest Chairman & CEO Dr. Patrick Soon-Shiong to Present Vision for Next G...
NantKwest Chairman & CEO Dr. Patrick Soon-Shiong to Present Vision for Next G...JillHollister
 
How to actually use promises - Jakob Mattsson, FishBrain
How to actually use promises - Jakob Mattsson, FishBrainHow to actually use promises - Jakob Mattsson, FishBrain
How to actually use promises - Jakob Mattsson, FishBrainCodemotion Tel Aviv
 
Continuous Integration Saves the Day
Continuous Integration Saves the DayContinuous Integration Saves the Day
Continuous Integration Saves the DayKurt Schrader
 
Default scopeの被害報告
Default scopeの被害報告Default scopeの被害報告
Default scopeの被害報告Ken Muryoi
 

Was ist angesagt? (16)

Rails Routes off the tracks
Rails Routes off the tracksRails Routes off the tracks
Rails Routes off the tracks
 
Multisite Van Dyk Walkah
Multisite Van Dyk WalkahMultisite Van Dyk Walkah
Multisite Van Dyk Walkah
 
Getting Started With Play Framework
Getting Started With Play FrameworkGetting Started With Play Framework
Getting Started With Play Framework
 
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
 
Using Buildout to Develop and Deploy Python Projects
Using Buildout to Develop and Deploy Python ProjectsUsing Buildout to Develop and Deploy Python Projects
Using Buildout to Develop and Deploy Python Projects
 
Introduction to CouchDB
Introduction to CouchDBIntroduction to CouchDB
Introduction to CouchDB
 
14 Ways to be Amazingly Productive!
14 Ways to be Amazingly Productive!14 Ways to be Amazingly Productive!
14 Ways to be Amazingly Productive!
 
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehrBeyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
 
Data Citation from the perspective of tracking data reuse
Data Citation from the perspective of tracking data reuseData Citation from the perspective of tracking data reuse
Data Citation from the perspective of tracking data reuse
 
Discovering ElasticSearch
Discovering ElasticSearchDiscovering ElasticSearch
Discovering ElasticSearch
 
Ipad gump
Ipad gumpIpad gump
Ipad gump
 
NantKwest Chairman & CEO Dr. Patrick Soon-Shiong to Present Vision for Next G...
NantKwest Chairman & CEO Dr. Patrick Soon-Shiong to Present Vision for Next G...NantKwest Chairman & CEO Dr. Patrick Soon-Shiong to Present Vision for Next G...
NantKwest Chairman & CEO Dr. Patrick Soon-Shiong to Present Vision for Next G...
 
How to actually use promises - Jakob Mattsson, FishBrain
How to actually use promises - Jakob Mattsson, FishBrainHow to actually use promises - Jakob Mattsson, FishBrain
How to actually use promises - Jakob Mattsson, FishBrain
 
Find,Mix And Show
Find,Mix And ShowFind,Mix And Show
Find,Mix And Show
 
Continuous Integration Saves the Day
Continuous Integration Saves the DayContinuous Integration Saves the Day
Continuous Integration Saves the Day
 
Default scopeの被害報告
Default scopeの被害報告Default scopeの被害報告
Default scopeの被害報告
 

Andere mochten auch

Andere mochten auch (6)

2012 03-27-scrum day-sweetrupture-v1.3a
2012 03-27-scrum day-sweetrupture-v1.3a2012 03-27-scrum day-sweetrupture-v1.3a
2012 03-27-scrum day-sweetrupture-v1.3a
 
Crmtalk12
Crmtalk12Crmtalk12
Crmtalk12
 
Healthcare6 04 03
Healthcare6 04 03Healthcare6 04 03
Healthcare6 04 03
 
Siliconslides
SiliconslidesSiliconslides
Siliconslides
 
Yncomp
YncompYncomp
Yncomp
 
Enron Aa12
Enron Aa12Enron Aa12
Enron Aa12
 

Ähnlich wie Squashing the Heisenbugs

Fisl 11 - Dicas de Desenvolvimento Web com Ruby
Fisl 11 - Dicas de Desenvolvimento Web com RubyFisl 11 - Dicas de Desenvolvimento Web com Ruby
Fisl 11 - Dicas de Desenvolvimento Web com RubyFabio Akita
 
Consegi 2010 - Dicas de Desenvolvimento Web com Ruby
Consegi 2010 - Dicas de Desenvolvimento Web com RubyConsegi 2010 - Dicas de Desenvolvimento Web com Ruby
Consegi 2010 - Dicas de Desenvolvimento Web com RubyFabio Akita
 
Using ArcGIS Server with Ruby on Rails
Using ArcGIS Server with Ruby on RailsUsing ArcGIS Server with Ruby on Rails
Using ArcGIS Server with Ruby on RailsDave Bouwman
 
Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)True-Vision
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainKen Collins
 
So you want to build a Facebook app
So you want to build a Facebook appSo you want to build a Facebook app
So you want to build a Facebook appkamal.fariz
 
Lights, Camera, Docker: Streaming Video at DramaFever
Lights, Camera, Docker: Streaming Video at DramaFeverLights, Camera, Docker: Streaming Video at DramaFever
Lights, Camera, Docker: Streaming Video at DramaFeverbridgetkromhout
 
Lightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClientLightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClientAdam Wiggins
 
Twitter bootstrap on rails
Twitter bootstrap on railsTwitter bootstrap on rails
Twitter bootstrap on railsMasakuni Kato
 
Deploy Rails Application by Capistrano
Deploy Rails Application by CapistranoDeploy Rails Application by Capistrano
Deploy Rails Application by CapistranoTasawr Interactive
 
Reliability & Scale in AWS while letting you sleep through the night
Reliability & Scale in AWS while letting you sleep through the night Reliability & Scale in AWS while letting you sleep through the night
Reliability & Scale in AWS while letting you sleep through the night Jos Boumans
 
SINATRA + HAML + TWITTER
SINATRA + HAML + TWITTERSINATRA + HAML + TWITTER
SINATRA + HAML + TWITTERElber Ribeiro
 
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...Alberto Perdomo
 
Agile Tour Shanghai December 2011
Agile Tour Shanghai December 2011Agile Tour Shanghai December 2011
Agile Tour Shanghai December 2011Alistair McKinnell
 
Socket applications
Socket applicationsSocket applications
Socket applicationsJoão Moura
 
Integração contínua com Hudson CI
Integração contínua com Hudson CIIntegração contínua com Hudson CI
Integração contínua com Hudson CIAlmir Mendes
 

Ähnlich wie Squashing the Heisenbugs (20)

Automate or Die
Automate or DieAutomate or Die
Automate or Die
 
Fisl 11 - Dicas de Desenvolvimento Web com Ruby
Fisl 11 - Dicas de Desenvolvimento Web com RubyFisl 11 - Dicas de Desenvolvimento Web com Ruby
Fisl 11 - Dicas de Desenvolvimento Web com Ruby
 
Consegi 2010 - Dicas de Desenvolvimento Web com Ruby
Consegi 2010 - Dicas de Desenvolvimento Web com RubyConsegi 2010 - Dicas de Desenvolvimento Web com Ruby
Consegi 2010 - Dicas de Desenvolvimento Web com Ruby
 
Using ArcGIS Server with Ruby on Rails
Using ArcGIS Server with Ruby on RailsUsing ArcGIS Server with Ruby on Rails
Using ArcGIS Server with Ruby on Rails
 
Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
 
Sprockets
SprocketsSprockets
Sprockets
 
So you want to build a Facebook app
So you want to build a Facebook appSo you want to build a Facebook app
So you want to build a Facebook app
 
Lights, Camera, Docker: Streaming Video at DramaFever
Lights, Camera, Docker: Streaming Video at DramaFeverLights, Camera, Docker: Streaming Video at DramaFever
Lights, Camera, Docker: Streaming Video at DramaFever
 
Lightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClientLightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClient
 
Twitter bootstrap on rails
Twitter bootstrap on railsTwitter bootstrap on rails
Twitter bootstrap on rails
 
Deploy Rails Application by Capistrano
Deploy Rails Application by CapistranoDeploy Rails Application by Capistrano
Deploy Rails Application by Capistrano
 
Reliability & Scale in AWS while letting you sleep through the night
Reliability & Scale in AWS while letting you sleep through the night Reliability & Scale in AWS while letting you sleep through the night
Reliability & Scale in AWS while letting you sleep through the night
 
Killer page load performance
Killer page load performanceKiller page load performance
Killer page load performance
 
SINATRA + HAML + TWITTER
SINATRA + HAML + TWITTERSINATRA + HAML + TWITTER
SINATRA + HAML + TWITTER
 
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
 
Agile Tour Shanghai December 2011
Agile Tour Shanghai December 2011Agile Tour Shanghai December 2011
Agile Tour Shanghai December 2011
 
Road to Rails
Road to RailsRoad to Rails
Road to Rails
 
Socket applications
Socket applicationsSocket applications
Socket applications
 
Integração contínua com Hudson CI
Integração contínua com Hudson CIIntegração contínua com Hudson CI
Integração contínua com Hudson CI
 

Kürzlich hochgeladen

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Kürzlich hochgeladen (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

Squashing the Heisenbugs