2013-01-01から1ヶ月間の記事一覧

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モジュールだけにした。 テスト足りてるのかな…

deep clone

http://javascript.about.com/od/objectorientedjavascript/a/oop17.htmを参考にちょっと書いてみた。 function clone(obj) { var clonedObject = {}, keys = Object.keys(obj), i = keys.length, value; for (; i--;) { value = obj[keys[i]]; if (value !=…

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関数というか。 で、以下のような感じのコードを思いつい…

node.jsとredisでpub/subをやってみたよ

前からやってみたかったredisのpub/subをnode.jsから使ってみました。 環境:OS X 10.7.5 / node.js 0.8.16 / npm 1.1.69 / redis 2.6.9 モジュールのインストール $ npm install redis redisをnode.jsから操作するのに必要なモジュール、redisをインストー…

「はてなダイアリー10周年! ありがとう キャンペーン」

はてなダイアリー10周年おめでとう! 確かはてなダイアリーを使い始めたのは……いつだったかな。覚えてないや。 一番最初に使ったはてなのサービスはアンテナだったと思う。2004年ころだったかな? 2004年頃書いた記事とか、2009年頃書いた記事とか消しちゃっ…

node.js向けのmktempを書いたよ

必要になった気がしたのでmktempコマンドのnode.js向けモジュールを書いてみました。 GitHub - sasaplus1/mktemp: mktemp command for node.js 実装は大したことないし、テストも割といい加減だったりなのでこれから直していきたいかなーというところ。 そも…

tigをインストールしたよ

Git

MercurialよりGitを使うことが多くなってきたのでtigをインストールしてみました。 リポジトリのクローン・コンパイル・インストール $ git clone --branch=release git://github.com/jonas/tig.git $ cd ./tig $ make install install-release-doc prefix=$…

Server-Sent Eventsを試してみたよ

以前から気になっていたServer-Sent Eventsを試してみました。 index.js var http = require('http'), router = require('http-router'), routes = new router; routes .get('/', function(req, res, next) { res.writeHead(200, { 'Content-Type': 'text/ht…

白MacBookをSnow LeopardからMountain Lionにアップグレードしたよ

Mac

最近、MacBook Air/OS X Lionばかり使っていて白MacBookの出番がなかったのですが、OS X Mountain Lionをインストールしてみたくなったのでインストールしてみました。 タイトルにはアップグレード、と書いていますが実際には新規インストールです。 Mountai…

forked z

sh

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…

tmuxをインストールしたよ

tmux1.7をインストールしました。1.7では画面を分割した際に分割前のカレントディレクトリに移動してくれるようになってるのです。 libevent2.0.21-stableのインストール 最初にtmuxが依存しているlibeventをインストールします。 $ curl -O -L https://gith…

さくらのレンタルサーバにGitをインストールしたよ

さくらのレンタルサーバにGitをインストールしてみました。以前Mercurialを入れたのですけど、Gitも使いたくなったので。 配置場所など 極力カスタマイズせずに使っている(面倒なので)ので、csh(tcsh?)だったり、.cshrcも標準のままだったりします。 ディ…

zを使ってみたよ

sh

zというcdの履歴を管理してくれるコマンドがあるのを知りました。 合わせて、Tabでの補完等の時に先頭のパスが一致していなくても、後方のパスに一致していると補完してくれるものです。 普段cd -くらいしか使わないし、pushdやpopdも全然使ったことないので…

はじめてのSocket.IO

既に3回ほどは書いた覚えのあるSocket.IOを使ったコードを書いてみたりしてみました。 index.html <meta charset="utf-8"> <title>Socket.IO test</title> <script src="/socket.io/socket.io.js"></script> <script> document.addEventListener('DOMContentLoaded', function() { var socket = io.connect(); socket.on('connection', functio…</meta>

機能が強化されたhatena.vimのテスト

Vim

:wで保存しても投稿されないようにしたけど…… let g:hatena_upload_on_write = 0じゃあ投稿するにはどうするんだろう? :HatenaUpdateをすればいいのか。 :w!とかでアップデートとか出来ないのかな。 でもまあ、書きかけの記事を誤って投稿してしまわなくな…

明けましておめでとうございます

2013年明けましておめでとうございます。今年もよろしくお願いします。 2011年、2012年と良くも悪くも(どちらかというと良い事が多かったかな?)いろいろあったので、2013年もたくさんの出来事に恵まれたら良いなあと思います。 そのためには待つだけでな…