SlideShare a Scribd company logo
1 of 108
Download to read offline
Ecossistema Rails
                            Desenvolvedores Web 2.0


Tuesday, January 20, 2009
AkitaOnRails




Tuesday, January 20, 2009
Tuesday, January 20, 2009
http://www.akitaonrails.com
Tuesday, January 20, 2009
http://www.locaweb.com.br/rails
1
Tuesday, January 20, 2009
“Matz”




                            1993
Tuesday, January 20, 2009
http://www.ruby-lang.org
“Prag Dave”




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


                               2004
Tuesday, January 20, 2009
http://www.rubyonrails.org
http://www.loudthinking.com
Tuesday, January 20, 2009
http://rubyonrails.org/screencasts
Tuesday, January 20, 2009
http://rubyonrails.org/screencasts
“Tornar as coisas simples
                fáceis e as coisas
              complexas possíveis”
                            Filosofia Ruby



Tuesday, January 20, 2009
Tuesday, January 20, 2009
http://www.levenez.com/lang/
Ruby on Rails



Tuesday, January 20, 2009
RUBY

Tuesday, January 20, 2009
http://guides.rails.info/
ActiveSupport
                            Rails


                                    RUBY

Tuesday, January 20, 2009
http://guides.rails.info/
ActionController
                            ActionPack
                                                  ActionView


                                                ActiveSupport
                              Rails


                                         RUBY

Tuesday, January 20, 2009
http://guides.rails.info/
ActiveRecord
                                                ActionController
                            ActionPack
                                                  ActionView


                                                ActiveSupport
                              Rails


                                         RUBY

Tuesday, January 20, 2009
http://guides.rails.info/
ActionMailer
                     ActiveRecord
                                                ActionController
                            ActionPack
                                                  ActionView


                                                ActiveSupport
                              Rails


                                         RUBY

Tuesday, January 20, 2009
http://guides.rails.info/
ActiveResource            ActionWebService

                                                  ActionMailer
                     ActiveRecord
                                                ActionController
                            ActionPack
                                                  ActionView


                                                ActiveSupport
                              Rails


                                         RUBY

Tuesday, January 20, 2009
http://guides.rails.info/
Tuesday, January 20, 2009
Tuesday, January 20, 2009
Tuesday, January 20, 2009
Tuesday, January 20, 2009
Tuesday, January 20, 2009
Tuesday, January 20, 2009
Tuesday, January 20, 2009
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



Tuesday, January 20, 2009
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



Tuesday, January 20, 2009
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




Tuesday, January 20, 2009
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




Tuesday, January 20, 2009
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


Tuesday, January 20, 2009
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


Tuesday, January 20, 2009
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? %>



Tuesday, January 20, 2009
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?




Tuesday, January 20, 2009
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



Tuesday, January 20, 2009
Rotas RESTFul


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

       map.namespacePUT /products/1
                     :admin do |admin|
                    DESTROY /products/1
         admin.resources :users
         admin.resources :products
    end
  end



Tuesday, January 20, 2009
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


Tuesday, January 20, 2009
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


Tuesday, January 20, 2009
“Beautiful Code”



Tuesday, January 20, 2009
Tuesday, January 20, 2009
Tuesday, January 20, 2009
Tuesday, January 20, 2009
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!


Tuesday, January 20, 2009
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

Tuesday, January 20, 2009
1.400 Classes:
                                  •
                             classesArray
                     • Modules:     •
                      • Enumerable    • Hash
                      • Comparable 6 de Set
                                só    •
                                      • Sorted
                           Collections! Set


Tuesday, January 20, 2009
• Convention over Configuration
     • Don’t Repeat Yourself
     • You Ain’t Gonna Need It
     • Automação
     • Boas Práticas
     • Código Bonito
     • Ferramentas Simples



Tuesday, January 20, 2009
Tuesday, January 20, 2009
http://macromates.com
http://www.apple.com/macbook
2
Tuesday, January 20, 2009
Mitos



