« 2007年05月 | メイン | 2007年07月 »

2007年06月16日

Firefox Developers Conference Summer 2007

今回のテーマは拡張機能 大解剖!!ということで行ってきました。

Firefox Developers Conference Summer 2007 Lightning Talks

詳細は以下の通り。

Firefox Developers Conference Summer 2007

拡張機能開発チュートリアル

途中、スタッフの根来さんがノートPCのACアダプタのコードにひっかかってしまうというアクシデントがありましたが(ドジっ娘演出?)、怪我がなくって本当によかったです。

Software Design 4月号の特集をベースに加筆・修正された資料も配布されて、大変わかりやすいチュートリアルでした。

拡張機能開発者による大ライトニングトーク

Lightning Talks中に Sparrow.mini - Twitterに投稿するだけのツールバーを追加する拡張機能が公開されたり、firefox+emacs=firemacsなどなど、大変濃い内容の発表が多かったです。同時通訳(日本語→英語)が行なわれたライトニングトークって実は日本初なのではないのだろうか、と思ったり。時間厳守でしっかり進行したカンファレンスでした。

詳しくは写真を見ていただくことに。

あと、赤塚さんのブロック崩し拡張機能は、すぐにでも公開すべきだと思います。世界中の人が待っていますよ。

まとめページ

参加された皆さん、スタッフ、発表者の皆さん、お疲れ様でした。

2007年06月15日

Twitterオフ

これから参加してきます。

IT戦記 - Twitter オフ会を開催します。
前々から、色んなところでやろうやろうと盛り上がっていたので、 2007年06月15日(金) 19:00 に Twitter ユーザが集う会を開催します

総勢70人ぐらいが集まりそうで、メンバーはかなり濃そうな感じ。

Twitter offline Party

あとで書く。行ってきました。

まず驚いたのが、Twitterオフ参加者の名札がイラスト(カラー写真)入りで一人ひとりちゃんと用意してあったこと。この時点でクオリティ高いです。

nickname tags

紫色の何かを押し付けるオフ

影の仕掛け人が例のオブジェを持参していたので、突発的に写真撮影大会が開催されました。

id:HolyGrail id:otsune id:nipotan id:amachang miniturbo-san purprin-san

みなさん、それぞれ思い思いのポーズをとっています。いい顔してますね。

(※公開してマズかった写真があればご連絡下さい)

Twitterオフに参加してわかったこと

  • 産総研は広い
  • (中略)
  • みんな良い人達ばかり
  • 突発的に幹事2,0の胴上げが(あとで動画が公開されると思う)

参加された皆さん、どうもありがとうございました。

2007年06月13日

Giza studioより小泉ニロ「Bossa@NILO」メジャーデビュー

アニメ「名探偵コナン」シリーズの大ヒットですっかり有名になった音楽メジャーレーベルGiza studioですが、 今年の夏よりJazz~Bossa Nova部門が新しくできて、友人がデビューすることになりました。

本日6/13 より iTunes Store で先行配信しています。

iTunes Store でアーティスト「小泉ニロ」のアルバム「Bossa@NILO」を視聴

アーティスト名は「小泉ニロ」さんです。iTunes Storeで視聴できます。

現在、ワールドのトップアルバム10位以内にランクインしているそうです!

HMVで詳しいリリースがでていますが、Amazon.co.jpからも予約できます。

Giza studio所属前は、別の名前でライヴ活動をしていて、その頃の秘蔵Podcastingが残っていたりします。貴重な肉声が聞けるので、mp3ファイルが消えないうちに興味のある人はぜひ今のうちに聴いておいて下さい。

「東京働女100」6月号に小泉ニロさんの写真と記事が載っています

その当時は、昼間仕事をしながらその合間をぬって音楽活動を続けていたので、いろいろ思うところがあったみたいです。。。 その頃の経験を元に、働く女性のためのフリーマガジン「大阪働女100」の編集長も兼任しています。'07年6月号の東京働女100に、NILO’opinionとしてそのときの体験談と写真が載っていますよ! いまでは自分の好きな音楽活動を仕事にできて本当に良かったと思います。

みんな、CD買ってね!気に入った人は2枚以上買って広めること。よろしく!

※ 追記(6/16) 昨日iTunes のデイリーランキングでアルバム1位になっていた模様です。 ありがとうございました!これからも応援してください。

2007年06月11日

