42
Sinatra Zero & XDite

Sinatra

  • Upload
    itszero

  • View
    444

  • Download
    0

Embed Size (px)

DESCRIPTION

This is a slide of lightning talk session of OSDC.tw 2009. In this slide, we'll show you some example, and deployment tips & tricks on passenger(mod_rails), heroku and Google AppEngine.

Citation preview

Page 1: Sinatra

SinatraZero & XDite

Page 2: Sinatra

惡搞、惡搞、惡搞

Page 3: Sinatra

Make Ur Calendar Icon

Page 4: Sinatra

Yes, Make our own!

Page 5: Sinatra
Page 6: Sinatra

秘技

Page 7: Sinatra

上上下下左右左右BA

Page 8: Sinatra

UUDDLRLRBA

Page 9: Sinatra
Page 10: Sinatra
Page 11: Sinatra

自我介紹

Page 12: Sinatra

itsZero• Full-time student

• Works in hypo

• http://itszero.org/

• http://twitter.com/itszero

Page 13: Sinatra
Page 14: Sinatra

山寨傑洛我不會說日文也不會兩段跳...

Page 15: Sinatra

這可以幹嘛?

Page 16: Sinatra
Page 17: Sinatra
Page 18: Sinatra
Page 19: Sinatra
Page 20: Sinatra

Sinatra + RMagick

Page 21: Sinatra

#!/usr/bin/rubyrequire 'rubygems'require 'sinatra'require 'RMagick'include Magick FONTPATH = File.dirname(File.expand_path(__FILE__)) + "/Aller/Aller_Bd.ttf" get '/' do  open('public/index.html').readend get '/gen_icon' do  headers['Content-Type'] = 'image/png'  [some nasty RMagick code...]   canvas.format = 'png'  canvas.to_blobend 

Page 22: Sinatra
Page 24: Sinatra

Another Example

Oh, Dear Mr IE6...

Page 25: Sinatra

PHP / CodeIgniter

無法顯示中文

?

Page 26: Sinatra

幾千行 debug 個鬼啊...by XDite

Page 27: Sinatra

require ‘twitter_search’

Page 28: Sinatra

require 'rubygems'require 'sinatra'require 'twitter_search'get '/' do @client = TwitterSearch::Client.new 'politweets' @results = @client.query :q => '@MrIE6' erb :homeend

Page 29: Sinatra

10 行搞定 !

Page 30: Sinatra

db & paginate

Page 31: Sinatra

activerecord will_paginate

Page 32: Sinatra

多寫了 40 行

Page 33: Sinatra

Deployment!

Page 34: Sinatra

Passenger

• (可以想成) Ruby 的 mod_php

• Supports Rack!

Page 35: Sinatra

Rack

Handler Adapters

• Mongrel• WEBrick• FastCGI• Passenger

• Camping• Sinatra• Merb•...•...

Page 36: Sinatra

Sinatra on Passenger

1 require 'rubygems' 2 require 'sinatra' 3 4 Sinatra::Application.default_options.merge!( 5 :run => false, 6 :environment => :production 7 ) 8 9 require 'make_your_cal_icon.rb' 10 run Sinatra::Application 11

=> config.ru

Page 37: Sinatra
Page 38: Sinatra

Java on GAE

Page 39: Sinatra

JRuby + Sinatra + GAE

Page 40: Sinatra

URLFetchingBumbleWill_paginate

Page 41: Sinatra
Page 42: Sinatra

http://gae.mrie6.comhttp://tr.im/j9DK