Tuesday, January 20, 2009
http://www.loudthinking.com/posts/29-the-rails-myths
Ruby tem
                    marketshare
                   menor que Java
                      ou PHP

Tuesday, January 20, 2009
Qual foi o concurso?

                                         Qual foi o prêmio?



Tuesday, January 20, 2009
http://gilesbowkett.blogspot.com/2009/01/why-hacker-news-thinks-php-won.html
Tuesday, January 20, 2009
http://www.google.com/trends?q=ruby+rails%2C+python+django%2C+grails%2C+zend
Tuesday, January 20, 2009
http://www.google.com/trends?q=microsoft+windows%2C
+linux&ctab=0&geo=all&date=all&sort=0
Tuesday, January 20, 2009
http://www.roughlydrafted.com/2008/10/25/apple-earnings-profits-and-cash-embarrass-
microsoft-2/
Tuesday, January 20, 2009
Tuesday, January 20, 2009
Tuesday, January 20, 2009
Martin Fowler




Tuesday, January 20, 2009
http://www.thoughtworks.com/how-we-do-it/ruby.html
Agile




Tuesday, January 20, 2009
http://pragdave.pragprog.com/
Mitos



Tuesday, January 20, 2009
Rails não Escala



Tuesday, January 20, 2009
Tuesday, January 20, 2009
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
                                                                                 Blaine Cook
           it’s rarely the case.

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


Tuesday, January 20, 2009
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




Tuesday, January 20, 2009

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




Tuesday, January 20, 2009

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/
Tuesday, January 20, 2009

http://www.techcrunch.com/2008/01/24/hulu-discusses-private-beta-
suggests-public-launch-time-frame/
Tuesday, January 20, 2009

http://www.blogblogs.com.br
Mitos



Tuesday, January 20, 2009
Deployment de
                       Rails é difícil


Tuesday, January 20, 2009
Tuesday, January 20, 2009
Apache + FastCGI

                            LightTPD + FastCGI

                             Litespeed + SAPI

                            Apache + Mongrel

                             Nginx + Mongrel

                               Nginx + Thin


Tuesday, January 20, 2009
Apache + FastCGI

                            LightTPD + FastCGI

                             Litespeed + SAPI

                            Apache + Mongrel

                             Nginx + Mongrel

                               Nginx + Thin


Tuesday, January 20, 2009
Apache + FastCGI

                            LightTPD + FastCGI

                             Litespeed + SAPI

                            Apache + Mongrel

                             Nginx + Mongrel

                               Nginx + Thin


Tuesday, January 20, 2009
Apache + FastCGI

                            LightTPD + FastCGI

                             Litespeed + SAPI

                            Apache + Mongrel

                             Nginx + Mongrel

                               Nginx + Thin


Tuesday, January 20, 2009
Apache + FastCGI

                            LightTPD + FastCGI

                             Litespeed + SAPI

                            Apache + Mongrel

                             Nginx + Mongrel

                               Nginx + Thin


Tuesday, January 20, 2009
Apache + FastCGI

                            LightTPD + FastCGI

                             Litespeed + SAPI

                            Apache + Mongrel

                             Nginx + Mongrel

                               Nginx + Thin


Tuesday, January 20, 2009
Tuesday, January 20, 2009
http://phusion.nl
http://www.modrails.com/
gem install passenger
         passenger-install-apache2-module




Tuesday, January 20, 2009
http://phusion.nl
http://www.modrails.com/
Tuesday, January 20, 2009
Tuesday, January 20, 2009
Mitos



Tuesday, January 20, 2009
Rails é mal
                            documentado