RejectKaigi2007まとめページ

まだ見当たらなかったようなのでRejectKaigi2007のまとめページを作ってみました。(ただのリンク集ですが)

RejectKaigi2007の発表順(ポストイットで募集・告知)
RubyKaigに引き続きおこなわれた、RejectKaigi - ひとりあたり2分30秒ほどの時間があります。
- 時間切れで発表できなくても泣かない。
- トラブルで発表できなくても泣かない。

Reject会議 開催の経緯

RejectKaigi2007の聴衆 なぜRject Kaigiが行なわれることになったか

RejectKaigi 2007 発表内容

  1. なぜRject Kaigiが行なわれることになったか勝手に語る (井上泰之さん) [発表資料] (log)
  2. 「ゆきひろ」(not ひろゆき) 認証 (斎藤さん) (log) [本家はこちら] ※6/14追加
  3. A Jail Web development with Rails 2nd edition (tkskさん) (log)
  4. MathMLライブラリのご紹介 (黒田ひらくさん) [発表資料] ※6/17追加
  5. オブジェクト指向パーザつくってます。が… (zundaさん) (log)
  6. Rel - Ruby (+7NF) (moriqさん) [発表資料] (log)
  7. Rubyのキャッシュミスをへらす (よしおかさん) [発表資料] (log) [詳細]
  8. AgileなRuby教育術 (吉田裕美さん) [発表資料]
  9. Rubyで作ったゲームデモ (だんさん) MyGame [発表資料]
  10. fro-grammer / 風呂グラマー (masuidriveさん) [発表資料] ※6/13追加
  11. My Rspec Best Practice (Yuguiさん)
  12. nextとbreakとreturn (akrさん)
  13. td2planet (日本RejectRubyの会 西山さん) [発表資料] td2planet (log)
  14. Pragger is LL (松本宗太郎/soutaroさん) [発表資料] (log)
  15. RubycocoaでLimechat (中川/Psychsさん) (log)
  16. From Ruby to Java - RoRからEJB3へのポーティング (高井直人さん) [発表資料] (log)
  17. vim (id:secondlife さん)
  18. High Performance Ruby (ささだ三段さん)
  19. ちょっと私の話を聞いてください (かくたにさん) [発表資料]

全部で19人、一人2分半の持ち時間でも結構しゃべれるのね、と思いました。

こんな素晴らしい発表をリジェクトするなんて、本家RubyKaigi2007のCFPの応募がいかに充実していたのか想像できます。むしろ、リジェクトしたことを後悔させるぐらいの意気込みだったのかも。 発表者の皆さん、スタッフの皆さん、大変楽しい時間をありがとうございました&お疲れ様でした。

関連リンク

※発表資料が追加され次第、このページも随時更新する予定です。

2007年06月06日

サイボウズ・ロボ戦記

新しくid:amachangの職場ブログが出来たようです。

サイボウズ・ロボ戦記

果たして JavaScript や ActionScript の話題がメインになるのか、それとも Mac OS X や CSS の話になるのか。

次回更新が楽しみです。

2007年06月05日

Operaでも非同期リクエストが並列処理できる img-JSONP

先日金床さんに教えてもらったOperaで非同期並列JSONPを実行させる方法を実際に試してみたら意外とすんなり動いてしまったので報告します。

最速インターフェース研究会 :: OperaでJSONPを非同期リクエストするより

JSONP が Opera だと非同期処理できない http://d.hatena.ne.jp/secondlife/20060906/1157515075 に書かれているとおりOperaだとscript要素を足した瞬間にJavaScriptの実行が止まって、ロード完了まで後続のスクリプトが実行されなくなります。

サンプルコード

改善前(普通のJSONP)
Operaはスクリプトを追加するとタイマーが止まる(サンプルページ)
http://la.ma.la/misc/js/opera_jsonp_test.html
function test(){ 
        var s = document.createElement("script"); 
        var url = "http://del.icio.us/feeds/json/ma.la?"; 
        var now = new Date-0; 
        url += "callback=c._"+now; 
        c["_"+now]=function(obj){$("result").innerHTML=formatter(obj)}; 
        s.type = "text/javascript"; 
        s.charset = "utf-8"; 
        s.src = url; 
        document.body.appendChild(s); 
} 
改善後(img + JSONP)
Opera img + JSONP(サンプルページ)
http://namazu.org/~takesako/opera/img_jsonp.html
function test(){ 
        var url = "http://del.icio.us/feeds/json/ma.la?"; 
        var now = new Date-0; 
        url += "callback=c._"+now; 
        c["_"+now]=function(obj){$("result").innerHTML=formatter(obj)}; 

        var img = document.createElement("img"); 
        img.onerror = function(e){ 
                var s = document.createElement("script"); 
                s.type = "text/javascript"; 
                s.charset = "utf-8"; 
                s.src = url; 
                document.body.appendChild(s); 
        }; 
        img.width = 0; 
        img.height = 0; 
        img.src = url; 
        document.body.appendChild(img); 
}

