「映画にでてくるハッカーになりたい」

    cho45 <cho45@lowreal.net>
          株式会社はてな
自己紹介
id:cho45
http://www.lowreal.net/
株式会社はてな
京都8F(@hatena8f)勤務
Perl (バックエンド)
JavaScript (フロントエンド)
Ruby (ツール作り)
Scala (たまに)
Java (Android アプリ)
DSi Browser JS の実装にそれなりに詳しいです
例:DSi ブラウザの textarea でキャレットを表示する方法

JavaScript で textarea に対して focus() させるとキャレットがでる。

この状態で A ボタンを押すとソフトウェアキーボードが開かず改行
を入力することができる。

ただし何かの役に立つわけではない。
趣味
神社巡り
写真
プログラミング
コード群: http://github.com/cho45
日記: http://subtech.g.hatena.ne.jp/cho45/
最近作ったもの
P::M::StaticShared
P::M::ServerStatus
P::M::Random.
Text::Xatena (はてな記法っぽい記法)
Niro (個人用ブログツール、Plack, DBIx::Skinny)
JSDeferred (JS 機能追加など)
git-branch-recent (Ruby)
HTML::Trim
 (HTML タグを考慮しつつ文字列トリム)
DBIx::RewriteDSN
 (DBI レベルでデバッグ時一括で DSN 書きかえ)
togetter_block_all_users.user.js
 (togetter で纏まれているユーザを一括ブロック)
bdfcanvas.js
 (BDFフォントをcanvasに描画)
oecan.js
 (お絵描きツール)
Chemr-js
 (リファレンスひき支援)
jAutoPagerize
 (なんかあれ)
本題
映画にでてくるハッカーの例
何かわからないが画面に文字が流れる
ものすごい可視化がされてる
よくわからない方法で暗号を解く
見ていて鳥肌がたつ
でもこう…もうちょい 
現実的かつかっこよくならないか?
仕事で使いたい 
I HATE
RIAJU.
コーディングしてモテたい
実用性+
実用性だけでも面白くない
遊びだけじゃただのクソアートだ
というわけで
使えそうで使えない
でもちょっと使えるツール群
および
使えそうで実際使える
というかマジ使えるツール
のご紹介をさせて頂きます
前置き終了
実用的かつ、映画的ハッカーを追求
そのいち
tail -f /etc/httpd/access_log
ハハハ、ワロス
何をいってるんだ
ログを tail -f して
人間が得られるもの
1.動体視力
動体視力を鍛えたいわけじゃない
  ハッカーになりたいのだ
別に tail -f は悪くない
ただ何かが足りない
そこでハッカー的なことを加える
ハッカー的なこと
ハッカー的なこと
すごい可視化
realtimeresponsegraph.pl
tail -f a.log | realtimeresponsegraph.pl

tail -f からレスポンスタイムを即座にグラフにする

パフォーマンス改善の結果をすぐ出せる
レスポンスタイムグラフ
レスポンスタイムグラフ
はてなでは一日分を Hadoop で
処理してグラフ化している

全解析は一日かかるので本番での
チューニング結果がすぐ解らない
demo
realtimeresponsegraph.pl の実装
use OpenGL;
select();
vec();
fileno();
my $rin = '';
vec($rin, fileno(STDIN), 1) = 1;
LINE: while (select($rin, undef, undef, $max_wait)) {
  # ...
}
いろいろな機能

グルーピング
 (デフォルトではHTTPメソッドごとに別のラインにする)
Apache ログフォーマットパーサジェネレータ
だいぶ良くなったが
まだ何かが足りない
ハッカー的なこと
ハッカー的なこと
ものすごい可視化
realtimeaccesstrack.pl
realtimeaccesstrack.pl

直近アクセスを可視化

特にアクセスが多いクライアントを抽出
どこにどうやってアクセスしていっているかがわかる

DOSアタック的クライアントの即時検出

ユーザ行動分析
demo
realtimeaccesstrack.pl の実装
use OpenGL;
select();
vec();
fileno();
realtimeaccessgraph.plと
       ほぼ同じ
だいぶ良くなったが
まだ何かが足りない
ハッカー的なこと
原点に還って
画面に何か流れる
Devel::KYTProf
Devel::KYTProf

id:onishi 作 (NYTProf ではない)

DBI とか memcached とか、IO に関わる処理を
処理時間とともにターミナルに全て出力

空気 読んで とってくれる プロファイル だとか
KYoTo Prof だとか
諸説ありますが知りません
便利な点
吐かれるSQLがわかる
どこから吐かれたか
  わかる!
かかった時間がわかる
demo
まとめ
realtimeresponsegraph.pl
      実用度 ★★★
      かっこよさ ★★
realtimaccesstrack.pl
     実用度 ★★
    かっこよさ ★★★
Devel::KYTProf
実用度 ★★★★★
 かっこよさ ★★★
ご静聴ありがとうございました
  www.lowreal.net

映画にでてくるハッカーになりたい - YAPC Asia 2010