SlideShare a Scribd company logo
Ruby on Rails
AkitaOnRails.com
http://www.akitaonrails.com
http://www.locaweb.com.br/rails
1
Joel Spolsky
“Without understanding functional programming, you can't
 invent MapReduce, the algorithm that makes Google so
                   massively scalable.”




“The Perils of JavaSchools” - Joel Spolsky - 29/12/2005
   http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
“The terms Map and Reduce come from Lisp and
                functional programming...”




“The Perils of JavaSchools” - Joel Spolsky - 29/12/2005
   http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
“The very fact that Google invented MapReduce, and
  Microsoft didn't, says something about why Microsoft is
                 still playing catch up.”




“The Perils of JavaSchools” - Joel Spolsky - 29/12/2005
   http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
Codificadores
       x
Desenvolvedores
“SOFT”WARE
AGILIDADE
Estamos “descobrindo” maneiras melhores
    de desenvolver software na prática e
       ajudando outros a desenvolver.
Big Design Up
    Front
Big Design Up
    Front
Escopo Fechado
Escopo Fechado
Faseamento em
   Cascata
Faseamento em
   Cascata
“Change Request”
“Change Request”
Ceticismo
Winston W. Royce - 1970
“I believe in this concept,
             but the implementation
             described above is risky
                and invites failure.”




Winston W. Royce - 1970
“I believe in this concept,
             but the implementation
             described above is risky
                and invites failure.”




Winston W. Royce - 1970
“I believe in this concept,
             but the implementation
             described above is risky
                and invites failure.”




Winston W. Royce - 1970
“Cargo Cult”
2
“Matz”




                           1993
http://www.ruby-lang.org
“Prag Dave”




                                                             2001
http://www.rubycentral.com/book/
http://www.pragprog.com/titles/ruby3/programming-ruby-1-9
“DHH”


                               2004
http://www.rubyonrails.org
http://www.loudthinking.com
http://rubyonrails.org/screencasts
http://rubyonrails.org/screencasts
“Tornar as coisas simples
   fáceis e as coisas
 complexas possíveis”
         Filosofia Ruby
http://www.levenez.com/lang/
Ruby on Rails
RUBY

http://guides.rails.info/
ActiveSupport
                            Rails


                                    RUBY

http://guides.rails.info/
ActionController
                            ActionPack
                                                  ActionView


                                                ActiveSupport
                              Rails


                                         RUBY

http://guides.rails.info/
ActiveRecord
                                                ActionController
                            ActionPack
                                                  ActionView


                                                ActiveSupport
                              Rails


                                         RUBY

http://guides.rails.info/
ActionMailer
                     ActiveRecord
                                                ActionController
                            ActionPack
                                                  ActionView


                                                ActiveSupport
                              Rails


                                         RUBY

http://guides.rails.info/
ActiveResource            ActionWebService

                                                  ActionMailer
                     ActiveRecord
                                                ActionController
                            ActionPack
                                                  ActionView


                                                ActiveSupport
                              Rails


                                         RUBY

http://guides.rails.info/
RSpec
describe Product do
  include ProductSpecHelper

 before(:each) do
   @product = Product.new
 end

 it quot;should not be valid when emptyquot; do
   @product.should_not be_valid
 end

  it quot;should be valid when having correct informationquot; do
    @product.attributes = valid_product_attributes
    @product.should be_valid
  end
end
RSpec
describe Product do
  include ProductSpecHelper

 before(:each) do
   @product = Product.new
 end

 it quot;should not be valid when emptyquot; do
                      rake spec
   @product.should_not be_valid
 end

  it quot;should be valid when having correct informationquot; do
    @product.attributes = valid_product_attributes
    @product.should be_valid
  end
end
Model

class Product < ActiveRecord::Base
  after_create :set_initial_inventory

 has_many :variants, :dependent => :destroy
 has_many :images, :as => :viewable, :order => :position,
   :dependent => :destroy
 has_many :properties, :through => :product_properties
 belongs_to :tax_category

 validates_presence_of :name
 validates_presence_of :master_price
 validates_presence_of :description

  make_permalink :with => :name, :field => :permalink
