2012-01-01から1年間の記事一覧

http.ServerResponse のフックでログを吐かせる

res.end(...) 書く度に log.write(...) したくない。 というか、自動的にやってほしい。 var path = require('path') , fs = require('fs') , http = require('http') , moment = require('moment') ; function createSimpleLog (ws, display) { ws = ((ws |…

Node.jsで複数の 'Set-Cookie' を設定する

メモ。 httpServerResponse.setHeader('Set-Cookie', [ "KEY1=VAL1; path=/; expires=Sat, 24 Nov 2012 08:34:29 GMT" , "KEY2=VAL2; path=/; expires=Sat, 24 Nov 2012 08:34:29 GMT" , "KEY3=VAL3; path=/; expires=Sat, 34 Nov 3013 08:34:39 GMT" ]); ht…

readStream.pipe( duplexStream ).pipe(writableStream) してみた

Re:node.jsでストリーミング的な - .blog これ書いた後に HTTP_Request.pipe(MyDuplexStream).pipe(HTTP_Response); させたくなった。 実際には、HTTP_Request.on('data')時のデータをそのまま HTTP_Responseに流すわけじゃないのでデータを変換するストリー…

Re:node.jsでストリーミング的な

node.jsでストリーミング的な - 四角革命前夜インプット(fs.ReadStream)もアウトプット(http.ServerResponse)もStream実装だし、pipe使うのが楽じゃないかと思った。 こんなかんじでどうですかね? var http = require('http') , url = require('url') , pat…

関数の書き換え

知らんかったのでメモ use strict; use warnings; sub puts { print "@_\n" } my @args = qw/Panty and Stocking with Garterbelt/; puts(@args); { no strict 'refs'; no warnings 'redefine'; my $orgin_puts = *{'main::puts'}{CODE}; # local *main::put…

Niigata.pm 居酒屋LT 2012 秋の陣でのんできました #niigatapm

お酒以外ですけど。 Niigata.pm 居酒屋LT 2012 秋の陣 : ATND Niigata.pm 居酒屋LT 2012 秋の陣 に参加しました #niigatapm - hayajoのはてなブログ Niigata.pm 居酒屋LT 2012 秋の陣に参加したです - ミントフレーバー緑茶 use parent qw{ Hachioji.pm } な…

Re: node.jsで行処理

これ。node.jsで行処理 - NullPointer's Blog リンク先の実装は fs.createReadStream のインスタンスのラッパー。 これって fs.createReadStream を拡張した形で実装できないかなと思って実装試しました。結果、**イケてません**。each-line.js 'use strict'…

MongoDBドキュメントのキー名に "." が入ってると怒られます。

JSONのつもりでいたけどそうじゃなかった "use strict"; function Tags () { this.tags = {}; return this; } (function (tp) { tp.reg = /#([^#\s\(\)\[\]]+)/g; tp.index = function () { return Object.keys(this.tags); }; tp.map = function () { for (…

Niigata.pm tech talk #2 がありました

teck talk #2 が開催されてから一週間が経ちました。 タイミング外してるとは言え、(発表しなかったとは言え&懇親会見送りとは言え)そのレポートです。 (内容に誤解があることがありますので、ツッコミよろしくお願いします)概要はこちらから Niigata.p…

Niigata.pm 決起集会がありました

Niigata.pm 決起集会Niigata.pm が正式にpm.orgに登録されたので、何かやろうということでLT大会と飲み会です。(また写真撮ってない...) LTのメモ (初参加ではない方の自己紹介は割愛) mazhulin さん 質問たくさんしてくれました 僕的に丁寧な回答出来な…

横断検索アプリのあーきてくちゃっぽいもの

横断検索(メタ検索)な psgiアプリを再制作していて、大分構成が変わったので比較のメモ現物のコードは https://gist.github.com/2698475 Meta::Doujin::Search - WebSocket(Web::Hippie) + Dancer + Twiggy — Gist にある。まだα版もいいところだけど。 XM…

node-ws-multi-proxy 触った

ので、メモ。 subtleGradient/node-ws-multi-proxy · GitHub There are some WebSocket servers that only support a single connected client at a time. You may want to connect multiple clients to that same server. This lets you do that. まだモジ…

FileAPI とか WebSocket とか触りだしている

先週くらいからだけど、それらをゴニョゴニョするのに静的な HTML とか JS のファイルにコードを書いてる。 そういう時に静的なファイルを送るサーバーと、WebSocket通信できるサーバーが最低限必要になるし、その最低限をやるのに簡単なテンプレートなサー…

AnyEvent::HTTP::CookiesではなくAnyEvent::HTTP::Cookies::Unit の話をしてきました #niigatapm

Niigata.pm tech talk #1では AnyEvent::HTTPで使ったCookie情報 あるいは他のクライントで使ったCookie情報を相互に再利用できたらいいよね っていう話をしてきました。 - 外部WebAPIを利用してゴニョゴニョというのは、よくある(?)ケースだと思うけど、…

Niigata.pm 始まりました

Niigata.pm tech talk #1 : ATND http://atnd.org/events/27359これまでの MeetUp(という飲み会)や居酒屋LTや、NDSでの発表を通じた地道な活動を経て(主に @neko_gata_s さん)正式に Niigata.pm が発足しました。 発足したのは本当に嬉しいことですし、…

WebSokectライブラリの「ws」を使ってみた

node.jsのライブラリでWebSocketを実装しているwsを実際に使ってみた時のメモ。 実際には WebSocket チャットなサービス。 Google Chromeでしか試してない 構成 app.js : チャットアプリ client.js : ターミナルからチャットするためのクライアント。ブラウ…

Node.js でパラレルダウンロードする時

Node.jsならパラレルダウンロードですよね!※ 先日の NDS25 で LT用に何かと思ったんですけど、何も思いつかなかったんで、今頃ネタ出し。 ※ 今回の NDS25 では初見の方も多かったので、その方たち向けの自己紹介エントリーを兼用してます。 さて、 http.req…

直列setInterval 直列setTimeout の試み

実際には、関数の呼び出しが多すぎるので、精度悪い。使えないという前提で。 タイマー(setInterval か setTimeout)に仕込んだコールバック関数がクリアされた時点で、次のコールバック関数を開始する。 とかそういうの。無理やり関数っぽくしてみた。time…

引数(Arguments)を内部で使われている関数に引き継ぐ、ようなことを考えてる

関数Aの内部で 関数Bを使うようなときに、関数Aの引数をまるごと関数Bの引数に使いたい場合 function funcA () { var res = funcB(arguments); // some codes ... } はできないので function funcA () { var res = sendArgs(funcB, arguments)(); // some co…

num = num + 1 の代わりに

1月2月は除雪でおわりました。(生存報告) - こういうのなんて呼ぶんだろう function myNumber (num) { return function (accessToNum) { if (accessToNum) num = accessToNum(num); return num; }; } 型判断とか端折っちゃったけど、はじめに設定した数…

失敗話

デバッグに window.alert(breakpoint) な手段を使いますが、都度都度アラートが出るのがうざいので、console.log が使える環境では console.log を使いたい。なので function log (str) { if (window.console && console.log) { console.log(str); } else { …