Tuesday, January 20, 2009
Geoffrey
Tuesday, January 20, 2009
http://www.peepcode.com
Jason e Gregg
Tuesday, January 20, 2009
http://railsenvy.com
http://envycasts.com
Ryan Bates
Tuesday, January 20, 2009
http://railscasts.com
Pratik Naik
Tuesday, January 20, 2009
http://guides.rails.info/
Satish Talim
Tuesday, January 20, 2009
http://rubylearning.org
Peter Cooper
Tuesday, January 20, 2009
http://rubyinside.com
http://railsinside.com
http://rubyflow.com
http://jrubyinside.com
http://yorails.com
_why
Tuesday, January 20, 2009
http://whytheluckysti.net/
Tuesday, January 20, 2009
http://www.amazon.com/s/ref=nb_ss_gw?url=search-alias%3Dstripbooksfield-keywords=ruby
+railsx=0y=0
Tuesday, January 20, 2009
3
Tuesday, January 20, 2009
Mitos



Tuesday, January 20, 2009
Open Source



Tuesday, January 20, 2009
Chris Wanstrath
Tuesday, January 20, 2009
http://github.com
Tuesday, January 20, 2009
http://rubyforge.org
http://gitorious.org
Tuesday, January 20, 2009
http://jruby.codehaus.org
http://www.macruby.org
http://www.ironruby.net
http://ruby.gemstone.com/
http://rubini.us/
Tuesday, January 20, 2009
http://gettingreal.37signals.com/GR_por.php
http://aprendaaprogramar.rubyonrails.pro.br/
http://why.nomedojogo.com/
http://rubyonrails.pro.br
http://rubyonbr.org
Tuesday, January 20, 2009
http://gettingreal.37signals.com/GR_por.php
http://aprendaaprogramar.rubyonrails.pro.br/
http://why.nomedojogo.com/
http://rubyonrails.pro.br
http://rubyonbr.org
Conferências



Tuesday, January 20, 2009
Tuesday, January 20, 2009
http://www.confreaks.com/
http://www.akitaonrails.com/railsconf2008
Tuesday, January 20, 2009
http://www.locaweb.com.br/railssummit
http://www.akitaonrails.com/railssummit2008
Tuesday, January 20, 2009
Tuesday, January 20, 2009
Tuesday, January 20, 2009
Tuesday, January 20, 2009
Especialista de
                     uma coisa só é
                     um amador em
                      todo o resto.

Tuesday, January 20, 2009
Obrigado!
Tuesday, January 20, 2009

More Related Content

Similar to Ecossistema Rails Campus Party 09

Rails For Kids 2009
Rails For Kids 2009Rails For Kids 2009
Rails For Kids 2009Fabio Akita
 
2013 - Nate Abele: HTTP ALL THE THINGS: Simplificando aplicaciones respetando...
2013 - Nate Abele: HTTP ALL THE THINGS: Simplificando aplicaciones respetando...2013 - Nate Abele: HTTP ALL THE THINGS: Simplificando aplicaciones respetando...
2013 - Nate Abele: HTTP ALL THE THINGS: Simplificando aplicaciones respetando...PHP Conference Argentina
 
Choosing a Javascript Framework
Choosing a Javascript FrameworkChoosing a Javascript Framework
Choosing a Javascript FrameworkAll Things Open
 
Introduction to Redux (for Angular and React devs)
Introduction to Redux (for Angular and React devs)Introduction to Redux (for Angular and React devs)
Introduction to Redux (for Angular and React devs)Fabio Biondi
 
feature flagging with rails engines v0.2
feature flagging with rails engines v0.2 feature flagging with rails engines v0.2
feature flagging with rails engines v0.2 Enrico Teotti
 
Feature flagging with rails engines
Feature flagging with rails enginesFeature flagging with rails engines
Feature flagging with rails enginesEnrico Teotti
 
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
 
Complex Architectures in Ember
Complex Architectures in EmberComplex Architectures in Ember
Complex Architectures in EmberMatthew Beale
 
Arquitetura de Front-end em Aplicações de Larga Escala
Arquitetura de Front-end em Aplicações de Larga EscalaArquitetura de Front-end em Aplicações de Larga Escala
Arquitetura de Front-end em Aplicações de Larga EscalaEduardo Shiota Yasuda
 
