Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ruby; Exported
Search
Tatsuhiko Miyagawa
September 15, 2012
Technology
1
950
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
490
Carton at London Perl Workshop 2013
miyagawa
0
250
Managing CPAN dependencies with Carton
miyagawa
0
270
What's new in Carton and cpanm at YAPC::Asia 2013
miyagawa
6
1.2k
Carton 1.0 at OSCON 2013
miyagawa
11
2.2k
cpanm 1.6 at OSDC.TW
miyagawa
6
1.3k
10 more things to be ripped off
miyagawa
7
1.3k
10 Years: LL, you and me
miyagawa
2
180
Plack 1.0 announcement at OSCON
miyagawa
1
250
Other Decks in Technology
See All in Technology
Lambdaと地方とコミュニティ
miu_crescent
2
370
Amazon CloudWatch Network Monitor のススメ
yuki_ink
1
210
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
Lexical Analysis
shigashiyama
1
150
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
310
生成AIが変えるデータ分析の全体像
ishikawa_satoru
0
170
The Rise of LLMOps
asei
9
1.7k
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
4
240
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
390
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
950
アプリエンジニアのためのGraphQL入門.pdf
spycwolf
0
100
Zennのパフォーマンスモニタリングでやっていること
ryosukeigarashi
0
170
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
50
7.2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
Thoughts on Productivity
jonyablonski
67
4.3k
Scaling GitHub
holman
458
140k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
130
Agile that works and the tools we love
rasmusluckow
327
21k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
GitHub's CSS Performance
jonrohan
1030
460k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Producing Creativity
orderedlist
PRO
341
39k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
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