10 Years: LL, you and me

10 Years: LL, you and me

B2d653d5d663e750a2cd57bfbc9b727f?s=128

Tatsuhiko Miyagawa

August 04, 2012
Tweet

Transcript

  1. 10 years: LL, you and me Tatsuhiko Miyagawa @miyagawa Aug

    4, 2012 LL Decade at Ginza Blossom, Tokyo Sunday, September 30, 12
  2. About • Tatsuhiko Miyagawa • @miyagawa • github.com/miyagawa • cpan:

    MIYAGAWA • San Francisco, CA Sunday, September 30, 12
  3. Sunday, September 30, 12

  4. Sunday, September 30, 12

  5. Sunday, September 30, 12

  6. ͸͡Ίʹ Sunday, September 30, 12

  7. LL .* 10th Anniversary Sunday, September 30, 12

  8. ͓ΊͰͱ͏ ͍͟͝·͢ Sunday, September 30, 12

  9. Sunday, September 30, 12

  10. Sunday, September 30, 12

  11. Sunday, September 30, 12

  12. Sunday, September 30, 12

  13. Sunday, September 30, 12

  14. Sunday, September 30, 12

  15. Sunday, September 30, 12

  16. ຊ೔ͷ͓୊ Sunday, September 30, 12

  17. Community Code Culture Sunday, September 30, 12

  18. Community Sunday, September 30, 12

  19. > ΧϯϑΝϨϯεશମͷςʔϚͱͯ͠͸ɺࠓ·Ͱ ͷ10೥ؒΛৼΓฦΔɺతͳײ͡Ͱ Sunday, September 30, 12

  20. Sunday, September 30, 12

  21. ੲ࿩ʁ Sunday, September 30, 12

  22. Sunday, September 30, 12

  23. Topics: Online Games Retro Videogames Vim vs. Emacs Sunday, September

    30, 12
  24. Sunday, September 30, 12

  25. 2003 LL Saturday Sunday, September 30, 12

  26. Sunday, September 30, 12

  27. Sunday, September 30, 12

  28. Sunday, September 30, 12

  29. Sunday, September 30, 12

  30. Sunday, September 30, 12

  31. Sunday, September 30, 12

  32. Sunday, September 30, 12

  33. Sunday, September 30, 12

  34. Open Collaboration Beyond Code Sunday, September 30, 12

  35. Sunday, September 30, 12

  36. 2005 joined Six Apart Sunday, September 30, 12

  37. Resume search.cpan.org/~miyagawa Sunday, September 30, 12

  38. Sunday, September 30, 12

  39. Software = People Sunday, September 30, 12

  40. My code = What I really am Sunday, September 30,

    12
  41. Sunday, September 30, 12

  42. Sunday, September 30, 12

  43. Sunday, September 30, 12

  44. Sunday, September 30, 12

  45. Sunday, September 30, 12

  46. Sunday, September 30, 12

  47. Sunday, September 30, 12

  48. Sunday, September 30, 12

  49. Sunday, September 30, 12

  50. Sunday, September 30, 12

  51. Sunday, September 30, 12

  52. Sunday, September 30, 12

  53. Sunday, September 30, 12

  54. Sunday, September 30, 12

  55. Sunday, September 30, 12

  56. Sunday, September 30, 12

  57. Sunday, September 30, 12

  58. Sunday, September 30, 12

  59. Sunday, September 30, 12

  60. Sunday, September 30, 12

  61. Sunday, September 30, 12

  62. Sunday, September 30, 12

  63. Sunday, September 30, 12

  64. Code Sunday, September 30, 12

  65. Sunday, September 30, 12

  66. Sunday, September 30, 12

  67. Sunday, September 30, 12

  68. Sunday, September 30, 12

  69. Sunday, September 30, 12

  70. Sunday, September 30, 12

  71. Sunday, September 30, 12

  72. Sunday, September 30, 12

  73. Sunday, September 30, 12

  74. Sunday, September 30, 12

  75. Sunday, September 30, 12

  76. Sharing Code Sunday, September 30, 12

  77. Sunday, September 30, 12

  78. Sunday, September 30, 12

  79. Sunday, September 30, 12

  80. Sunday, September 30, 12

  81. Sunday, September 30, 12

  82. JFDI Sunday, September 30, 12

  83. You don’t need someone’s permission to write code. Sunday, September

    30, 12
  84. Sunday, September 30, 12

  85. Sunday, September 30, 12

  86. Sunday, September 30, 12

  87. tokuhirom created a repo while I was asleep. Without my

    permission :) Sunday, September 30, 12
  88. Sunday, September 30, 12

  89. Culture Sunday, September 30, 12

  90. Plack/PSGI Sunday, September 30, 12

  91. PSGI Sunday, September 30, 12

  92. #  WSGI def  hello(environ,  start_response):    start_response(“200  OK”,  [  

         (‘Content-­‐Type’,  ‘text/plain’)    ])    return  [“Hello  World”] Sunday, September 30, 12
  93. #  Rack class  Hello    def  call(env)      

     return  [              200,              {  “Content-­‐Type”  =>  ”text/plain”  },                [“Hello  World”]        ]    end end Sunday, September 30, 12
  94. #  PSGI my  $app  =  sub  {      

     my  $env  =  shift;        return  [                  200,                [  ‘Content-­‐Type’,  ‘text/plain’  ],                [  ‘Hello  World’  ],        ]; }; Sunday, September 30, 12
  95. Sunday, September 30, 12

  96. Sunday, September 30, 12

  97. Sunday, September 30, 12

  98. It's been a huge success. Sunday, September 30, 12

  99. 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
  100. 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
  101. Sunday, September 30, 12

  102. Sunday, September 30, 12

  103. Plack Sunday, September 30, 12

  104. Inspired by: Rack, Werkzeug Sunday, September 30, 12

  105. Sunday, September 30, 12

  106. Sunday, September 30, 12

  107. Sunday, September 30, 12

  108. Sunday, September 30, 12

  109. • 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
  110. 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
  111. WSGI: Dec 2003 Rack: Aug 2009 (0.9) Sunday, September 30,

    12
  112. “The nicest thing about being late is that there are

    plenty of things left to steal.” Sunday, September 30, 12
  113. When in doubt, we can always look at what WSGI

    or Rack do. Sunday, September 30, 12
  114. Better late than never Sunday, September 30, 12

  115. Better late than too early :) Sunday, September 30, 12

  116. Sunday, September 30, 12

  117. Plack 1.0 Sunday, September 30, 12

  118. Sunday, September 30, 12

  119. Sunday, September 30, 12

  120. Sunday, September 30, 12

  121. Cross-language Pollination Sunday, September 30, 12

  122. Sunday, September 30, 12

  123. Sunday, September 30, 12

  124. Sunday, September 30, 12

  125. Sunday, September 30, 12

  126. Sunday, September 30, 12

  127. More examples Sunday, September 30, 12

  128. Sunday, September 30, 12

  129. Sunday, September 30, 12

  130. Sunday, September 30, 12

  131. Sunday, September 30, 12

  132. Sunday, September 30, 12

  133. Sunday, September 30, 12

  134. Sunday, September 30, 12

  135. Sunday, September 30, 12

  136. Sunday, September 30, 12

  137. Plack: Another thing stolen from Ruby Sunday, September 30, 12

  138. “There’re only two hard things in Computer Science: cache invalidation

    and naming things.” -Phil Karlton Sunday, September 30, 12
  139. “There’re only two hard things in Computer Science: cache invalidation,

    naming things and off-by-one errors.” -Phil Karlton Sunday, September 30, 12
  140. We tried hard to name things differently. Sunday, September 30,

    12
  141. Sunday, September 30, 12

  142. Sunday, September 30, 12

  143. 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
  144. Perl • HTTP::Server::Simple • JSON::XS • Devel::StackTrace • Net::OAuth::Lite •

    Text::CSV_XS Sunday, September 30, 12
  145. Python • python-json • pyoauth2 • pygeoip • PyYAML •

    Numpy Sunday, September 30, 12
  146. Ruby • Yajl • Psych • unicorn • thin •

    puma • doorkeeper • kaminari • paperclip • resque • pry • factory_girl • capybara Sunday, September 30, 12
  147. Perl Descriptive, boring, ::Simple Python Descriptive, confusing, py*, *.py Ruby

    Fancy, creative, chaotic Sunday, September 30, 12
  148. except Frameworks. Django, bottle, Catalyst, Dancer, Mojolicious, Rails, Sinatra Sunday,

    September 30, 12
  149. People tend to love software with names. (citation needed) Sunday,

    September 30, 12
  150. Starman Starlet Twiggy Markapl Corona Pinto Xslate Carton Confusing for

    a bit, but it feels more "real". Sunday, September 30, 12
  151. More inspirations from Ruby... Sunday, September 30, 12

  152. Sunday, September 30, 12

  153. Sunday, September 30, 12

  154. Sunday, September 30, 12

  155. Sunday, September 30, 12

  156. Sunday, September 30, 12

  157. Sunday, September 30, 12

  158. Sunday, September 30, 12

  159. Sunday, September 30, 12

  160. Sunday, September 30, 12

  161. Sunday, September 30, 12

  162. Sunday, September 30, 12

  163. Sunday, September 30, 12

  164. Sunday, September 30, 12

  165. Sunday, September 30, 12

  166. Sunday, September 30, 12

  167. Sunday, September 30, 12

  168. Sunday, September 30, 12

  169. Go to conferences Inspire each other Sunday, September 30, 12

  170. Keep cross-language conference like this going! Sunday, September 30, 12

  171. Thanks for the invitation & listening. Sunday, September 30, 12

  172. Enjoy the rest of the conference Sunday, September 30, 12

  173. Questions? Sunday, September 30, 12