2011年8月10日水曜日

node-dev

最近 Node に手を出し始めた。
スクリプトなんだけど、deployはnodeの再起動が必要で面倒だなーと思っていたら便利なもの発見。
インストールはnpmを使って、
$ sudo sh -c 'http_proxy=http://tproxy:port/ npm install node-dev -g'
/usr/local/bin/node-dev -> /usr/local/lib/node_modules/node-dev/node-dev
node-dev@0.1.8 /usr/local/lib/node_modules/node-dev

nodeの変わりにnode-devから起動

$ node-dev app.js

試しにapp.jsを編集してみると、コンソールログにメッセージが出て再起動した模様。
[INFO] Restarting
便利便利3便利。

2011年8月1日月曜日

gpgでシグネチャ検証

良くダウンロードサイトなどに、本体と共にGPG Sigの様なファイルが置いてあるが、そのファイルの使い方
このファイルは、本体が改竄されたもので無いと証明してくれるファイルで、インターネット越しにファイルをダウンロードする場合は、極力改竄チェックをするべきである。
今日は libevent をダウンロードしようと思ったのでそれを例に以下を実行、確認。

$ curl http://monkey.org/~provos/libevent-2.0.12-stable.tar.gz -o libevent-2.0.12-stable.tar.gz
$ curl http://monkey.org/~provos/libevent-2.0.12-stable.tar.gz.asc -o libevent-2.0.12-stable.tar.gz.asc
$ gpg --verify libevent-2.0.12-stable.tar.gz.asc
gpg: Signature made Sun Jun 5 10:11:33 2011 JST using RSA key ID 8D29319A
gpg: Can't check signature: public key not found
# 公開鍵が無いので探す
$ gpg --recv-key 8D29319A
gpg: requesting key 8D29319A from hkp server subkeys.pgp.net
gpg: key 165733EA: public key "Nick Mathewson " imported
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0 valid: 3 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 3u
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
# 公開鍵の確認
$ gpg --list-keys 8D29319A
pub 3072R/165733EA 2004-07-03
uid Nick Mathewson
uid Nick Mathewson
uid Nick Mathewson
uid [jpeg image of size 3369]
sub 3072R/8D29319A 2004-07-03
sub 3072R/F25B8E5E 2004-07-03
# ダウンロードしたファイルの検証
$ gpg --verify libevent-2.0.12-stable.tar.gz.asc libevent-2.0.12-stable.tar.gz
gpg: Signature made Sun Jun 5 10:11:33 2011 JST using RSA key ID 8D29319A
gpg: Good signature from "Nick Mathewson "
gpg: aka "Nick Mathewson "
gpg: aka "Nick Mathewson "
gpg: aka "[jpeg image of size 3369]"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: B35B F85B F194 89D0 4E28 C33C 2119 4EBB 1657 33EA
Subkey fingerprint: EF00 F369 1387 FCC5 8CD6 8E13 9103 97D8 8D29 319A

2011年7月20日水曜日

認証付きproxy越にgit cloneをする

社内からgit cloneをするとき、認証付きのproxyが邪魔をして繋げない。
素でやると、
$ git clone https://github.com/xxx/yyy.git zzz
Cloning into zzz...
error: The requested URL returned error: 403 while accessing https://github.com/xxx/yyy.git/info/refs

fatal: HTTP request failed
エラー。
環境変数 http_proxy を設定してみると、
$ export http_proxy=http://proxy:port
$ git clone https://github.com/xxx/yyy.git zzz
Cloning into zzz...
error: The requested URL returned error: 403 while accessing https://github.com/xxx/yyy.git/info/refs

fatal: HTTP request failed
変化無し。
検索すると、トンネリングツールのCorkscrewを使って対応している記事が多数見つかる。
見様見真似で試してみる。
$ sudo apt-get install corkscrew
# ラッパースクリプト作成

$ cat << EOF > /path/to/bin/git-proxy
#!/usr/bin/env bash
# -*- mode:sh; coding:utf-8 -*-

PROXY_HOST=http://server
PROXY_POST=8080
CORKSCREW=/usr/bin/corkscrew

$CORKSCREW $PROXY_HOST $PROXY_POST $1 $2

EOF
# .bashrcに環境変数追加
export GIT_PROXY_COMMAND=/path/to/bin/git-proxy

$ git clone https://github.com/xxx/yyy.git zzz

Cloning into zzz...
error: server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none while accessing https://github.com/xxx/yyy.git/info/refs

fatal: HTTP request failed
進展有り。
CA verificationを無効にすればOKらしい。> 参照
$ git config --global --add http.sslVerify false
$ git clone https://github.com/xxx/yyy.git zzz
Cloning into zzz...
remote: Counting objects: 197, done.
remote: Compressing objects: 100% (100/100), done.
remote: Total 197 (delta 104), reused 177 (delta 89)
Receiving objects: 100% (197/197), 26.51 KiB, done.
Resolving deltas: 100% (104/104), done.
成功!
上のコマンドで ~/.gitconfig に以下が追加された。
[http]
sslVerify = false

2011年7月14日木曜日

キューが溜まる

最近、GAEアプリケーションのcron実行がされないことが多く、コンソール確認をするとtaskqueueが溜まっている
一日一度手動でpurgeをするアナログ運用
何が引き金になっているのか特定できず当分アナログ運用を続ける必要あり

キューイングの処理をすこし見直して様子をみる
今現在は単純に

taskqueue.add(url='', method='GET')

をしているのみで、timeoutの様なものを実装するかしないと駄目なのか?

追記
queue.yamlの手引きを確認した

task_retry_limit: 1

なる設定があったので、これを仕込んで様子を見ることにする

2011年6月27日月曜日

要調査

google app engineからtwitterへの投稿(bot)がburstで行われている
一気に送られても困るんだよなー
ちょっと調査しないとspamにされそうだ

emacs evernote-mode

emacsにevernote-modeなるものがあることを知った

試してみることに。

インストールは、doc/readme_ja.txt を参照。

~/.evernote.el を作り ~/.emacs から読み込ませる様にした。

早速、emacs を起動し M-x evernote-browser を実行すると パスワードを求められるので入力。
すると、自分のnoteの階層が取得される。

これは、結構便利かもしれない

2011年6月23日木曜日

javascript memo#1

○秒後に処理を実行する

2秒後にid=messageの下のh3タグを隠す場合

setTimeout(function(){ $('#message h3').hide("slow") }, 2000);