ソースコードリーディングとかしてると、ただコード読んでてもどうしようもなく、オブジェクトの中身や変数などを見るためにデバッグツールを使いながらでないとやっていけないことが今になって分かりました。自分でもどうしようもなくアホだと思いながら戒めのために覚書。 デバッグツールの機能 僕自身まともに触れる言語はjavascriptとphpくらいなもので、どちらもeclipseのようなIDEを使わず頑なにvimを使って組んできました。phpの場合はxdebugと連携させる方法*1や、javascriptならrhinoなんかを入れてquickrunとかって方法も考えられますが、僕はある程度は知っていながらもひたすら標準のスタックトレースやalert,console.log,console.dirばかりしていたので、まずはIDEなどに搭載されている一般的なデバッグ機能を復習をかねて覚書。 ブレークポイン
In my previous post, I glossed over our team switching from Python to Node.js. I kept it brief because the switch wasn’t the focus of the post, but since I believe I am being misunderstood, I will explain it in depth: Cloudkick was primarily written in Python. Most backend services were written in Twisted Python. The API endpoints and web server were written in Django, and used mod_wsgi. We felt t
せっかく東京Node学園祭2011に出たり、 Google Developer Day 2011 に出たりしているので、 何かアプリを作ろうと思って作ってみました。 http://yosuketest.node-ninja.com/ nodefestでアカウントをもらったNodeNinja上で動いています。 WebSocketが動くのはいい感じだね。 よくGoogle Developer Days でも NodeFestでもHTMLでプレゼンをしていたので、自分もやってみようと思い 実施してみました。 プレゼンするときに聴衆の方々がその場で疑問に思ったことやコメントを付箋にして直接資料に反映する事ができます。 ダブルクリックで付箋を貼り、コメントを書けば反映されます。 本当はクローズドな場所でプレゼンしながらツッコミを入れるとみんなにも見えていいかなと。 それにしてもNodeNinjaに配
本文 時間がないので走り書き備忘録。失敗エントリです。 Github で使われてから、defunkt/jquery-pjax · GitHub がにわかに話題になって、自分も面白いと思っています。 で、この処理自体は pjax を使うと非常に簡単に出来てしまうんですが、 中身を少し見ておきたかったのと、 やる事自体に意味が有るかどうかは別として、 それと同じようなことが WebSocket でもできないかと思って試してみました。 (リアルタイムな Web でもどっかで URI 振りたい時もなくはないし) ajax と pushState ざっくり説明すると。 最近のブラウザは history.pushState history.popState history.replaceState という API があってこれを使うとヒストリー(ブラウザの履歴)を JS から変更できます。 これを使う
Socket.IO 0.7.6からio.of('/abc').authorization(function(data, fn) {...})という形でmultiplexでつくられたnamespaceごとに認証/認可を行えるようになっています。 member用のチャンネルにはログインしている人しか接続させない。 admin用のチャンネルには、ログインしていてかつadminのrole属性を持つ人しか接続させない。 といったことがかなり簡単に実現できるようになっています。以下、方法です。 まずサーバー側の設定です。// Server var io = sio.listen(app); io.configure(function() { io.set('transports', ['websocket', 'flashsocket', 'htmlfile', 'xhr-polling', 'jso
node.jsで使用できるmongodb用のドライバーを6つ紹介します。nativeのnode-mongodb-nativeや鉄板のmongooseの他、少し変わったものまで。 1. node-mongodb-native https://github.com/christkv/node-mongodb-native名前のとおりmongodbとnativeに会話するnode.js用のドライバ。 node.js/mongodbの世界の最も基本的かつ重要なドライバ。GridStoreも含め、mongodbでできることのほとんどに対応しており、node.jsのmongodb用の各種ODMのベースとして使用されています。ただし、いわゆるODMではないため、このnode-mongodb-nativeを使用する場合は書き手自身ががんばる必要があります。2. mongoose https://githu
Nginxをリバースプロキシとして動かし、その後ろでSocket.IOを動作させる方法。nginx_tcp_proxy_moduleを使用。 WebSocketのサーバーををリバースプロキシサーバーの後ろで動作させるためには、そのリバースプロキシサーバーがHTTP 1.1のUpgradeを適切に扱ってくれる必要があります(捨てたりしないこと)。Nginxはしばしばリバースプロキシとして使用されますが、nginxのproxy_passディレクティブはそのままではwebsocketの接続を期待通りに扱ってくれません。yaoweibinさんが一般的なtcp接続をリバースプロキシするためのモジュール、nginx_tcp_proxy_moduleを作成してくださっています。このnginx_tcp_proxy_moduleを使用してnginxでwebsocketサーバーをリバースプロキシできるようにし
8月3日現在 Node stable v0.4.10, Socket.IO v0.7.7 表80をnginx->裏3000とかでsocket.io動かしてる場合WebSocketはダメでもxhr-pollingとかなら80に繋ぎにいっても動くはず、と思って試してみてるけど動かない、、どうなってるんだろうコレ 2011-08-03 12:03:16 via Twitter for Mac socket.io v0.6系だと動くようなのに0.7で動かない? 2011-08-03 12:04:11 via Twitter for Mac というところでハマっていた。 nginxを使ってreverse proxyする場合、Socket.IOのWebSocket接続は 表側に繋がずに裏側のportを指定して繋ぐ nginx_tcp_proxy_moduleを使って通す あきらめる のどれかだと思う。
追記 11/7/31 Socket.IO v0.7 解説を最初に途中までで出す。 11/8/1 だいたい全部新機能なので '(新機能)' って書くのやめた。 11/8/4 オプションの設定周りを追記 11/8/6 認証周りを追記 11/8/12 スタンドアローンのサンプルを追記 11/9/27 Socket.IO v0.8 対応について追記 11/9/27 タイトルを Socket.IO API 解説に変更 11/9/27 翻訳サイトリンク追加 公式マニュアル翻訳サイト そういえば公式サイトの翻訳をフォークしたリポジトリで、それなりの更新頻度でやってます。 リポジトリの wiki も地味に訳しててこっちは結構役に立ちます。本記事と合わせてどうぞ。 本家 http://socket.io/ 翻訳ページ http://jxck.github.com/socket.io wiki https:/
モバイルゲーム 物凄い勢いで勃興したモバイルゲーム業界は、いろいろな課題や問題に直面しながらも巨大化し、今日の時点でのスマートフォン向けゲームの市場へと継承されていきます。 モバイルゲームの歴史 2001 Javaアプリと3Dゲームの登場 Javaが利用できるようになったことにより、ダウンロード型のゲームが供給できるようになりました。 2002 携帯電話端末の大容量化・3D化競争 Java搭載携帯電話端末が登場してからごく僅か1年の間に、アプリのサイズに関しては10倍に広大化し、表現方法も2Dから3Dにシフトし始めました。J-PHONEは『ゼビウス』や『スペースハリアー』などといった昔のアーケードゲームを、ドコモはSIMCITYなどパソコンで世界的規模のヒットを飛ばしたゲームを主力商品としていました。 2003 モバイルゲームの一般化 メモリの制限が厳しいJava仮想マシン上ではなく、OS
require('express') What is Express? Web Application Framework by TJ inspired by Sinatra very lightweight build on Connect standard in node official http://expressjs.com Express Install Express & Sckeleton Jxck$ npm install express -g /Users/jxck/.nvm/v0.4.11/bin/express -> /Users/jxck/.nvm/v0.4.11/lib/node_modules/express/bin/express express@2.4.7 /Users/jxck/.nvm/v0.4.11/lib/node_modules/express
Jxck です。 少し前、以下のような記事がポストされたのを覚えてますでしょうか? 今すぐフォローすべきnode.js界のスーパーエンジニア 自分もこの記事にリストしていただいて、非常に光栄です。 しかし一方で、載った自分からしても、手放しに喜べない点があったのも事実でした。 それは、ここに上がっているのは日本人だけで、僕らが思う 本当のスーパーエンジニアの多くは、海の向こうで大活躍してるという点です。 また国内に絞ってみても決して外してはいけない、「あの人」が。。 自分としては、是非彼らの活躍にも注目してもらいたいと思っています。 そこで今日は Node.js のことを知りたい方がフォローすべき、 本当のスーパーエンジニア達を紹介したいと思います。 多くてもあれなので、10人に絞ってみます。 @ryah Ryan は言わずとしれた Node.js の生みの親です。彼を抜きに語る事はできま
冷蔵庫で設計したWebサービス、宇多田ヒカル大好き専用「ウタダヒカループ」を8月8日にリリースしました。 すぐに、ずっと、ぼんじゅーる。 今回のWebサービスの制作理由をざっくりまとめると以下の2点です。 ブラウザに uhloop.com とだけ打ち込めば、すぐに、ずっと、宇多田ヒカルを聴いていられる・観ていられるサービスが欲しかった。 活動休止ライブのDVD「WILD LIFE」で、宇多田さんがとても楽しそうに観客とぼんじゅーる!!を言い合っているシーンを観ていたら、自分もぼんじゅーるしたくなった。 キャッチコピー「すぐに、ずっと、ぼんじゅーる。」はこんな意図で付けました。 もう1つ大事なことを書き忘れていました。このウタダヒカループで再生されるPVは、閲覧者全員が同じ曲目・同じ再生時間で視聴できます。ですので、みんなで同じ曲を聴きながら、ぼんじゅーるメッセージやTwitterを介して、
サーバサイドJavaScriptにはNode.js以前にもいくつかの実装がある。ちょっと前に注目されかけたものだと、現在はAppcelerater社に買収されたAptana社が出していたJaxerなどがあるが、きちんと調べるとRingoJsやnarwhalやv8cgiなど選択肢の一つとして数えられるサーバサイドJavaScript実装がいくつかある。ただ、これらはNode.jsのように注目を浴びているわけではない。 Node.jsとこれらの既存のサーバサイドJavaScriptの違いは、他のサーバサイドJSの動作モデルが既存のサーバサイドのものと変わらないのに対して、Node.jsの場合はそうではないから。具体的には、HTTPコネクションのハンドリング戦略が違っていて、既存の動作モデルが1コネクションに対して1プロセス/スレッド消費するのに対して、Node.jsの場合は非同期I/Oを用いて
(※2011/09月 追記: この記事の方法は既に古いので Socket.IOとHTTPセッションの共有は Socket.IO と Express でセッションの共有 - Block Rockin’ Codes などを参考にしましょう) node.jsでchatアプリっぽいもの作るメモ - すぎゃーんメモ node.js+socket.ioでライブコーディング的なものを作るメモ - すぎゃーんメモ に引き続き、第3弾。 現在、サンプルを以下の場所で動かしています。 http://www1216u.sakura.ne.jp:3001/ ソースは GitHub - sugyan/node-oauth-chat: node.js + socket.io chat (using Twitter OAuth) に置いてあります。 セッション共有 Socket.IOが便利なのは分かったのだけど、HTT
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く