When you require a module in Node, what are you getting back? When you write a module, what options do you have for designing its interface? When I was first learning to work in Node I found the sheer number of ways to do things to be a bit overwhelming. JavaScript is extremely flexible and the community of developers contributing to open source seem to have different styles for implementing the s
node をバージョン別に使い分けたりしたかったので、nodebrew なるものを使うことにした(hokaccha++)。 最初は nvm 使ったんだけど、なんかうまくできなかった。 ~/.bashrc に設定書いたら、ターミナル起動するたびに nvm use v0.8.19 とか出てくるのがイラっとしたのでやめた。 1. nodebrew のインストール ターミナルに以下の 1 行コピペするだけ。超簡単。 curl https://raw.github.com/hokaccha/nodebrew/master/nodebrew | perl - setup 2. 環境設定ファイルにパスを通す いまだに「パスを通す」っていう意味が分かってないけど、これをやらないと、ターミナルを再起動したときに、せっかく入れたツールが使えなくなるっていう認識でおります・・。 私は ~/.bashrc を使っ
プロジェクトでコーディングする時に、複数の作業者がいる場合にスタイルガイドはとても重要です。 特にスマートフォン向けのサービスでは、モジュールの共通化や画像のスプライト化がもろにページ表示速度に影響するため、より精度が高く細かいアップデートに耐えうるCSSスタイルガイドが必要になります。これをExcelやPowerPointで管理していると、細かい変更の反映が大変だし、なにより見にくい。 そんな時、こちらの記事「CSSプリプロセッサでスタイルガイド」 inkdesignの中で、 スタイルガイドは”生きている”ドキュメントでなければいけない というシビレるキャッチで紹介されていた「styleDocco」というスタイルガイドジェネレータを発見。 これはなんだか良さそうだ!とプロジェクトに取り入れてみることにしたので、導入とか設定とかをメモ。 「styleDocco」ってなに? 「style
Overview Nodefront is a node.js-powered command-line utility that speeds up front-end development. Installation Installation is simple with npm: It is not recommended to use npm update nodefront due to a known bug that prevents it from adding new dependencies correctly. Introductory Screencast Before diving into the documentation, you may view a screencast that introduces some of nodefront's key f
前置き Node.js で一番よく使われている Webフレームワークといえば、Express です。で、その Express が大きく依存しているのが Connect です。 Express を制するにはまずは Connect から、というわけで、Connect のソースコードを読み始めました。 対象とする Connect のバージョンは現時点(2011/11/23)での最新版である 1.8.1 (Express 2.5.1 が依存)です。 初回は、ソースを読む前の事前準備として、ソースコードの依存関係と各ソースの概要について説明します。 Connect ソースコードの場所 1.x ブランチ (master は 2.0.0alpha1 なので注意) senchalabs/connect at 1.x · GitHub 現時点でのメイン・コミッター(≒ 最もアクティブにコミットしている人の意
I decided to put together a little list of tips and tricks related to NPM you might not know about, that come from my experience working with it daily, in both production and development. Dev dependencies Make sure packages that only need to be installed while developing your module, like test frameworks, are included as devDependencies: "devDependencies": { "module": "0.1.0" } Introspecting packa
このドキュメントについて 本ドキュメントは、 Node.JS の MongoDB ORM-like な機能を提供するユーティリティライブラリである Mongoose のマニュアルを翻訳したものです。 誤り等ございましたら、 @muddydixon までご連絡ください オリジナルコピーライト Mongoose by gradebook LearnBoost Labs. Released under the MIT license - Copyright LearnBoost 2011 Mongoose 1.0 Mongoose とは ? Mongoose は非同期環境において機能することを目的とした MongoDB のオブジェクトモデリングツールです。 モデルの定義は簡単です var Comments = new Schema({ title : String , body : String
本書について 本書は、Node.jsでのアプリケーション開発を始めようとする皆さんに、 ”高度な”JavaScriptについて知るべきあらゆることを解説します。 よくある”Hello World”チュートリアルの、はるか上をいくものです。 ステータス 貴方が読んでいるのは、本書のいわゆる最終版となります。 つまり本書は、間違いが見つかった場合や、 Node.jsの新バージョンにおえる変更点を反映する時のみ、改訂されます。 最終更新日は2012年2月12日です。 本書内のコードのサンプルは、Node.jsのバージョン0.6.10でテストしています。 ターゲット読者 本書は、Ruby、Python、PHP、Javaのような、少なくともひとつのオブジェクト指向言語を理解しており、 JavaScriptについてはあまり経験がなく、Node.jsについては全く経験がないという、 著者と同じようなバッ
node.js を代表とする JavaScript を用いた非同期プログラミング環境においては、コーディングパターンのベストプラクティスが共有されておらず、結果として品質の低いコードが多くなるという問題があるように思います。そこで、特にエラー処理をどう書くべきか、既存のライブラリを使う方法を紹介してみることにしました。 いきなりですが、ファイルの文字数を返す関数を作ることを考えてみます。Java だと以下のような感じになるでしょうか。countChars メソッドに注目すると、エラーを例外として扱っていて、モジュラーかつ簡潔になっていることがわかります。 class FileCounter { static long countChars(String filename) throws IOException { FileInputStream is = new FileInputStre
InfoQ 2011.10.11のエントリ InfoQ: Node.js in Action: Interview and Book Excerpt 普段スピーカとかやらないTJ Holowaychukがざっくばらんな感じで面白い 24歳、オール独学、グラフィックデザイン畑出身、phpを最初に学んだのは不運、rubyなみに堅牢なスクレイピングツールをnodeにも欲しい、などなど 具体的に名指ししてないけど、pyjamasとかGWTのような「jsを書かずに済ませる、jsを生成してくれる」系の言語/DSLに色々意見があるらしく、一問一答にそのトピック何度も差し挟まれるんだけど、歯が立たない箇所が多し 追記:TJはCoffeescriptいらない派らしい Twitter / @tjholowaychuk: @jprichardson the latter ... 以下斜め読んだ内容 近刊の『No
connect (express) は Ruby の Rack と同じようにミドルウェアを使うことで簡単に拡張する事が出来ます。このミドルウェアの使い方・作り方を知っているだけで express での開発が相当楽になりますので覚えておいて損は無いでしょう。 ミドルウェアを使う# ミドルウェアを express に組み込むには use メソッドを使います。つまり、普段よく使う bodyParser や cookieParser, logger なども実は connect のミドルウェアです。 var express = require('express') var app = express.createServer(); app.configure(function() { app.use(app.logger()); app.use(app.bodyParser()); app.use(
サーバサイド(特にNode.js)とクライアントサイド両方で動かしたいものは最近はこんな感じで書いている。 CommonJSのwiki見ててそこに紹介されてるソースコードで(どれだったか忘れたけど。。)やってたのを見ていいなーと思って真似っこした。 (function(define) { define([], function() { 'use strict'; /** * @constructor */ var SomeClass = function() { // initialize }; /** * @type {string} * @private */ SomeClass.prototype.hoge_ = 'hoge'; /** * @return {string} */ SomeClass.prototype.getHoge = function() { return th
たまたま新環境にNode.js入れてたらv0.7.0がリリースされてたのに気がついたので、勢いで新機能を試してみた。 V8のバージョンが上がったとかもあるけど多分一番の目玉はIsolates(マルチスレッド)のサポートかな、と思う。開発ブランチでは他にもDomainsという機能も実装中らしいと聞いてたがそれはまだv0.7.0では使えないようだ。 Isolatesの使い方がドキュメントの方には載ってなかったのでソースをisolateとかthreadとかで探してみたところ、どうやらchild_processモジュールのspawnやforkのオプションに thread:true を渡してやればマルチスレッドを使ってくれるっぽいことが分かった。 シングルスレッドと非同期I/Oでシンプル&ハイパフォーマンスが売りのNodeだが、よく「マルチコアが使い切れない、重たいCPU処理したら固まるじゃんプギャ
※この記事は現時点での node.js 最新版 v0.6.6 に付属する npm 1.1.0-beta-4 を元にしています。 ※間違い等ありましたらご指摘いただけると幸いです。 npm は node.js のパッケージマネージャーですが意外と色々な機能が搭載されています。 「man を読め」とは良く言われますが、結構 ドキュメント を読むだけでも大変でした。 npm で使えるコマンドは以下の通りです。 adduser 対話的に username, password, email を登録します。.nvmrc に credential を保存します。後述の npm star する為にはこの登録が必要です。npm config set で username, _password, email をセットしているとデフォルト値として採用される?npm whoami した時に登録したユーザー名が表示
Node.js v0.6 の新機能として cluster モジュール が導入されました.cluster モジュールは,HTTP を含めた TCP 接続を複数の子プロセス (ワーカプロセス) で処理することにより,特にマルチコア環境でのスループット (リクエスト/秒) を向上するための機能です. しかし,ドキュメントにはその使い方が書かれているだけで,どのように実現されているかは書かれていないので,ここで簡単に紹介しておきます. Node.js のクラスタ機能は v0.5.10 で突然コマンドラインオプションとして導入されましたが,直後の「東京 Node 学園祭 2011」が行われた頃にはコマンドラインオプションは廃止されて cluster モジュールによって API が提供されるようになり,その翌週の v0.6.0 リリース数時間前にはその API が変更されるというドタバタぶりでした
1. The document discusses multi-tiered Node.js architectures to improve scalability and efficiency. It suggests moving non-client facing work like logging and processing to separate "farms" or clusters to avoid blocking the main event loop. 2. Another approach presented is to use front-end clusters or "shards" to distribute client requests across multiple Node processes to take advantage of parall
本稿では、Node.jsの特徴や動作原理に触れ、サンプルや役に立つパッケージ、活用事例などを紹介したいと思います。 主なサーバサイドJavaScript Node.jsに触れる前に、予備知識として他のサーバサイドJavaScriptにも触れておきます。Node.js含め、サーバサイドJavaScriptには、主に以下のようなプロジェクトがあります。 サーバサイドJavaScripの標準仕様「CommonJS」とは サーバサイドJavaScriptには、「CommonJS」と呼ばれる標準化が策定されています。標準化というと難しい感じがしますが、要はサーバサイドでJavaScriptを実行するのに何が必要かを仕様として、定義しているドキュメントのことです(例えば、「ログが必要だよね」など)。 Node.jsは、このCommonJSに則って開発されています。現段階であれば、CommonJSの仕様
仕事でRails3を使ってて便利だったもののひとつにbundlerがある。 これはGemfileというファイルに、プロジェクトで使うgemを記述しておきbundle installコマンドで必要なgemがインストールされるというもの。 node.jsを触ってる時にも同じようにできないかなーと探していたら、npmにすでに同様の機能が備わっていることを知ったので使ってみた。 package.jsonを作成する npmeで、rubyのGemfileに相当するものがpackage.jsonになる。他のライブラリの設定ファイルとか見てもjsonだったし、JSだとそりゃjsonになるよなぁと思ったりした。 このpackage.jsonをプロジェクトの直下に配置して以下のように書く { "name": "tohae_example", "version": "0.0.1", "engines": "0.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く