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

Varnish の設定ファイルを使って Basic 認証を実装する。

Varnish 本体に Basic 認証の機能はない。VCL を使って、Basic 認証を実装することならできる。 原始的な実装。 Authorizationヘッダが一致しなかったら401エラーを出す。 backend apache { .host = "127.0.0.1"; .port = "80"; } # vcl_recv は、クライアン…

Varnish の hit_for_pass ってなに?

結論 「キャッシュしない」ことをキャッシュするのが hit for pass キャッシュオブジェクト。同じ URL に、同時にアクセスされたとき、 キャッシュが見つからない場合 …… 先頭のリクエストだけをバックエンドに送り、残りはそのレスポンスを待つ。 hit for p…

右寄りのプログラマを粛正する。

まずこれを10回読もう。 うねりコード - 【アンチパターン】遠くから見ると、画面上でコードがうねっている。 コードが2段階以上右に寄ったら、右足はウンコ踏んでると思いましょう。無闇とエディタの横幅を広げるのも良くない。広いディスプレイは甘え。つ…

nohupコマンドの実行パターン。

実行に時間がかかるコマンドはnohupで実行する。 nohup ${時間がかかるコマンド} > /tmp/nohup-$(date +"%Y%m%d%H%M%S").out 2>&1 < /dev/null &標準出力がリダイレクトされていない場合は、./nohup.out か $HOME/nohup.out に出力される。 SSH接続時は標準…

最近変更されたファイルをtailで表示する。

ファイル名をワイルドカードで指定して、一番最近変更されたファイルをtailで表示する。 ls -t /path/to/prefix-*.log | head -1 | xargs tail -f ls -t /path/to/prefix-*.log | head -1 | xargs lessお好みで tail -f $(ls -t /path/to/prefix-*.log | hea…

2つの期間が重なり合うかどうかを判定する。

2つの期間 A〜B と X〜Y が重なっているかどうかを判定したい場合。のように4つのパターンがある。これを単純に、 A <= X && Y <= B || X <= A && Y <= B || A <= X && B <= Y || X <= A && B <= Yのように判定してはいけない。Xは青い線の上を、Yは赤い線の…

Mac の tmux でクリップボードを使う。

(2015-09-05 追記) この記事は古くなっています。他の記事を参照してください。reattach-to-user-namespace は Homebrew でインストールできます。 ChrisJohnsen/tmux-MacOSX-pasteboard · GitHub tmuxとMacのクリップボードを共有する(copy-mode, vim) - …

EBSのスナップショットを定期的に作成するスクリプト

参考にしたもの code.rock: Amazon EBSとRightAwsを使って自動バックアップ環境を構築する こちらのスクリプトに @gommmmmm さんが手を加えたのが元になっています。ありがとうございます。 失敗時にcronからメールを出すために、正常時に標準出力に何も出力…

Emacsの正規表現編集モード re-builder とややこしいバックスラッシュ問題について。

Emacsの re-builder を使うと、正規表現にマッチする部分をリアルタイムにカラー表示してくれる。 Emacs で正規表現を使うなら re-builder を使おう - Higepon’s blog - Mona OS and Mosh re-builder: the Interactive regexp builder | Mastering Emacs M-x…

Macのドックに時計を表示するDockClock3がいい感じ。

AppStoreで115円です。 http://itunes.apple.com/jp/app/dock-clock-3/id424227129 無理なくアナログ時計を表示しっぱなしにできます。 コマンド+タブにも表示される。230円でカレンダー付きのもあります。別に要らないので買ってないけど。 Dockに時計や日…

Capistrano で名前空間内に変数を設定する。

Capistrano の名前空間を使うと、同じ名前のタスクを複数定義できる。だが、setメソッドで設定する変数は、名前空間で装飾されない。setで設定された変数はCapfile内でグローバルになる。 namespace :aaa do set :path, "A" # 名前空間 aaa に入っている pat…