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

Preview:

Citation preview

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

cho45 <cho45@lowreal.net>株式会社はてな

自己紹介

id:cho45http://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::StaticSharedP::M::ServerStatusP::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