BarCamp CR 2013 - Angularjs - Brian Salazar
BarCamp CR 2013 - Angularjs - Brian SalazarBarCamp CR 2013 - Angularjs - Brian Salazar
BarCamp CR 2013 - Angularjs - Brian Salazarbarcampcr
 
Ruby on-rails-workshop
Ruby on-rails-workshopRuby on-rails-workshop
Ruby on-rails-workshopRyan Abbott
 
Building a dashboard using AngularJS
Building a dashboard using AngularJSBuilding a dashboard using AngularJS
Building a dashboard using AngularJSRajthilakMCA
 
Ember.js for SFHTML5
Ember.js for SFHTML5Ember.js for SFHTML5
Ember.js for SFHTML5Anthony Bull
 
Useful Rails Plugins
Useful Rails PluginsUseful Rails Plugins
Useful Rails Pluginsnavjeet
 
Api development with rails
Api development with railsApi development with rails
Api development with railsEdwin Cruz
 

Similar to Ecossistema Rails Campus Party 09 (20)

Rails For Kids 2009
Rails For Kids 2009Rails For Kids 2009
Rails For Kids 2009
 
Rails::Engine
Rails::EngineRails::Engine
Rails::Engine
 
Enecomp 2009
Enecomp 2009Enecomp 2009
Enecomp 2009
 
Dev In Rio 2009
Dev In Rio 2009Dev In Rio 2009
Dev In Rio 2009
 
2013 - Nate Abele: HTTP ALL THE THINGS: Simplificando aplicaciones respetando...
2013 - Nate Abele: HTTP ALL THE THINGS: Simplificando aplicaciones respetando...2013 - Nate Abele: HTTP ALL THE THINGS: Simplificando aplicaciones respetando...
2013 - Nate Abele: HTTP ALL THE THINGS: Simplificando aplicaciones respetando...
 
Catalog display
Catalog displayCatalog display
Catalog display
 
Choosing a Javascript Framework
Choosing a Javascript FrameworkChoosing a Javascript Framework
Choosing a Javascript Framework
 
Introduction to Redux (for Angular and React devs)
Introduction to Redux (for Angular and React devs)Introduction to Redux (for Angular and React devs)
Introduction to Redux (for Angular and React devs)
 
feature flagging with rails engines v0.2
feature flagging with rails engines v0.2 feature flagging with rails engines v0.2
feature flagging with rails engines v0.2
 
Feature flagging with rails engines
Feature flagging with rails enginesFeature flagging with rails engines
Feature flagging with rails engines
 
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
 
Complex Architectures in Ember
Complex Architectures in EmberComplex Architectures in Ember
Complex Architectures in Ember
 
Arquitetura de Front-end em Aplicações de Larga Escala
Arquitetura de Front-end em Aplicações de Larga EscalaArquitetura de Front-end em Aplicações de Larga Escala
Arquitetura de Front-end em Aplicações de Larga Escala
 
BarCamp CR 2013 - Angularjs - Brian Salazar
BarCamp CR 2013 - Angularjs - Brian SalazarBarCamp CR 2013 - Angularjs - Brian Salazar
BarCamp CR 2013 - Angularjs - Brian Salazar
 
Combres
CombresCombres
Combres
 
Ruby on-rails-workshop
Ruby on-rails-workshopRuby on-rails-workshop
Ruby on-rails-workshop
 
Building a dashboard using AngularJS
Building a dashboard using AngularJSBuilding a dashboard using AngularJS
Building a dashboard using AngularJS
 
Ember.js for SFHTML5
Ember.js for SFHTML5Ember.js for SFHTML5
Ember.js for SFHTML5
 
Useful Rails Plugins
Useful Rails PluginsUseful Rails Plugins
Useful Rails Plugins
 
Api development with rails
Api development with railsApi development with rails
Api development with rails
 