end
Model

class Product < ActiveRecord::Base
  after_create :set_initial_inventory

 has_many :variants, :dependent => :destroy
 has_many :images, :as => :viewable, :order => :position,
   :dependent => :destroy
 has_many :properties, :through => :product_properties
                   Product.find(1)
 belongs_to :tax_category

 validates_presence_of :name
 validates_presence_of :master_price
 validates_presence_of :description

  make_permalink :with => :name, :field => :permalink
end
Controller

class UsersController < Spree::BaseController
  resource_controller
  before_filter :initialize_extension_partials
  actions :all, :except => [:index, :destroy]

 show.before do
   @orders = Order.checkout_completed(true)
     .find_all_by_user_id(current_user.id)
 end

 create.after {   self.current_user = @user }

  create.response do |wants|
    wants.html { redirect_back_or_default(products_path) }
  end
end
Controller

class UsersController < Spree::BaseController
  resource_controller
  before_filter :initialize_extension_partials
  actions :all, :except => [:index, :destroy]

 show.before do
   @orders = Order.checkout_completed(true)
                        /users/1
     .find_all_by_user_id(current_user.id)
 end

 create.after {   self.current_user = @user }

  create.response do |wants|
    wants.html { redirect_back_or_default(products_path) }
  end
end
Views ERB
<div id=quot;product-listingquot;>
  <%= breadcrumbs(@taxon) %>
  <br/>
  <%= render :partial => quot;shared/products.html.erbquot;,
  :locals => {:products => @products, :taxon => @taxon } %>
</div>

<% content_for :sidebar do %>
  <td id=quot;shop-by-colquot; valign=quot;topquot;>
    <%= render :partial => quot;shared/taxonomiesquot; %>
  </td>
<% end %>

<%= render :partial => 'shared/paginate',
  :locals => {:collection => @products, :options => {}}
  unless @products.empty? %>
Views HAML


#product-listing
  =breadcrumbs(@taxon)
  %br
  =render :partial => quot;shared/products.html.erbquot;,
  :locals => {:products => @products, :taxon => @taxon}

-content_for :sidebar do
  %td#shop-by-col(:valign => quot;topquot;)
    =render :partial => quot;shared/taxonomiesquot;

=render :partial => 'shared/paginate',
  :locals => {:collection => @products, :options => {}}
  unless @products.empty?
Rotas RESTFul


ActionController::Routing::Routes.draw do |map|
  map.connect ':controller/service.wsdl', :action => 'wsdl'

 map.resources :products,
   :member => {:change_image => :post}
 map.resources :addresses
 map.resources :orders,
   :has_many => [:line_items]

  map.namespace :admin do |admin|
    admin.resources :users
    admin.resources :products
  end
end
Rotas RESTFul


ActionController::Routing::Routes.draw do |map|
               GET /products/new
  map.connect ':controller/service.wsdl', :action => 'wsdl'
               GET /products
 map.resources :products,
               POST /products
   :member => {:change_image => :post}
 map.resources :addresses
               GET /products/1
 map.resources :orders,
               GET /products/1/edit
   :has_many => [:line_items]

 map.namespace PUT /products/1
               :admin do |admin|
               DESTROY /products/1
   admin.resources :users
    admin.resources :products
  end
end
Migrations


class RenameAppConfiguration < ActiveRecord::Migration
  def self.up
    rename_table :app_configurations, :configurations
    change_table :configurations do |t|
      t.string :type
    end
  end

  def self.down
    change_table :configurations do |t|
      t.remove :type
    end
    rename_table :configurations, :app_configurations
  end
end
Migrations


class RenameAppConfiguration < ActiveRecord::Migration
  def self.up
    rename_table :app_configurations, :configurations
    change_table :configurations do |t|
      t.string :type
    end
                 rake db:migrate
  end

  def self.down
    change_table :configurations do |t|
      t.remove :type
    end
    rename_table :configurations, :app_configurations
  end
