Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Desmistificando o Asset Pipeline
Search
Rondy Sousa
September 15, 2012
Programming
5
200
Desmistificando o Asset Pipeline
Rondy Sousa
September 15, 2012
Tweet
Share
More Decks by Rondy Sousa
See All by Rondy Sousa
Callbacks do ActiveRecord - o mal secreto ou apenas mal compreendidos?
rondy
1
130
Other Decks in Programming
See All in Programming
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
3
730
TestingOsaka6_Ozono
o3
0
150
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
110
ローターアクトEクラブ アメリカンナイト:川端 柚菜 氏(Japan O.K. ローターアクトEクラブ 会長):2720 Japan O.K. ロータリーEクラブ2025年12月1日卓話
2720japanoke
0
730
エディターってAIで操作できるんだぜ
kis9a
0
730
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
150
【CA.ai #3】ワークフローから見直すAIエージェント — 必要な場面と“選ばない”判断
satoaoaka
0
250
宅宅自以為的浪漫:跟 AI 一起為自己辦的研討會寫一個售票系統
eddie
0
500
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
160
ZOZOにおけるAI活用の現在 ~モバイルアプリ開発でのAI活用状況と事例~
zozotech
PRO
8
5.7k
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
110
JETLS.jl ─ A New Language Server for Julia
abap34
1
400
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Scaling GitHub
holman
464
140k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
730
Designing for Performance
lara
610
69k
Facilitating Awesome Meetings
lara
57
6.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Statistics for Hackers
jakevdp
799
230k
The Language of Interfaces
destraynor
162
25k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
Raft: Consensus for Rubyists
vanstee
141
7.2k
Transcript
"44&51*1&-*/& desmistificando o Saturday, September 15, 12
!3POEZ Saturday, September 15, 12
Saturday, September 15, 12
Saturday, September 15, 12
Saturday, September 15, 12
"(&/%" Saturday, September 15, 12
1PSRVFQSFDJTÂWBNPT "(&/%" Saturday, September 15, 12
1PSRVFQSFDJTÂWBNPT 0WFSWJFX "(&/%" Saturday, September 15, 12
1PSRVFQSFDJTÂWBNPT 0WFSWJFX 4QSPDLFUT "(&/%" Saturday, September 15, 12
1PSRVFQSFDJTÂWBNPT 0WFSWJFX 4QSPDLFUT &YFD+4 UIFSVCZSBDFSFPVUSPTSVOUJNFT "(&/%" Saturday, September 15, 12
1PSRVFQSFDJTÂWBNPT 0WFSWJFX 4QSPDLFUT &YFD+4 UIFSVCZSBDFSFPVUSPTSVOUJNFT 1SÉQSPDFTTBEPSFTDVTUPNJ[BEPT "(&/%" Saturday, September 15,
12
1PSRVFQSFDJTÂWBNPT 0WFSWJFX 4QSPDLFUT &YFD+4 UIFSVCZSBDFSFPVUSPTSVOUJNFT 1SÉQSPDFTTBEPSFTDVTUPNJ[BEPT (FNJpDBOEPBTTFUTSFVTÂWFJT "(&/%" Saturday, September
15, 12
1PSRVFQSFDJTÂWBNPT 0WFSWJFX 4QSPDLFUT &YFD+4 UIFSVCZSBDFSFPVUSPTSVOUJNFT 1SÉQSPDFTTBEPSFTDVTUPNJ[BEPT (FNJpDBOEPBTTFUTSFVTÂWFJT %JDBT USVRVFTFPVUSBTGFJUJÇBSJBT "(&/%"
Saturday, September 15, 12
1PSRVFQSFDJTÂWBNPT 0WFSWJFX 4QSPDLFUT &YFD+4 UIFSVCZSBDFSFPVUSPTSVOUJNFT 1SÉQSPDFTTBEPSFTDVTUPNJ[BEPT (FNJpDBOEPBTTFUTSFVTÂWFJT %JDBT USVRVFTFPVUSBTGFJUJÇBSJBT "MUFSOBUJWBT
"(&/%" Saturday, September 15, 12
Saturday, September 15, 12
3"*-4¬36#: Saturday, September 15, 12
3"*-4¬36#: '0$0/0%0.°/*0%0130#-&." Saturday, September 15, 12
3"*-4¬36#: '0$0/0%0.°/*0%0130#-&." $0/7&/ª§040#3&$0/'*(63"ª§0 Saturday, September 15, 12
3"*-4¬36#: '0$0/0%0.°/*0%0130#-&." $0/7&/ª§040#3&$0/'*(63"ª§0 1"55&3/4*.1-°$*504 Saturday, September 15, 12
3"*-4¬36#: '0$0/0%0.°/*0%0130#-&." $0/7&/ª§040#3&$0/'*(63"ª§0 1"55&3/4*.1-°$*504 03("/*;"ª§0%&"326*704 Saturday, September 15, 12
&0/%&&6(6"3%0 04.&64"44&54 Saturday, September 15, 12
&0/%&&6(6"3%0 04.&64"44&54 public/* Saturday, September 15, 12
&0/%&&6(6"3%0 04.&64"44&54 public/* limbo Saturday, September 15, 12
"44&54 DTT KBWBTDSJQU JNBHFOT GPOUFT BVEJP WJEFP Saturday,
September 15, 12
40.04/&(-*(&/5&4 $0.$¶%*(0'30/5&/% .&"$6-1" Saturday, September 15, 12
.0%6-"3*;"ª§0 05*.*;"ª§0 & Saturday, September 15, 12
$"."-)"ª0%&"326*704 26&"6.&/5"0/¼.&30%& 3&26&454&"-"5/$*" ."/5&356%0&."1&/"4 6.*.&/40"326*70 ."/65&/ª§0$3*.*/04" 9 1) 2) Saturday,
September 15, 12
Saturday, September 15, 12
Saturday, September 15, 12
Saturday, September 15, 12
Saturday, September 15, 12
Saturday, September 15, 12
%*.*/6*3/¼.&30%&3&26*4*ª¸&4)551 Saturday, September 15, 12
%*.*/6*3/¼.&30%&3&26*4*ª¸&4)551 .*/*'*$"3+"7"4$3*15&$44 Saturday, September 15, 12
%*.*/6*3/¼.&30%&3&26*4*ª¸&4)551 .*/*'*$"3+"7"4$3*15&$44 $0.10/&/5&4(;*1 Saturday, September 15, 12
IUUQXXXZPVUVCFDPNXBUDI W6M.Q*)),T Saturday, September 15, 12
"If a problem is very commom, we end up with
a proliferation of choices." :FIVEB,BU[ Saturday, September 15, 12
“...but we should have to make fewer decisions.” :FIVEB,BU[ Saturday,
September 15, 12
4&37*3"44&54/§0¬ 53*7*"- Saturday, September 15, 12
6. 1*1&-*/& 1"3"03&4("5& Saturday, September 15, 12
a linear sequence of specialized modules which performs a task,
like an assembly line in a factory. pipe.line noun Saturday, September 15, 12
1*1&-*/& the Saturday, September 15, 12
$0.1*-"3 1*1&-*/& the Saturday, September 15, 12
$0.1*-"3 $0/$"5&/"3 1*1&-*/& the Saturday, September 15, 12
$0.1*-"3 $0/$"5&/"3 .*/*'*$"3 1*1&-*/& the Saturday, September 15, 12
$0.1*-"3 $0/$"5&/"3 .*/*'*$"3 $0.13*.*3 1*1&-*/& the Saturday, September 15, 12
$0.1*-"3 $0/$"5&/"3 .*/*'*$"3 $0.13*.*3 $"$)ʅ*/( 1*1&-*/& the Saturday, September 15,
12
QVCMJD\KBWBTDSJQUTcTUZMFTIFFUTcJNBHFT^ 3"*-4 Saturday, September 15, 12
3"*-4 Saturday, September 15, 12
IUUQXXXZPVUVCFDPNXBUDI WD(E$*)IG"6 Saturday, September 15, 12
"We're elevating this stuff up to the same importance as
Ruby code itself." %BWJE))BOTTPO3BDF$BS%SJWFS Saturday, September 15, 12
$63"5&%'3".&803, Saturday, September 15, 12
rails new rs-on-rails Saturday, September 15, 12
%"%*4$¶3%*" (&.'*-& Saturday, September 15, 12
(FNpMF group :assets do gem 'sass-rails', '~> 3.2.3' # gem
'therubyracer', :platforms => :ruby gem 'coffee-rails', '~> 3.2.1' gem 'uglifier', '>= 1.0.3' end Saturday, September 15, 12
0"44&51*1&-*/&*.1¸& 6."/07"&45365363" 13"03("/*;"ª§0%& "44&54 Saturday, September 15, 12
0"44&51*1&-*/&*.1¸& 6."/07"&45365363" 13"03("/*;"ª§0%& "44&54 Saturday, September 15, 12
0"44&51*1&-*/&46(&3& 6."/07"&45365363" 13"03("/*;"ª§0%& "44&54 Saturday, September 15, 12
BQQBTTFUT MJCBTTFUT WFOEPSBTTFUT Saturday, September 15, 12
Saturday, September 15, 12
Saturday, September 15, 12
Saturday, September 15, 12
Saturday, September 15, 12
"44&5#6/%-&4 Saturday, September 15, 12
"44&5#6/%-&4 BQQMJDBUJPOKT BQQMJDBUJPODTT Saturday, September 15, 12
<head> <title>Rs on Rails</title> <%= stylesheet_link_tag "application", media: "all" %>
<%= javascript_include_tag "application" %> <%= csrf_meta_tags %> </head> BQQWJFXTMBZPVUTBQQMJDBUJPOIUNMFSC Saturday, September 15, 12
Saturday, September 15, 12
BQQMJDBUJPODTT Saturday, September 15, 12
BQQMJDBUJPODTT SFTFUDTT MBZPVUDTT OBWJHBUJPODTT TJEFCBSDTT UZQPHSBQIZDTT GPSNTDTT UIFNFDTT Saturday, September
15, 12
/* *= require_self *= require reset *= require layout *=
require sidebar *= require navigation *= require typography *= require forms *= require colors */ BQQWJFXTMBZPVUTBQQMJDBUJPODTT Saturday, September 15, 12
/* *= require_self *= require reset *= require layout *=
require sidebar *= require navigation *= require typography *= require forms *= require colors */ BQQWJFXTMBZPVUTBQQMJDBUJPODTT no jargão, o “manifesto” Saturday, September 15, 12
Saturday, September 15, 12
DPOpHFOWJSPONFOUTEFWFMPQNFOUSC RsOnRails::Application.configure do config.assets.debug = false end Saturday, September 15,
12
Saturday, September 15, 12
DPOpHFOWJSPONFOUTEFWFMPQNFOUSC RsOnRails::Application.configure do config.assets.compress = true end Saturday, September 15,
12
Saturday, September 15, 12
DPOpHFOWJSPONFOUTEFWFMPQNFOUSC RsOnRails::Application.configure do config.assets.digest = true end Saturday, September 15,
12
Saturday, September 15, 12
http://localhost:3000/assets/application.css http://localhost:3000/assets/application.js Saturday, September 15, 12
http://localhost:3000/assets/application.css http://localhost:3000/assets/application.js Saturday, September 15, 12
http://localhost:3000/assets/application.css 04130$,&54.0/5"6." 6."3"$,"11/"305" BTTFUT http://localhost:3000/assets/application.js Saturday, September 15, 12
IUUQTHJUIVCDPNSBJMTSBJMTCMPCTUBCMFBDUJPOQBDLMJC TQSPDLFUTCPPUTUSBQSC- Saturday, September 15, 12
."44¶&. %&7&-01.&/5 Saturday, September 15, 12
$0.0'*$"&. 45"(*/(130%6$5*0/ Saturday, September 15, 12
130%6$5*0/ 4FSWJEPSXFC TFSWFPTBSRVJWPT QSÉDPNQJMBEPT Saturday, September 15, 12
DPOpHFOWJSPONFOUTEFWFMPQNFOUSC RsOnRails::Application.configure do config.assets.compress = false config.assets.debug = true end
Saturday, September 15, 12
DPOpHFOWJSPONFOUTEFWFMPQNFOUSC RsOnRails::Application.configure do config.assets.compress = false config.assets.debug = true end
RsOnRails::Application.configure do config.assets.compress = true config.assets.compile = false config.assets.digest = true end DPOpHFOWJSPONFOUTQSPEVDUJPOSC Saturday, September 15, 12
04"44&54"/5&4%&&/53"3&.130%6ª§0 064&+" 13&$*4".04 13¬$0.1*-"3 Saturday, September 15, 12
$ rake assets:precompile Saturday, September 15, 12
$ rake assets:precompile Saturday, September 15, 12
$ rake assets:precompile Saturday, September 15, 12
/assets/application-9d75ac5c90e71cbe60d8e612a438af43.css /assets/application-9d75ac5c90e71cbe60d8e612a438af43.css.gz Saturday, September 15, 12
/assets/application-9d75ac5c90e71cbe60d8e612a438af43.css ✓$0.1*-"%0 ✓$0/$"5&/"%0 ✓.*/*'*$"%0 ✓$"$)ʅ&% '*/(&313*/5 ✓$0.13*.*%0 /assets/application-9d75ac5c90e71cbe60d8e612a438af43.css.gz Saturday, September
15, 12
Saturday, September 15, 12
."/*'&45:.- Saturday, September 15, 12
--- Aller_Rg.ttf: Aller_Rg-89086a78088e0ccdf7d5f3a2413b890c.ttf rails.png: rails-be8732dac73d845ac5b142c8fb5f9fb0.png application.js: application-d47f12ee8bceef5910c0e6d180ecf97c.js application.css: application-cf5421f21a42b9b487d6131006c60539.css QVCMJDBTTFUTNBOJGFTUZNM
Saturday, September 15, 12
/§064"3¥4-*7& $0.1*-"5*0/&. 130%6ª§0 Saturday, September 15, 12
70-5"/%0"0"11-*$"5*0/ #6/%-& Saturday, September 15, 12
Saturday, September 15, 12
$"%0+26&3:26& %&7&3*"&45"3"26* Saturday, September 15, 12
4&(63"&44"%¼7*%" Saturday, September 15, 12
13¬130$&44"%03&4 Saturday, September 15, 12
TQFBLFSTKT Saturday, September 15, 12
Saturday, September 15, 12
TQFBLFSTDPGGF Saturday, September 15, 12
GPSNTDTT Saturday, September 15, 12
Saturday, September 15, 12
GPSNTDTTTDTT Saturday, September 15, 12
GPSNTDTTTDTTFSC Saturday, September 15, 12
GPSNTDTTTDTTFSC $"%&*"%&13¬130$&44".&/50 Saturday, September 15, 12
IUUQTHJUIVCDPNNFUBTLJMMTMFTTSBJMT Saturday, September 15, 12
IUUQTHJUIVCDPNMVDBTNB[[BSVCZTUZMVT Saturday, September 15, 12
4130$,&54 Saturday, September 15, 12
require "sprockets" Saturday, September 15, 12
require "sprockets" env = Sprockets::Environment.new Saturday, September 15, 12
require "sprockets" env = Sprockets::Environment.new env.append_path "assets/javascripts" Saturday, September 15,
12
require "sprockets" env = Sprockets::Environment.new env.append_path "assets/javascripts" application_js = env["application.js"]
Saturday, September 15, 12
require "sprockets" env = Sprockets::Environment.new env.append_path "assets/javascripts" application_js = env["application.js"]
logical path Saturday, September 15, 12
puts application_js.inspect Saturday, September 15, 12
puts application_js.inspect # #<Sprockets::BundledAsset:0x3fd7304a3570 # pathname="/Users/rondy/sprockets/assets/javascripts/application.js", # mtime=2012-09-02 17:08:34 -0300,
# digest="e643622cbd2c3f4d29b5fad9e329b2e8"> Saturday, September 15, 12
puts application_js Saturday, September 15, 12
puts application_js # contents of `application.js` with its concatenated dependencies
Saturday, September 15, 12
"1&/"4."*46." .06/5"#-&3"$,"11 Saturday, September 15, 12
require 'sprockets' map '/assets' do environment = Sprockets::Environment.new environment.append_path 'app/assets/javascripts'
environment.append_path 'app/assets/stylesheets' run environment end map '/' do run YourRackApp end Saturday, September 15, 12
4130$,&54 Saturday, September 15, 12
guard 'sprockets', destination: "build/javascripts", asset_paths: ['/src/javascripts'] do watch (%r{src/javascripts/application.js}) end
(VBSEpMF Saturday, September 15, 12
70-5"/%0"0 (&.'*-&%" %*4$¶3%*" Saturday, September 15, 12
(FNpMF group :assets do gem 'sass-rails', '~> 3.2.3' # gem
'therubyracer', :platforms => :ruby gem 'coffee-rails', '~> 3.2.1' gem 'uglifier', '>= 1.0.3' end Saturday, September 15, 12
gem 'therubyracer', :platforms => :ruby Saturday, September 15, 12
&9&$+4 Saturday, September 15, 12
&9&$+4 +"7"4$3*15 36#: Saturday, September 15, 12
require "execjs" Saturday, September 15, 12
require "execjs" ExecJS.eval "'red yellow blue'.split(' ')" Saturday, September 15,
12
require "execjs" ExecJS.eval "'red yellow blue'.split(' ')" # => ["red",
"yellow", "blue"] Saturday, September 15, 12
$PGGF4DSJQU 6HMJGZGSJFOET Saturday, September 15, 12
$PGGF4DSJQU 6HMJGZGSJFOET &YFD+4 Saturday, September 15, 12
36/5*.& $PGGF4DSJQU 6HMJGZGSJFOET &YFD+4 Saturday, September 15, 12
36/5*.& $PGGF4DSJQU 6HMJGZGSJFOET /PEFKT &YFD+4 Saturday, September 15, 12
36/5*.& $PGGF4DSJQU 6HMJGZGSJFOET /PEFKT "QQMF +BWB4DSJQU$PSF &YFD+4 Saturday, September 15,
12
36/5*.& $PGGF4DSJQU 6HMJGZGSJFOET /PEFKT "QQMF +BWB4DSJQU$PSF .JDSPTPGU8JOEPXT 4DSJQU)PTU +4DSJQU &YFD+4
Saturday, September 15, 12
36/5*.& $PGGF4DSJQU 6HMJGZGSJFOET /PEFKT UIFSVCZSBDFS "QQMF +BWB4DSJQU$PSF .JDSPTPGU8JOEPXT 4DSJQU)PTU +4DSJQU
&YFD+4 Saturday, September 15, 12
36/5*.& $PGGF4DSJQU 6HMJGZGSJFOET /PEFKT UIFSVCZSBDFS UIFSVCZSIJOP "QQMF +BWB4DSJQU$PSF .JDSPTPGU8JOEPXT 4DSJQU)PTU
+4DSJQU &YFD+4 Saturday, September 15, 12
Saturday, September 15, 12
gem 'therubyracer', :platforms => :ruby Saturday, September 15, 12
gem 'therubyrhino', :platforms => :jruby Saturday, September 15, 12
Saturday, September 15, 12
%*$"4 53626&4& 0653"4 '&*5*ª"3*"4 Saturday, September 15, 12
4130$,&5494"44 Saturday, September 15, 12
$base-font-color: #555555; BQQBTTFUTTUZMFTIFFUTDPNNPODTTTDTT Saturday, September 15, 12
/* *= require common */ body { color: $base-font-color; }
BQQBTTFUTTUZMFTIFFUTBQQMJDBUJPODTTTDTT $base-font-color: #555555; BQQBTTFUTTUZMFTIFFUTDPNNPODTTTDTT Saturday, September 15, 12
Saturday, September 15, 12
SFRVJSFTBTT Saturday, September 15, 12
/* */ @import "common.css.scss"; body { color: $base-font-color; } BQQBTTFUTTUZMFTIFFUTBQQMJDBUJPODTTTDTT
Saturday, September 15, 12
$3*"/%0/04404 13¶13*0413¬ 130$&44"%03&4 Saturday, September 15, 12
class TimestampProcessor < Sprockets::Processor end MJCQSPDFTTPSTUJNFTUBNQ@QSPDFTTPSSC Saturday, September 15, 12
class TimestampProcessor < Sprockets::Processor def evaluate(context, locals) end end MJCQSPDFTTPSTUJNFTUBNQ@QSPDFTTPSSC
Saturday, September 15, 12
class TimestampProcessor < Sprockets::Processor def evaluate(context, locals) data end end
MJCQSPDFTTPSTUJNFTUBNQ@QSPDFTTPSSC Saturday, September 15, 12
class TimestampProcessor < Sprockets::Processor def evaluate(context, locals) current_timestamp = DateTime.now.to_s(:timestamp)
["/* #{current_timestamp} */", data].join("\n") end end MJCQSPDFTTPSTUJNFTUBNQ@QSPDFTTPSSC Saturday, September 15, 12
require "processors/timestamp_processor" Rails.application.assets. register_postprocessor("text/css", TimestampProcessor) DPOpHJOJUJBMJ[FSTTQSPDLFUTSC Saturday, September 15, 12
require "processors/timestamp_processor" Rails.application.assets. register_postprocessor("text/css", TimestampProcessor) Rails.application.assets. register_postprocessor("application/javascript", TimestampProcessor) DPOpHJOJUJBMJ[FSTTQSPDLFUTSC Saturday,
September 15, 12
Saturday, September 15, 12
(&.*'*$"/%0"44&54 3&64¥7&*4 Saturday, September 15, 12
(&.*'*$"/%0"44&54 3&64¥7&*4 ","$0.04&34)08 Saturday, September 15, 12
4)08 /§04)08%&45 Saturday, September 15, 12
var Showdest = { description: "Are you showdest, my friend?"
} alert(Showdest.description); //= require_self //= require showdest BQQBTTFUTKBWBTDSJQUTTIPXEFTUKT BQQBTTFUTKBWBTDSJQUTBQQMJDBUJPOKT Saturday, September 15, 12
Saturday, September 15, 12
$ bundle gem showdest Saturday, September 15, 12
$ bundle gem showdest $ cd showdest Saturday, September 15,
12
$ bundle gem showdest $ cd showdest $ mkdir -p
vendor/assets/javascript Saturday, September 15, 12
$ bundle gem showdest $ cd showdest $ mkdir -p
vendor/assets/javascript $ mv ~/code/rs-on-rails/app/assets/javascripts/showdest.js \ vendor/assets/javascript Saturday, September 15, 12
Saturday, September 15, 12
group :assets do gem 'showdest', path: '/Users/rondy/code/showdest' end (FNpMF Saturday,
September 15, 12
$ bundle && rails s Saturday, September 15, 12
$ bundle && rails s Saturday, September 15, 12
module Showdest class Engine < Rails::Engine end end TIPXEFTUMJCTIPXEFTUFOHJOFSC Saturday,
September 15, 12
module Showdest class Engine < Rails::Engine end end TIPXEFTUMJCTIPXEFTUFOHJOFSC Gem::Specification.new
do |gem| gem.add_dependency "railties", ">= 3.1", "< 5.0" end TIPXEFTUTIPXEFTUHFNTQFD Saturday, September 15, 12
require "showdest/version" require "showdest/engine" module Showdest end TIPXEFTUMJCTIPXEFTUSC Saturday, September
15, 12
$ bundle && rails s Saturday, September 15, 12
$ bundle && rails s Saturday, September 15, 12
-&.#3"%0+26&3: Saturday, September 15, 12
(&. 3"*-4&/(*/& Saturday, September 15, 12
Saturday, September 15, 12
Saturday, September 15, 12
Saturday, September 15, 12
"-5&3/"5*7"4 Saturday, September 15, 12
rails new rs-on-rails \ --skip-sprockets Saturday, September 15, 12
IUUQEPDVNFOUDMPVEHJUIVCDPNKBNNJU Saturday, September 15, 12
IUUQTHJUIVCDPNMJWJOHTPDJBMSBLFQJQFMJOF Saturday, September 15, 12
"*/%")¥.6*50."*4 Saturday, September 15, 12
IUUQHVJEFTSVCZPOSBJMTPSHBTTFU@QJQFMJOFIUNM Saturday, September 15, 12
IUUQDPEFSCFSSZNFCMPHBTTFUQJQFMJOFGPSEVNNJFT Saturday, September 15, 12
IUUQBLJUBPOSBJMTDPNBTTFUQJQFMJOFQBSBJOJDJBOUFT IUUQBLJUBPOSBJMTDPNBTTFUQJQFMJOFQBSBJOJDJBOUFTQBSUF Saturday, September 15, 12
IUUQSBJMTDBTUTDPNFQJTPEFTVOEFSTUBOEJOHUIFBTTFUQJQFMJOF IUUQSBJMTDBTUTDPNFQJTPEFTBTTFUQJQFMJOFJOQSPEVDUJPO Saturday, September 15, 12
IUUQCMPHNJOVUFTDPNVOUBOHMJOHUIFSBJMTBTTFUQJQFMJOFQBSUDBDIFTBOEDPNQBTT IUUQCMPHNJOVUFTDPNVOUBOHMJOHUIFSBJMTBTTFUQJQFMJOFQBSUQSPEVDUJPO IUUQCMPHNJOVUFTDPNVOUBOHMJOHUIFSBJMTBTTFUQJQFMJOFQBSUDPOpHVSBUJPO IUUQCMPHNJOVUFTDPNVOUBOHMJOHUIFSBJMTBTTFUQJQFMJOFQBSUUSPVCMFTIPPUJOH Saturday, September 15, 12
IUUQQSBHQSPHDPNCPPLXBSWUIFSBJMTWJFX Saturday, September 15, 12
Saturday, September 15, 12
&45".04$0/53"5"/%0 5$) IUUQQMBUBGPSNBUFDDPNCSDPOUBDU Saturday, September 15, 12
0#3*("%0 Saturday, September 15, 12