More from Fabio Akita

Devconf 2019 - São Carlos
Devconf 2019 - São CarlosDevconf 2019 - São Carlos
Devconf 2019 - São CarlosFabio 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 LanguagesFabio 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 2018Fabio Akita
 
Desmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SPDesmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SPFabio Akita
 
Desmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter GoianiaDesmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter GoianiaFabio Akita
 
Blockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7MastersBlockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7MastersFabio 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 CampinasFabio 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 2017Fabio 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 RubyFabio 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 TIFabio Akita
 
THE CONF - Opening Keynote
THE CONF - Opening KeynoteTHE CONF - Opening Keynote
THE CONF - Opening KeynoteFabio 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 2017Fabio Akita
 
Desmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - APDesmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - APFabio 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 2017Fabio 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 2017Fabio 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 DayFabio Akita
 
Premature Optimization 2.0 - Intercon 2016
Premature Optimization 2.0 - Intercon 2016Premature Optimization 2.0 - Intercon 2016
Premature Optimization 2.0 - Intercon 2016Fabio Akita
 
Conexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização PrematuraConexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização PrematuraFabio 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 EvilFabio Akita
 
Premature optimisation: The Root of All Evil
Premature optimisation: The Root of All EvilPremature optimisation: The Root of All Evil
Premature optimisation: The Root of All EvilFabio 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
 
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
 
Premature optimisation: The Root of All Evil
Premature optimisation: The Root of All EvilPremature optimisation: The Root of All Evil
Premature optimisation: The Root of All Evil
 

