読者です 読者をやめる 読者になる 読者になる

まめ畑

ゆるゆると書いていきます

OSC2008 in Kansaiに行ってきた

OSC2008 Tech

昨日は京都で行われた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

  • URLの変更
  • JSのAPIが使える(UAとれる)
  • htmlの要素をとれる
  • オーバーレイで表示可能

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


★取説正規表現nant
正規表現を使う際の注意点など。

  • 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
  • ActiveX Objectで何でも出来ちゃう
  • WindowsユーザはWSH使うべき!
  • IEと同じエンジン
    • Prototype.js使えるはず!
    • 外部JSを読み込みたい
    • ActiveXObject使ってファイルを読み込んじゃう
  • documentが宣言されていません orz
    • 宣言しちゃえ→var document = {}
  • WSHはDOMオブジェクトないよ→WSHでDOMを定義
    • dom4winui.jsを作った
  • dom4winui.js
    • ウインドウの階層構造をDOMツリーとみなす
    • CSSライクにウインドウをいじれる
  • おれの電卓いい!
    • 電卓が変な事に・・・。
    • 楽しすぎる!
  • アプリごとのJSができれば、Windows版グリモンも出来るかも?
  • DOM操作でウインドウズのアプリがいじれるってすげー><


★IE8までに知っておくべきこと(amachang
資料

  • 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
    • サーバからデータを受け取る(チャットみたいのに使えそう)
  • SelectorAPI
    • CSSセレクタでDOM要素にアクセス可能
    • document.queryselector("body>・・・")
    • ちょっと問題
    • うまいこと指定できない(今後の修正に期待)
  • Cross-document messaging
    • フレーム間やwindow.opneで開いたウインドウとやり取り出来る
    • ドメインが違ってもOK
    • JSONPの変わりになる
    • Storageに共有
  • まとめ
    • IE8と仲良くやっていこう!

LT

  • わっふるわっふる
  • AIRでFlashPlayer
    • ゆの in SWFはバイナリで見よう!
  • ブラウザからWiiリモコン
    • WiiのOperaはOK
    • JS→Wiiリモコン使いたい
    • Webサービスとして公開
    • JSONP対応
    • クロスドメインもOK
    • LED4つしかない→7台まで使えるのに
    • LEDの点灯の組み合わせ
  • グリモンでおもてなしを追加

はてなのバックエンド

  • はてなのバックエンドの創立初期から現在までの変化のお話など
  • 試行錯誤で規模を拡大してきたとの事
  • 現在


創立初期

  • mode_perlの問題
    • メモリの消費が大きい
    • 静的コンテンツにも応答する
  • Reverse Proxy(mod_proxy)
  • こんどはリソース不足
  • はてなアンテナのヒットでサーバが増える
  • 試行錯誤の末、自然に3層構造へ
  • サーバが増えた
    • ケースがばらばら
    • 熱の問題
    • メンテナンス性
    • 場所
  • でも、商用サーバ高い!
  • ケースを設計いしてサーバ自作
  • 商用サーバ 納期数週間じゃ間に合わない
  • 自作サーバの利点
    • 早い、うまい、安い
    • 柔軟な構成変更
  • 回線飽和
  • 電力不足
  • Xen
    • 450中100ホストが仮想ホスト
  • まとめ
    • 初期の試行錯誤
    • 低コストでの構築
    • チーム化と可用性
    • 攻めのインフラ
  • インフラの仕事はクリエイティブ


はてなの初期から現在までのインフラ周りのお話でした。
普段は知ることが出来ないところを聞けてとても楽しかったです。
トラックでサーバを運ぶとかすごすぎです><
少し前にデータセンターへのサーバ移行のエントリを読んでいた時も思ったのですが、すべての作業を自分たちで行って、その上でノウハウがたまっていくというところがすごく羨ましかったです。
サーバ・ネットワークのところをやっていきたい身としてはテンションあがりっぱなしでした!
自宅サーバを徒歩で運んだことはあるんですけどね・・・。15分ほどかけて。
しかも、途中でコンビニによるという暴挙にも出ましたが。。。


その他のセッション

  • NASのハック関係を2つ
    • IOの人のお話はすごく楽しかった。
    • そういうことなんだと思った。。
    • 改造しても保障をつけてほしいな。。
    • 兎に角、ハックしよう!

懇親会

オープンソースはおなかがすく

様々なお話が聞けてすごく刺激になった。
自分から手を挙げる事、人とのつながりはすごく重要で大切なことだと再認識。
あっという間に時間が過ぎました。
すっごくパワーを充電したのでこれから加速していく。


Mozillaの方に、ふぉくすけ欲しいとお願いしましたがだめでした。。。
すいません。。。


名刺に書いてある肩書き、渡した方からよくわかんないなぁーとか何これ?とか言われましたが、特に意味はなくて今の自分をそのまま表した言葉です。
それと、なんか変なこと書いてるやついたなと片隅にでもおいてもらえればという事から書きました。


今後もいろんなところに顔を出すので、見かけて際にはよろしくお願いします。