end
“Beautiful Code”
http://weblog.jamisbuck.org/2008/11/9/legos-play-doh-and-programming
http://weblog.jamisbuck.org/2008/11/29/recovering-from-enterprise-video-available
11 mil classes!

                                     46 só de
                                    Collections!



http://weblog.jamisbuck.org/2008/11/9/legos-play-doh-and-programming
http://weblog.jamisbuck.org/2008/11/29/recovering-from-enterprise-video-available
• Classes:
• Modules:       • Array
 • Enumerable    • Hash
 • Comparable    • Set
                 • Sorted Set
1.400Classes:
             •
        classes
• Modules:    • Array
 • Enumerable    • Hash
 • Comparable 6 deSet
            só   •
        Collections! Set
                 • Sorted
• Convention over Configuration
• Don’t Repeat Yourself
• You Ain’t Gonna Need It
• Automação
• Boas Práticas
• Código Bonito
• Ferramentas Simples
http://macromates.com
http://www.apple.com/macbook
3
Mitos



http://www.loudthinking.com/posts/29-the-rails-myths
Rails não Escala
FUD: http://www.techcrunch.com/2008/05/22/twitter-at-scale-will-it-work/
To put things into
          perspective, though,
     Friendster was written in Java
        to start, and switched to
      PHP. Myspace was written in
      ColdFusion and transitioned
               to ASP.NET.

         When people run into
       problems scaling sites they
     often think that the language
     is the problem, but I think it’s
                                                                                          Blaine Cook
             rarely the case.

                                  http://www.akitaonrails.com/2008/6/17/chatting-with-blaine-cook-twitter


http://www.akitaonrails.com/2008/6/17/chatting-with-blaine-cook-twitter
“The New York Times used Ruby on Rails to pull
          together, analyze and display election results in
           near real time on one of its busiest Web
                         traffic days ever. ”




                 http://www.computerworld.com.au/article/268003/ruby_rails_rolls_into_enterprise?fp=16&fpid=1




http://www.computerworld.com/action/article.do?
command=viewArticleBasic&articleId=9120778
“They serve up 23 million visitors a month. The conversion resulted in 20,000 lines
         of Ruby code instead of 125,000 lines of Java code, and most importantly eased
        the difficulty they had in maintaining it. Once complete, and optimized their site
        is now faster than before. They also completed the rewrite in three months with
                                         four developers.”




                       http://www.railsonwave.com/railsonwave/2008/6/4/yellowpages-com-migrates-to-rails




http://www.akitaonrails.com/2008/11/21/rails-podcast-brasil-qcon-special-john-straw-
yellowpages-com-and-matt-aimonetti-merb
http://www.rubyonrailsexamples.com/sites-on-rails/yellowpagescom-goes-ror/
http://www.techcrunch.com/2008/01/24/hulu-discusses-private-beta-suggests-public-
launch-time-frame/
http://www.blogblogs.com.br
Mitos
Deployment de
 Rails é difícil
Apache + FastCGI

LightTPD + FastCGI

 Litespeed + SAPI

Apache + Mongrel

 Nginx + Mongrel

   Nginx + Thin
Apache + FastCGI

LightTPD + FastCGI

 Litespeed + SAPI

Apache + Mongrel

 Nginx + Mongrel

   Nginx + Thin
Apache + FastCGI

LightTPD + FastCGI

 Litespeed + SAPI

Apache + Mongrel

 Nginx + Mongrel

   Nginx + Thin
Apache + FastCGI

LightTPD + FastCGI

 Litespeed + SAPI

Apache + Mongrel

 Nginx + Mongrel

   Nginx + Thin
Apache + FastCGI

LightTPD + FastCGI

 Litespeed + SAPI

Apache + Mongrel

 Nginx + Mongrel

   Nginx + Thin
Apache + FastCGI

LightTPD + FastCGI

 Litespeed + SAPI

