サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
デスク環境を整える
onmessage.ws
mrubyプチハッカソン及びmrubyの夕べに参加させていただきました。 ちょっと長くなっちゃったので、夕べの方は別エントリにしますね。 Rubyについては、個人的にシェルスクリプトの代替として利用したことはあったものの、ちゃんとした開発に利用したことはありません。 しかし、端から見ていてコミュニティの雰囲気と、10月あたりにmrubyに興味を持ったときにMatzさん直々にお言葉をかけていただいた為、大変興味を持っておりました。 参加された他の方々と違い、知識0での参加となった訳ですが、色々と教えていただきましたので、メモとして残しておきたいと思います。 mrubyプチハッカソン お題等は特に設定されていなかった為、ほぼ@masuidriveさんとIIJの方々による、mruby講習会と化していました。(私には大変有意義でしたが。(^^; build方法について $ git clone
表題の通り、Shibuya.XSS テクニカルトーク#1に参加させていただきました。定員30名に対して、希望者が241名。実に8倍の難関イベントに参加できた、と言うからには、ログを残しておかないと。 ただ、内容自体は技術的、その他諸事情によりオフレコなものが多かった為、ログは個人的な感想だけになります。ごめんなさい。 資料等は発表者の方々が可能な範囲で公開していただけると思うので、それを楽しみに待ちましょう。 opening 株式会社mixi コラボルーム とっても広ーい。机、電源、Wi-Fi、自販機等完備。こういうOpenな場所があるというのは素晴らしいですね。 そして、机の上には食事とお酒が!本当に、本当にありがとうございました。美味しかったです。 徳丸さんの乾杯で勉強会スタート。 DOM Based XSSの傾向と対策 by malaさん 問題の原因、影響、システム側対処方法
こんばんは。 巷では「node.jsは軽量かつ高速だよー」と噂されてるにもかかわらず、色々探しても、どれほど軽量でどれほど高速なのかを検証しているところが日本語ではあまり見つかりません。 その為、今回は、WebSocketを用いたsocket.ioの速度/メモリ使用量調査をしてみました。また、msgpack-rpc改変版をWebSocketの上に実装したバージョンと比較もしてみました。 テストは以下ですが、次の注意点を踏まえてお試しください。 デモは、どちらもさくらのVPS 512、CentOS 5.7, kernel 2.6.18-274.18.1.el5 x86_64上に構築してあります。 node.jsのバージョンは、v0.6.12。socket.ioのバージョンは、0.9.1-1を利用していますので、最新版はより良いパフォーマンスが出るかもしれません。 socket-io版は、デモ
こんばんは。やっと色々実装できたので公開します。 msgpack.codec.js msgpack.rpc.js 不完全ですが、MessagePack RPCのJavaScript binding出来ました。 ベースとして、@uupaaさんが作成されていらっしゃったmsgpack.jsを利用させていただきました。uupaaさんのコードはWeb上でよく見させていただいているのですが、本当に勉強になりますね。 さて、uupaaさんのコードですが、transportにhttpを用いる環境(ajax)では必要が無いため、MessagePackのstream deserializeには対応していません。 ただ、私が作成しているmod_websocketと連携させてMessagePackを扱おうとすると、どうしてもstream deserializeが必要になるため、その部分を追加させていただきま
5月に参加させていただいたWebSocket勉強会からはや4ヶ月。時が過ぎるのは速いですね。さて、勉強会の場でデモさせていただいた時には、WebSocketはtext frameしか扱えなかったので、ws{s}トンネルの中をsmtp通してました。(デモは動作しませんが、資料はこちら) そして数日前。 chromium trunkでWebSocketのbinary frame supportが入った、というpostを拝見したのち、chrome dev trunkでも正常に動いているように見えたので、jsdo.itにコードを作ってみました。 (2011/9/30時点では、chrome betaでも動作するようです。dev trunkの日本語文字表示の不具合、早く治らないかなぁ…) 構成は以下の様になってます 今回もサーバサイドのアプリケーションは作成せず、既存のtelnetdを使ってるだけで
WebSocketとproxy周りの話について簡単に。 ちょっと追いきれない所もあるので、もし知っている方がいらっしゃいましたら、コメント等で教えていただけると幸いです。 以下、hixie-76とかietf-00とか言うのは、WebSocketのバージョンを表します。(なお、正式な名称ではありません。hybiのバージョンに基づいて、便宜的に私がそう呼んでいるだけです) hixie-76(≒ietf-00)のみ、繋がらない場合がある handshakeに於いて、content-length無しでbodyに8byte文字列が付加される。 (また、bodyの8byteは別packetで送付される。下図) browser — (handshakeのheader部分) –> server browser — (handshakeのbody部分) –> server browser prox
こんばんは、ProxyとFirewallがある場合のWebSocket動作をまとめようと思ってはいるのですが、少し先延ばし…すません。 今回は、MessagePackとWebSocketの連携を試してみました。 デモはこちら 注意:iPhoneをご利用の方で、3G回線経由、およびProxyが存在するWi-Fi環境ではデモを実行できません。特にProxyが存在するWi-Fi環境からアクセスすると、mobile Safariがクラッシュするはずです。(ProxyとFirewallがある場合のWebSocket動作でまた記述します。Proxyの無い、ご自宅のWi-Fi環境経由などでしたらデモを実行できるはずです) デモはありきたりなチャットアプリケーションですが、伝送されるデータは、@uupaaさん作のmsgpack.jsを利用させていただいて、MessagePack形式(但し、現在のところ
mod_websocket for lightyにhybi-09(≒hybi-08)実装してみました。 まだ、ping送れなかったり(pongは送れます)、BUGやらmagic numやらイマイチな実装が多いですが、おいおい直していきますのでご容赦を。 以下、動作確認してて困った(てる)お話。 WebSocketを使おうとしても、proxy配下で使えないときがある proxy配下でWebSocket使うときは、proxyに対してConnectしてからWebSocketを張ったほうがいいよ、と仕様5.1. Client Requirementsで決められています。(SHOULDなのですが、かなりの確率で問題が起きるのでMUSTにした方が良い気がします…) さて、以下のログを見てください。 なお、使用ブラウザは、Chromium 13.0.782.10 (Developer Build 8
竹居さんの日記を読ませて頂きました。 勉強会中も、「WebSocketはproxy(http proxy)を越えられるのか?」と言う発言がちらほら見えましたが、私自身も「多分越えられる」とか「越えられないproxyもあるよね」とか、曖昧な回答しか出来てなくて気持ち悪かったので、真面目に調べてみました。 (なお、私自身はproxyが越えられなかったという経験がありません…) 前提 ここで言うWebSocketのproxy越えとは、企業内LANなどの内部ネットワークからインターネットに接続する際に、ブラウザが直接インターネット上のサイトに対して接続するのでは無く、中継サーバ(poxy)を介した通信を行うことが出来るかどうかを指します。逆に言うと、負荷分散の為のlbやReverseProxyを介した接続は想定していません。 The WebSocket protocol – draft-ietf
先の大震災でバタバタしておりました。 遅くなりましたが、被害にあわれました方々の復興を心より願っております。 さて、本業が少し落ち着きましたので技術的な覚書まで。 ブラウザの発展とHTML5の登場によって、様々な種類のWeb Applicationを作成することが可能になって来ました。 がしかし、Javascriptで作成したAPIやアプリケーション、またWeb Applicationではajaxを利用したサーバ側との連携結果のテストをすることは非常に困難ではなかったでしょうか? 例えば、今年の2月にはShibuya.js(残念ながら私は参加できなかったのですが)でTestについてのテクニカルトークが開催されました。 この中でsecondlifeさんもajaxを利用したサーバ側と連携したテストが難しいと、言及されています。 今回から数回は、それを解決するGoogleさんが提供されて
現在はJSONP、近い未来はXHR2を用いたクロスサイト通信が主役になりそうですが、<iframe>と<script>で何とかしましょう、と言うエレガントな解を見かけましたので覚え書き。 Javascript歴短いので、実は当たり前の事だったらごめんなさい。 ↓こんなコードを作っておいて、 function foo() { var iframe = document.createElement('iframe'); document.body.appendChild(iframe); var iframe_document = iframe.contentDocument; iframe_document.writeln('<body></body>'); var script = iframe_document.createElement('script'); iframe_d
このページを最初にブックマークしてみませんか?
『http://onmessage.ws/』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く