タグ

Node.jsに関するHHRのブックマーク (129)

  • IE10で動くHTML5アプリ実装例 「Node.jsとSocket.IOを使用したリアルタイムアプリ」

    はじめに Internet Explorer 10(以下、IE10)では、HTML5や関連APIの実装が大きく進みますが、中でもWebSocketに対応することはアプリケーション開発者にとって非常に重要です。 WebSocketは、HTTPリクエストで確立した接続を「繋ぎっぱなし」にすることで、サーバとクライアントの双方向で効率的な通信を実現する技術です。WebSocketは新しい通信プロトコルです(RFC)が、HTTPと同じポート番号を使用するためファイアウォールを越えやすいのと、JavaScript APIに関する仕様もあらかじめ用意されており、Webアプリケーションとの親和性が非常に高いのも特徴です。 WebSocketは、IE10だけではなくGoogle Chrome、Firefox、Safariと言ったブラウザでもサポートされています(Operaでは、デフォルトで無効にされていま

    IE10で動くHTML5アプリ実装例 「Node.jsとSocket.IOを使用したリアルタイムアプリ」
    HHR
    HHR 2012/04/23
  • node.js Domain 時代のエラー処理のコーディングパターン - ぼちぼち日記

    id:kazuhooku さんの記事 node.js におけるエラー処理のコーディングパターン (もしくは非同期 JavaScript における例外処理。 ナイスです! なんと素晴らしいタイミングでのブログでしょうか! 「東京Node学園 5時限目」で id:koichik さんのプレゼンで node-v0.7.8 から isaacs 版 Domain が導入されるという発表がありましたが、予定通り昨日 Domain 機能付きの node-v0.7.8 がリリースされました。 しかもDomain のドキュメント付きです。 http://nodejs.org/docs/v0.7.8/api/domain.html ちょうど id:kazuhooku さんの記事の例は node.js の新機能 Domain を教科書通りに適応するとどうなるのか紹介するのにぴったりのお題なので Node.js

    node.js Domain 時代のエラー処理のコーディングパターン - ぼちぼち日記
    HHR
    HHR 2012/04/23
    require('domain');
  • node.js におけるエラー処理のコーディングパターン (もしくは非同期 JavaScript における例外処理) - kazuhoのメモ置き場

    node.js を代表とする JavaScript を用いた非同期プログラミング環境においては、コーディングパターンのベストプラクティスが共有されておらず、結果として品質の低いコードが多くなるという問題があるように思います。そこで、特にエラー処理をどう書くべきか、既存のライブラリを使う方法を紹介してみることにしました。 いきなりですが、ファイルの文字数を返す関数を作ることを考えてみます。Java だと以下のような感じになるでしょうか。countChars メソッドに注目すると、エラーを例外として扱っていて、モジュラーかつ簡潔になっていることがわかります。 class FileCounter { static long countChars(String filename) throws IOException { FileInputStream is = new FileInputStre

    node.js におけるエラー処理のコーディングパターン (もしくは非同期 JavaScript における例外処理) - kazuhoのメモ置き場
    HHR
    HHR 2012/04/23
  • Node書くならEventEmitterについて知っとくべし - Qiita

    Nodeの組み込みモジュール・サードパーティモジュール問わず広く使われるのが EventEmitter オブジェクト。 これはNodeで使われるデザインパターンの筆頭みたいなものなので、知っておかねばならない。 ドキュメント: Events ブラウザ上のJavaScriptで addEventListener を使ってイベントドリブンの開発を行うが、Node上でそれを行うのための機能を提供するのが EventEmitter。 例えば次のように使う var EventEmitter = require('events').EventEmitter; function asyncFunc() { var ev = new EventEmitter; console.log('in asyncFunc'); setTimeout(function () { ev.emit('done', 'fo

    Node書くならEventEmitterについて知っとくべし - Qiita
    HHR
    HHR 2012/04/19
  • 第1回 Node.jsとは | gihyo.jp

    はじめに 連載では、注目を集めるNode.jsを使って、Webアプリケーションを様々なクラウド環境で動かすことを最終目的にしています。Node.jsに触れたことがないJavaPHPなど普段サーバサイドで開発されている方を主な対象として、まずNode.jsの概要から紹介していきます。 Node.jsとは Node.jsとは、ブラウザGoogle Chrome用に開発されたJavaScriptエンジンV8がサーバ上でプログラムを実行できるように、ファイルやネットワークI/Oなど多くの機能を追加したものです。軽量で効率よく多くのリクエストを処理するネットワークアプリケーションの構築ができるプラットフォームになっています。いわゆるサーバサイドJavaScriptの代名詞として注目を集めています。 Node.jsでは“⁠軽量で効率良く⁠”というのを実現するために次の2つのモデルを採用しています。

    第1回 Node.jsとは | gihyo.jp
    HHR
    HHR 2012/04/18
  • Node.js の起動オプション、環境変数、npm start の話 - Block Rockin’ Codes

    Node は起動時に色々オプションをつけることができます。 面白いもの、有益なものあるんですが、あまり言及されてないので、 ちょっと紹介してみようかと思ってます。 最後の npm start の話は、それ単体で書いても良いかと思っていたんですが、 関連するし良い機会なので書きます。 そして、オプション周り興味がない方も、Node やってる方は最後の npm start の話だけでも、 読んでいただけるとと思ったりします。(知らない方が多いようなので) ここで紹介している Node のバージョンは v0.7.7 です。しかし v0.6.x あたりでは、 v8 のバージョンが古く、オプションが微妙に違います。そこは v0.6.12 での結果を載せている場合もあります。 -h まあ、とりあえず全ては -h から始まる。ということで、実行すると以下が出ます。 Usage: node [option

    Node.js の起動オプション、環境変数、npm start の話 - Block Rockin’ Codes
    HHR
    HHR 2012/04/11
  • Mojitoフレームワークを試す

    Apr 03, 2012 米国のYahoo!が開発していたMojitoが、JSConf US 2012の開催にあわせてオープンソースとしてリリースされました。Mojitoは、米国のYahoo!がCocktailsと呼ばれる自社クラウドを含む開発環境の一部として開発されたNode.js用のフレームワークです。サーバーサイドとクライアントサイド (ブラウザ) で同じコードを実行でき、マルチデバイス対応のための仕組みも実装されているのが主な特徴のようです。npmからもインストールできるようになっていたので、さっそくMojitoを試してみました。 さて、今回はNode.js v0.6.14とnpmがすでにインストールされているものとして進めていきます。まずはnpmからMojitoモジュールをインストールします。モジュールには専用のmojitoコマンドが含まれるので、-g オプションをつけてグローバ

    Mojitoフレームワークを試す
  • Node.js入門

    インストールからモジュールによる拡張まで!

    Node.js入門
    HHR
    HHR 2012/04/02
  • 【デブサミ2012】16-C-2 レポート ピグライフのスケ―ラビリティを支える2つのインフラ「MongoDB」「Chef」

    大規模環境でもスケーラビリティや冗長性を確保するMongoDB ピグライフはアメーバピグのサービス内ゲームであるが、まったく別のシステムで動作しており、アーキテクチャもまったく異なる。アメーバピグがJavaMySQLという従来型のWebアプリケーションであるのに対し、ピグライフはアプリケーションサーバがNode.js、データベースサーバにはMongoDBを採用している。 MongoDBは、オープンソースのドキュメント指向データベースで、米10gen社によって開発・提供されている。いわゆるNoSQLの一種だが、KVSほど単純ではなく、JSONをベースとした「BSON(バイナリJSON)」によるスキーマレスで柔軟なデータモデルであることが特長だ。 セッションの前半では、ビグライフでMongoDBを採用した理由とその運用成果について桑野章弘氏が発表した。その理由としては、次のようなアーキテク

    【デブサミ2012】16-C-2 レポート ピグライフのスケ―ラビリティを支える2つのインフラ「MongoDB」「Chef」
  • WebSocket で PNG 画像をバイナリ転送して、JavaScript で展開して表示してみた - hakobera's blog

    Node.js で WebSocket-Node を使って実装しました。 転送するめぼしい画像が見当たらなかったので、デスクトップをスクリーンキャプチャして転送してみました。 ブラウザはChrome 17以上か、Firefox 11以上が必要です。サーバ側は scrrencapture コマンドを利用している関係で Mac OS X限定です。 デモ 上半分が転送元のデスクトップ、下半分が転送された画像をブラウザで表示したものです。ニコ動のコメントの飛び具合を見るとわかると思いますが、800*600の解像度の画像を、横640に縮小して転送して、1FPSくらいです。(※ これはWebSocket の限界ではありません。速度は向上させる余地はかなりありますが、今回の質ではないので気にしないことにします) ソースは github に置いてあります。 hakobera/screencast · G

    WebSocket で PNG 画像をバイナリ転送して、JavaScript で展開して表示してみた - hakobera's blog
  • Nodeビギナーズブックがいいという話 - 車輪を再発明 / koba04の日記

    http://www.nodebeginner.org/index-jp.html ちょっと前に話題になっていたので紹介するまでもないのですが、実際にやってみてわかりやすかったので紹介したいと思います。 丁寧に説明されているので最近のJSはよくわからんと思っている人でも、順番に理解しながら進められると思います。 いいと思ったところ 流れが丁寧 Hello Worldから一歩ずつゆっくりとコードとそれに対する説明が丁寧に入るので置いていかれることはないと思います。 また、あえて回り道をすることでどうしてこの実装がいいのかという説明がされていたりと構成がとてもわかりやすいです。 WAFについての理解も深まる 単純なウェブアプリケーションを用いた例ではあるものの、特にnode.jsにおいてのウェブアプリケーションの構成についての理解が深まると思います。実際に何か作るときはexpressなどのWA

    Nodeビギナーズブックがいいという話 - 車輪を再発明 / koba04の日記
  • 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

    HHR
    HHR 2012/03/13
  • Node にまつわる良くある質問

    追記いくつか誤植を修正しました。 Cluster API へのリンク Ruby のようなフルスタックにうんざりしているんだ => Rails のような~ Node 関連で良く聞かれる質問を集めて見ました。 この記事を通して Node について持っていた疑問を解消し、Node の良いところも、「ちょっとなぁ。。」なところも合わせて、きちんと理解する助けになればと思います。 そもそも "Node" なの? "Node.js" じゃないの?当初は "Node.js" と呼ばれていましたが、「正式名称は "Node" である。ただし曖昧さが出る場合は "Node.js" と表記しても良い」という旨の記述が家の Wiki にあります。 What is the correct capitalization of Node.js? 日のコミュニティもこれに合わせて Node と記述するようにしている

    HHR
    HHR 2012/03/13
  • node.jsとjQueryでスクレイピングするウェブアプリの作り方

    やっぱ jQuery 便利ですよ(*´・ω・)(・ω・`*)ネー セレクタ使って jQuery でダカダカやってると、DOM とか正規表現でネチネチやるのがバカらしくなっちゃいます。 と日頃から思ってたりしてまして、サーバサイド JavaScript がメインストリームになって、jQuery でウェブアプリをコーディングできれば超ラクできるかもと期待しています。 で、先日サーバサイドJavaScriptとjQueryでスクレイピングという記事をうpったところ、やっぱ Rhino じゃなくて node.js がえーんよ(´・ω・`)というコメントを頂きましたので、node.js と jQuery でサーバサイド JavaScript スクレイピングしてみることにしました。 今回は node.js ですので、単にスクレイピングする(コマンドラインから実行する)スクリプトだけじゃなくて、スクレイ

    node.jsとjQueryでスクレイピングするウェブアプリの作り方
  • Node.js チュートリアル | Node ビギナーズブック

    書について 書は、Node.jsでのアプリケーション開発を始めようとする皆さんに、 ”高度な”JavaScriptについて知るべきあらゆることを解説します。 よくある”Hello World”チュートリアルの、はるか上をいくものです。 ステータス 貴方が読んでいるのは、書のいわゆる最終版となります。 つまり書は、間違いが見つかった場合や、 Node.jsの新バージョンにおえる変更点を反映する時のみ、改訂されます。 最終更新日は2012年2月12日です。 書内のコードのサンプルは、Node.jsのバージョン0.6.10でテストしています。 ターゲット読者 書は、RubyPythonPHPJavaのような、少なくともひとつのオブジェクト指向言語を理解しており、 JavaScriptについてはあまり経験がなく、Node.jsについては全く経験がないという、 著者と同じようなバッ

    HHR
    HHR 2012/03/10
  • 5分くらいで出来るnode.js(0.6) + socket.io(0.8x)のサンプルプログラム - 小さい頃はエラ呼吸

    2012.12.22 最新版で動作するようエントリを修正しました。 【初心者向け】node.js(0.8) + socket.io(0.9x)のサンプルプログラム - 大人になったら肺呼吸 2012.01.17追記 以下の手順だと文字化けすることが分かりましたので、修正しました。 はじめに node.js 0.6がリリースされて、いつのまにやらsocket.ioも0.8になっていたので、node.js(0.6) + socket.io(0.8x)を使ったサーバプッシュのサンプルプログラムを作ってみました。 node.js Socket.IO: the cross-browser WebSocket for realtime apps. サーバサイドJavaScript Node.js入門posted with amazlet at 13.05.31清水俊博 大津繁樹 Jxck 小林秀和 佐

    5分くらいで出来るnode.js(0.6) + socket.io(0.8x)のサンプルプログラム - 小さい頃はエラ呼吸
    HHR
    HHR 2012/03/08
  • WebSocket のバイナリメッセージを試したら、ウェブの未来が垣間見えた

    長い記事なので、先に結論だけ書いておきます。WebSocketのバイナリメッセージ機能は、これまでのインターネットのあり方をひっくり返します。「そんなの知ってるよ」という方もいるとは思います。僕も理屈では分かってたつもりだけど、実際にアプリを作ってみて、具体的にそれを感じることができたので、ちょっと長いですがどういうことなのか説明してみます。 WebSocketとは # WebSocketは、HTML5関連の中でも特に注目を集めている技術の一つです。通常のHTTP通信であればクライアントからのリクエストなしにサーバーは応答しませんが、WebSocketを使うことでクライアントとサーバーの間で双方向の通信が可能となります。これを利用することで、今後様々なリアルタイム性の高いサービスを構築することが可能になるでしょう。 そんなWebSocketですが、これまで波乱の道を歩んできました。数年前か

    WebSocket のバイナリメッセージを試したら、ウェブの未来が垣間見えた
  • Node.js の Stream API で「データの流れ」を扱う方法 - Block Rockin’ Codes

    追記 11/12/6 少し誤字脱字を修正、加筆 11/12/7 koichik さんにコメントで頂いたリンクと、その内容について追記 11/12/7 edvakf さんに頂いた指摘を修正 文 この記事は、JavaScript Advent Calendar 2011 (Node.js/WebSocketsコース) の 4 日目の記事です。 Node.js には Stream という API があります。 Stream はとても重要な技術で、 「Stream を制するものは、 Node.js を制す」と言っても過言ではありません。 実際、 Stream は Node.js が得意とする I/O の部分を使いこなすために、 押さえておくべき技術なので、今回はこの Stream について紹介したいと思います。 参考 Jxck's OutPut - Node.js の Stream I/O のお

    Node.js の Stream API で「データの流れ」を扱う方法 - Block Rockin’ Codes
    HHR
    HHR 2012/03/04
  • Socket.IO API 解説 - Block Rockin’ Codes

    追記 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:/

    Socket.IO API 解説 - Block Rockin’ Codes
    HHR
    HHR 2012/03/04
    最初の始め方。Express + ejsでやってる
  • Socket.IO: the cross-browser WebSocket for realtime apps.

    What is Socket.IO? Socket.IO は複数の通信メカニズムを抽象化することで、 全てのブラウザ、デバイスでリアルタイムアプリを実装可能にするために開発されました。 とても手軽にリアルタイムなアプリを 100% JavaScript で作成可能です。 Server var io = require('socket.io').listen(80); io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); Client <script src="/socket.io/socket.io.js"></script

    HHR
    HHR 2012/03/04
    翻訳あざーす