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
10 Years: LL, you and me
Search
Tatsuhiko Miyagawa
August 04, 2012
Technology
2
180
10 Years: LL, you and me
LL Decade
http://vimeo.com/47344146
Tatsuhiko Miyagawa
August 04, 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
Ruby; Exported
miyagawa
1
940
Plack 1.0 announcement at OSCON
miyagawa
1
250
Other Decks in Technology
See All in Technology
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
3.2k
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
120
Why does continuous profiling matter to developers? #appdevelopercon
salaboy
0
180
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
170
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
0
410
IBC 2024 動画技術関連レポート / IBC 2024 Report
cyberagentdevelopers
PRO
0
110
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
960
Evangelismo técnico: ¿qué, cómo y por qué?
trishagee
0
360
信頼性に挑む中で拡張できる・得られる1人のスキルセットとは?
ken5scal
2
530
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
170
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Side Projects
sachag
452
42k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
How GitHub (no longer) Works
holman
310
140k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Designing Experiences People Love
moore
138
23k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Agile that works and the tools we love
rasmusluckow
327
21k
Transcript
10 years: LL, you and me Tatsuhiko Miyagawa @miyagawa Aug
4, 2012 LL Decade at Ginza Blossom, Tokyo Sunday, September 30, 12
About • Tatsuhiko Miyagawa • @miyagawa • github.com/miyagawa • cpan:
MIYAGAWA • San Francisco, CA Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
͡Ίʹ Sunday, September 30, 12
LL .* 10th Anniversary 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
Sunday, September 30, 12
ຊͷ͓ Sunday, September 30, 12
Community Code Culture Sunday, September 30, 12
Community Sunday, September 30, 12
> ΧϯϑΝϨϯεશମͷςʔϚͱͯ͠ɺࠓ·Ͱ ͷ10ؒΛৼΓฦΔɺతͳײ͡Ͱ Sunday, September 30, 12
Sunday, September 30, 12
ੲʁ Sunday, September 30, 12
Sunday, September 30, 12
Topics: Online Games Retro Videogames Vim vs. Emacs Sunday, September
30, 12
Sunday, September 30, 12
2003 LL Saturday 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
Sunday, September 30, 12
Open Collaboration Beyond Code Sunday, September 30, 12
Sunday, September 30, 12
2005 joined Six Apart Sunday, September 30, 12
Resume search.cpan.org/~miyagawa Sunday, September 30, 12
Sunday, September 30, 12
Software = People Sunday, September 30, 12
My code = What I really am 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
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
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
Code 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
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sharing Code Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
JFDI Sunday, September 30, 12
You don’t need someone’s permission to write code. Sunday, September
30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
tokuhirom created a repo while I was asleep. Without my
permission :) Sunday, September 30, 12
Sunday, September 30, 12
Culture Sunday, September 30, 12
Plack/PSGI Sunday, September 30, 12
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 class Hello def call(env)
return [ 200, { “Content-‐Type” => ”text/plain” }, [“Hello World”] ] end end 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
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
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
Sunday, September 30, 12
Sunday, September 30, 12
• Copied the templates • Looked at how Werkzeug catches
exceptions with stracktrace • Ported to use Eval::WithLexicals and Devel::StackTrace Plack-Middleware-InteractiveDebugger Sunday, September 30, 12
Lessons • Don't just borrow the idea. Copy it (PSGI)
• Copy the ecosystem too (Plack) • Be aware of the difference in notations when copying it :) 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
When in doubt, we can always look at what WSGI
or Rack do. Sunday, September 30, 12
Better late than never Sunday, September 30, 12
Better late than too early :) Sunday, September 30, 12
Sunday, September 30, 12
Plack 1.0 Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Cross-language Pollination Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
More examples 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
Sunday, September 30, 12
Sunday, September 30, 12
Plack: Another thing stolen from Ruby Sunday, September 30, 12
“There’re only two hard things in Computer Science: cache invalidation
and naming things.” -Phil Karlton Sunday, September 30, 12
“There’re only two hard things in Computer Science: cache invalidation,
naming things and off-by-one errors.” -Phil Karlton Sunday, September 30, 12
We tried hard to name things differently. 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
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
More inspirations from 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
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
Sunday, September 30, 12
Sunday, September 30, 12
Sunday, September 30, 12
Go to conferences Inspire each other Sunday, September 30, 12
Keep cross-language conference like this going! Sunday, September 30, 12
Thanks for the invitation & listening. Sunday, September 30, 12
Enjoy the rest of the conference Sunday, September 30, 12
Questions? Sunday, September 30, 12