Apache + Mongrel

 Nginx + Mongrel

   Nginx + Thin
http://phusion.nl
http://www.modrails.com/
gem install passenger
        passenger-install-apache2-module




http://phusion.nl
http://www.modrails.com/
Mitos
Rails é mal
documentado
Geoffrey
http://www.peepcode.com
Jason e Gregg
http://railsenvy.com
http://envycasts.com
Ryan Bates
http://railscasts.com
Pratik Naik
http://guides.rails.info/
Satish Talim
http://rubylearning.org
Peter Cooper
http://rubyinside.com
http://railsinside.com
http://rubyflow.com
http://jrubyinside.com
_why
http://whytheluckysti.net/
http://www.amazon.com/s/ref=nb_ss_gw?url=search-alias%3Dstripbooksfield-keywords=ruby+railsx=0y=0
4
Open Source
Chris Wanstrath
http://github.com
http://rubyforge.org
http://gitorious.org
http://jruby.codehaus.org
http://www.macruby.org
http://www.ironruby.net
http://ruby.gemstone.com/
http://gettingreal.37signals.com/GR_por.php
http://aprendaaprogramar.rubyonrails.pro.br/
http://why.nomedojogo.com/
http://rubyonrails.pro.br
http://gettingreal.37signals.com/GR_por.php
http://aprendaaprogramar.rubyonrails.pro.br/
http://why.nomedojogo.com/
http://rubyonrails.pro.br
Conferências
http://www.confreaks.com/
http://www.akitaonrails.com/railsconf2008
http://www.locaweb.com.br/railssummit
http://www.akitaonrails.com/railssummit2008
Especialista de
uma coisa só é um
amador em todo o
     resto.
Obrigado!
www.akitaonrails.com

More Related Content

What's hot

Intro to Ember.js
Intro to Ember.jsIntro to Ember.js
Intro to Ember.js
Jay Phelps
 
Practical Protocol-Oriented-Programming
Practical Protocol-Oriented-ProgrammingPractical Protocol-Oriented-Programming
Practical Protocol-Oriented-Programming
Natasha Murashev
 
Rails 3.1 Asset Pipeline
Rails 3.1 Asset PipelineRails 3.1 Asset Pipeline
Rails 3.1 Asset Pipeline
eallam
 
Intro to Ember.JS 2016
Intro to Ember.JS 2016Intro to Ember.JS 2016
Intro to Ember.JS 2016
Sandino Núñez
 
Ember vs Backbone
Ember vs BackboneEmber vs Backbone
Ember vs Backbone
Abdriy Mosin
 
AngularJS vs. Ember.js vs. Backbone.js
AngularJS vs. Ember.js vs. Backbone.jsAngularJS vs. Ember.js vs. Backbone.js
AngularJS vs. Ember.js vs. Backbone.js
Mark
 
How to quickly make REST APIs with CompoundJS
How to quickly make REST APIs with CompoundJSHow to quickly make REST APIs with CompoundJS
How to quickly make REST APIs with CompoundJS
Frank Rousseau
 
Rails 3 Beginner to Builder 2011 Week 8
Rails 3 Beginner to Builder 2011 Week 8Rails 3 Beginner to Builder 2011 Week 8
Rails 3 Beginner to Builder 2011 Week 8
Richard Schneeman
 
Rails Engine | Modular application
Rails Engine | Modular applicationRails Engine | Modular application
Rails Engine | Modular application
mirrec
 

What's hot (9)

Intro to Ember.js
Intro to Ember.jsIntro to Ember.js
Intro to Ember.js
 
Practical Protocol-Oriented-Programming
Practical Protocol-Oriented-ProgrammingPractical Protocol-Oriented-Programming
Practical Protocol-Oriented-Programming
 
Rails 3.1 Asset Pipeline
Rails 3.1 Asset PipelineRails 3.1 Asset Pipeline
Rails 3.1 Asset Pipeline
 
