node.js

stream2対応split-streamをpublishした

https://npmjs.org/package/split-stream すごく……バグがありそうです…… ltsvにもすぐに対応させたかったんだけど、ちょっとだけ様子を見ようかなーと。

TransformStreamのなぞ

こんなコードを書いたのだけど…… var stream = require('stream'), util = require('util'); function s(options) { options || (options = {}); stream.Transform.call(this, options); } util.inherits(s, stream.Transform); s.prototype._transform = fu…

はじめてのDuplexStream...でなくてTransformStream(stream2)

Readable, Writableときて、DuplexStreamを書いてたんですが意味がわからなかったのでTransformStreamを書いてみました。 で、TransformStreamで一番の目的のものが書けそうだったのでDuplexStreamは放置することに。 var stream = require('stream'), util …

はじめてのWritableStream(stream2)

stream2のWritableStreamを書いてみました。 var stream = require('stream'), util = require('util'); function WStream(options) { options || (options = {}); stream.Writable.call(this, options); } util.inherits(WStream, stream.Writable); WStrea…

はじめてのReadableStream(stream2)

stream2のReadableStreamを書いてみました。 var stream = require('stream'), util = require('util'); function SpecialStream(options) { options || (options = {}); options.objectMode = true; stream.Readable.call(this, options); this.count = 0; …

nodebrewのインストールがラクチンになったみたい

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

testem + mocha on Travis-CI - ブラウザでのテストを自動化する

Travis-CIでブラウザのテストできないのかなー、できないよなーと思いつつ、いろいろ探してみたら出来るような事を知り、今ホット(なのかな?)なtestemを使う事でmochaでのテストも実行できるらしい!という事を知ったので試してみました。 準備 package.j…

ltsviewのnode.js実装を書いたよ

GitHub - naoya/perl-Text-LTSV: Text::LTSV - Labeled Tab Separated Value manipulatorのnode.jsでの実装を書いてみました。 機能的にはほぼ同じ(JSONでの出力とか、タグの出力ないけど)です。 微妙に違うのは、-f, --fileでファイルを指定したり、-s, -…

LTSVにStreamを付けたよ

ltsv-streamから遅れること約2週間、やっとltsvにcreateLtsvToJsonStream関数を追加しました。 Stream手強かったです。まる。 index.js var ltsv = require('ltsv'), ltjs = ltsv.createLtsvToJsonStream(); process.stdin.pipe(ltjs).pipe(process.stdout);…

Streamは手強い

split-stream - npmがやっとできた…… ltsv - npmが出来てから2週間…… もっと精進せねば。ぐぬぬ。

続・CountStream

以前作成したCountStreamを再度書き直してみた。 今度のやつはprocess.nextTickで一行ずつdataを発行するようになってます。 counter_stream.js var stream = require('stream'), util = require('util'); function CounterStream() { stream.Stream.call(th…

続・WritableStream

pipeしたときのpipeイベントをごにょごにょしなくても、いい感じにやってくれるみたい。 以下はソースコード。 wstream.js var stream = require('stream'), util = require('util'); function WStream() { var that = this; stream.Stream.call(this); this…

はじめてのWritableStream

引き続きStreamのお勉強をしております。今日はWritableStreamを。 wstream.js var stream = require('stream'), util = require('util'); function WStream() { var that = this; stream.Stream.call(this); this.writable = true; this.buffer = ''; proce…

peerDependenciesって?

とりあえず { "name": "name", "version": "0.0.0", "dependencies": { "chai": "~1.5" }, "peerDependencies": { "chai": "~1.4" } } って書いて $ npm install ってやると怒られるっていうのはわかった。

起動中のプロセスのデバッガを有効にしてデバッグする

node.jsで普通に起動したプロセスを後からデバッガを有効にしてデバッグする方法があるのは知ってたのですが、実際にやったことが無かったので試してみました。 普通に起動させる とりあえずHTTPサーバを書きます。 index.js require('http').createServer(f…

CountStream

読み込んだStreamを行ごとに分けて、先頭に行番号を出力するStreamを書いてみた。 count_stream.js var stream = require('stream'), util = require('util'); function CountStream() { stream.Stream.call(this); this.readable = true; this.writable = t…

はじめてのWritable Stream + Readable/Writable(Both?) Stream

昨日に引き続き、Streamを書いてました。ReadableもしくはWritable単体だと理解してるつもりなんだけど、両方を扱うStreamを書いてると、途端に???って感じになる…… そしてWritable Streamのソースコードをなくしたw Readable/Writable Stream line_stre…

はじめてのReadable Stream

そろそろstream2が出る(というか開発版はもうstream2使えるけど)のにstream1すら全然理解してないので、いろいろ調べつつ書いてみたのです。 いろんなものを読んでも読んでもさっぱりわからない……状態だったのですが、とりあえず実装してみて若干わかった…

LTSVを処理するモジュールを書いたよ

02/08にLTSVについてのことを知って、http://ltsv.org/を見てみたらPerlとRubyの実装しかなかったのでnode.jsでの実装を書いてみました。 コードを書きつつ、他のPerlとかRubyの実装どうなってるんだろーと思ってページをリロードしたら、なんか別言語での実…

httpsのアクセスをnginxでプロキシしてnode.jsに渡す

httpsアクセスを前面に立てたnginxで受け取って、node.jsに渡すというのをやってみました。 かなり面倒そうだなーと思っていたのですが、それほどでもなかったです。 環境:OS X 10.8.2 / node.js 0.8.17 / nginx 1.3.12 証明書の作成 httpsサーバを実行して…

node-postgresのタイムアウト的な

node-postgresでPostgreSQLにアクセスしてレコードを出力するコードを書いたのだけど。 var pg = require('pg'); pg.connect('', function(err, client) { if (err) throw err; client.query('SELECT * FROM temp LIMIT 1', function(err, result) { if (err…

hot reload的なもの

疑似hot reloadなのだろうけど。 cluster-master.js var cluster = require('cluster'), fs = require('fs'), path = require('path'); cluster.setupMaster({ exec: path.join(__dirname, 'cluster-worker.js') }); cluster.on('exit', function(worker, co…

npmモジュールのメンテ

npmモジュール4つ目作ったけどメンテ面倒だなと思うようになってきた。 ちゃんとテストが書けてないとかっていう不安があるからなのかしらん。 というかもうほぼいじる必要ないから、特にいじらなくても良いのだけど。 メンテどうこうって言うよりも鬱的な精…

foreverを使ってみたよ

foreverをそろそろ使うことになるんじゃないかなーと思ったので使ってみました。ほんとにさわりだけだけど。 さすがはnodejitsuというか、使い勝手良い感じがします。 コマンドから使う グローバルインストールします。 $ npm install -g forever 使い方は至…

deepcopyを書いたよ

deep clone - 四角革命前夜を元にモジュールを書いてみた。 GitHub - sasaplus1/deepcopy.js: deep copy data ブラウザ向けにも動作するように書こうと思ったけど、多分労力に見合わないし使わないだろうからnpmモジュールだけにした。 テスト足りてるのかな…

node-http-proxyとnode-configでハマったお話

node-http-proxyとnode-configを使っていたらおかしなことに…… $ npm install http-proxy config index.js var config = require('config'), httpProxy = require('http-proxy'), proxyServer; proxyServer = httpProxy.createServer(config); proxyServer.l…

色つき環境変数

node.jsでプログラムを起動するとき、NODE_ENVの値が重要だと思うので色を付けて出力してあげたら強調されてよいのかなーと思ってcolorsを使ってみたのですよ。 index.js var colors = require('colors'), env = process.env.NODE_ENV; switch (env) { case …

http-proxyでプロキシ

以前、connectとhttp-proxyでバーチャルホスト - 四角革命前夜でhttp-proxyは試したのだけど、サブドメインで試しただけでディレクトリでは試してなかったのでやってみた。 #!/usr/bin/env node var http = require('http'), httpProxy = require('http-prox…

ドキュメントジェネレータ再訪

以前、JavaScriptのドキュメントジェネレータをいろいろ触ってみたりしたのですが、また必要になりそうなので3つほど触ってみたのでした。 JavaDoc系のコメントをばっちり書かないと駄目なやつは面倒なので避けたいなあと思いつつも(自分は別に良いのだけど…

テストの時だけ公開したい関数

モジュールを書いていて、ユニットテストの時はテストしたいので公開して、それ以外の普通の時は公開しない関数を書きたいと思った。 C++あまりよく知らないのだけど、テストの時だけfriendなprivate関数というか。 で、以下のような感じのコードを思いつい…