↑ ma.laさんのコードをそのままコピペしてここだけ修正しています。

■ 動作原理

IMGとして取得させキャッシュに入れる方法(金床さんのコメント)より:

JSONPのリソースを一度IMGタグから取得させてブラウザのキャッシュに入れておき、その後SCRIPTの要素として同じURLを再取得する、という方法が使えるかもしれません。

1.JSONPのリソースをIMGタグの追加などで取得する(このとき、あらかじめエラーハンドラを別の関数に設定しておく)
2.画像ではないのでエラーになる
3.エラーのイベントハンドラが呼び出されたらSCRIPTタグの追加で再度同じリソースを取得する
4.このときレスポンスは既にキャッシュに入っているため、一瞬で取得が終わる(限りなく非同期ぽい同期処理)

JSONPのレスポンスヘッダにPragma: no-cacheなどの指定があると動かない可能性が高いです。

非同期リクエストをimgタグで飛ばして、結果をonerrorハンドラで受けとって、ブラウザのキャッシュを再利用するという方法。

各ブラウザでの動作

HTTP Proxy を間に入れて、img + JSONP のHTTPリクエストを観測してみました。

Firefox2の場合

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3

img_jsonp_firefox.gif

Firefoxだと、1回目のimgタグ生成時と、2回目のscriptタグ生成時の両方で2回リクエストが飛んでしまいます。なので動作にもっさり感があるし、サーバに2倍負荷がかかるので、あまりお勧めできません。

IE6の場合

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)

img_jsonp_ie.gif

IEだと2回目のリクエストに If-Modified-Since: Fri, 13 Oct 2006 08:28:38 GMT; length=3277 のようなヘッダをつけてくれるので、サーバ側が対応していれば304のステータスを返してくれます。

Opera9の場合

User-Agent: Opera/9.01 (Windows NT 5.1; U; ja)

img_jsonp_opera.gif

Operaの場合は、1回目のimgタグ生成時に保存されたブラウザのキャッシュが活用され、2回目のリクエストは発生しなくなります。 このときimgタグの非同期リクエストの処理がタイマーを停止することなく並列に行なえるので一石二鳥です。

まとめ

金床さんのJavaScriptのonerrorハンドラを活用する発想には目から鱗で感服しました。

OperaでのJSONP+Comet問題に応用できるかどうかはまだ試していませんが、ブラウザ判別の処理を入れて試してみる価値はあるかもしれません。

いまだに新しい発見のあるJavaScriptはこれだから面白いです。

2007年06月04日

第1回XSS祭り(サニタイズ勉強会)

ついカッとなって企画された第1回XSS祭り、ネタかと思っていましたが、先日の日曜日に開催され、無事終了しました。

XSS Attacks Study #1

XSS本の洋書 XSS Attacks: Cross Site Scripting Exploits and Defense が日本に届いたので、 このタイミングに最近のXSSの傾向を整理して、それらの攻撃を防御する手法についてみんなで勉強しました。

実際、本の内容にはあんまり触れなかったですけど。ネタでAnti-Anti-Antiとか。

XSS Attacks Study #1

終始まったりとした雰囲気の中、参加者の飛び入りプレゼンやSkype中継もあったりと、大変楽しい勉強会でした。

参加者が参加者だけに、国内(世界的にも)最先端の話を共有することができて、有意義な時間を過ごすことができました。

(詳細はあとで書く。)

わざわざ、この勉強会のためだけに新幹線で上京された方もいらっしゃったとのことで、 その熱意には感服するばかりです。おかげで充実した勉強会になりました。

参加者レポート(順次追加)

参加できなかった人によるまとめ

ご参加いただいた皆様、どうもありがとうございました。