Intro to Ember.JS 2016
Intro to Ember.JS 2016Intro to Ember.JS 2016
Intro to Ember.JS 2016
 
Ember vs Backbone
Ember vs BackboneEmber vs Backbone
Ember vs Backbone
 
AngularJS vs. Ember.js vs. Backbone.js
AngularJS vs. Ember.js vs. Backbone.jsAngularJS vs. Ember.js vs. Backbone.js
AngularJS vs. Ember.js vs. Backbone.js
 
How to quickly make REST APIs with CompoundJS
How to quickly make REST APIs with CompoundJSHow to quickly make REST APIs with CompoundJS
How to quickly make REST APIs with CompoundJS
 
Rails 3 Beginner to Builder 2011 Week 8
Rails 3 Beginner to Builder 2011 Week 8Rails 3 Beginner to Builder 2011 Week 8
Rails 3 Beginner to Builder 2011 Week 8
 
Rails Engine | Modular application
Rails Engine | Modular applicationRails Engine | Modular application
Rails Engine | Modular application
 

Viewers also liked

Open Social Shindig Preso for FB and OpenSocial Meetup
Open Social Shindig Preso for FB and OpenSocial MeetupOpen Social Shindig Preso for FB and OpenSocial Meetup
Open Social Shindig Preso for FB and OpenSocial Meetup
Chris Schalk
 
An Invitation To Happiness
An Invitation To HappinessAn Invitation To Happiness
An Invitation To HappinessAsad Ali
 
sunoco 2005 Proxy
sunoco 	2005 Proxysunoco 	2005 Proxy
sunoco 2005 Proxyfinance6
 
fannie mae Proxy Statement2002
fannie mae  Proxy Statement2002fannie mae  Proxy Statement2002
fannie mae Proxy Statement2002finance6
 
fannie mae 2008 Second Quarter Earnings
fannie mae 2008 Second Quarter Earningsfannie mae 2008 Second Quarter Earnings
fannie mae 2008 Second Quarter Earningsfinance6
 

Viewers also liked (6)

Open Social Shindig Preso for FB and OpenSocial Meetup
Open Social Shindig Preso for FB and OpenSocial MeetupOpen Social Shindig Preso for FB and OpenSocial Meetup
Open Social Shindig Preso for FB and OpenSocial Meetup
 
An Invitation To Happiness
An Invitation To HappinessAn Invitation To Happiness
An Invitation To Happiness
 
sunoco 2005 Proxy
sunoco 	2005 Proxysunoco 	2005 Proxy
sunoco 2005 Proxy
 
fannie mae Proxy Statement2002
fannie mae  Proxy Statement2002fannie mae  Proxy Statement2002
fannie mae Proxy Statement2002
 
Womande John Lennon
Womande John LennonWomande John Lennon
Womande John Lennon
 
fannie mae 2008 Second Quarter Earnings
fannie mae 2008 Second Quarter Earningsfannie mae 2008 Second Quarter Earnings
fannie mae 2008 Second Quarter Earnings
 

Similar to Ruby on Rails na Unip

Building Dynamic Navigation in your Rails 4 Layout
Building Dynamic Navigation in your Rails 4 LayoutBuilding Dynamic Navigation in your Rails 4 Layout
Building Dynamic Navigation in your Rails 4 Layout
Alexander Miller
 
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
Fabio Akita
 
Why you should add React to your Rails application now!
Why you should add React to your Rails application now!Why you should add React to your Rails application now!
Why you should add React to your Rails application now!
David Roberts
 
2012-04-18-shibuyarb-offline-mobile-app-has-great-potential
2012-04-18-shibuyarb-offline-mobile-app-has-great-potential2012-04-18-shibuyarb-offline-mobile-app-has-great-potential
2012-04-18-shibuyarb-offline-mobile-app-has-great-potentialKenichi Murahashi
 
Introduction to Rails - presented by Arman Ortega
Introduction to Rails - presented by Arman OrtegaIntroduction to Rails - presented by Arman Ortega
Introduction to Rails - presented by Arman Ortega
arman o
 
