Workshop de Ruby e Rails na USP Leste 2012
-
Upload
fabio-akita -
Category
Technology
-
view
1.636 -
download
0
description
Transcript of Workshop de Ruby e Rails na USP Leste 2012
![Page 1: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/1.jpg)
WorkshopRuby on Rails
Aprendendo na Prática (versão 2012)
Fabio Akita
![Page 2: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/2.jpg)
anos 80 anos 90 século XXI
![Page 3: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/3.jpg)
anos 80 anos 90 século XXI
Basic
dBase III
Clipper
C/Pascal
Delphi
Visual Basic
Java
.NET
Perl
PHP
Python
ABAP
Ruby
ObjC
ASP
Javascript
![Page 4: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/4.jpg)
anos 80 anos 90 século XXI
![Page 5: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/5.jpg)
anos 80 anos 90 século XXI
![Page 6: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/6.jpg)
anos 80 anos 90 século XXI
![Page 7: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/7.jpg)
anos 80 anos 90 século XXI
![Page 8: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/8.jpg)
anos 80 anos 90 século XXI
![Page 9: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/9.jpg)
anos 80 anos 90 século XXI
![Page 10: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/10.jpg)
![Page 11: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/11.jpg)
![Page 12: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/12.jpg)
![Page 13: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/13.jpg)
![Page 14: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/14.jpg)
![Page 15: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/15.jpg)
![Page 16: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/16.jpg)
![Page 17: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/17.jpg)
![Page 18: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/18.jpg)
http://slideshare.net/akitaonrails
![Page 19: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/19.jpg)
![Page 20: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/20.jpg)
![Page 21: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/21.jpg)
![Page 22: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/22.jpg)
![Page 23: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/23.jpg)
![Page 24: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/24.jpg)
![Page 25: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/25.jpg)
![Page 26: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/26.jpg)
![Page 27: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/27.jpg)
![Page 28: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/28.jpg)
![Page 29: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/29.jpg)
![Page 30: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/30.jpg)
![Page 31: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/31.jpg)
![Page 32: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/32.jpg)
![Page 33: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/33.jpg)
![Page 34: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/34.jpg)
![Page 35: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/35.jpg)
![Page 36: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/36.jpg)
~1 milhãode desenvolvedores
4M até 2013 (Gartner)
![Page 37: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/37.jpg)
Como Aprender?
Dica: depois pesquisem todos os links mostrados
![Page 38: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/38.jpg)
![Page 39: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/39.jpg)
BIG SUCCESS!
![Page 40: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/40.jpg)
![Page 41: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/41.jpg)
![Page 42: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/42.jpg)
![Page 43: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/43.jpg)
Ruby(linguagem)
1994
Ruby on Rails(framework web)
2004
![Page 44: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/44.jpg)
Ruby
1.8.7
Ruby 1.9.2Ruby
1.9.3
Ruby on Rails
2.3.14
Ruby on Rails3.0.17
Ruby on Rails3.1.8
Ruby on Rails
3.2.8
![Page 45: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/45.jpg)
Ruby
1.8.7
Ruby 1.9.2Ruby
1.9.3
Ruby on Rails
2.3.14
Ruby on Rails3.0.17
Ruby on Rails3.1.8
Ruby on Rails
3.2.8
![Page 46: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/46.jpg)
Ruby
1.8.7
Ruby 1.9.2Ruby
1.9.3
Ruby on Rails
2.3.14
Ruby on Rails3.0.17
Ruby on Rails3.1.8
Ruby on Rails
3.2.8
![Page 47: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/47.jpg)
Ruby
1.8.7
Ruby 1.9.2Ruby
1.9.3
Ruby on Rails
2.3.14
Ruby on Rails3.0.17
Ruby on Rails3.1.8
Ruby on Rails
3.2.8
![Page 48: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/48.jpg)
Ruby
1.8.7
Ruby 1.9.2Ruby
1.9.3
Ruby on Rails
2.3.14
Ruby on Rails3.0.17
Ruby on Rails3.1.8
Ruby on Rails
3.2.8
![Page 49: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/49.jpg)
Ruby
1.8.7
Ruby 1.9.2Ruby
1.9.3
Ruby on Rails
2.3.14
Ruby on Rails3.0.17
Ruby on Rails3.1.8
Ruby on Rails
3.2.8
![Page 50: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/50.jpg)
Para que serve?
![Page 51: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/51.jpg)
![Page 52: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/52.jpg)
![Page 53: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/53.jpg)
git clone git://github.com/qwertyreddy/rubystein.git
cd rubystein
gem install gosu
ruby wolf3d.rb
![Page 54: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/54.jpg)
![Page 55: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/55.jpg)
Instalando
![Page 56: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/56.jpg)
![Page 57: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/57.jpg)
curl -L https://get.rvm.io | bash -s stable
rvm install 1.9.3
![Page 58: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/58.jpg)
![Page 59: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/59.jpg)
![Page 60: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/60.jpg)
![Page 61: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/61.jpg)
![Page 62: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/62.jpg)
![Page 63: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/63.jpg)
![Page 64: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/64.jpg)
![Page 65: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/65.jpg)
![Page 66: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/66.jpg)
![Page 67: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/67.jpg)
O.O.P.
![Page 68: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/68.jpg)
![Page 69: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/69.jpg)
![Page 70: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/70.jpg)
UMLDiagrama de Classes
![Page 71: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/71.jpg)
“Eu inventei o termo
Orientação a Objetos
e posso dizer que
eu não tinha
C++ em mente”
Alan Kay
![Page 72: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/72.jpg)
![Page 73: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/73.jpg)
![Page 74: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/74.jpg)
![Page 75: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/75.jpg)
![Page 76: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/76.jpg)
![Page 77: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/77.jpg)
![Page 78: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/78.jpg)
![Page 79: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/79.jpg)
![Page 80: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/80.jpg)
![Page 81: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/81.jpg)
hardwarex86
Assembler
![Page 82: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/82.jpg)
hardwarex86
hardwarePowerPC
Assembler Assembler
![Page 83: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/83.jpg)
hardwarex86
hardwarePowerPC
hardwareARM
Assembler Assembler Assembler
![Page 84: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/84.jpg)
hardwarex86
hardwarePowerPC
hardwareARM
Assembler Assembler Assembler
C/C++/Pascal
![Page 85: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/85.jpg)
hardwarex86
hardwarePowerPC
hardwareARM
Assembler Assembler Assembler
C/C++/Pascal
Perl Python
PHP
![Page 86: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/86.jpg)
hardwarex86
hardwarePowerPC
hardwareARM
Assembler Assembler Assembler
C/C++/Pascal
Perl PythonJava Virtual Machine .NET Virtual
Machine
PHP
![Page 87: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/87.jpg)
hardwarex86
hardwarePowerPC
hardwareARM
Assembler Assembler Assembler
C/C++/Pascal
Perl PythonJava Virtual Machine .NET Virtual
Machine
Java (bytecode) CILPHP
![Page 88: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/88.jpg)
hardwarex86
hardwarePowerPC
hardwareARM
Assembler Assembler Assembler
C/C++/Pascal
Perl PythonJava Virtual Machine .NET Virtual
Machine
Java (bytecode) CIL
Java (linguagem) C# VB
PHP
![Page 89: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/89.jpg)
hardwarex86
hardwarePowerPC
hardwareARM
Assembler Assembler Assembler
C/C++/Pascal
Perl PythonJava Virtual Machine .NET Virtual
Machine
Java (bytecode) CIL
Java (linguagem) C# VB
Scala Clojure
PHP
![Page 90: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/90.jpg)
hardwarex86
hardwarePowerPC
hardwareARM
Assembler Assembler Assembler
C/C++/Pascal
Perl Python
Ruby
Java Virtual Machine .NET Virtual Machine
Java (bytecode) CIL
Java (linguagem) C# VB
JRuby Scala Clojure
PHP
![Page 91: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/91.jpg)
Fortran 90 ISO1991
SML ‘901990
Oakjune 1991
Perl 4.000march 21, 1991
PostScript level 21992
Perl 5.000october 18, 1994
Common Lisp ANSIdecember 8, 1994
Scheme IEEE1990
Python1991
NetRexx1991
ISO C(C90)
december 15, 1990
Caml 2-6.11991
Caml 3.11993
Visual Basic 1.0may 20, 1991
Oberon-21991
Sather 0.1june 1991
Sather 1.0mid-1994
Rubyfebruary 24, 1993
Haskell 1.1april 1, 1990
Haskell 1.2march 1992
Cmm1992
1990
MUMPS ISO1992
M1994
A+1992
J1990
Visual Basic 2.0march 1992
Visual Basic 3.0june 93
Eiffel 31993
MS PDS 7.11990
SML ‘971997
Java 2 (v1.2)december 8, 1998
PostScript level 3september 11, 1996
C++98 ANSI/ISO1998
APL961996
OO COBOL1997
Scheme R5RS1998
Ada 951995
Java 1may 23, 1995
Delphimarch 2, 1995
Delphi 5august, 1999
Modula-2 ISOjune 1, 1996
Tcl/Tk 8.1april 1999
Python 1.5.2april 13, 1999
Perl 5.005_50july 26, 1998
NetRexx 1.150july 23, 1999
Object Rexxfebruary 25, 1997
Prolog IV1997
ISO C(C95)
april 1, 1996
ISO C (C99)december 1, 1999
Objective Caml1996 O’Caml 2
1998
Visual Basic 6.0june 16, 1998
Sather 1.1september 1995
Sather 1.2.1november 4, 1999
Ruby 0.95december 1995
Ruby 1.1 alpha 0august 13, 1997 Ruby 1.3.2
april 2, 1999
Haskell 1.3may 1996
Haskell 1.4april 1997
Haskell 98february 1999
Fortran 95 ISOdecember 15, 1997
LiveScript1995
JavaScriptdecember 1995
JavaScript 1.5
ECMAScriptjune 1997
ECMAScript ed3december 1999
JScriptmay 1996
Self 4.0july 10, 1995
PHP/FI1995 PHP 2.0
nov. 13, 1997PHP 3.0
june 6, 1998
O’Caml 1.0.7december 11, 1997
Tcl/Tk 8.2.3dec. 16, 1999
Eiffel 4december 11, 1996
Eiffel 4.2february 6, 1998
1995
M ANSIdec 8, 1995
Open Mdec 11, 1995
M ISO1999
K1996
Visual Basic 4.0september 1995
Visual Basic 5.0april 1997
ANSI Rexx
ISO Forth1997
ANSI Smalltalkmay 19, 1998
Modula-2 ISOGeneric Extensiondecember 19, 1998
JavaScript 2.0(draft 1)
february 18, 1999
Pascal AFNOR1983
Object Pascal1985
PostScript1982
Smalltalk-801980
ANSI C(C89)1989
Objective-C1983
C with Classesapril 1980 C++
july 1983
Concurrent C1984
Eiffel1986
nawk1985
COBOL 85 ISO/ANSI1985
Common Lisp1984
Scheme 841984
Ada 83 ANSIjanuary 1983
Ada ISO1987
Oberon1987
Prolog IIoctober 1982
OO Forth1987
Clos1989
Object Logo1986
Prolog III1984
APL 2august 1984
SML1984
Modula 31988
Perl 3.000october 18, 1989
Perl 2.000january 5, 1988
Perl 1.000december 18, 1987
Tclmid 1988
Tcl/Tkend 1988
Rex 2.001980
Rex 3.001982
Rexx 3.201984
Caml1987
Eiffel 21988
ABC1987
B1981
Haskell 1.01987
Self
BorlandTurbo Pascal
Cedar1983
1980 1985
MUMPS (FIPS)1986
Sharp APL
A1988
Miranda1982
KRC1981
Forth-831983
ANS Forth1986
ARM C++1989
BASICA1981
GW-Basic1983
MS Basic PDS 7.01989
QuickBasic 1.01985
QuickBasic 4.51988
![Page 92: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/92.jpg)
Fortran 90 ISO1991
SML ‘901990
Oakjune 1991
Perl 4.000march 21, 1991
PostScript level 21992
Perl 5.000october 18, 1994
Common Lisp ANSIdecember 8, 1994
Scheme IEEE1990
Python1991
NetRexx1991
ISO C(C90)
december 15, 1990
Caml 2-6.11991
Caml 3.11993
Visual Basic 1.0may 20, 1991
Oberon-21991
Sather 0.1june 1991
Sather 1.0mid-1994
Rubyfebruary 24, 1993
Haskell 1.1april 1, 1990
Haskell 1.2march 1992
Cmm1992
1990
MUMPS ISO1992
M1994
A+1992
J1990
Visual Basic 2.0march 1992
Visual Basic 3.0june 93
Eiffel 31993
MS PDS 7.11990
SML ‘971997
Java 2 (v1.2)december 8, 1998
PostScript level 3september 11, 1996
C++98 ANSI/ISO1998
APL961996
OO COBOL1997
Scheme R5RS1998
Ada 951995
Java 1may 23, 1995
Delphimarch 2, 1995
Delphi 5august, 1999
Modula-2 ISOjune 1, 1996
Tcl/Tk 8.1april 1999
Python 1.5.2april 13, 1999
Perl 5.005_50july 26, 1998
NetRexx 1.150july 23, 1999
Object Rexxfebruary 25, 1997
Prolog IV1997
ISO C(C95)
april 1, 1996
ISO C (C99)december 1, 1999
Objective Caml1996 O’Caml 2
1998
Visual Basic 6.0june 16, 1998
Sather 1.1september 1995
Sather 1.2.1november 4, 1999
Ruby 0.95december 1995
Ruby 1.1 alpha 0august 13, 1997 Ruby 1.3.2
april 2, 1999
Haskell 1.3may 1996
Haskell 1.4april 1997
Haskell 98february 1999
Fortran 95 ISOdecember 15, 1997
LiveScript1995
JavaScriptdecember 1995
JavaScript 1.5
ECMAScriptjune 1997
ECMAScript ed3december 1999
JScriptmay 1996
Self 4.0july 10, 1995
PHP/FI1995 PHP 2.0
nov. 13, 1997PHP 3.0
june 6, 1998
O’Caml 1.0.7december 11, 1997
Tcl/Tk 8.2.3dec. 16, 1999
Eiffel 4december 11, 1996
Eiffel 4.2february 6, 1998
1995
M ANSIdec 8, 1995
Open Mdec 11, 1995
M ISO1999
K1996
Visual Basic 4.0september 1995
Visual Basic 5.0april 1997
ANSI Rexx
ISO Forth1997
ANSI Smalltalkmay 19, 1998
Modula-2 ISOGeneric Extensiondecember 19, 1998
JavaScript 2.0(draft 1)
february 18, 1999
Pascal AFNOR1983
Object Pascal1985
PostScript1982
Smalltalk-801980
ANSI C(C89)1989
Objective-C1983
C with Classesapril 1980 C++
july 1983
Concurrent C1984
Eiffel1986
nawk1985
COBOL 85 ISO/ANSI1985
Common Lisp1984
Scheme 841984
Ada 83 ANSIjanuary 1983
Ada ISO1987
Oberon1987
Prolog IIoctober 1982
OO Forth1987
Clos1989
Object Logo1986
Prolog III1984
APL 2august 1984
SML1984
Modula 31988
Perl 3.000october 18, 1989
Perl 2.000january 5, 1988
Perl 1.000december 18, 1987
Tclmid 1988
Tcl/Tkend 1988
Rex 2.001980
Rex 3.001982
Rexx 3.201984
Caml1987
Eiffel 21988
ABC1987
B1981
Haskell 1.01987
Self
BorlandTurbo Pascal
Cedar1983
1980 1985
MUMPS (FIPS)1986
Sharp APL
A1988
Miranda1982
KRC1981
Forth-831983
ANS Forth1986
ARM C++1989
BASICA1981
GW-Basic1983
MS Basic PDS 7.01989
QuickBasic 1.01985
QuickBasic 4.51988
![Page 93: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/93.jpg)
Languagesfebruary 27, 2011
© Éric Lévénez 1999-2011<http://www.levenez.com/lang/>
FORTRAN II1957
FORTRANnovember 1954
FORTRAN Ioctober 1956
FORTRAN IIIend-1958
Flow-Matic1958
ALGOL 581958
Lisp1958
Lisp 11959
COBOL1959
B-O1957
1954 1957
IAL1958
JOVIAL1959
Forth1968
BASICmay 1, 1964
COBOL 611961
COBOL1965
FORTRAN IV(Fortran 66 ANS)
1966FORTRAN IV
1962
BCPLjuly 1967
ALGOL 68december
1968
PL/I1964
B1969
Simula 671967
COBOL 68 ANS1968
APL1960
ALGOL 601960
SNOBOL1962
Simula I1964
Lisp 1.51962
SNOBOL 2april 1964
SNOBOL 31965
SNOBOL 41967
Logo1968
COBOL 61 Extended
1962
CPL1963
1960 1965
MUMPS1966
ISWIM1966
JOVIAL I1960
JOVIAL II1961
JOVIAL 31965
CORAL 641964
CORAL 661966
TELCOMP1965
JOSS1964
GOGOL1964
GOGOL III1967
Sail1968
sh1969
ALGOL W1966
Ada1979
FORTRAN V(Fortran 77 ANSI)
april 1978
CLU1974
COBOL 74 ANSI1974
Modula1975
Modula 21979
C (K&R)1978
C1971
awk1978
cshoctober 1978
Scheme MIT1978
Scheme1975
Prolog1970
Icon1977
Smalltalk-721972
PL/1 ANS1976
PL/M1972
Smalltalk-761976
Smalltalk-741974
Smalltalk-781978
Rex 1.00may 1979
MS Basic 2.0july 1975
Pascal1970
ML1973
Mesa1977
1970 1975
MUMPS (ANSI)september 15, 1977
SASL1976
sed1973
FIG-Forth1978
Mainsail1975
SL51976
Smalltalk1971
Classic C
Pascal AFNOR1983
Object Pascal1985
PostScript1982
Smalltalk-801980
ANSI C(C89)1989
Objective-C1983
C with Classesapril 1980 C++
july 1983
Concurrent C1984
Eiffel1986
nawk1985
COBOL 85 ISO/ANSI1985
Common Lisp1984
Scheme 841984
Ada 83 ANSIjanuary 1983
Ada ISO1987
Oberon1987
Prolog IIoctober 1982
OO Forth1987
Clos1989
Object Logo1986
Prolog III1984
APL 2august 1984
SML1984
Modula 31988
Perl 3.000october 18, 1989
Perl 2.000january 5, 1988
Perl 1.000december 18, 1987
Tclmid 1988
Tcl/Tkend 1988
Rex 2.001980
Rex 3.001982
Rexx 3.201984
Caml1987
Eiffel 21988
ABC1987
B1981
Haskell 1.01987
Self
BorlandTurbo Pascal
Cedar1983
1980 1985
MUMPS (FIPS)1986
Sharp APL
A1988
Miranda1982
KRC1981
Forth-831983
ANS Forth1986
ARM C++1989
BASICA1981
GW-Basic1983
MS Basic PDS 7.01989
QuickBasic 1.01985
QuickBasic 4.51988
1 2 3 4
![Page 94: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/94.jpg)
Pascal AFNOR1983
Object Pascal1985
PostScript1982
Smalltalk-801980
ANSI C(C89)1989
Objective-C1983
C with Classesapril 1980 C++
july 1983
Concurrent C1984
Eiffel1986
nawk1985
COBOL 85 ISO/ANSI1985
Common Lisp1984
Scheme 841984
Ada 83 ANSIjanuary 1983
Ada ISO1987
Oberon1987
Prolog IIoctober 1982
OO Forth1987
Clos1989
Object Logo1986
Prolog III1984
APL 2august 1984
SML1984
Modula 31988
Perl 3.000october 18, 1989
Perl 2.000january 5, 1988
Perl 1.000december 18, 1987
Tclmid 1988
Tcl/Tkend 1988
Rex 2.001980
Rex 3.001982
Rexx 3.201984
Caml1987
Eiffel 21988
ABC1987
B1981
Haskell 1.01987
Self
BorlandTurbo Pascal
Cedar1983
1980 1985
MUMPS (FIPS)1986
Sharp APL
A1988
Miranda1982
KRC1981
Forth-831983
ANS Forth1986
ARM C++1989
BASICA1981
GW-Basic1983
MS Basic PDS 7.01989
QuickBasic 1.01985
QuickBasic 4.51988
Fortran 90 ISO1991
SML ‘901990
Oakjune 1991
Perl 4.000march 21, 1991
PostScript level 21992
Perl 5.000october 18, 1994
Common Lisp ANSIdecember 8, 1994
Scheme IEEE1990
Python1991
NetRexx1991
ISO C(C90)
december 15, 1990
Caml 2-6.11991
Caml 3.11993
Visual Basic 1.0may 20, 1991
Oberon-21991
Sather 0.1june 1991
Sather 1.0mid-1994
Rubyfebruary 24, 1993
Haskell 1.1april 1, 1990
Haskell 1.2march 1992
Cmm1992
1990
MUMPS ISO1992
M1994
A+1992
J1990
Visual Basic 2.0march 1992
Visual Basic 3.0june 93
Eiffel 31993
MS PDS 7.11990
SML ‘971997
Java 2 (v1.2)december 8, 1998
PostScript level 3september 11, 1996
C++98 ANSI/ISO1998
APL961996
OO COBOL1997
Scheme R5RS1998
Ada 951995
Java 1may 23, 1995
Delphimarch 2, 1995
Delphi 5august, 1999
Modula-2 ISOjune 1, 1996
Tcl/Tk 8.1april 1999
Python 1.5.2april 13, 1999
Perl 5.005_50july 26, 1998
NetRexx 1.150july 23, 1999
Object Rexxfebruary 25, 1997
Prolog IV1997
ISO C(C95)
april 1, 1996
ISO C (C99)december 1, 1999
Objective Caml1996 O’Caml 2
1998
Visual Basic 6.0june 16, 1998
Sather 1.1september 1995
Sather 1.2.1november 4, 1999
Ruby 0.95december 1995
Ruby 1.1 alpha 0august 13, 1997 Ruby 1.3.2
april 2, 1999
Haskell 1.3may 1996
Haskell 1.4april 1997
Haskell 98february 1999
Fortran 95 ISOdecember 15, 1997
LiveScript1995
JavaScriptdecember 1995
JavaScript 1.5
ECMAScriptjune 1997
ECMAScript ed3december 1999
JScriptmay 1996
Self 4.0july 10, 1995
PHP/FI1995 PHP 2.0
nov. 13, 1997PHP 3.0
june 6, 1998
O’Caml 1.0.7december 11, 1997
Tcl/Tk 8.2.3dec. 16, 1999
Eiffel 4december 11, 1996
Eiffel 4.2february 6, 1998
1995
M ANSIdec 8, 1995
Open Mdec 11, 1995
M ISO1999
K1996
Visual Basic 4.0september 1995
Visual Basic 5.0april 1997
ANSI Rexx
ISO Forth1997
ANSI Smalltalkmay 19, 1998
Modula-2 ISOGeneric Extensiondecember 19, 1998
JavaScript 2.0(draft 1)
february 18, 1999
Perl 5.6.0march 28, 2000
Java 2 (v1.3)may 8, 2000
O’Caml 3.00june 2000
C#june 26, 2000
Python 1.6september 5, 2000
Python 2.0october 16, 2000
Ruby 1.6.1september 27, 2000
Perl 5.7,0september 2, 2000
Ruby 1.6.5september 19, 2001
Python 2.2december 21, 2001
Python 2.1april 17, 2001
C#(ECMA)
december 13, 2001
Java 2 (v1.4)early access
february 6, 2002
JScript
Self 4.1august 7, 2001
O’Caml 3.02july 30, 2001
O’Caml 3.03dec 10, 2001
PHP 4.0may 22, 2000
PHP 4.1.0december 8, 2001
O’Caml 3.04dec 12, 2001
Tcl/Tk 8.3october 22, 2001
Delphi 6may 1, 2001
2000
VB.NET(Visual Basic 7.0)
2001
ISE Eiffel 52001
Unicon2001
Active Oberon2001
1 2 3 4
![Page 95: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/95.jpg)
Perl 5.6.0march 28, 2000
Java 2 (v1.3)may 8, 2000
O’Caml 3.00june 2000
C#june 26, 2000
Python 1.6september 5, 2000
Python 2.0october 16, 2000
Ruby 1.6.1september 27, 2000
Perl 5.7,0september 2, 2000
Ruby 1.6.5september 19, 2001
Python 2.2december 21, 2001
Python 2.1april 17, 2001
C#(ECMA)
december 13, 2001
Java 2 (v1.4)early access
february 6, 2002
JScript
Self 4.1august 7, 2001
O’Caml 3.02july 30, 2001
O’Caml 3.03dec 10, 2001
PHP 4.0may 22, 2000
PHP 4.1.0december 8, 2001
O’Caml 3.04dec 12, 2001
Tcl/Tk 8.3october 22, 2001
Delphi 6may 1, 2001
2000
VB.NET(Visual Basic 7.0)
2001
ISE Eiffel 52001
Unicon2001
Active Oberon2001
Ruby 1.6.7march 1, 2002
Python 2.2.1april 10, 2002
Perl 5.8.0july 18, 2002
PHP 4.2.0april 22, 2002
PHP 4.2.2july 22, 2002
Java 2 (v1.4.0_01)june 4, 2002
O’Caml 3.05july 29, 2002
O’Caml 3.06august 20, 2002
Java 2 (v1.4.1)september 2002
PHP 4.2.3september 6, 2002
Fortran 2000(draft)
september 30, 2002
Tcl/Tk 8.4september 10, 2002
Delphi 7august 6, 2002
Self 4.1.6september 2002
Python 2.2.2october 14, 2002
PHP 4.3.0december 27, 2002
2002
PHP 4.3.1feb. 17, 2003
Ruby 1.6.8december 24, 2002
Java 2(v1.4.1_02)
february 27, 2003
Python 2.3a2february 19, 2003
Tcl/Tk 8.4.1october 22, 2002
C#(ISO)
march 28, 2003
Tcl/Tk 8.4.2march 3, 2003
Tcl/Tk 8.4.3may 20, 2003
PHP 4.3.2may 29, 2003
Python 2.2.3may 30, 2003
Java 2 (v1.4.2)april 29, 2003
COBOL 2002 ISO/ANSIdecember 2002
JavaScript 2.0(draft 4)
april 26, 2002ECMAScript ed4 (draft)
2002
Haskell 98(revised)
december 2002
Python 2.3july 29, 2003
Java 2 (v1.4.1_03)june 11, 2003
2003
PHP 4.3.3august 25, 2003
Java 2 (v1.4.2_01)august 26, 2003
Ruby 1.8august 4, 2003
Python 2.3.1september 23, 2003
Perl 5.8.1september 26, 2003
Java 2 (v1.4.2_02)october 22, 2003
C# 2.0(beta)
july 2003
Delphi 8november 2003
PHP 4.3.4november 3, 2003
Java 2 (v1.4.2_03)december 13, 2003
Python 2.3.2october 3, 2003
Python 2.3.3december 19, 2003
Ruby 1.8.1december 25, 2003
Java 2 (v1.5.0)(beta 1)
february 5, 2004
O’Caml 3.07september 29, 2003
Tcl/Tk 8.4.6march 1, 2004
Self 4.2.1april 3, 2004
PHP 4.3.5march 26,
2004
Perl 5.8.2november 5, 2003
Perl 5.8.3january 1, 2004
Tcl/Tk 8.4.5november 24, 2003
Tcl/Tk 8.4.4july 22, 2003
PHP 4.3.6april 15,
2004
Java 2 (v5.0) (beta 2)june 28, 2004
Java 2 (v1.4.2_04)march 8, 2004
Java 2 (v1.4.2_05)june 30, 2004
PHP 4.3.7june 3,2004
Python 2.3.4may 27, 2004
Perl 5.8.4april 23, 2004
2004PostScript level 3
v 30162003
C++03 ISO/IEC2003
PHP 4.3.8july 13, 2004
PHP 5.0.0july 13, 2004
O’Caml 3.08.0july 13, 2004
Java 2 (v5.0)september 30, 2004
Python 2.4november 30, 2004
PHP 4.3.10december 15, 2004
PHP 5.0.3december 15, 2004
Java 2 (v6.0 beta)december 2004
Tcl/Tk 8.4.7july 25, 2004
Tcl/Tk 8.4.8nov. 22, 2004
Tcl/Tk 8.4.9december 7, 2004
Ruby 1.8.2december 25, 2004
Perl 5.8.5july 21, 2004
Perl 5.8.6november 30, 2004
Java 2 (v1.4.2_06)november 23, 2004
Delphi 2005november 2004
Fortran 2003november 30, 2004
Java 2 (v5.0 update 3)april 28, 2005
Ada 2006 (draft)2005
2005
ECMA Eiffeljune 2005
Python 2.4.1march 30, 2005
O’Caml 3.08.2november 2004
Perl 5.8.7june 3, 2005
PHP 5.0.4april 3, 2005
PHP 5.0.5september 6, 2005
PHP 4.4.1october 31, 2005
Ruby 1.8.3september 21, 2005
Python 2.4.2september 28, 2005
Tcl/Tk 8.4.11june 28, 2005
PostScript level 3v 3017
september 11, 2005
C# 3.0(beta)
september 2005
C# 2.0november 2005
Tcl/Tk 8.4.12december 6, 2005
Delphi 2006october 30, 2005
Ruby 1.8.4december 24, 2005
PHP 5.1.0november 24, 2005
M ISOjanuary 6, 2005
1 2 3 4
![Page 96: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/96.jpg)
PHP 4.3.8july 13, 2004
PHP 5.0.0july 13, 2004
O’Caml 3.08.0july 13, 2004
Java 2 (v5.0)september 30, 2004
Python 2.4november 30, 2004
PHP 4.3.10december 15, 2004
PHP 5.0.3december 15, 2004
Java 2 (v6.0 beta)december 2004
Tcl/Tk 8.4.7july 25, 2004
Tcl/Tk 8.4.8nov. 22, 2004
Tcl/Tk 8.4.9december 7, 2004
Ruby 1.8.2december 25, 2004
Perl 5.8.5july 21, 2004
Perl 5.8.6november 30, 2004
Java 2 (v1.4.2_06)november 23, 2004
Delphi 2005november 2004
Fortran 2003november 30, 2004
Java 2 (v5.0 update 3)april 28, 2005
Ada 2006 (draft)2005
2005
ECMA Eiffeljune 2005
Python 2.4.1march 30, 2005
O’Caml 3.08.2november 2004
Perl 5.8.7june 3, 2005
PHP 5.0.4april 3, 2005
PHP 5.0.5september 6, 2005
PHP 4.4.1october 31, 2005
Ruby 1.8.3september 21, 2005
Python 2.4.2september 28, 2005
Tcl/Tk 8.4.11june 28, 2005
PostScript level 3v 3017
september 11, 2005
C# 3.0(beta)
september 2005
C# 2.0november 2005
Tcl/Tk 8.4.12december 6, 2005
Delphi 2006october 30, 2005
Ruby 1.8.4december 24, 2005
PHP 5.1.0november 24, 2005
M ISOjanuary 6, 2005
Objective-C 2.0august 7, 2006
2006
Tcl/Tk 8.4.13april 19, 2006
Python 2.5september 19, 2006
Java 2 (v5.0 update 8)august 11, 2006
Ruby 1.8.5august 25, 2006
Perl 5.8.8february 2, 2006
PHP 5.1.6august 24, 2006
PHP 4.4.2january 13, 2006
PHP 4.4.4august 17, 2006
O’Caml 3.09.2april 14, 2006
Self 4.3june 30, 2006
Scheme R6RS (draft)september 14, 2006
Tcl/Tk 8.4.14october 19, 2006
PHP 5.2.0november 2, 2006
Java 6december 11, 2006
Tcl/Tk 8.4.15may 25, 2007
Python 2.5.1april 19, 2007
Ruby 1.8.6march 13, 2007
PHP 4.4.7may 3, 2007
PHP 5.2.3may 31, 2007
Java 2 (v5.0 update 12)may 31, 2007
2007
Tcl/Tk 8.5december 20, 2007
Java 6 update 2july 5, 2007
O’Caml 3.10.0may 16, 2007
Perl 5.10december 18, 2007
Ada 2005march 9, 2007
Python 3.0a2december 7, 2007
PHP 5.2.4august 30, 2007
PHP 5.2.5november 9, 2007
Scheme R6RSaugust 28, 2007
C# 3.5november 19, 2007
Delphi 2007march 2007
C# 3.0november 6, 2006
2008
Java 6 update 7july 11, 2008
Java 2 (v5.0 update 16)july 11, 2008
Java 2 (v1.4.2_18)july 11, 2008Ruby 1.8.7
may 31, 2008
PHP 4.4.8january 3, 2008
PHP 5.2.6may 1, 2008
Tcl/Tk 8.5.5october 15, 2008
Python 2.6october 1, 2008
Python 3.0december 3, 2008
PHP 4.4.9august 7, 2008
O’Caml 3.10.2february 29, 2008
Java 6 update 11december 2, 2008
Java 2 (v1.4.2_19)december 2, 2008
Java 2 (v5.0 update 17)december 2, 2008
C++0x draft2008
Ruby 1.9.1january 30, 2009
PHP 5.2.7december 4, 2008
PHP 5.2.8december 8, 2008
Python 3.0.1february 13, 2009
Python 2.6.1december 4, 2008
2009
Tcl/Tk 8.5.6january 2009
Tcl/Tk 8.5.7april 15, 2009
Python 2.6.2april 14, 2009
Java 6 update 14june 10, 2009
Java 2 (v5.0 update 18)march 24, 2009
PHP 5.2.9february 26, 2009
O’Caml 3.11.0december 4, 2008
PHP 5.3june 30, 2009
Python 3.1june 27, 2009
O’Caml 3.11.1june 12, 2009
Delphi 2009august 2008
Ruby 1.9.2 preview 1july 18, 2009
C++1x draftjuly 22, 2009
Objective-C 2.1august 28, 2009
Perl 5.11.0october 2, 2009
Python 2.6.3october 2, 2009
Java 6 update 24february 15, 2011
Java 2 (v5.0 update 21)september 11, 2009
Delphi 2010august 2009
Haskell 2010(announced)
november 2009
Python 2.7july 4, 2010
Tcl/Tk 8.5.9september 8, 2010
Ruby 1.9.2august 18, 2010
Perl 5.12.0april 12, 2010
PHP 5.3.5january 6, 2011
Haskell HP 2010.2.0.0july 2010
O’Caml 3.12.0august 2, 2010
Fortran 2008september 2010
2010
C# 4.0april 12, 2010
2011
Python 3.2february 20, 2011
Python 2.7.1november 27, 2010
Perl 5.12.3january 21, 2011
1 2 3 4
![Page 97: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/97.jpg)
Languagesfebruary 27, 2011
© Éric Lévénez 1999-2011<http://www.levenez.com/lang/>
FORTRAN II1957
FORTRANnovember 1954
FORTRAN Ioctober 1956
FORTRAN IIIend-1958
Flow-Matic1958
ALGOL 581958
Lisp1958
Lisp 11959
COBOL1959
B-O1957
1954 1957
IAL1958
JOVIAL1959
![Page 98: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/98.jpg)
Languagesfebruary 27, 2011
© Éric Lévénez 1999-2011<http://www.levenez.com/lang/>
FORTRAN II1957
FORTRANnovember 1954
FORTRAN Ioctober 1956
FORTRAN IIIend-1958
Flow-Matic1958
ALGOL 581958
Lisp1958
Lisp 11959
COBOL1959
B-O1957
1954 1957
IAL1958
JOVIAL1959
FORTRAN
![Page 99: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/99.jpg)
Languagesfebruary 27, 2011
© Éric Lévénez 1999-2011<http://www.levenez.com/lang/>
FORTRAN II1957
FORTRANnovember 1954
FORTRAN Ioctober 1956
FORTRAN IIIend-1958
Flow-Matic1958
ALGOL 581958
Lisp1958
Lisp 11959
COBOL1959
B-O1957
1954 1957
IAL1958
JOVIAL1959
FORTRAN
LISP
![Page 100: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/100.jpg)
![Page 101: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/101.jpg)
$(':checkbox').map(function() { return this.id;}).get().join(',');
![Page 102: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/102.jpg)
(map (lambda (x) (+ x x)) mylist)
![Page 103: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/103.jpg)
(map (lambda (x) (+ x x)) mylist)
![Page 104: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/104.jpg)
![Page 105: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/105.jpg)
![Page 106: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/106.jpg)
![Page 107: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/107.jpg)
![Page 108: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/108.jpg)
![Page 109: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/109.jpg)
“Hello World”
![Page 110: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/110.jpg)
#include <stdio.h>
int main(){ printf("Hello world\n"); return 0;}
C
![Page 111: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/111.jpg)
Java
class HelloWorldApp { static void main(String[] args) { System.out.println( "Hello World!"); }}
![Page 112: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/112.jpg)
Transcript show: 'Hello, world!'.
Smalltalk
![Page 113: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/113.jpg)
puts 'Hello World'
Ruby
![Page 114: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/114.jpg)
“Procedures??”
![Page 115: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/115.jpg)
“Procedures??”
![Page 116: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/116.jpg)
puts 'Hello World'=> Hello World
![Page 117: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/117.jpg)
puts 'Hello World'=> Hello World
Kernel.puts 'Hello World'=> Hello World
![Page 118: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/118.jpg)
puts 'Hello World'=> Hello World
Kernel.puts 'Hello World'=> Hello World
puts self.class=> Object
![Page 119: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/119.jpg)
puts 'Hello World'=> Hello World
Kernel.puts 'Hello World'=> Hello World
puts self.class=> Object
this
![Page 120: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/120.jpg)
puts 'Hello World'=> Hello World
Kernel.puts 'Hello World'=> Hello World
puts self.class=> Object
Object.ancestors => [Object, Kernel, BasicObject]
this
![Page 121: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/121.jpg)
puts 'Hello World'=> Hello World
Kernel.puts 'Hello World'=> Hello World
puts self.class=> Object
Object.ancestors => [Object, Kernel, BasicObject]
this
![Page 122: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/122.jpg)
"teste".class => String
![Page 123: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/123.jpg)
"teste".class => String
1.class => Fixnum
![Page 124: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/124.jpg)
"teste".class => String
1.class => Fixnum
true.class => TrueClass
![Page 125: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/125.jpg)
"teste".class => String
1.class => Fixnum
true.class => TrueClass
nil
![Page 126: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/126.jpg)
"teste".class => String
1.class => Fixnum
true.class => TrueClass
nil .class => NilClass
![Page 127: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/127.jpg)
"teste".class => String
1.class => Fixnum
true.class => TrueClass
nil .class => NilClass
NullPointerException!?
![Page 128: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/128.jpg)
"teste".class => String
1.class => Fixnum
true.class => TrueClass
nil .class => NilClass
![Page 129: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/129.jpg)
1 + 2
![Page 130: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/130.jpg)
1 + 2
1.+(2)
![Page 131: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/131.jpg)
Opcionais
![Page 132: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/132.jpg)
def hello(name) return "Hello, " + nameend
puts hello("Fabio") => "Hello, Fabio"
![Page 133: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/133.jpg)
def hello(name) return "Hello, " + nameend
puts hello "Fabio" => "Hello, Fabio"
![Page 134: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/134.jpg)
def hello(name) return "Hello, " + nameend
puts hello "Fabio" => "Hello, Fabio"
ParêntesesOpcionais
![Page 135: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/135.jpg)
def hello(name) "Hello, " + nameend
puts hello "Fabio" => "Hello, Fabio"
![Page 136: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/136.jpg)
def hello(name) "Hello, " + nameend
puts hello "Fabio" => "Hello, Fabio"
returnautomático
![Page 137: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/137.jpg)
def hello(name) "Hello, #{name}"end
puts hello "Fabio" => "Hello, Fabio"
![Page 138: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/138.jpg)
def hello(name) "Hello, #{name}"end
puts hello "Fabio" => "Hello, Fabio"
Interpolação
![Page 139: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/139.jpg)
class String def hello(name) "#{self}, #{name}" endend
![Page 140: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/140.jpg)
class String def hello(name) "#{self}, #{name}" endend
![Page 141: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/141.jpg)
class String def hello(name) "#{self}, #{name}" endend"Hello".hello "Fabio" => "Hello, Fabio"
![Page 142: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/142.jpg)
class String def hello(name) "#{self}, #{name}" endend"Hello".hello "Fabio" => "Hello, Fabio"
ClassesAbertas!
![Page 143: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/143.jpg)
module Legal def bu! "Buuu!" endend
![Page 144: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/144.jpg)
module Legal def bu! "Buuu!" endend
class String include Legalend
class Fixnum include Legalend
![Page 145: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/145.jpg)
module Legal def bu! "Buuu!" endend
class String include Legalend
class Fixnum include Legalend
"foo".bu! => "Buuu!"
![Page 146: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/146.jpg)
module Legal def bu! "Buuu!" endend
class String include Legalend
class Fixnum include Legalend
"foo".bu! => "Buuu!"
10.bu! => "Buuu!"
![Page 147: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/147.jpg)
require 'rubygems'require 'active_support/all'
![Page 148: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/148.jpg)
require 'rubygems'require 'active_support/all'
Time.now + 1.day => 2012-08-22 02:15:35 -0300
![Page 149: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/149.jpg)
require 'rubygems'require 'active_support/all'
Time.now + 1.day => 2012-08-22 02:15:35 -0300
Time.now + 1.week => 2012-08-28 02:15:35 -0300
![Page 150: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/150.jpg)
require 'rubygems'require 'active_support/all'
Time.now + 1.day => 2012-08-22 02:15:35 -0300
Time.now + 1.week => 2012-08-28 02:15:35 -0300
(1.gigabyte - 100.megabytes) / 1.megabyte => 924
![Page 151: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/151.jpg)
Mensagens
![Page 152: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/152.jpg)
class Fooend
![Page 153: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/153.jpg)
class Fooend
Foo.new.bar => NoMethodError: undefined method `bar' for #<Foo:0x007f8f62038330> from (irb):8 from /Users/akitaonrails/.rvm/rubies/ruby-1.9.3-head/bin/irb:16:in `<main>'
![Page 154: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/154.jpg)
class Foo def method_missing(method) print "#{method} called" endend
![Page 155: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/155.jpg)
class Foo def method_missing(method) print "#{method} called" endend
Foo.new.bar => "bar called"
![Page 156: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/156.jpg)
class Foo def method_missing(method) print "#{method} called" endend
Foo.new.bar => "bar called"
Foo.new.send(:bar) => "bar called"
![Page 157: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/157.jpg)
class Foo def method_missing(method) print "#{method} called" endend
Foo.new.bar => "bar called"
Foo.new.send(:bar) => "bar called"
Messages!
![Page 158: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/158.jpg)
![Page 159: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/159.jpg)
require 'builder'xml = Builder::XmlMarkup.new
xml.instruct! :xml
xml.Hello "World!"xml.date do xml.year "2006" xml.month "01" xml.day "01"end
![Page 160: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/160.jpg)
require 'builder'xml = Builder::XmlMarkup.new
xml.instruct! :xml
xml.Hello "World!"xml.date do xml.year "2006" xml.month "01" xml.day "01"end
![Page 161: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/161.jpg)
<?xml version="1.1" encoding="US-ASCII"?><Hello>World!</Hello><date> <year>2006</year> <month>01</month> <day>01</day></date>
![Page 162: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/162.jpg)
<?xml version="1.1" encoding="US-ASCII"?><Hello>World!</Hello><date> <year>2006</year> <month>01</month> <day>01</day></date>
![Page 163: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/163.jpg)
Tipagem Dinâmica
![Page 164: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/164.jpg)
class Gato def falar "miau" endend
![Page 165: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/165.jpg)
class Gato def falar "miau" endend
class Pato def falar "qua qua" endend
![Page 166: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/166.jpg)
class Gato def falar "miau" endend
class Pato def falar "qua qua" endend
def ouvir(animal) animal.falarend
![Page 167: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/167.jpg)
class Gato def falar "miau" endend
ouvir(Gato.new)=> "miau"
class Pato def falar "qua qua" endend
def ouvir(animal) animal.falarend
![Page 168: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/168.jpg)
class Gato def falar "miau" endend
ouvir(Gato.new)=> "miau"
class Pato def falar "qua qua" endend
def ouvir(animal) animal.falarend ouvir(Pato.new)
=> "qua qua"
![Page 169: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/169.jpg)
Protocol > Interface
![Page 170: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/170.jpg)
![Page 171: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/171.jpg)
+40 mil gems
~20 GB
![Page 172: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/172.jpg)
![Page 173: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/173.jpg)
![Page 174: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/174.jpg)
![Page 175: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/175.jpg)
bundle install
![Page 176: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/176.jpg)
![Page 177: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/177.jpg)
RubyGem “Jar”
Rake Ant, Make
Bundler Maven
![Page 178: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/178.jpg)
![Page 179: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/179.jpg)
![Page 180: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/180.jpg)
![Page 181: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/181.jpg)
![Page 182: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/182.jpg)
![Page 183: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/183.jpg)
![Page 184: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/184.jpg)
![Page 185: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/185.jpg)
![Page 186: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/186.jpg)
![Page 187: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/187.jpg)
![Page 188: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/188.jpg)
![Page 189: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/189.jpg)
![Page 190: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/190.jpg)
![Page 191: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/191.jpg)
![Page 192: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/192.jpg)
![Page 193: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/193.jpg)
![Page 194: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/194.jpg)
![Page 195: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/195.jpg)
![Page 196: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/196.jpg)
Web e Rails
![Page 197: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/197.jpg)
Framework para Aplicações Web
![Page 198: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/198.jpg)
gem install rails
![Page 199: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/199.jpg)
rails new projeto
![Page 200: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/200.jpg)
servidor web
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 201: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/201.jpg)
servidor web
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 202: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/202.jpg)
servidor web
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 203: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/203.jpg)
servidor web
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 204: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/204.jpg)
servidor web
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 205: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/205.jpg)
servidor web
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 206: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/206.jpg)
servidor web
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 207: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/207.jpg)
servidor web
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 208: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/208.jpg)
servidor web
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 209: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/209.jpg)
servidor web
Rack Middlewares
Routes
Controller
ModelView
Request
![Page 210: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/210.jpg)
servidor web
Rack Middlewares
Routes
Controller
ModelView
Response Request
![Page 211: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/211.jpg)
![Page 212: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/212.jpg)
![Page 213: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/213.jpg)
+40 mil gems
~20 GB
![Page 214: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/214.jpg)
![Page 215: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/215.jpg)
bundle install
![Page 216: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/216.jpg)
![Page 217: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/217.jpg)
![Page 218: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/218.jpg)
![Page 219: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/219.jpg)
![Page 220: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/220.jpg)
![Page 221: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/221.jpg)
Web Server
Rack Middlewares
Routes
Controller
ModelView
Response Request
![Page 222: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/222.jpg)
Web Server
Rack Middlewares
Routes
Controller
ModelView
Response Request
![Page 223: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/223.jpg)
Web Server
Rack Middlewares
Routes
Controller
ModelView
Response Request
Application Server Rack:
Mongrel,Thin,
Passenger,Unicorn
![Page 224: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/224.jpg)
Web Server
Rack Middlewares
Routes
Controller
ModelView
Response Request
Web Server:NginX
Apache
Application Server Rack:
Mongrel,Thin,
Passenger,Unicorn
![Page 225: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/225.jpg)
![Page 226: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/226.jpg)
![Page 227: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/227.jpg)
![Page 228: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/228.jpg)
![Page 229: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/229.jpg)
![Page 230: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/230.jpg)
![Page 231: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/231.jpg)
![Page 232: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/232.jpg)
![Page 233: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/233.jpg)
![Page 234: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/234.jpg)
![Page 235: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/235.jpg)
![Page 236: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/236.jpg)
![Page 237: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/237.jpg)
![Page 238: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/238.jpg)
![Page 239: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/239.jpg)
![Page 240: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/240.jpg)
![Page 241: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/241.jpg)
![Page 242: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/242.jpg)
![Page 243: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/243.jpg)
Web Server
Request
RailsApp
/public/stylesheets
![Page 244: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/244.jpg)
Web Server
Request
RailsApp
ArquivosEstáticos
/public/stylesheets
![Page 245: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/245.jpg)
![Page 246: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/246.jpg)
Variáveis
/* CSS */$blue: #3bbfce;$margin: 16px;
![Page 247: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/247.jpg)
Variáveis
/* CSS */$blue: #3bbfce;$margin: 16px;
.content-navigation { border-color: $blue; color: darken($blue, 9%);}
![Page 248: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/248.jpg)
Variáveis
/* CSS */$blue: #3bbfce;$margin: 16px;
.content-navigation { border-color: $blue; color: darken($blue, 9%);}
.content-navigation { border-color: #3bbfce; color: #2b9eab;}
![Page 249: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/249.jpg)
Variáveis
/* CSS */$blue: #3bbfce;$margin: 16px;
.border { padding: $margin / 2; margin: $margin / 2; border-color: $blue;}
.content-navigation { border-color: $blue; color: darken($blue, 9%);}
.content-navigation { border-color: #3bbfce; color: #2b9eab;}
![Page 250: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/250.jpg)
Variáveis
/* CSS */$blue: #3bbfce;$margin: 16px;
.border { padding: $margin / 2; margin: $margin / 2; border-color: $blue;}
.content-navigation { border-color: $blue; color: darken($blue, 9%);}
.content-navigation { border-color: #3bbfce; color: #2b9eab;}
.border { padding: 8px; margin: 8px; border-color: #3bbfce;}
![Page 251: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/251.jpg)
Nestingtable.hl { margin: 2em 0; td.ln { text-align: right; }}
/* CSS */
![Page 252: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/252.jpg)
Nestingtable.hl { margin: 2em 0; td.ln { text-align: right; }}
/* CSS */
table.hl { margin: 2em 0;}table.hl td.ln { text-align: right;}
![Page 253: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/253.jpg)
Nestingtable.hl { margin: 2em 0; td.ln { text-align: right; }}
/* CSS */
li { font: { family: serif; weight: bold; size: 1.2em; }}
table.hl { margin: 2em 0;}table.hl td.ln { text-align: right;}
![Page 254: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/254.jpg)
Nestingtable.hl { margin: 2em 0; td.ln { text-align: right; }}
/* CSS */
li { font: { family: serif; weight: bold; size: 1.2em; }}
li { font-family: serif; font-weight: bold; font-size: 1.2em;}
table.hl { margin: 2em 0;}table.hl td.ln { text-align: right;}
![Page 255: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/255.jpg)
![Page 256: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/256.jpg)
class Animal constructor: (@name) ->
move: (meters) -> alert @name + " moved " + meters + "m."
class Snake extends Animal move: -> alert "Slithering..." super 5
class Horse extends Animal move: -> alert "Galloping..." super 45
sam = new Snake "Sammy the Python"tom = new Horse "Tommy the Palomino"
sam.move()tom.move()
![Page 257: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/257.jpg)
var Animal, Horse, Snake, sam, tom;var __hasProp = Object.prototype.hasOwnProperty, __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor; child.__super__ = parent.prototype; return child;};Animal = (function() { function Animal(name) { this.name = name; } Animal.prototype.move = function(meters) { return alert(this.name + " moved " + meters + "m."); }; return Animal;})();Snake = (function() { __extends(Snake, Animal); function Snake() { Snake.__super__.constructor.apply(this, arguments); } Snake.prototype.move = function() { alert("Slithering..."); return Snake.__super__.move.call(this, 5); }; return Snake;})();Horse = (function() { __extends(Horse, Animal); function Horse() { Horse.__super__.constructor.apply(this, arguments); } Horse.prototype.move = function() { alert("Galloping..."); return Horse.__super__.move.call(this, 45); }; return Horse;})();sam = new Snake("Sammy the Python");tom = new Horse("Tommy the Palomino");sam.move();tom.move();loadrun
![Page 258: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/258.jpg)
![Page 259: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/259.jpg)
![Page 260: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/260.jpg)
102
![Page 261: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/261.jpg)
![Page 262: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/262.jpg)
![Page 263: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/263.jpg)
![Page 264: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/264.jpg)
![Page 265: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/265.jpg)
![Page 266: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/266.jpg)
![Page 267: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/267.jpg)
![Page 268: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/268.jpg)
![Page 269: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/269.jpg)
![Page 270: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/270.jpg)
![Page 271: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/271.jpg)
![Page 272: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/272.jpg)
![Page 273: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/273.jpg)
![Page 274: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/274.jpg)
![Page 275: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/275.jpg)
Web Server(Produção)
Request
RailsApp
/app/assets
Web Server(Desenvolvimento)
Request
/public
![Page 276: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/276.jpg)
Web Server(Produção)
Request
RailsApp
/app/assets
Web Server(Desenvolvimento)
Request
Sprockets
/public
![Page 277: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/277.jpg)
Web Server(Produção)
Request
RailsApp
/app/assets
Web Server(Desenvolvimento)
Request
Sprockets
Tilt
/public
![Page 278: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/278.jpg)
Web Server(Produção)
Request
RailsApp
/app/assets
Web Server(Desenvolvimento)
Request
Sprockets
Tilt
Ugli!er
/public
![Page 279: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/279.jpg)
ENGINE FILE EXTENSIONS REQUIRED LIBRARIES
ERB .erb, .rhtmlnone
Interpolated String .strnone
Erubis .erb, .rhtml, .erubis erubis
Haml .haml haml
Sass .sasssass
Scss .scsssass
Less CSS .less less
Builder .builder builder
Liquid .liquid liquid
RDiscount
.markdown, .mkd, .md
rdiscount
Redcarpet
.markdown, .mkd, .md
redcarpet
BlueCloth .markdown, .mkd, .md bluecloth
Kramdown
.markdown, .mkd, .md
kramdown
Maruku
.markdown, .mkd, .md
maruku
RedCloth .textile redcloth
RDoc .rdoc rdoc
Radius .radius radius
Markaby .mab markaby
Nokogiri .nokogiri nokogiri
CoffeeScript .coffee coffee-script
Creole (Wiki markup) .creole creole
![Page 280: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/280.jpg)
![Page 281: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/281.jpg)
jQuery Tamanho Tempo
Original Size 621kb
Google Closure 234kb 6.5s
YUI Compressor 240kb 2.7s
UglifyJS 235kb 1.3s
![Page 282: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/282.jpg)
jQuery Tamanho Tempo
Original Size 621kb
Google Closure 234kb 6.5s
YUI Compressor 240kb 2.7s
UglifyJS 235kb 1.3s
![Page 283: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/283.jpg)
jQuery Tamanho Tempo
Original Size 621kb
Google Closure 234kb 6.5s
YUI Compressor 240kb 2.7s
UglifyJS 235kb 1.3s
![Page 284: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/284.jpg)
jQuery Tamanho Tempo
Original Size 621kb
Google Closure 234kb 6.5s
YUI Compressor 240kb 2.7s
UglifyJS 235kb 1.3s
![Page 285: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/285.jpg)
jQuery Tamanho Tempo
Original Size 621kb
Google Closure 234kb 6.5s
YUI Compressor 240kb 2.7s
UglifyJS 235kb 1.3s
![Page 286: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/286.jpg)
![Page 287: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/287.jpg)
![Page 288: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/288.jpg)
![Page 289: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/289.jpg)
![Page 290: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/290.jpg)
![Page 291: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/291.jpg)
![Page 292: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/292.jpg)
RedmineGerenciador de
Projetos
![Page 293: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/293.jpg)
![Page 294: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/294.jpg)
![Page 295: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/295.jpg)
![Page 296: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/296.jpg)
git clone git://github.com/redmine/redmine.git
(edit) config/database.yml
bundle install
bundle exec rake generate_session_store
bundle exec rake db:create
bundle exec rake db:migrate
bundle exec rails server
![Page 297: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/297.jpg)
![Page 298: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/298.jpg)
![Page 299: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/299.jpg)
![Page 300: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/300.jpg)
![Page 301: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/301.jpg)
![Page 302: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/302.jpg)
![Page 303: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/303.jpg)
Content Management
Systems
![Page 304: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/304.jpg)
![Page 305: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/305.jpg)
![Page 306: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/306.jpg)
![Page 307: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/307.jpg)
![Page 308: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/308.jpg)
![Page 309: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/309.jpg)
![Page 310: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/310.jpg)
![Page 311: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/311.jpg)
![Page 312: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/312.jpg)
gem install refinerycms
refinerycms demo_refinery_site
cd demo_refinery_site
bundle exec rails server
![Page 313: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/313.jpg)
![Page 314: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/314.jpg)
![Page 315: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/315.jpg)
Nanoc3Gerador de Sites
![Page 316: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/316.jpg)
![Page 317: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/317.jpg)
![Page 318: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/318.jpg)
![Page 319: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/319.jpg)
gem install kramdown
gem install adsf
gem install nanoc
![Page 320: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/320.jpg)
nanoc create_site nanoc_demo
nanoc compile
nanoc view (não é Rails!)
![Page 321: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/321.jpg)
![Page 322: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/322.jpg)
Material
![Page 323: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/323.jpg)
![Page 324: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/324.jpg)
![Page 325: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/325.jpg)
![Page 326: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/326.jpg)
![Page 327: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/327.jpg)
![Page 328: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/328.jpg)
![Page 329: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/329.jpg)
![Page 330: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/330.jpg)
![Page 331: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/331.jpg)
![Page 332: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/332.jpg)
![Page 333: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/333.jpg)
![Page 334: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/334.jpg)
![Page 335: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/335.jpg)
![Page 336: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/336.jpg)
![Page 337: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/337.jpg)
![Page 338: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/338.jpg)
![Page 339: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/339.jpg)
![Page 340: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/340.jpg)
RubyConfBrasil
30 e 31 de Agosto
![Page 341: Workshop de Ruby e Rails na USP Leste 2012](https://reader036.fdocument.pub/reader036/viewer/2022062405/5559305ed8b42a543d8b48e3/html5/thumbnails/341.jpg)
Obrigado!www.akitaonrails.com
www.codeminer42.com
u.akita.ws/uspleste2012