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

foreverでnode.jsの死活監視

daemontools使えばいいという話しなんだけど、node.jsの死活監視だけならforeverというのでモジュールでできるみたいなのでやってみた。 GitHub - indexzero/forever: A simple CLI tool for ensuring that a given script runs continuously (i.e. forever)…

mongodbで認証とかIP制限とか

設定ファイルに auth = true書いとくか、起動オプションで --auth つける。管理ユーザーの追加は、ユーザーはmongoシェルで use admin db.addUser('user', 'passwd')ってする。これだけだと管理者のユーザー登録だけでDBのユーザーは別途設定が必要。 use my…

Ubuntuでscreenが原因で文字化け

なんかUbuntuで日本語が化けるなーと思ってて放置してたけど、直さないと困るようになったので調べた。zshが原因かと思ったけど犯人はscrennだった。起動時に-Uオプションつければいいらしい。 screenの起動オプションに-Uついか · hokaccha/dotfiles@1a96db…

mongooseのmodelつくるところではまった

このコードはエラる。mongooseのバージョンは1.6.0。 var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/mydb', function() { var UserSchema = new mongoose.Schema({ name: { type: String, unique: true } }); mongoose.model(…

mongooseでuniqueにしたフィールドを変更するときに注意すること

uniqueなフィールドの名前変更したり、そのフィールド削除したりすると、Mongo側にuniqueなindexが張られてたのは残るので、saveしようとすると、 E11000 duplicate key error index: mydb.myCollection.$field_1 dup key: { : null }みたいな感じでエラる。…

Ubuntuにnode.jsをインストール

必要なパッケージをインストール $ sudo apt-get install g++ curl libssl-dev apache2-utils pkg-configあとは普通にインストール $ cd /usr/local/src $ sudo wget http://nodejs.org/dist/node-v0.4.9.tar.gz $ sudo tar vzfx node-v0.4.9.tar.gz $ cd no…

Ubuntuに最新版のnginxをインストールする

Install | NGINX ここにのってる。/etc/apt/sources.listに以下を追記 deb http://ppa.launchpad.net/nginx/stable/ubuntu lucid mainんで $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C $ sudo apt-get update $ sudo apt-get…

サーバーの初期設定メモ

鍵認証設定 鍵認証できるようにする rootのパスワード無効化 $ sudo passwd -l root 色々インストール $ sudo apt-get update $ sudo apt-get install zsh screen git-core vim curl シェルの変更 zshにする。 $ chsh Login Shell [/bin/bash]: /usr/bin/zsh…

複数人で使うサーバーの設定メモ

グループの設定 $ sudo usermod -G admin hokamura ユーザーの追加設定 $ sudo useradd -D -s /bin/bash ユーザー追加時 $ sudo useradd -m hoge $ sudo usermod -G admin hoge $ sudo passwd hoge umaskの設定 /etc/profile の umask を002に変更 SFTPも変…

SFTPでumaskの設定

SFTPでアップするときのumaskを002にしたいんだけど、/etc/profileとかに書いてもだめだった。sftp-serverの起動のところを変更するればいけるみたい。まず/etc/ssh/sshd_configを以下の様に変更 # Subsystem sftp /usr/lib/openssh/sftp-server Subsystem s…

npm adduserでエラる

モジュール作ったので試しにnpmにアップしようと思ってやってみた。 $ npm adduserでユーザー登録するんだけど、まずusernameにスペースとかあるとエラる。npmのページ見るとユーザー名みたいなとこはスペース入りの名前がでてるから、そこにでるやつかと思…

sakura VPSでUbuntuのインストールメモ

64bitか32bitか迷ったけどとりあえず32bitにしとく。https://secure.sakura.ad.jp/vpscontrol/main/osinstall こっからUbuntu 10.04 i386を選んでインストールhttp://support.sakura.ad.jp/support/vps/menu_oscustom_ubuntu.shtml 大体ここ見ながらやればで…

gsutilの使い方

http://code.google.com/intl/ja/apis/storage/docs/gsutil_reference_guide.html ここに載ってるまず認証が必要 $ gsutil configで認証のURLが表示されるのでアクセスしてキー取得して入力。あとプロジェクトのIDも入力。簡単なコマンドはこんな感じ。 # ア…

GoogleStorageでBucketつくるときの注意点

GoogleStorageのBucketつくるときなんかよくわからんけどエラーがでてつくれなかった。ドキュメント探したらちゃんと書いてあった。 http://code.google.com/intl/ja/apis/storage/docs/bucketnaming.html僕は以下の点ではまった。 GoogleStorage全体でユニ…

Ubuntuに最新版のMongoDBをインストールする

