Node.js

Roy による関数合成

Groovy, Scala, F#, Haskell による関数・クロージャの合成 や Java SE 8 で関数合成 で実施したものと同様の関数合成を Roy で試してみました。 Roy は JavaScript へコンパイルできる関数型のプログラミング言語です。 Roy 0.2.2 ソースは http://github.c…

記号文字の URL エンコード - Java, .NET, JavaScript, Ruby, Python, PHP

下記のような文字をいくつかのプログラム言語の標準的な API で URL (URI) エンコードしてみたらどうなるか試してみました。 ; / ? : @ = & % $ - _ . + ! * ' " ( ) , { } | \ ^ ~ [ ]使用した言語は下記の通りです。 Groovy (Java API) C# (.NET Fram…

RxJS で行単位のファイル処理

前々回(id:fits:20130224)・前回(id:fits:20130310)のファイル処理と同様の処理を RxJS を使い CoffeeScript で実装してみました。今回作成したソースは http://github.com/fits/try_samples/tree/master/blog/20130313/ RxJS インストール RxJS をイン…

JavaScript で List モナド - Monadic

Monadic は JavaScript 用のモナドライブラリです。今回はこの Monadic を使って、以前 (id:fits:20120912, id:fits:20120930) に Scalaz や Functional Java で実装したナイト移動の List モナド処理 *1 を JavaScirpt で実装してみました。 Monadic 0.0.…

Markdown の HTML 変換 - Ruby, PHP, Groovy, Scala, Node.js

Markdown 形式の文字列を HTML 変換する処理を複数のプログラム言語で試してみました。処理としては、標準入力から UTF-8 の Markdown 形式の文字列を取得し HTML 変換した結果を標準出力へ UTF-8 で出力しています。ちなみに、Markdown 文字列は LOGGiX プ…

非同期処理でWebコンテンツをダウンロードする方法5 - IcedCoffeeScript

IcedCoffeeScript は TameJS の await/defer をサポートした CoffeeScript の拡張版です。 IcedCoffeeScript 1.3.3a 前回(id:fits:20120415)、TameJS + CoffeeScript で実装した Web コンテンツのダウンロード処理を IcedCoffeeScript で実装すると以下の…

Node.js の非同期処理を関数合成で繋げてみる - 連続コールバック対策

Node.js でプログラミングする際の課題は、非同期処理のコールバックが多段になって分かり難くなってしまう点だと思います。(下記は CoffeeScript の例) func1 引数・・・, (err, 処理結果1) -> if err? エラー処理 else ・・・ func2 引数・・・, (err, …

Express 用のテンプレートエンジンを自作する方法

Node.js 用 Web フレームワーク Express のテンプレートエンジンを自作する方法をご紹介します。 Express 3.0.0beta2 といっても自作テンプレートエンジン側で以下のような処理を用意するだけなので、非常に簡単です。 exports.__express = function(path, o…

Vert.x の使い方 - Windows 環境でソースからビルドする方法

Vert.x を Windows 上でソースビルドして実行環境を構築する手順をご紹介します。 ちなみに、わざわざソースからビルドしなくても https://github.com/purplefox/vert.x/downloads からパッケージ(例 vert.x-1.0.final.tar.gz)をダウンロードして解凍すれ…

TameJS による継続と CoffeeScript 上での利用 - 非同期処理でWebコンテンツをダウンロードする方法4

TameJS は JavaScript で継続(Continuation)を実現するためのツールです。TameJS によって Scala の限定継続(id:fits:20111016 参照)のような事ができるので、コールバックを多用する Node.js の処理を比較的シンプルに実装できるようになります。そこで…

Maven で CoffeeScript を使用する

Maven を使った Web アプリケーションで CoffeeScript を使うためのプラグイン coffee-maven-plugin をご紹介します。coffee-maven-plugin を利用するには pom.xml ファイルに以下のようなプラグイン設定を追加します。 coffee-maven-plugin の設定例 <plugin> <groupId>com.t</groupid></plugin>…

非同期処理でWebコンテンツをダウンロードする方法3 - node.js, C#

今回は、Node.js と Async CTP を使った C# で実装してみました。 node.js C# : Async CTP サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20111030/ node.js の場合 以前は Windows で node.js を使用するのに Cygwin を使ってビル…

node.js + express + haml.js + mongoose で MongoDB を使った Web アプリ開発

以前(id:fits:20110306)に Sinatra で作成したサンプルの node.js 版を作成してみました。環境は以下の通りで、Sinatra 版と同等の構成になっています。 node.js 0.4.0 Express 1.0.7 Haml.js 0.5.1 Mongoose 1.1.24 MongoDB 1.8.1 rc1 サンプルのソースは…

Cygwin を使って node.js と npm をインストール

Cygwin で node.js と、node.js のパッケージ管理ツール npm をインストールしてみました。 使用した環境は以下の通りです。 Windows 7 Cygwin 2.738 node.js 0.4.0 npm 0.2.18 node.js のビルドとインストール node.js のビルドとインストールは、http://no…