タグ

node.jsに関するnobu666のブックマーク (50)

  • Node.jsのためのasync必修パターン(1): 同期パターン

    node.jsはnon-blocking処理を行うため、書き手の意図しない順序で処理が実行されることがあります。それでは困ることもあるため同期をとって処理を行うパターンについて書きます。例えばA、B、C、Dという処理があり、A、B、Cの3つが終わってからDが行われることを保証したい場合の必須のパターンです。 A、B、Cという3つの処理では、それぞれDBに問い合わせを行い、Dという処理では3つのDB問い合わせの結果を使って集計の処理を行いたいような場面を考えてみます。a(); b(); c(); d();上のように普通に書くと、node.jsでは折々の状況に応じてaからdまでの処理を非同期に実行します。dが一番最初に実行されるかもしれません。困ります。そこで、A、B、Cの3つの処理が3つとも完了した後にDが実行されるようにするパターンを書きます。// sync.js var wait = f

  • node.jsを使って簡単にwebサイトにインスタントメッセンジャーを組み込む方法(その1) - kissrobberの日記

    node.jsを使ってWebサイトにインスタントメッセンジャー (Google Talkでも、Yahoo!メッセンジャーでも、MSN Messengerでも、Facebook ChatでもXMPP対応のもの) を組み込む方法の紹介(というかメモ)です。 デモ (IEだとAjaxでエラーになっているっぽいです。ライブラリはIEでも動くっぽいので何かがおかしいのだと思いますが、何がおかしいか分かる人いたら教えてください。) XMPPって何よ? あんまり理解してなくてもWebに組み込む程度なら出来ますが、詳しく知りたい人は自分で調べてください。 Extensible Messaging and Presence Protocol - Wikipedia Webサイトで対応する場合の仕組み XMPPはHTTPプロトコルでは無いので、直接ブラウザから使用する事はできません。 なんらかの手段でHTTP

    node.jsを使って簡単にwebサイトにインスタントメッセンジャーを組み込む方法(その1) - kissrobberの日記
  • node.js + socket.ioでキーワードにマッチしたツイートを眺めるプログラム作ったよ。(技術解説編) - 小さい頃はエラ呼吸

    2012.03.18追記 以下の記事は古くなっているため、最新版はこちらを参照してください。 node.js + socket.ioでTwitterのStreaming APIを使ってみる - 大人になったら肺呼吸 はじめに 先日、node.js + socket.ioを使って、指定したキーワードに関連するツイートをTwitterから検索してきて、画面に表示していくプログラムを作ってみました。 node.js + socket.ioでキーワードにマッチしたツイートを眺めるプログラム作ったよ。 - 大人になったら肺呼吸 このエントリでは、このプログラムの作り方とdotcloudにアップロードして動かすまでの手順を書いてみたいと思います。 はじめてのNode.js -サーバーサイドJavaScriptでWebアプリを開発する-posted with amazlet at 13.05.25松島

    node.js + socket.ioでキーワードにマッチしたツイートを眺めるプログラム作ったよ。(技術解説編) - 小さい頃はエラ呼吸
  • require('events').EventEmitter.call(this) の意味 - Block Rockin’ Codes

    [修正] コメントで指摘されたように、回答4の訳が間違っていたので訂正しました。 Node の ML に以下のような質問が投稿されました。 What is the meaning of require('events').EventEmitter.call(this) 内容としては。 「以下のようなコードがあったんだけど、これってどういう意味?」 var util = require("util"); var events = require("events"); function MyStream() { // ここの意味がよくわからん、これは `new MyStream` と同じに見えるんだけど違うの? events.EventEmitter.call(this); } util.inherits(MyStream, events.EventEmitter); var steam =

    require('events').EventEmitter.call(this) の意味 - Block Rockin’ Codes
  • Node.js(Express)アプリの雛形を自動生成する - アインシュタインの電話番号

    昨日の記事では、Node.jsアプリでHello worldする際に、それに必要なファイル(web.js, package.json, Procfile, .gitignore)を1個ずつ新規作成してたけど、expressコマンドを使えばその雛形を自動生成できることに後から気づいた。これを使うと、web.js(=app.js)とpackage.jsonの2つは自動生成できる。Sinatra単体には無い機能だね。 あと、Sinatraアプリ開発時に使われる自動リロード機能(ShotgunやSinatraReloaderなど)に相当するnode-devをちょっと使ってみたので、それについてもメモ。 expressをグローバルインストール expressコマンドを使うには、Expressパッケージをグローバルインストールする。 $ npm install -g express /Users/ru

    Node.js(Express)アプリの雛形を自動生成する - アインシュタインの電話番号
  • Node におけるスケールアーキテクチャ考察(Scale 編) - Block Rockin’ Codes

    [追記] 途中までは Node での複数プロセス起動、プロセス間通信等について書かれていますが、後半は自分が前回の記事 を書くにあたって自分が考えてたことを少し強引に広げて書いた個人的な妄想が多く含まれ、Node におけると言っときながら、後半は Node 関係ない感じになってしまいました。 正直まだ分かっていないことが多いです。変なところをどんどん指摘していただけるとむしろ嬉しいです。 Node におけるスケールアーキテクチャ考察(SSP 編) - Block Rockin’ Codes の続きです。 もともと何となく結論があって書き始めたんですが、書きながら色々調べているうちによくわからなくなりました。 まだまだ調べたらないことがわかったので、とりあえず今わかっているところまで書きます。 結局何がいいたいのかよくわからない感じかもしれないけど、ゴールは SSP のバックエンドの Nod

    Node におけるスケールアーキテクチャ考察(Scale 編) - Block Rockin’ Codes
  • Node におけるスケールアーキテクチャ考察(SSP 編) - Block Rockin’ Codes

    *息抜きがてら書いていたら長くなってしまった。。 *当たり前ですが、あくまで個人的な考えです。 *ころころ変わるかもしれません。 Node の基的な知識についての話は色々なところで出始めて、 じゃあこーいう場合はどうするの? みたいな話が出始めたりもするようになってきた気もします。 正直、自分にもまだ分からないことだらけです。 そもそも自分はそこまでスケールに関するアーキテクチャや、OS の低レイヤに精通しているとは言えないので、 これを期に Node は何が得意で何が不得意なのか、スケールさせるために考えないといけないこと、などを自分なりにまとめて、 ついでに、これまで学んできた周辺のアーキテクチャに関する知識も混ぜて、色々思考実験をしてみたいと思っています。 だから WebSocket にブラウザが対応してないとか、そんな複雑なサーバ群当に運用できるのかとか、 そういう話は無しに、

    Node におけるスケールアーキテクチャ考察(SSP 編) - Block Rockin’ Codes
  • Node.jsがどうして注目されているのか、もしくはどうして他のサーバサイドJavaScriptはスルーされているのか - id:anatooのブログ

    サーバサイド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を用いて

    Node.jsがどうして注目されているのか、もしくはどうして他のサーバサイドJavaScriptはスルーされているのか - id:anatooのブログ
  • [node.js]node-inspectorを使ってdebugする(express-mvc-bootstrap)

    ConsoleでDebugする方法もあるらしい。今回はnode-inspector(GitHub)をInstallしてGoogle Chromeでremote debugする方法を試してみた。 こちらから参照されている動画を見れば、どんな感じか分かる。 Node Inspector - Node.js Debugger npmでinstallすれば簡単。node.js, npmのInstallに関しては"Related Posts"を参照。 # npm install -g node-inspector debuggerの起動 # node-inspector visit http://0.0.0.0:8080/debug?port=5858 to start debugging 通常はこれで(別consoleを起動して)debug optionを付けてAppを起動 -> Google C

  • node.js + express でセッションストアを Redis に変更する方法

    express のセッションは標準だとメモリストアなので、再起動するたびにセッションが消えてしまいます。そこでセッションストアを Redis にしてセッションを永続化出来るようにしてみます。 下記環境で動作を確認しました。 Node.js v0.4.8 express v2.3.11 connect-redis v1.0.5 npm で connect-redis をインストールします。 var express = require('express'); var RedisStore = require('connect-redis')(express); var app = express.createServer(); app.use(express.cookieParser()); app.use(express.session({ secret: "secret key", sto

    node.js + express でセッションストアを Redis に変更する方法
  • HerokuがNode.jsのサポートを開始、PHPクラウドのPHP Fogは正式サービスを開始

    PaaSに関する短いニュースを2紹介しましょう。 Ruby on RailsのPaaSをクラウドで提供しているHerokuが、Node.jsのサポートを実験的に開始したと発表しました。 RubyとNode.jsは補完関係にあると、Node.jsのサポートを発表したブログの中で説明しています。その理由は、デフォルトではすべてのI/O操作がブロックとなるRubyに対して、Node.jsではノンブロッキングだからだそうです。 既存のRubyアプリケーションの中でリアルタイムにイベントハンドリングをしたい部分や、大規模な並列性を求められるに関してNode.jsのコンポーネントを呼び出す、といったRuby on RailsとNode.jsの組み合わせを提案しています。 PHP Fogは正式サービスへ PHPのPaaSを提供しているPHP Fogは先月ベータを卒業し、正式サービスとなりました。 PH

    HerokuがNode.jsのサポートを開始、PHPクラウドのPHP Fogは正式サービスを開始
  • 結婚式プロフィールムービーを楽しく作成する方法とおすすめサイト紹介 - 結婚式の記録者

    はじめに これから結婚式を控えている新郎新婦様、結婚式のプロフィールムービーを自分たちで作成してみませんか?プロフィールムービーは、ゲストにお二人のこれまでの歩みやエピソードを紹介する大切な演出です。今回は、プロフィールムービーの作成に役立つ情報やおすすめのテンプレートサイトを紹介します。 プロフィールムービー作成の基 必要な素材を準備する プロフィールムービー作成には、写真や動画、テキストなどの素材が必要です。お二人の思い出の写真や、親しい友人からのメッセージ動画などを集めておきましょう。 構成を考える ムービーの構成を決めることも重要です。例えば、出会いのエピソード、デートの思い出、プロポーズの瞬間など、時系列に沿ってストーリーを作ると見やすくなります。 おすすめのテンプレートサイト NONNOFILM NONNOFILMは、2008年から続く老舗のブライダルムービーテンプレートサイ

    結婚式プロフィールムービーを楽しく作成する方法とおすすめサイト紹介 - 結婚式の記録者
  • JSConf, NodeConf, Joyent に行ってきました。 - Block Rockin’ Codes

    行き先 JSConf, NodeConf, Joyent に行ってきます。 - Block Rockin’ Codes すっかり報告が遅くなりましたが、無事に行ってまりました。 かなり充実した旅ができたし、当に行ってよかったと思えました。 JSConf US - May 2-3, 2011: Packing up and heading west, Portland Oregon. Moduletopia! 404 - Page not found - Bocoup 404 - Page not found - Bocoup ログ 今回の旅ではあまりにも色々なことがあり過ぎたので、各日ごとに日記というか垂れ流しな感じで、 Tumblrの方にログを残しています。こちらを見ていただけると詳細がわかるかと。 Jxck's OutPut - JSConf/NodeConf/SFの旅(1日目) J

    JSConf, NodeConf, Joyent に行ってきました。 - Block Rockin’ Codes
  • node.js + express の記述でハマりがちなこと | Singen-Zaregoto

    node.jsは注目されている新技術であると同時にマニュアルやエラー例が少ないので、 先行技術を利用するが故にはまったこと、トピックス的なことをかきためる。 expressなんて「ソース読めって言ってんのか!」みたいなマニュアルしかないし。 バージョンは暫く0.4.7を利用。バージョンアップがかかれば最新をおっかけていく。 相対パスの取得がうまくいかない ソース: [javascript] require(“src/util”) [/javascript] エラー: [shell] node.js:134 throw e; // process.nextTick error, or ‘error’ event on first tick ^ Error: Cannot find module ‘src/util’ at Function._resolveFilename

  • node-handlersocket

    JJUG Cross Community Conference 2011 Spring Node.js 日ユーザグループによる LT 大会発表資料Read less

    node-handlersocket
  • text.ssig33.com - node.js でアプリケーションを作った。

    node.js でアプリケーションを作った。 いい加減 node.js で何も作ったことありません、じゃダサいだろうと思ったので。 まずはこのサイトを node.js でリプレイスしてみた。あまりこのサイトをブログと呼びたくはないのだが、まず一般的なブログエンジンのうち、最も機能が少ないものを作ったといえると思う。 express(WAF), node-markdown(記法エンジン), hamljs(テンプレートエンジン) node-sqlite3(DB Driver)と必要なものは全て揃っている。めんどくさい点などはいくつかあったものの特に問題無くアプリケーションを作ることが出来た。 node.js のよいと思ったところ coffee script の分かりやすい文法を使うことが出来る ただ Ruby なり Python なり Perl なりと比較した時にどれだけ言語的な魅力があるかは

  • Vows で クライアントサイドの CoffeeScript / JavaScript のテストをする時の Tips

    0. node.js の Vows フレームワークがとてもかわいい JavaScript のTDD, BDDフレームワークはたくさんあるけど,テスト結果の見た目の良さと記述の楽さで Vows というフレームワークを使っている.RSpec からの影響を受けていて,Rack アプリケーションのテストと同じような感覚で書ける,というのが良い. たとえばこんな感じでテストコードを CoffeeScript で書く で --spec オプションをつけて実行するとこういう風に表示してくれる. assertion でテストが通らないと黄色く,内部エラーの場合は赤にラベルが表示される. しっかり全部通すと このように表示される.見た目が良いし,ラベリングを丁寧にやるとテストの内容がわかりやすい. 元々 node.js のテスト用なので,require exports など, pure JavaScript

    Vows で クライアントサイドの CoffeeScript / JavaScript のテストをする時の Tips
  • Node.jsとは何か、開発者ライアン・ダール氏が語る(後編)~ 複数コネクションの並列処理とデバッグ

    Node.jsとは何か、開発者ライアン・ダール氏が語る(後編)~ 複数コネクションの並列処理とデバッグ いま注目されているサーバサイドJavaScriptの火付け役となったNode.js。その開発者であるライアン・ダール(Ryan Dahl)氏自身がNode.jsを紹介した講演「Introduction to Node.js with Ryan Dahl 」のビデオが公開されています。 この講演は、サンフランシスコのPHP開発者の集まりであるThe SF PHP Meetup Groupが2月にダール氏を招待して行われたもの。 そのため、Node.jsを知らないデベロッパーに向けて、Node.jsがどのような特徴を持つプログラミング言語なのか、分かりやすく解説しています。内容を紹介しましょう。 (記事は「Node.jsとは何か、開発者ライアン・ダール氏が語る(前編)~ノンブロッキングとは

    Node.jsとは何か、開発者ライアン・ダール氏が語る(後編)~ 複数コネクションの並列処理とデバッグ
  • Node.jsとは何か、開発者ライアン・ダール氏が語る(前編)~ノンブロッキングとはどういうことか?

    いま注目されているサーバサイドJavaScriptの火付け役となったNode.js。その開発者であるライアン・ダール(Ryan Dahl)氏自身がNode.jsを紹介した講演「Introduction to Node.js with Ryan Dahl 」のビデオが公開されています。 この講演は、サンフランシスコのPHP開発者の集まりであるThe SF PHP Meetup Groupが2月にダール氏を招待して行われたもの。 そのため、Node.jsを知らないデベロッパーに向けて、Node.jsがどのような特徴を持つプログラミング言語なのか、分かりやすく解説しています。内容を紹介しましょう。 Node.jsとPHPとの質的な違いとは何か Node.jsを触ってみよう。今日は特にスライドは用意してなくて、タイプしてどんなものかを動かしながら紹介していくつもりだ(注:ダール氏はここで最初に「

    Node.jsとは何か、開発者ライアン・ダール氏が語る(前編)~ノンブロッキングとはどういうことか?
  • Good night, Posterous

    Posterous Spaces is no longer available Thanks to all of my @posterous peeps. Y'all made this a crazy ride and it was an honor and pleasure working with all of y'all. Thanks to all of the users. Thanks to the academy. Nobody will read this.