MongoDBを普通にapt-getで入れると古いバージョンがインストールされる(現時点で最新が1.8.2に対して1.2.2がインストールされた)ので最新版をインストールするにはちょっと手間が必要。ここに載ってる。 Install MongoDB — MongoDB Manual 3.2手順は、まず…

proxy_cacheの使いどころ

WordPressを100倍速くする! MySQLの調整やnginx proxy cache | KRAY Inc これみての感想。nginxのproxy_cacheに限らずだけど、アプリケーションサーバーの結果を一定時間キャッシュする方法って実はけっこう使えるところが限られてると思う。例えばユーザー…

jQuery UIのDatetimeプラグイン

本家のDatepickerは日付だけで時間は設定できない。 http://jquery.developmental.co.za/ こういうのがあった。秒もオプションで設定できると尚よしだったが。

MongooseでEmbedded Documentsの削除

やり方わからんくてソースまで読んだけど結局公式のドキュメントに書いてあったというオチ。 http://mongoosejs.com/docs/embedded-documents.html

node.jsのgearmanモジュール

GitHub - gofullstack/gearman-node: Gearman libraries for Node.js GitHub - andris9/gearnode: Gearman worker and client for Node.jsってふたつ見つけて、gearman-nodeのほうがwatch多いからこっちのほうがいいかなーと思ったけど、gearman-nodeのほう…

OAuth1.0をクライアントサイドのJavaScriptだけでやってはいけない理由

OAuth1.0をJavaScriptだけでやろうとすると、consumer keyやconsumer secretが漏れちゃってよろしくない。それはすぐわかる。ではなんでこれらが漏れるとよくないのか。そしてなぜOAuth2.0ではJavaScriptのみでOAuthができるのか。OAuth1.0はcallback URLを…

twitterの画像投稿系サイトの画像を短縮URLから取得する

とりあえずここに一覧が書いてある。 Twitpic 等の画像投稿サービスのサムネイル画像の URL - もしかして: blog.iron's.jpでもtwitpicとかyFrogとか画像がちっちゃい。フルサイズの画像が取得したい。twitpicはフルサイズの画像を取得できるほうほうがあった…

node.jsの非同期API

nodejs_jpのMLで参考になるやりとりがあったのでメモ。Google グループ Node の世界では、非同期な API には次の約束に従うことになってます。 ・非同期 API は最後の引数でコールバック関数を受け取る。 ・コールバック関数の最初の引数でエラーを示す (エ…

jQuery UI 1.8.4以下のdisableSelectionがWebkitで効かない

どうも1.8.4以下は実装がこうなってるらしくてWebkitで効かない disableSelection: function() { return this .attr( "unselectable", "on" ) .css( "MozUserSelect", "none" ); } 1.8.5でこうなってる。 disableSelection: function() { return this.bind( …

TypeError: Converting circular structure to JSON

循環参照しているオブジェクトをJSONにしようとするとエラる。 var obj = {} obj.me = obj JSON.stringify(obj) // TypeError: Converting circular structure to JSON

PUT/DELETEメソッド

HTMLのformのmethod属性値にPUTとかDELETEはどのブラウザでもGETになっちゃうけどAjaxからのリクエストならどのブラウザでも大丈夫。IE6-9、Chrome12、Safari5、Firefox5、Opera11.50で確認。

mongodbの資料とか

かなりいい感じにまとまってるスライド。 MongoDB全機能解説1 MongoDB全機能解説2リレーションについて。 http://d.hatena.ne.jp/masa_w/20101130/1291084939追記していくかも。

vimでnode.jsのプロジェクトだけ2スペースタブにする

.vimrcに augroup vimrc-project autocmd! autocmd BufNewFile,BufReadPost * call s:vimrc_project(expand('<afile>:p:h')) augroup END function! s:vimrc_project(loc) let files = findfile('.vimrc.project', escape(a:loc, ' ') . ';', -1) for i in reverse(</afile>…

expressで複数send呼ぶとエラる

まあ当たり前だけど app.get('/hoge', function(req, res) { for (...) { ... res.send({...}); } }); とか間違えてやったら Error: Can't use mutable header APIs after sent.ってエラった。

localのSMTPからGMailにメールを送る

のはちょっとめんどいっぽい。MacのマシンからPostfixでGmailに送信できるようにする - F.Ko-Jiの「一秒後は未来」のでとりあえず諦め。

expressでbasic認証

app.use(express.basicAuth('username', 'password')); もしくは app.use(express.basicAuth(function(user, password) { return user === 'username' && password === 'password'; })); こうかな。上のほうが簡単だけど下の方が柔軟。パスで分けたいなら ap…