Recently uploaded

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Recently uploaded (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Ecossistema Rails Campus Party 09

  • 1. Ecossistema Rails Desenvolvedores Web 2.0 Tuesday, January 20, 2009
  • 3. Tuesday, January 20, 2009 http://www.akitaonrails.com
  • 4. Tuesday, January 20, 2009 http://www.locaweb.com.br/rails
  • 6. “Matz” 1993 Tuesday, January 20, 2009 http://www.ruby-lang.org
  • 7. “Prag Dave” 2001 Tuesday, January 20, 2009 http://www.rubycentral.com/book/ http://www.pragprog.com/titles/ruby3/programming-ruby-1-9
  • 8. “DHH” 2004 Tuesday, January 20, 2009 http://www.rubyonrails.org http://www.loudthinking.com
  • 9. Tuesday, January 20, 2009 http://rubyonrails.org/screencasts
  • 10. Tuesday, January 20, 2009 http://rubyonrails.org/screencasts
  • 11. “Tornar as coisas simples fáceis e as coisas complexas possíveis” Filosofia Ruby Tuesday, January 20, 2009
  • 12. Tuesday, January 20, 2009 http://www.levenez.com/lang/
  • 13. Ruby on Rails Tuesday, January 20, 2009
  • 14. RUBY Tuesday, January 20, 2009 http://guides.rails.info/
  • 15. ActiveSupport Rails RUBY Tuesday, January 20, 2009 http://guides.rails.info/
  • 16. ActionController ActionPack ActionView ActiveSupport Rails RUBY Tuesday, January 20, 2009 http://guides.rails.info/
  • 17. ActiveRecord ActionController ActionPack ActionView ActiveSupport Rails RUBY Tuesday, January 20, 2009 http://guides.rails.info/
  • 18. ActionMailer ActiveRecord ActionController ActionPack ActionView ActiveSupport Rails RUBY Tuesday, January 20, 2009 http://guides.rails.info/
  • 19. ActiveResource ActionWebService ActionMailer ActiveRecord ActionController ActionPack ActionView ActiveSupport Rails RUBY Tuesday, January 20, 2009 http://guides.rails.info/
  • 27. 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 Tuesday, January 20, 2009
  • 28. 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 Tuesday, January 20, 2009
  • 29. 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 Tuesday, January 20, 2009
  • 30. 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 Tuesday, January 20, 2009
  • 31. 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 Tuesday, January 20, 2009
  • 32. 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 Tuesday, January 20, 2009
  • 33. 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? %> Tuesday, January 20, 2009
  • 34. 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? Tuesday, January 20, 2009
  • 35. 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 Tuesday, January 20, 2009
  • 36. Rotas RESTFul ActionController::Routing::Routes.draw do |map| GET /products/new map.connect ':controller/service.wsdl', :action => 'wsdl' GET /products map.resources :products, :member => POST /products {:change_image => :post} map.resources :addresses GET /products/1 map.resources :orders, GET /products/1/edit :has_many => [:line_items] map.namespacePUT /products/1 :admin do |admin| DESTROY /products/1 admin.resources :users admin.resources :products end end Tuesday, January 20, 2009
  • 37. 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 Tuesday, January 20, 2009
  • 38. 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 Tuesday, January 20, 2009
  • 42. Tuesday, January 20, 2009 http://weblog.jamisbuck.org/2008/11/9/legos-play-doh-and-programming http://weblog.jamisbuck.org/2008/11/29/recovering-from-enterprise-video-available
  • 43. 11 mil classes! 46 só de Collections! Tuesday, January 20, 2009 http://weblog.jamisbuck.org/2008/11/9/legos-play-doh-and-programming http://weblog.jamisbuck.org/2008/11/29/recovering-from-enterprise-video-available
  • 44. • Classes: • Modules: • Array • Enumerable • Hash • Comparable • Set • Sorted Set Tuesday, January 20, 2009
  • 45. 1.400 Classes: • classesArray • Modules: • • Enumerable • Hash • Comparable 6 de Set só • • Sorted Collections! Set Tuesday, January 20, 2009
  • 46. • Convention over Configuration • Don’t Repeat Yourself • You Ain’t Gonna Need It • Automação • Boas Práticas • Código Bonito • Ferramentas Simples Tuesday, January 20, 2009
  • 47. Tuesday, January 20, 2009 http://macromates.com http://www.apple.com/macbook
  • 49. Mitos Tuesday, January 20, 2009 http://www.loudthinking.com/posts/29-the-rails-myths
  • 50. Ruby tem marketshare menor que Java ou PHP Tuesday, January 20, 2009
  • 51. Qual foi o concurso? Qual foi o prêmio? Tuesday, January 20, 2009 http://gilesbowkett.blogspot.com/2009/01/why-hacker-news-thinks-php-won.html
  • 52. Tuesday, January 20, 2009 http://www.google.com/trends?q=ruby+rails%2C+python+django%2C+grails%2C+zend
  • 53. Tuesday, January 20, 2009 http://www.google.com/trends?q=microsoft+windows%2C +linux&ctab=0&geo=all&date=all&sort=0
  • 54. Tuesday, January 20, 2009 http://www.roughlydrafted.com/2008/10/25/apple-earnings-profits-and-cash-embarrass- microsoft-2/
  • 58. Martin Fowler Tuesday, January 20, 2009 http://www.thoughtworks.com/how-we-do-it/ruby.html
  • 59. Agile Tuesday, January 20, 2009 http://pragdave.pragprog.com/
  • 61. Rails não Escala Tuesday, January 20, 2009
  • 62. Tuesday, January 20, 2009 FUD: http://www.techcrunch.com/2008/05/22/twitter-at-scale-will-it-work/
  • 63. 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 Blaine Cook it’s rarely the case. http://www.akitaonrails.com/2008/6/17/chatting-with-blaine-cook-twitter Tuesday, January 20, 2009 http://www.akitaonrails.com/2008/6/17/chatting-with-blaine-cook-twitter
  • 64. “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 Tuesday, January 20, 2009 http://www.computerworld.com/action/article.do? command=viewArticleBasic&articleId=9120778
  • 65. “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 Tuesday, January 20, 2009 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/
  • 66. Tuesday, January 20, 2009 http://www.techcrunch.com/2008/01/24/hulu-discusses-private-beta- suggests-public-launch-time-frame/
  • 67. Tuesday, January 20, 2009 http://www.blogblogs.com.br
  • 69. Deployment de Rails é difícil Tuesday, January 20, 2009
  • 71. Apache + FastCGI LightTPD + FastCGI Litespeed + SAPI Apache + Mongrel Nginx + Mongrel Nginx + Thin Tuesday, January 20, 2009
  • 72. Apache + FastCGI LightTPD + FastCGI Litespeed + SAPI Apache + Mongrel Nginx + Mongrel Nginx + Thin Tuesday, January 20, 2009
  • 73. Apache + FastCGI LightTPD + FastCGI Litespeed + SAPI Apache + Mongrel Nginx + Mongrel Nginx + Thin Tuesday, January 20, 2009
  • 74. Apache + FastCGI LightTPD + FastCGI Litespeed + SAPI Apache + Mongrel Nginx + Mongrel Nginx + Thin Tuesday, January 20, 2009
  • 75. Apache + FastCGI LightTPD + FastCGI Litespeed + SAPI Apache + Mongrel Nginx + Mongrel Nginx + Thin Tuesday, January 20, 2009
  • 76. Apache + FastCGI LightTPD + FastCGI Litespeed + SAPI Apache + Mongrel Nginx + Mongrel Nginx + Thin Tuesday, January 20, 2009
  • 77. Tuesday, January 20, 2009 http://phusion.nl http://www.modrails.com/
  • 78. gem install passenger passenger-install-apache2-module Tuesday, January 20, 2009 http://phusion.nl http://www.modrails.com/
  • 82. Rails é mal documentado Tuesday, January 20, 2009
  • 83. Geoffrey Tuesday, January 20, 2009 http://www.peepcode.com
  • 84. Jason e Gregg Tuesday, January 20, 2009 http://railsenvy.com http://envycasts.com
  • 85. Ryan Bates Tuesday, January 20, 2009 http://railscasts.com
  • 86. Pratik Naik Tuesday, January 20, 2009 http://guides.rails.info/
  • 87. Satish Talim Tuesday, January 20, 2009 http://rubylearning.org
  • 88. Peter Cooper Tuesday, January 20, 2009 http://rubyinside.com http://railsinside.com http://rubyflow.com http://jrubyinside.com http://yorails.com
  • 89. _why Tuesday, January 20, 2009 http://whytheluckysti.net/
  • 90. Tuesday, January 20, 2009 http://www.amazon.com/s/ref=nb_ss_gw?url=search-alias%3Dstripbooksfield-keywords=ruby +railsx=0y=0
  • 95. Chris Wanstrath Tuesday, January 20, 2009 http://github.com
  • 96. Tuesday, January 20, 2009 http://rubyforge.org http://gitorious.org
  • 97. Tuesday, January 20, 2009 http://jruby.codehaus.org http://www.macruby.org http://www.ironruby.net http://ruby.gemstone.com/ http://rubini.us/
  • 98. Tuesday, January 20, 2009 http://gettingreal.37signals.com/GR_por.php http://aprendaaprogramar.rubyonrails.pro.br/ http://why.nomedojogo.com/ http://rubyonrails.pro.br http://rubyonbr.org
  • 99. Tuesday, January 20, 2009 http://gettingreal.37signals.com/GR_por.php http://aprendaaprogramar.rubyonrails.pro.br/ http://why.nomedojogo.com/ http://rubyonrails.pro.br http://rubyonbr.org
  • 101. Tuesday, January 20, 2009 http://www.confreaks.com/ http://www.akitaonrails.com/railsconf2008
  • 102. Tuesday, January 20, 2009 http://www.locaweb.com.br/railssummit http://www.akitaonrails.com/railssummit2008
  • 107. Especialista de uma coisa só é um amador em todo o resto. Tuesday, January 20, 2009