Pourquoi ruby et rails déchirent
Pourquoi ruby et rails déchirentPourquoi ruby et rails déchirent
Pourquoi ruby et rails déchirent
Nicolas Ledez
 
Play vs Rails
Play vs RailsPlay vs Rails
Play vs Rails
Daniel Cukier
 
Rails::Engine
Rails::EngineRails::Engine
Rails::Engine
Flavian Missi
 
浜松Rails3道場 其の四 View編
浜松Rails3道場 其の四 View編浜松Rails3道場 其の四 View編
浜松Rails3道場 其の四 View編Masakuni Kato
 
Introduction To Ruby On Rails
Introduction To Ruby On RailsIntroduction To Ruby On Rails
Introduction To Ruby On Rails
Steve Keener
 
Ride on the Fast Track of Web with Ruby on Rails- Part 2
Ride on the Fast Track of Web with Ruby on Rails- Part 2Ride on the Fast Track of Web with Ruby on Rails- Part 2
Ride on the Fast Track of Web with Ruby on Rails- Part 2
A.K.M. Ahsrafuzzaman
 
Advanced RESTful Rails
Advanced RESTful RailsAdvanced RESTful Rails
Advanced RESTful Rails
Viget Labs
 
Advanced RESTful Rails
Advanced RESTful RailsAdvanced RESTful Rails
Advanced RESTful Rails
Ben Scofield
 
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
Fabio Akita
 
Spring into rails
Spring into railsSpring into rails
Spring into rails
Hiro Asari
 
Supa fast Ruby + Rails
Supa fast Ruby + RailsSupa fast Ruby + Rails
Supa fast Ruby + Rails
Jean-Baptiste Feldis
 
S314011 - Developing Composite Applications for the Cloud with Apache Tuscany
S314011 - Developing Composite Applications for the Cloud with Apache TuscanyS314011 - Developing Composite Applications for the Cloud with Apache Tuscany
S314011 - Developing Composite Applications for the Cloud with Apache Tuscany
Luciano Resende
 
Taking your Web App for a walk
Taking your Web App for a walkTaking your Web App for a walk
Taking your Web App for a walk
Jens-Christian Fischer
 
Introduction à Ruby
Introduction à RubyIntroduction à Ruby
Introduction à Ruby
Microsoft
 

Similar to Ruby on Rails na Unip (20)

Building Dynamic Navigation in your Rails 4 Layout
Building Dynamic Navigation in your Rails 4 LayoutBuilding Dynamic Navigation in your Rails 4 Layout
Building Dynamic Navigation in your Rails 4 Layout
 
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
 
The Rails Way
The Rails WayThe Rails Way
The Rails Way
 
Why you should add React to your Rails application now!
Why you should add React to your Rails application now!Why you should add React to your Rails application now!
Why you should add React to your Rails application now!
 
2012-04-18-shibuyarb-offline-mobile-app-has-great-potential
2012-04-18-shibuyarb-offline-mobile-app-has-great-potential2012-04-18-shibuyarb-offline-mobile-app-has-great-potential
2012-04-18-shibuyarb-offline-mobile-app-has-great-potential
 
Introduction to Rails - presented by Arman Ortega
Introduction to Rails - presented by Arman OrtegaIntroduction to Rails - presented by Arman Ortega
Introduction to Rails - presented by Arman Ortega
 
Pourquoi ruby et rails déchirent
Pourquoi ruby et rails déchirentPourquoi ruby et rails déchirent
Pourquoi ruby et rails déchirent
 
Play vs Rails
Play vs RailsPlay vs Rails
Play vs Rails
 
Rails::Engine
Rails::EngineRails::Engine
Rails::Engine
 
浜松Rails3道場 其の四 View編
浜松Rails3道場 其の四 View編浜松Rails3道場 其の四 View編
浜松Rails3道場 其の四 View編
 
Introduction To Ruby On Rails
Introduction To Ruby On RailsIntroduction To Ruby On Rails
Introduction To Ruby On Rails
 
