Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ruby; Exported
Search
Tatsuhiko Miyagawa
September 15, 2012
Technology
1
1k
Ruby; Exported
Sapporo RubyKaigi 2012
Tatsuhiko Miyagawa
September 15, 2012
Tweet
Share
More Decks by Tatsuhiko Miyagawa
See All by Tatsuhiko Miyagawa
Carmel at YAPC::EU 2015
miyagawa
0
560
Carton at London Perl Workshop 2013
miyagawa
0
290
Managing CPAN dependencies with Carton
miyagawa
0
350
What's new in Carton and cpanm at YAPC::Asia 2013
miyagawa
6
1.3k
Carton 1.0 at OSCON 2013
miyagawa
11
2.3k
cpanm 1.6 at OSDC.TW
miyagawa
6
1.3k
10 more things to be ripped off
miyagawa
7
1.4k
10 Years: LL, you and me
miyagawa
2
230
Plack 1.0 announcement at OSCON
miyagawa
1
300
Other Decks in Technology
See All in Technology
SQLだけでマイグレーションしたい!
makki_d
0
1.1k
RAG/Agent開発のアップデートまとめ
taka0709
0
190
AIプラットフォームにおけるMLflowの利用について
lycorptech_jp
PRO
1
170
Kiro を用いたペアプロのススメ
taikis
2
530
Databricks向けJupyter Kernelでデータサイエンティストの開発環境をAI-Readyにする / Data+AI World Tour Tokyo After Party
genda
1
580
re:Invent2025 3つの Frontier Agents を紹介 / introducing-3-frontier-agents
tomoki10
0
260
【U/day Tokyo 2025】Cygames流 最新スマートフォンゲームの技術設計 〜『Shadowverse: Worlds Beyond』におけるアーキテクチャ再設計の挑戦~
cygames
PRO
2
790
障害対応訓練、その前に
coconala_engineer
0
120
AWS運用を効率化する!AWS Organizationsを軸にした一元管理の実践/nikkei-tech-talk-202512
nikkei_engineer_recruiting
0
120
業務のトイルをバスターせよ 〜AI時代の生存戦略〜
staka121
PRO
2
220
30分であなたをOmniのファンにしてみせます~分析画面のクリック操作をそのままコード化できるAI-ReadyなBIツール~
sagara
0
180
打 造 A I 驅 動 的 G i t H u b ⾃ 動 化 ⼯ 作 流 程
appleboy
0
360
Featured
See All Featured
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
390
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
73
Building Adaptive Systems
keathley
44
2.9k
Between Models and Reality
mayunak
0
130
How to build a perfect <img>
jonoalderson
0
4.6k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
26
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.7k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The Limits of Empathy - UXLibs8
cassininazir
1
180
Into the Great Unknown - MozCon
thekraken
40
2.2k
Designing for Timeless Needs
cassininazir
0
85
Transcript
Ruby; Exported Tatsuhiko Miyagawa Sapporo RubyKaigi 2012 Sunday, September 30,
12
About Me • Tatsuhiko Miyagawa • @miyagawa • San Francisco,
CA • COOKPAD Inc. US Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
http://www.flickr.com/photos/ya-ko/5086710287/in/set-72157625177557742 Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Cross Language Pollination Sunday, September 30, 12
Perl's influence in Ruby Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Ruby Heritage from Perl Sunday, September 30, 12
http://edward.oconnor.cx/2006/03/ruby-is-perl-done-right Sunday, September 30, 12
http://edward.oconnor.cx/2006/03/ruby-is-perl-done-right Sunday, September 30, 12
ARGF Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
%q %Q Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
`` Sunday, September 30, 12
> `date` # => "Sat Sep 15 09:20:07 JST
2012\n" > %x{echo oops && exit 99} # => "echo\n" > $?.exitstatus # => 99 Sunday, September 30, 12
$! $@ $; $, $/ $\ $. $_ $> $<
$$ $? $~ $= $* $& $` $' Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Mostly, things you don't like :p Sunday, September 30, 12
"Perl's special variables are one of the biggest mistake I
made in Ruby." Sunday, September 30, 12
http://blog.nicksieger.com/articles/2007/10/06/obscure-and-ugly-perlisms-in-ruby Sunday, September 30, 12
Gems Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Ruby's influences in other languages (Perl) Sunday, September 30, 12
Sunday, September 30, 12
Full-stack Web frameworks Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
micro web frameworks Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
DSL Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Perl Modules for Ruby Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
My Cases Sunday, September 30, 12
Plack / PSGI Sunday, September 30, 12
# WSGI def hello(environ, start_response): start_response(“200 OK”, [
(‘Content-‐Type’, ‘text/plain’) ]) return [“Hello World”] Sunday, September 30, 12
# Rack app = -‐>(env) { return [
200, { 'Content-‐Type' => 'text/plain' }, [ 'Hello World' ] ] } Sunday, September 30, 12
# PSGI my $app = sub { my $env
= shift; return [ 200, [ 'Content-‐Type', 'text/plain' ], [ 'Hello World' ] ]; }; Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
It's been a huge success. Sunday, September 30, 12
CGI::Application Apache IIS lighttpd CGI.pm CGI fastcgi mod_perl Jifty Mason
Catalyst Mason::CGIHandler Catalyst::Engine nginx HTTP::Server ::Simple Sunday, September 30, 12
PSGI Plack::Middleware Catalyst CGI::App Jifty Dancer Apache lighttpd HTTP::Server::PSGI Perlbal
mod_psgi Plack::Handler::* (CGI, FCGI, Apache) Starman Twiggy uWSGI Corona Feersum Mojolicious Sunday, September 30, 12
We chose Rack (over WSGI) to copy from: It's newer
and simpler. Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Plack Sunday, September 30, 12
Inspired by: Rack, Werkzeug Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
WSGI: Dec 2003 Rack: Aug 2009 (0.9) Sunday, September 30,
12
“The nicest thing about being late is that there are
plenty of things left to steal.” Sunday, September 30, 12
Better late than never Sunday, September 30, 12
Better late than too early :) Sunday, September 30, 12
Cross-language Pollination Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
http://bulknews.typepad.com/blog/2009/10/psgiplack-streaming-is-now-complete.html Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
rubygems Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
rubygems quiet and intuitive. Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Carton Sunday, September 30, 12
Sunday, September 30, 12
Like Bundler Sunday, September 30, 12
Sunday, September 30, 12
Starman PSGI HTTP Server Sunday, September 30, 12
http://tomayko.com/writings/unicorn-is-unix Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Name Sunday, September 30, 12
"Naming is Important." Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
CPAN traditionally prefers long names Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Too many ::’s! Hard to type nor say. People tend
to shorten the names. e.g. MXMARMR (MooseX::MetaAttribute::Role::Meta::Role) Sunday, September 30, 12
Sunday, September 30, 12
Perl • HTTP::Server::Simple • JSON::XS • Devel::StackTrace • Net::OAuth::Lite •
Text::CSV_XS Sunday, September 30, 12
Python • python-json • pyoauth2 • pygeoip • PyYAML •
Numpy Sunday, September 30, 12
Ruby • Yajl • Psych • unicorn • thin •
puma • doorkeeper • kaminari • paperclip • resque • pry • factory_girl • capybara Sunday, September 30, 12
Perl Descriptive, boring, ::Simple Python Descriptive, confusing, py*, *.py Ruby
Fancy, creative, chaotic Sunday, September 30, 12
except Frameworks. Django, bottle, Catalyst, Dancer, Mojolicious, Rails, Sinatra Sunday,
September 30, 12
People tend to love software with names. (citation needed) Sunday,
September 30, 12
Starman Starlet Twiggy Markapl Corona Pinto Xslate Carton Confusing for
a bit, but it feels more "real". Sunday, September 30, 12
How it's received: Sunday, September 30, 12
Telling Perl developers "Ruby is awesome" makes them defensive. Sunday,
September 30, 12
Shipping awesome code inspired by Ruby makes them appreciative Sunday,
September 30, 12
(We Code) Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Starman Starlet Twiggy Plack::Handler::FCGI mod_perl 2 HTTP::Server::PSGI H::S::Simple::PSGI CGI Feersum
uWSGI mod_perl 1.3 0 15 30 45 60 Sunday, September 30, 12
http://www.bofh.org.uk/2010/03/10/falling-out-of-love-with-a-language Sunday, September 30, 12
Sunday, September 30, 12
Quite contrary! Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Wrap up Sunday, September 30, 12
Perl respects Ruby Sunday, September 30, 12
http://www.artima.com/intv/ruby3.html Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
http://yapcasia.org/2012/talk/show/bcdf8c9e-da9d-11e1-a79e-0d4e6aeab6a4 Sunday, September 30, 12
Thank you. Sunday, September 30, 12