ターミナルに赤魔道士

こちらの記事を見てデータを増やしたくなったので作りました。

ターミナルに黒魔道士
http://valvallow.blogspot.jp/2013/03/blog-post.html

赤魔道士 & ナイト

変換用のワンライナー(perl)

perl -pe 's{ }{  }g;s{(\d)}{\e[4\1m  \e[0m}g;' akamadoushi.dat

データはこちら

https://gist.github.com/ywatase/5328985

plenvのzsh補完書いた

perlbrewでもrbenvみたいに.perl-versionとかサポートしないかなーって思っていたらtokuhiromさんがplenvというrbenvインスパイアなツールを作っていた (http://blog.64p.org/entry/2013/01/21/134639) ので早速インストールしてみた。


zshで補完できる出来るように補完スクリプト書いたので公開しておきます。


plenv exec|which で補完するのは.plenv/shims以下の実行権限のあるファイルだけにしているけどこれで合ってるのかな?

Plack::Middleware::InteractiveDebuggerがすごい

plackup -e 'enable "InteractiveDebugger"' -a app.psgi で使える。

stacktraceを差し替えるモジュールなんだけど、stacktrace中で変数のdumpとかできる

StackTrace (most recent call first)
File "local/lib/perl5/Plack/Middleware/InteractiveDebugger.pm", line 108, in Plack::Middleware::InteractiveDebugger::__ANON__
$self->app->($env);
[console ready]
perl> use Data::Dumper
perl> Dumper $env
$VAR1 = {
          'psgi.multiprocess' => '',
          'SCRIPT_NAME' => '',
          'SERVER_NAME' => 0,
          'HTTP_ACCEPT_ENCODING' => 'gzip,deflate,sdch',
          'HTTP_CONNECTION' => 'keep-alive',
          'PATH_INFO' => '/die',
          -- snip --

平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用

基本的にはWeb+DB Press Vol70に書いているものの補足

IOをとにかく減らす

  • SSDを使う
  • DNS, RDBへの問い合わせをなくす
  • 極力/etc/hostsに書く

Profile

  • nginx

* upstream response time

  • -d:NYTProf
  • SIG{ALERM} でスナップショット取る
  • CloudForecast
  • GrowthForecast
    • ビジネス指標の取得

Test/CI

  • Mockオブジェクトでやってる
  • CI は Ukigumo::Server
  • コードレビューは自分でメンテできるかどうかが基準

サーバ

  • 自作サーバメイン
    • Sound Houseのシャーシ
    • Core i7
    • RAM 32MB
    • SSD 300GB?? x 2
    • 25万以下
  • バナーやFlashの配信
    • CDN
  • DNS
    • 社外に
  • 海外