Ride on the Fast Track of Web with Ruby on Rails- Part 2
Ride on the Fast Track of Web with Ruby on Rails- Part 2Ride on the Fast Track of Web with Ruby on Rails- Part 2
Ride on the Fast Track of Web with Ruby on Rails- Part 2
 
Advanced RESTful Rails
Advanced RESTful RailsAdvanced RESTful Rails
Advanced RESTful Rails
 
Advanced RESTful Rails
Advanced RESTful RailsAdvanced RESTful Rails
Advanced RESTful Rails
 
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
 
Spring into rails
Spring into railsSpring into rails
Spring into rails
 
Supa fast Ruby + Rails
Supa fast Ruby + RailsSupa fast Ruby + Rails
Supa fast Ruby + Rails
 
S314011 - Developing Composite Applications for the Cloud with Apache Tuscany
S314011 - Developing Composite Applications for the Cloud with Apache TuscanyS314011 - Developing Composite Applications for the Cloud with Apache Tuscany
S314011 - Developing Composite Applications for the Cloud with Apache Tuscany
 
Taking your Web App for a walk
Taking your Web App for a walkTaking your Web App for a walk
Taking your Web App for a walk
 
Introduction à Ruby
Introduction à RubyIntroduction à Ruby
Introduction à Ruby
 

More from Fabio Akita

Devconf 2019 - São Carlos
Devconf 2019 - São CarlosDevconf 2019 - São Carlos
Devconf 2019 - São Carlos
Fabio Akita
 
Meetup Nerdzão - English Talk about Languages
Meetup Nerdzão  - English Talk about LanguagesMeetup Nerdzão  - English Talk about Languages
Meetup Nerdzão - English Talk about Languages
Fabio Akita
 
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Fabio Akita
 
Desmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SPDesmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SP
Fabio Akita
 
Desmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter GoianiaDesmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter Goiania
Fabio Akita
 
Blockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7MastersBlockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7Masters
Fabio Akita
 
Elixir -Tolerância a Falhas para Adultos - GDG Campinas
Elixir  -Tolerância a Falhas para Adultos - GDG CampinasElixir  -Tolerância a Falhas para Adultos - GDG Campinas
Elixir -Tolerância a Falhas para Adultos - GDG Campinas
Fabio Akita
 
Desmistificando Mitos de Tech Startups - Intercon 2017
Desmistificando Mitos de Tech Startups - Intercon 2017Desmistificando Mitos de Tech Startups - Intercon 2017
Desmistificando Mitos de Tech Startups - Intercon 2017
Fabio Akita
 
30 Days to Elixir and Crystal and Back to Ruby
30 Days to Elixir and Crystal and Back to Ruby30 Days to Elixir and Crystal and Back to Ruby
30 Days to Elixir and Crystal and Back to Ruby
Fabio Akita
 
Uma Discussão sobre a Carreira de TI
Uma Discussão sobre a Carreira de TIUma Discussão sobre a Carreira de TI
Uma Discussão sobre a Carreira de TI
Fabio Akita
 
THE CONF - Opening Keynote
THE CONF - Opening KeynoteTHE CONF - Opening Keynote
THE CONF - Opening Keynote
Fabio Akita
 
A Journey through New Languages - Rancho Dev 2017
A Journey through New Languages - Rancho Dev 2017A Journey through New Languages - Rancho Dev 2017
A Journey through New Languages - Rancho Dev 2017
Fabio Akita
 
Desmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - APDesmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - AP
Fabio Akita
 
A Journey through New Languages - Guru Sorocaba 2017
A Journey through New Languages - Guru Sorocaba 2017A Journey through New Languages - Guru Sorocaba 2017
A Journey through New Languages - Guru Sorocaba 2017
Fabio Akita
 
A Journey through New Languages - Insiter 2017
A Journey through New Languages - Insiter 2017A Journey through New Languages - Insiter 2017
A Journey through New Languages - Insiter 2017
Fabio Akita
 
