OSC2008 in Kansaiに行ってきた
昨日は京都で行われたOSC2008 in Kansaiに行ってきました。
セッションでは様々なお話を聞くことが出来たのと、懇親会では貴重なお話が出来て大変充実した日にはりました。
開発者としての熱がアップしました。
刺激を受けまくったのでこれから開発熱加速します。
少しだけまとめてみます。
セッションに聞き入っていて一部メモミスなどあるかも知れませんが、コメントなどで指摘をお願いします。
shibuya.js
shibuya.jsがやってきたというので迷わず参加。
JSよくわかってないけど乗り込んだ。
とにかく、jsが熱い!
やるっきゃないだろと思った。
以下、まとめ。
★JSとAS(secondlife)
http://d.hatena.ne.jp/secondlife/20080719/p1
- JSからAS使えるとドメイン超えて使えるよ
- swfuploadで複数のファイルがうUP出来る。
- バイナリもいけるよ
Multimedia
- FlashPlayerAPI
- htmlリアルタイム加工
- フォントもきれいに出来る
AS→JS
JS⇔ASのAPI
- ExternalInterface
- addcallbackの問題
- swfがロードされてるかわからない→ASから通知
- Flash側での非同期処理→ASに工夫
- call関数は関数のみしか渡せない→クロージャーにして渡せばいい
- 複雑になると面倒→JSProxy
- JSProxyを使うとJS→ASが楽になる
Uffy
- ASではASのクラスを書くようにJSのクラスを定義出来る
- helpの表示が出来る
- Uffyを使えばロード待ちの処理も書かなくていい
まとめ
- JSとASは相互補完の関係
- ASで出来ない事→JSProxy
- JSで出来ないこと→Uffy
- RegExpコンストラクタのプロパティはグローバル変数→他の場所で書き換えられちゃうかも・・・。
- Mozilla2(fx4)では消えてしまうかも
- execメソッドはマッチが成功すると配列が返ってくる
- マッチの内容だけじゃない
- indexプロパティ→match開始位置
- inputマッチ対象文字列
if(match = /..../.exec(str)){ var hoge = match[0]; var piyo = match.index; }
- lastindex
- gフラグを使わなくてもいるけど、つけないと使えない。
- 正規表現が生成されるたびに0にもどる
- 代入も可能
- まとめ
- マッチしたか知りたいならtestメソッドを使おう
- ゆの in JS
- xは髪飾り
★WSHでDOM〜dom4winui.js〜(ntoyon)
http://d.hatena.ne.jp/nitoyon/20080720/wsh_dom
WSH入門
- WSHってなに?
- Windows Scripting Host(Windowsで使えるスクリプト)
- JSっぽい。
- cscript fileNameで実行
- プロンプトでWindowsのバージョン出したくない
- /nologoオプションでOK
- IEと同じエンジン
- Prototype.js使えるはず!
- 外部JSを読み込みたい
- ActiveXObject使ってファイルを読み込んじゃう
- documentが宣言されていません orz
- 宣言しちゃえ→var document = {}
- dom4winui.js
- ウインドウの階層構造をDOMツリーとみなす
- CSSライクにウインドウをいじれる
- おれの電卓いい!
- 電卓が変な事に・・・。
- 楽しすぎる!
- アプリごとのJSができれば、Windows版グリモンも出来るかも?
- DOM操作でウインドウズのアプリがいじれるってすげー><
- id:amachangだ!!!
- 話せなくて残念><、懇親会にいらっしゃらないと思ったら、はてなにいっていた模様。
- そして今日はkansan.jsに出現してるとの情報・・・。
- Access control for cross-site Request
- XMLHttpRequest level 2
- 他のドメインとも通信可能
- サーバ側でレスポンスヘッダに記述必要
- POSTはちと面倒
- 今はまだ実装まちまち。。。
- IEはないよ
- XDomainRequest(β2でAccess controlに対応)→キターーーーーー!
- ドメイン名とポート番号のセットを、オリジンと言う
- ブラッリストもある
Access-Contorol: allow<オリジン> exclude<ドメイン>
- 広く許可を指定して、個々に不許可を指定出来る
- Cross-Site Server Sent event
- HTML5
- サーバからデータを受け取る(チャットみたいのに使えそう)
- Cross-document messaging
- フレーム間やwindow.opneで開いたウインドウとやり取り出来る
- ドメインが違ってもOK
- JSONPの変わりになる
- Storageに共有
- まとめ
- IE8と仲良くやっていこう!
はてなのバックエンド
- はてなのバックエンドの創立初期から現在までの変化のお話など
- 試行錯誤で規模を拡大してきたとの事
- 現在
- サーバ350台
- 14ラック
- トラフィックピーク200M
創立初期
- 2001年
- Pen3 自作 1台
- Apache
- PostgreSQL
- Perl CGI → Apache::Registry
- mode_perlの問題
- メモリの消費が大きい
- 静的コンテンツにも応答する
- Reverse Proxy(mod_proxy)
- こんどはリソース不足
- PostgreSQL→MySQL
- ApacheとDBを別サーバへ分けた
- 監視用にNagios導入
- はてなアンテナのヒットでサーバが増える
- 試行錯誤の末、自然に3層構造へ
- サーバが増えた
- ケースがばらばら
- 熱の問題
- メンテナンス性
- 場所
- でも、商用サーバ高い!
- ケースを設計いしてサーバ自作
- 商用サーバ 納期数週間じゃ間に合わない
- 自作サーバの利点
- 早い、うまい、安い
- 柔軟な構成変更
- 回線飽和
- 電力不足
- DSAS(klab) オープンソースのLinuxロードバランサー
- LVSとkeepaliveを導入
- マルチマスタ化(MySQL)
- お互いがお互いのスレーブ
- マルチマスタでスレーブ構成にしたら、keepalivedが使えない
- DRDB
- Xen
- 450中100ホストが仮想ホスト
- まとめ
- 初期の試行錯誤
- 低コストでの構築
- チーム化と可用性
- 攻めのインフラ
- インフラの仕事はクリエイティブ
はてなの初期から現在までのインフラ周りのお話でした。
普段は知ることが出来ないところを聞けてとても楽しかったです。
トラックでサーバを運ぶとかすごすぎです><
少し前にデータセンターへのサーバ移行のエントリを読んでいた時も思ったのですが、すべての作業を自分たちで行って、その上でノウハウがたまっていくというところがすごく羨ましかったです。
サーバ・ネットワークのところをやっていきたい身としてはテンションあがりっぱなしでした!
自宅サーバを徒歩で運んだことはあるんですけどね・・・。15分ほどかけて。
しかも、途中でコンビニによるという暴挙にも出ましたが。。。
その他のセッション
- NASのハック関係を2つ
- IOの人のお話はすごく楽しかった。
- そういうことなんだと思った。。
- 改造しても保障をつけてほしいな。。
- 兎に角、ハックしよう!
- いろんな展示みた
- オープンソース界隈はすっげー熱い!
懇親会
オープンソースはおなかがすく
様々なお話が聞けてすごく刺激になった。
自分から手を挙げる事、人とのつながりはすごく重要で大切なことだと再認識。
あっという間に時間が過ぎました。
すっごくパワーを充電したのでこれから加速していく。
Mozillaの方に、ふぉくすけ欲しいとお願いしましたがだめでした。。。
すいません。。。
名刺に書いてある肩書き、渡した方からよくわかんないなぁーとか何これ?とか言われましたが、特に意味はなくて今の自分をそのまま表した言葉です。
それと、なんか変なこと書いてるやついたなと片隅にでもおいてもらえればという事から書きました。
今後もいろんなところに顔を出すので、見かけて際にはよろしくお願いします。