Fórum de Software Livre do Serpro RJ 2009

666 views

Published on

Esta palestra é muito parecida com a que eu também ministrei no evento Dev in Rio 2009, portanto os slides são quase iguais caso você já tenha baixado.

A apresentação fala sobre filosofias, valores e idéias ágeis e como elas são a fundação da comunidade Ruby on Rails e do ecossistema que se formou ao seu redor.

Alguns dos vídeos mostrados estão disponíveis em http://vimeo.com/akitaonrails.com

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
666
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Fórum de Software Livre do Serpro RJ 2009

  1. 1. Tuesday, September 15, 2009
  2. 2. Tuesday, September 15, 2009
  3. 3. Tuesday, September 15, 2009
  4. 4. Tuesday, September 15, 2009
  5. 5. Tuesday, September 15, 2009
  6. 6. Tuesday, September 15, 2009
  7. 7. Tuesday, September 15, 2009
  8. 8. Tuesday, September 15, 2009
  9. 9. Tuesday, September 15, 2009
  10. 10. Tuesday, September 15, 2009
  11. 11. Tuesday, September 15, 2009
  12. 12. Tuesday, September 15, 2009
  13. 13. Tuesday, September 15, 2009
  14. 14. Tuesday, September 15, 2009
  15. 15. Tuesday, September 15, 2009
  16. 16. Tuesday, September 15, 2009
  17. 17. Tuesday, September 15, 2009
  18. 18. Tuesday, September 15, 2009
  19. 19. Tuesday, September 15, 2009
  20. 20. Tuesday, September 15, 2009
  21. 21. Tuesday, September 15, 2009
  22. 22. Tuesday, September 15, 2009
  23. 23. Tuesday, September 15, 2009
  24. 24. Tuesday, September 15, 2009
  25. 25. Filosofia Ruby Tuesday, September 15, 2009
  26. 26. Tuesday, September 15, 2009
  27. 27. Tuesday, September 15, 2009
  28. 28. Tuesday, September 15, 2009
  29. 29. Tuesday, September 15, 2009
  30. 30. Tuesday, September 15, 2009
  31. 31. Tuesday, September 15, 2009
  32. 32. Tuesday, September 15, 2009
  33. 33. Tuesday, September 15, 2009
  34. 34. Tuesday, September 15, 2009
  35. 35. Tuesday, September 15, 2009
  36. 36. “Eu inventei o termo ʻorientação a objetosʼ, e posso lhes dizer que eu não estava pensando em C++.” Tuesday, September 15, 2009
  37. 37. Tuesday, September 15, 2009
  38. 38. by Dave Thomas Tuesday, September 15, 2009
  39. 39. Tuesday, September 15, 2009
  40. 40. Tuesday, September 15, 2009
  41. 41. Tuesday, September 15, 2009
  42. 42. Tuesday, September 15, 2009
  43. 43. Tuesday, September 15, 2009
  44. 44. Tuesday, September 15, 2009
  45. 45. Tuesday, September 15, 2009
  46. 46. Tuesday, September 15, 2009
  47. 47. Tuesday, September 15, 2009
  48. 48. Tuesday, September 15, 2009
  49. 49. Tuesday, September 15, 2009
  50. 50. Tuesday, September 15, 2009
  51. 51. Tuesday, September 15, 2009
  52. 52. Tuesday, September 15, 2009
  53. 53. Tuesday, September 15, 2009
  54. 54. Tuesday, September 15, 2009
  55. 55. Tuesday, September 15, 2009
  56. 56. Tuesday, September 15, 2009
  57. 57. Tuesday, September 15, 2009
  58. 58. Tuesday, September 15, 2009
  59. 59. Tuesday, September 15, 2009
  60. 60. Tuesday, September 15, 2009
  61. 61. Tuesday, September 15, 2009
  62. 62. Tuesday, September 15, 2009
  63. 63. 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, September 15, 2009
  64. 64. 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, September 15, 2009
  65. 65. 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, September 15, 2009
  66. 66. 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, September 15, 2009
  67. 67. 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, September 15, 2009
  68. 68. 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, September 15, 2009
  69. 69. 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, September 15, 2009
  70. 70. <div id="product-listing"> <%= breadcrumbs(@taxon) %> <br/> <%= render :partial => "shared/products.html.erb", :locals => {:products => @products, :taxon => @taxon } %> </div> <% content_for :sidebar do %> <td id="shop-by-col" valign="top"> <%= render :partial => "shared/taxonomies" %> </td> <% end %> <%= render :partial => 'shared/paginate', :locals => {:collection => @products, :options => {}} unless @products.empty? %> Tuesday, September 15, 2009
  71. 71. <div id="product-listing"> <%= breadcrumbs(@taxon) %> <br/> <%= render :partial => "shared/products.html.erb", :locals => {:products => @products, :taxon => @taxon } %> </div> <% content_for :sidebar do %> <td id="shop-by-col" valign="top"> <%= render :partial => "shared/taxonomies" %> </td> <% end %> <%= render :partial => 'shared/paginate', :locals => {:collection => @products, :options => {}} unless @products.empty? %> Tuesday, September 15, 2009
  72. 72. <div id="product-listing"> <%= breadcrumbs(@taxon) %> <br/> <%= render :partial => "shared/products.html.erb", :locals => {:products => @products, :taxon => @taxon } %> </div> <% content_for :sidebar do %> <td id="shop-by-col" valign="top"> <%= render :partial => "shared/taxonomies" %> </td> <% end %> <%= render :partial => 'shared/paginate', :locals => {:collection => @products, :options => {}} unless @products.empty? %> Tuesday, September 15, 2009
  73. 73. #product-listing =breadcrumbs(@taxon) %br =render :partial => "shared/products.html.erb", :locals => {:products => @products, :taxon => @taxon} -content_for :sidebar do %td#shop-by-col(:valign => "top") =render :partial => "shared/taxonomies" =render :partial => 'shared/paginate', :locals => {:collection => @products, :options => {}} unless @products.empty? Tuesday, September 15, 2009
  74. 74. Tuesday, September 15, 2009
  75. 75. @Transient public BigDecimal getTotal() //$Id: Booking.java 5579 2007-06-27 00:06:49Z gavin $ { package org.jboss.seam.example.booking; return hotel.getPrice().multiply( new BigDecimal( getNights() ) ); } import java.io.Serializable; import java.math.BigDecimal; @Transient import java.text.DateFormat; public int getNights() import java.util.Date; { return (int) ( checkoutDate.getTime() - checkinDate.getTime() ) / import javax.persistence.Basic; 1000 / 60 / 60 / 24; import javax.persistence.Entity; } import javax.persistence.GeneratedValue; import javax.persistence.Id; @Id @GeneratedValue import javax.persistence.ManyToOne; public Long getId() import javax.persistence.Temporal; { import javax.persistence.TemporalType; return id; import javax.persistence.Transient; } public void setId(Long id) import org.hibernate.validator.Length; { import org.hibernate.validator.NotNull; this.id = id; import org.hibernate.validator.Pattern; } import org.jboss.seam.annotations.Name; @NotNull @Entity @Basic @Temporal(TemporalType.DATE) @Name("booking") public Date getCheckinDate() public class Booking implements Serializable { { return checkinDate; private Long id; } private User user; public void setCheckinDate(Date datetime) private Hotel hotel; { private Date checkinDate; this.checkinDate = datetime; private Date checkoutDate; } private String creditCard; private String creditCardName; @ManyToOne @NotNull private int creditCardExpiryMonth; public Hotel getHotel() private int creditCardExpiryYear; { private boolean smoking; return hotel; private int beds; } public void setHotel(Hotel hotel) public Booking() {} { this.hotel = hotel; public Booking(Hotel hotel, User user) } { this.hotel = hotel; @ManyToOne @NotNull this.user = user; public User getUser() } { return user; } Tuesday, September 15, 2009
  76. 76. public int getBeds() public void setUser(User user) { { return beds; this.user = user; } } public void setBeds(int beds) @Basic @Temporal(TemporalType.DATE) { @NotNull this.beds = beds; public Date getCheckoutDate() } { @NotNull(message="Credit card name is required") return checkoutDate; @Length(min=3, max=70, message="Credit card name is required") } public String getCreditCardName() public void setCheckoutDate(Date checkoutDate) { { return creditCardName; this.checkoutDate = checkoutDate; } } public void setCreditCardName(String creditCardName) @NotNull(message="Credit card number is required") { @Length(min=16, max=16, message="Credit card number must 16 digits long") this.creditCardName = creditCardName; @Pattern(regex="^d*$", message="Credit card number must be numeric") } public String getCreditCard() { public int getCreditCardExpiryMonth() return creditCard; { } return creditCardExpiryMonth; } public void setCreditCard(String creditCard) { public void setCreditCardExpiryMonth(int creditCardExpiryMonth) this.creditCard = creditCard; { } this.creditCardExpiryMonth = creditCardExpiryMonth; } @Transient public String getDescription() public int getCreditCardExpiryYear() { { DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM); return creditCardExpiryYear; return hotel==null ? null : hotel.getName() + } ", " + df.format( getCheckinDate() ) + " to " + df.format( getCheckoutDate() ); public void setCreditCardExpiryYear(int creditCardExpiryYear) } { this.creditCardExpiryYear = creditCardExpiryYear; public boolean isSmoking() } { return smoking; @Override } public String toString() { public void setSmoking(boolean smoking) return "Booking(" + user + ","+ hotel + ")"; { } this.smoking = smoking; } } Tuesday, September 15, 2009
  77. 77. class Booking < ActiveRecord::Base belongs_to :hotel belongs_to :user validates_presence_of :hotel validates_presence_of :user validates_presence_of :credit_card validates_presence_of :credit_card_name validates_length_of :credit_card, :within => 16..16 validates_format_of :credit_card, :with => /^d*$/ validates_length_of :credit_card_name, :within => 3..70 def total hotel.price * nights end def nights ((checkout_date - checkin_date) / 1.day).round end def to_s "Booking(#{user},#{hotel})" end end Tuesday, September 15, 2009
  78. 78. class Booking < ActiveRecord::Base belongs_to :hotel belongs_to :user validates_presence_of :hotel validates_presence_of :user validates_presence_of :credit_card validates_presence_of :credit_card_name validates_length_of :credit_card, :within => 16..16 validates_format_of :credit_card, :with => /^d*$/ validates_length_of :credit_card_name, :within => 3..70 def total hotel.price * nights end def nights ((checkout_date - checkin_date) / 1.day).round end def to_s "Booking(#{user},#{hotel})" end end Tuesday, September 15, 2009
  79. 79. class CreateBookings < ActiveRecord::Migration def self.up create_table :bookings do |t| t.references :user t.references :hotel t.datetime :checkin t.datetime :checkout t.string :credit_card t.string :credit_card_name t.integer :credit_card_expiry_month t.integer :credit_card_expiry_year t.boolean :smoking t.integer :beds t.timestamps end end def self.down drop_table :bookings end end Tuesday, September 15, 2009
  80. 80. class CreateBookings < ActiveRecord::Migration def self.up create_table :bookings do |t| t.references :user t.references :hotel t.datetime :checkin t.datetime :checkout t.string :credit_card t.string :credit_card_name t.integer :credit_card_expiry_month t.integer :credit_card_expiry_year t.boolean :smoking t.integer :beds t.timestamps end end def self.down drop_table :bookings end end Tuesday, September 15, 2009
  81. 81. class CreateBookings < ActiveRecord::Migration def self.up create_table :bookings do |t| t.references :user t.references :hotel t.datetime :checkin t.datetime :checkout t.string :credit_card t.string :credit_card_name t.integer :credit_card_expiry_month t.integer :credit_card_expiry_year t.boolean :smoking t.integer :beds t.timestamps end end def self.down drop_table :bookings end end Tuesday, September 15, 2009
  82. 82. Tuesday, September 15, 2009
  83. 83. “Eles servem mais de 23 milhões de visitantes/mês. A conversão resultou em 20 mil linhas de Ruby em vez de 125 mil linhas de Java e, mais importante, facilitou a dificuldade que tinham em manutenção. Eles também finalizaram a reescrita do sistema em apenas 3 meses com 4 desenvolvedores. Uma vez completo e otimizado, o site deles agora é mais rápido que antes.” http://www.railsonwave.com/railsonwave/2008/6/4/yellowpages-com-migrates-to-rails Tuesday, September 15, 2009
  84. 84. “Eles servem mais de 23 milhões de visitantes/mês. A conversão resultou em 20 mil linhas de Ruby em vez de 125 mil linhas de Java e, mais importante, facilitou a dificuldade que tinham em manutenção. Eles também finalizaram a reescrita do sistema em apenas 3 meses com 4 desenvolvedores. Uma vez completo e otimizado, o site deles agora é mais rápido que antes.” http://www.railsonwave.com/railsonwave/2008/6/4/yellowpages-com-migrates-to-rails Tuesday, September 15, 2009
  85. 85. “Eles servem mais de 23 milhões de visitantes/mês. A conversão resultou em 20 mil linhas de Ruby em vez de 125 mil linhas de Java e, mais importante, facilitou a dificuldade que tinham em manutenção. Eles também finalizaram a reescrita do sistema em apenas 3 meses com 4 desenvolvedores. Uma vez completo e otimizado, o site deles agora é mais rápido que antes.” http://www.railsonwave.com/railsonwave/2008/6/4/yellowpages-com-migrates-to-rails Tuesday, September 15, 2009
  86. 86. “Eles servem mais de 23 milhões de visitantes/mês. A conversão resultou em 20 mil linhas de Ruby em vez de 125 mil linhas de Java e, mais importante, facilitou a dificuldade que tinham em manutenção. Eles também finalizaram a reescrita do sistema em apenas 3 meses com 4 desenvolvedores. Uma vez completo e otimizado, o site deles agora é mais rápido que antes.” http://www.railsonwave.com/railsonwave/2008/6/4/yellowpages-com-migrates-to-rails Tuesday, September 15, 2009
  87. 87. Tuesday, September 15, 2009
  88. 88. Tuesday, September 15, 2009
  89. 89. Tuesday, September 15, 2009
  90. 90. Tuesday, September 15, 2009
  91. 91. Tuesday, September 15, 2009
  92. 92. Tuesday, September 15, 2009
  93. 93. Tuesday, September 15, 2009
  94. 94. Tuesday, September 15, 2009
  95. 95. Tuesday, September 15, 2009
  96. 96. Tuesday, September 15, 2009
  97. 97. Tuesday, September 15, 2009
  98. 98. Tuesday, September 15, 2009
  99. 99. Tuesday, September 15, 2009
  100. 100. Tuesday, September 15, 2009
  101. 101. Tuesday, September 15, 2009
  102. 102. Tuesday, September 15, 2009
  103. 103. Tuesday, September 15, 2009
  104. 104. Tuesday, September 15, 2009
  105. 105. Tuesday, September 15, 2009
  106. 106. Tuesday, September 15, 2009
  107. 107. Tuesday, September 15, 2009
  108. 108. Tuesday, September 15, 2009
  109. 109. Tuesday, September 15, 2009
  110. 110. Tuesday, September 15, 2009
  111. 111. Tuesday, September 15, 2009
  112. 112. Tuesday, September 15, 2009
  113. 113. Tuesday, September 15, 2009
  114. 114. Tuesday, September 15, 2009
  115. 115. Tuesday, September 15, 2009
  116. 116. Tuesday, September 15, 2009
  117. 117. Blaine Cook http://www.akitaonrails.com/2008/6/17/chatting-with-blaine-cook-twitter Tuesday, September 15, 2009
  118. 118. Para colocar as coisas em perspectiva, o Friendster foi escrito em Java e eles mudaram para PHP. MySpace foi escrito em ColdFusion e eles mudaram para ASP.NET. Blaine Cook http://www.akitaonrails.com/2008/6/17/chatting-with-blaine-cook-twitter Tuesday, September 15, 2009
  119. 119. Para colocar as coisas em perspectiva, o Friendster foi escrito em Java e eles mudaram para PHP. MySpace foi escrito em ColdFusion e eles mudaram para ASP.NET. Quando as pessoas caem em problemas de escalabilidade, normalmente acham que a linguagem é o problema, mas eu acho que isso raramente é a realidade. Blaine Cook http://www.akitaonrails.com/2008/6/17/chatting-with-blaine-cook-twitter Tuesday, September 15, 2009
  120. 120. “O The New York Times usou Ruby on Rails para agregar, analizar e mostrar os resultados das eleições em quase tempo real em um de seus sites mais acessados de todos os tempos.” http://www.computerworld.com.au/article/268003/ruby_rails_rolls_into_enterprise?fp=16&fpid=1 Tuesday, September 15, 2009
  121. 121. “O The New York Times usou Ruby on Rails para agregar, analizar e mostrar os resultados das eleições em quase tempo real em um de seus sites mais acessados de todos os tempos.” http://www.computerworld.com.au/article/268003/ruby_rails_rolls_into_enterprise?fp=16&fpid=1 Tuesday, September 15, 2009
  122. 122. Tuesday, September 15, 2009
  123. 123. x mais lento que C++ Tuesday, September 15, 2009
  124. 124. x mais lento que C++ 0 50 100 150 200 Python 2 Ruby 1.9 Perl JRuby Python 3 PHP Ruby 1.8.6 Tuesday, September 15, 2009
  125. 125. Tuesday, September 15, 2009
  126. 126. Tuesday, September 15, 2009
  127. 127. Tuesday, September 15, 2009
  128. 128. Tuesday, September 15, 2009
  129. 129. Tuesday, September 15, 2009
  130. 130. Tuesday, September 15, 2009
  131. 131. Tuesday, September 15, 2009
  132. 132. Tuesday, September 15, 2009
  133. 133. Tuesday, September 15, 2009
  134. 134. Tuesday, September 15, 2009
  135. 135. Robert C. Martin Tuesday, September 15, 2009
  136. 136. Tuesday, September 15, 2009
  137. 137. Tuesday, September 15, 2009
  138. 138. Tuesday, September 15, 2009
  139. 139. Tuesday, September 15, 2009
  140. 140. Tuesday, September 15, 2009
  141. 141. Tuesday, September 15, 2009
  142. 142. Funcionalidade: Adição Para evitar erros bobos Como um péssimo matemático Eu quero saber como somar dois números Cenário: Adicionar dois números Dado que eu digitei 50 na calculadora E que eu digitei 70 na calculadora Quando eu aperto o botão de soma Então o resultado na calculadora deve ser 120 Tuesday, September 15, 2009
  143. 143. Funcionalidade: Adição Para evitar erros bobos Como um péssimo matemático Eu quero saber como somar dois números Cenário: Adicionar dois números Dado que eu digitei 50 na calculadora E que eu digitei 70 na calculadora Quando eu aperto o botão de soma Então o resultado na calculadora deve ser 120 Tuesday, September 15, 2009
  144. 144. Tuesday, September 15, 2009
  145. 145. Tuesday, September 15, 2009
  146. 146. Tuesday, September 15, 2009
  147. 147. “Cowboy” Profissional Tuesday, September 15, 2009
  148. 148. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  149. 149. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  150. 150. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  151. 151. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  152. 152. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  153. 153. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  154. 154. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  155. 155. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  156. 156. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  157. 157. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  158. 158. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  159. 159. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  160. 160. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  161. 161. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  162. 162. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  163. 163. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  164. 164. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  165. 165. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  166. 166. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  167. 167. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  168. 168. “Cowboy” Profissional 70.00 52.50 Produtividade 35.00 17.50 0 1 2 3 4 5 6 7 8 9 10 Tempo Tuesday, September 15, 2009
  169. 169. Tuesday, September 15, 2009
  170. 170. Tuesday, September 15, 2009
  171. 171. Tuesday, September 15, 2009
  172. 172. Tuesday, September 15, 2009
  173. 173. Tuesday, September 15, 2009
  174. 174. Tuesday, September 15, 2009
  175. 175. Tuesday, September 15, 2009
  176. 176. Tuesday, September 15, 2009
  177. 177. Tuesday, September 15, 2009
  178. 178. Tuesday, September 15, 2009
  179. 179. Tuesday, September 15, 2009
  180. 180. 2008 Tuesday, September 15, 2009
  181. 181. 2008 Tuesday, September 15, 2009
  182. 182. Tuesday, September 15, 2009
  183. 183. Tuesday, September 15, 2009

×