A Journey through New Languages - Locaweb Tech Day
A Journey through New Languages - Locaweb Tech DayA Journey through New Languages - Locaweb Tech Day
A Journey through New Languages - Locaweb Tech Day
Fabio Akita
 
A Journey through new Languages - Intercon 2016
A Journey through new Languages - Intercon 2016A Journey through new Languages - Intercon 2016
A Journey through new Languages - Intercon 2016
Fabio Akita
 
Premature Optimization 2.0 - Intercon 2016
Premature Optimization 2.0 - Intercon 2016Premature Optimization 2.0 - Intercon 2016
Premature Optimization 2.0 - Intercon 2016
Fabio Akita
 
Conexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização PrematuraConexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização Prematura
Fabio Akita
 
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All EvilThe Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
Fabio Akita
 

More from Fabio Akita (20)

Devconf 2019 - São Carlos
Devconf 2019 - São CarlosDevconf 2019 - São Carlos
Devconf 2019 - São Carlos
 
Meetup Nerdzão - English Talk about Languages
Meetup Nerdzão  - English Talk about LanguagesMeetup Nerdzão  - English Talk about Languages
Meetup Nerdzão - English Talk about Languages
 
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
 
Desmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SPDesmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SP
 
Desmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter GoianiaDesmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter Goiania
 
Blockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7MastersBlockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7Masters
 
Elixir -Tolerância a Falhas para Adultos - GDG Campinas
Elixir  -Tolerância a Falhas para Adultos - GDG CampinasElixir  -Tolerância a Falhas para Adultos - GDG Campinas
Elixir -Tolerância a Falhas para Adultos - GDG Campinas
 
Desmistificando Mitos de Tech Startups - Intercon 2017
Desmistificando Mitos de Tech Startups - Intercon 2017Desmistificando Mitos de Tech Startups - Intercon 2017
Desmistificando Mitos de Tech Startups - Intercon 2017
 
30 Days to Elixir and Crystal and Back to Ruby
30 Days to Elixir and Crystal and Back to Ruby30 Days to Elixir and Crystal and Back to Ruby
30 Days to Elixir and Crystal and Back to Ruby
 
Uma Discussão sobre a Carreira de TI
Uma Discussão sobre a Carreira de TIUma Discussão sobre a Carreira de TI
Uma Discussão sobre a Carreira de TI
 
THE CONF - Opening Keynote
THE CONF - Opening KeynoteTHE CONF - Opening Keynote
THE CONF - Opening Keynote
 
A Journey through New Languages - Rancho Dev 2017
A Journey through New Languages - Rancho Dev 2017A Journey through New Languages - Rancho Dev 2017
A Journey through New Languages - Rancho Dev 2017
 
Desmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - APDesmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - AP
 
A Journey through New Languages - Guru Sorocaba 2017
A Journey through New Languages - Guru Sorocaba 2017A Journey through New Languages - Guru Sorocaba 2017
A Journey through New Languages - Guru Sorocaba 2017
 
A Journey through New Languages - Insiter 2017
A Journey through New Languages - Insiter 2017A Journey through New Languages - Insiter 2017
A Journey through New Languages - Insiter 2017
 
A Journey through New Languages - Locaweb Tech Day
A Journey through New Languages - Locaweb Tech DayA Journey through New Languages - Locaweb Tech Day
A Journey through New Languages - Locaweb Tech Day
 
A Journey through new Languages - Intercon 2016
A Journey through new Languages - Intercon 2016A Journey through new Languages - Intercon 2016
A Journey through new Languages - Intercon 2016
 
Premature Optimization 2.0 - Intercon 2016
Premature Optimization 2.0 - Intercon 2016Premature Optimization 2.0 - Intercon 2016
Premature Optimization 2.0 - Intercon 2016
 
Conexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização PrematuraConexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização Prematura
 
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All EvilThe Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
 

Recently uploaded

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 

Ruby on Rails na Unip