2009年 12月 01日

町屋スタジオの井戸は使えるらしい。井戸いいなー 井戸萌えるなー と思いました

2009年 12月 02日

2009年 12月 01日

gerry++

寝てたら腹痛で叩きおこされて、よれよれになるぐらいの下痢をした

2009年 12月 03日

2009年 12月 04日

2009年 12月 05日

fuzzyfinder.vim -> fuf.vim

http://www.vim.org/scripts/script.php?script_id=1984

早いとの話だったので乗り換えたらホントに爆速でした。開発効率が1.5倍ぐらいになりそうです!!1 fuzzyfinder 自体 life changing なのにさらに……

設定をメモ

let g:fuf_modesDisable = ['mrucmd']
let g:fuf_file_exclude = '\v\~$|\.(o|exe|bak|swp|gif|jpg|png)$|(^|[/\\])\.(hg|git|bzr)($|[/\\])'
let g:fuf_mrufile_exclude = '\v\~$|\.bak$|\.swp|\.howm$|\.(gif|jpg|png)$'
let g:fuf_mrufile_maxItem = 10000
let g:fuf_enumeratingLimit = 20
let g:fuf_keyPreview = '<C-]>'
let g:fuf_previewHeight = 0

nmap bg :FufBuffer<CR>
nmap bG :FufFile <C-r>=expand('%:~:.')[:-1-len(expand('%:~:.:t'))]<CR><CR>
nmap gb :FufFile **/<CR>
nmap br :FufMruFile<CR>
nmap bq :FufQuickfix<CR>
nmap bl :FufLine<CR>
nnoremap <silent> <C-]> :FufTag! <C-r>=expand('<cword>')<CR><CR> 

適当にセコンさんのをパクった。ちなみに僕は FufFile **/ を最もよく使う…… (MRU は候補に必要なファイルが確実にでてくるときしか安心できないのでなかなか使う機会がない)

FufLine が便利そうなので使ってみることに (覚えやすいように bl にマップ)

あと候補が下に出てほしいので preview をオフにして以下のパッチをあてた。

diff --git a/.vim/autoload/fuf.vim b/.vim/autoload/fuf.vim
index 0a91d3a..9d25e88 100644
--- a/.vim/autoload/fuf.vim
+++ b/.vim/autoload/fuf.vim
@@ -766,11 +766,11 @@ let s:bufNrFuf = -1
 "
 function s:openFufBuffer()
   if !bufexists(s:bufNrFuf)
-    topleft 1new
+    botright 1new
     silent file `='[fuf]'`
     let s:bufNrFuf = bufnr('%')
   elseif bufwinnr(s:bufNrFuf) == -1
-    topleft 1split
+    botright 1split
     execute 'silent ' . s:bufNrFuf . 'buffer'
     delete _
   elseif bufwinnr(s:bufNrFuf) != bufwinnr('%')
2009年 12月 06日

2009年 12月 07日

  • 松尾大社
  • 月読神社
  • 天龍寺・宝厳院

松尾大社には何度もいっているのに、月読神社には行ったことがなかった。行ってみたらとても趣きがあって良かった。境内にニワトリがいた。ぼーっとしてたら足をつっついてきた。

天龍寺宝厳院は、先週入ろうとして人が多すぎて断念したけど、今日は入ってみた。さすがによくできてるなぁと思った。入って良かったです。

月読神社にあった木、おみくじが巻き付けられていて、なんか怖かった。

写真とウェブサービスの似ているところを考えていた。どちらも器でしかない点で似ていた。逆に、完全な写真が好きではない理由がわかった。

2009年 12月 08日

任意のコマンドをワーカー (ジョブキューを処理するプロセス) みたいにする簡単なラッパ

を書いてみた

http://github.com/cho45/dotfiles/blob/master/bin/worker.rb

例えば、URL を引数にとってダウンロードするコマンド fetch-video.pl があるとして

worker.rb =fetch-video.pl /tmp/video

で /tmp/video をキューに fetch-video.pl を実行するワーカーをつくる (= がついてるのは zsh で補完するためなので別に必要ではない)

あとは

echo http://www.nicovideo.jp/watch/nm5253338 >> /tmp/video
echo http://www.nicovideo.jp/watch/sm8990785 >> /tmp/video
echo http://www.nicovideo.jp/watch/sm8722527 >> /tmp/video

みたいに適当に echo していけばジョブが順に走る。

zsh の機能であったりしそうだけど、わからなかった。なんかもっといい方法はあるかな。

2009年 12月 09日

2009年 12月 10日

キヤノン Canon 単焦点マクロレンズ キヤノン EFマウント EF100mm F2.8L マクロ IS USM フルサイズ対応 - キヤノン

キヤノン

5.0 / 5.0

EF100mm F2.8L MACRO IS USM を買った。35mm 買ってからたいして間があいてないのでどうかと思ったけど、ここ暫く望遠側のレンズのことも考えていて、どうせ買うな、という気がしたので、それなら早いほうがいいという感じに…… 前々から TAMRON 90mm MACRO を買おうと思っていたのだけど、IS 付きで、というのが (自分の中では) 意外にも、購入の決め手になって、こっちにした。

まだ試し録り程度しかしていないし、望遠側はズームレンズも持っていないので本当に初めての画角で、うまく使えるか不安になりつつドキドキ。

ちょっと触った感じでも、開放からかなりシャープで、暗いところでも IS のおかげでブレないのが実感できる。ピントリングも軽すぎず重すぎずで回しやすいし、AF も早い。いろいろと、ちゃんとしてんなぁと思った。

レンズ買うと結構テンションあがるなぁ。たいして撮ってないのにテンションが無闇にあがったのは 50mm F1.4 以来な気がする。

これでだいたい普通に使う分には十分な画角のレンズが揃ったかなぁという気がしてる。望遠側は 100mm で足りなかったら考えればいいし (殆ど手持ちでしか撮影しないのでいらないと思うけど……)、広角側も 17-35 のズームが一応ある

手元にきた順

  1. EF50mm F1.8 II
  2. EF50mm F1.4 USM (中古)
  3. TAMRON SP AF 17-35mm F/2.8-4 Di LD Aspherical
  4. EF35mm F2
  5. EF100mm F2.8L MACRO IS USM

17-35 は 50mm で足りないなぁというときにたまに使うぐらいで、しかもあまり解像しないので出番滅多になかった。

そういや、35mm F2 は、絞りの形が五角形で、なかなか可愛いと思った (普通は嫌われるもんなんだろうか?)

gerry++

2009年 12月 11日

最近外部からの何かしらで全く良いことがなくてイライラしっぱなしだ。何が悪いのかわからない。おれが、おれの見る情報の統制をできていないのが悪いのかもしれない。

かけてるフィルタが薄すぎるんだな、と思ったのでもっと積極的にフィルタする方針にした。やる気のコントロールがこちらの責任の範疇にある限り、目を閉じて行動する他ないだろう。

見えない化

はてなに入るとまじで太ります。60kg 前後が8ヶ月で66kg近くになった。そんなに食べてる気はしないんだけど、なんでだろうなぁ。

なんか体重計がおかしかったっぽくて、今日計りなおしたら60kg前後だった。良かった

2009年 12月 12日

やばいなー文乃さんと同い歳だ。というかさーもー、このこいい子すぎるなぁ。いってらっしゃいって言われたい

2009年 12月 13日

うちの5D先生が完全に後ピンなのが最近気になって仕方がない。AF が基本的に信用ならないので、どんぐらい後ピンか記憶して MF するしかない (ファインダー像ともピントがズレてるので素子の位置がおかしいっぽい?)。近接ならまだいいんだけど遠くのだとピントきてんのかよくわからないのでピント周辺を連射して確認してる (マクロだと)。

が、最近バッテリのへたり具合がひどくて、充電器側で満充電になってもカメラ側では常に減った状態になってしまうぐらい (なので手持ちバッテリで素子清掃 (ミラーアップ) ができない)。IS 付きはかなりバッテリ使うらしくだいぶしんどいなぁ

AF の仕組みがあんまよくわかってないなぁ。フォーカス関係で起こりえる現象のマトメとかないのかな。

  • AF,MF 絞ることでピント位置が後になっていく
    • 球面収差があり、開放側でピント調整されているおこる。 50mm F/1.4 USM とか?
    • (絞るほど口径が小さくなり、球面収差によるピントズレの範囲は狭くなるので、平均的なピントの中心位置が移動していく)
    • 絞った状態で MF すればいいはず
  • AF 被写体までの距離によってピント位置が変わる
    • 距離によって球面収差が変わることで起きる? (よくわかってない)
    • 近くなるほど球面収差が大きくなるので、近い位置でピントが調整されていると遠くを撮ったときに前ピンになる?
    • MF すればいいはず
  • AF,MF ファインダー中心でピントをあわせたあとに構図を変えたときの後ピン
    • カメラを平行に移動させているわけではないため (コサイン誤差)
    • 構図変えたあとに MF
  • AF 色によるピント誤差
    • ピントをあわせる光の周波数によって位相検知にズレが生じるらしい (気になる程度なのかは解らない)
    • MF
    • → 最近のカメラは光源によるAFズレを補正する機能がついてる

レンズ変えてもAFおかしいから、十中八九ボディ側だろうな、と思ってはいたけど、確信が持てなかったので、古い EOS D30 というのをひっぱりだしてきて AF させたら、ちゃんとジャスピンしてくれた。D30 先生には埃かぶせておいて申し分けない気分になった。

D30 は撮影画像にひどいノイズが入るようになってしまってから全く使ってなかったけど、今日撮影してみたら、ノイズは入るものの、Photoshop 先生が完全に補正してくれるので割とまだ使えそうな感じだった。RAW は生きているのかもしれない (JPEG の処理部分だけ壊れるとは思えないけど……)

とはいえ、ISO400 でも結構カラーノイズが多いし、液晶は小さいし、300万画素だし、これに比べるとデジカメって進化してんだなぁと心底思った…… それでも10年程度しか経ってない

そんなことはどうでもいいけど、AF でちゃんとピントが合うのってこんなに感動的なことだったんだ!!! 失なって気付くことばかりです……

しばらく D30 使ってもいいかもなぁと思った。ちなみに 5D とバッテリは共通。画素数は4分の1だけど、基本的に僕の用途 (ウェブにのっける程度) だと画素数多くてもHDDの肥やしになるだけだ。センサがAPS-Cなのと液晶小さいのだけが運用上の問題かな

2009年 12月 14日

そろそろ紅葉も飽きましたね。秋だけにね (ハハハ)

もっと品格や信頼を失くしていかないと!! そんなもんあっても無駄だ!

アナルファック!

2009年 12月 15日

テストで result と exptected が違うときに色つき diff

結構長い文字列を比較させるとどこが違っているのかよくわからん…… ということがあるので、クソコードを書いて結果を読みやすくしました。Test::Builder::_is_diag を書きかえています

use Test::More;
use Algorithm::Diff;
use Term::ANSIColor;

sub colordiff {
    my ($a, $b) = @_;
    my $ret = "";

    my $diff = Algorithm::Diff->new([ split /\n/, $a ], [ split /\n/, $b ]);
    $diff->Base(1);
    while ($diff->Next) {
        if ($diff->Same) {
            $ret .= "  " . $_ . "\n" for $diff->Items(1);
        }
        elsif (!$diff->Items(2)) {
            $ret .= colored("- " . $_, 'red').   "\n" for $diff->Items(1);
        }
        elsif (!$diff->Items(1)) {
            $ret .= colored("+ " . $_, 'green'). "\n" for $diff->Items(2);
        }
        else {
            my $lineDiff = Algorithm::Diff->new(
                [ split //, "* " . join("\n* ", $diff->Items(1)) . "\n" ],
                [ split //, "* " . join("\n* ", $diff->Items(2)) . "\n" ]
            );
            $lineDiff->Base(1);

            while ($lineDiff->Next) {
                if ($lineDiff->Same) {
                    $ret .= $_ for $lineDiff->Items(1);
                } elsif (!$lineDiff->Items(2)) {
                    $ret .= colored($_, 'red')   for $lineDiff->Items(1);
                } elsif (!$lineDiff->Items(1)) {
                    $ret .= colored($_, 'green') for $lineDiff->Items(2);
                } else {
                    $ret .= colored($_, 'red')   for $lineDiff->Items(1);
                    $ret .= colored($_, 'green') for $lineDiff->Items(2);
                }
            }
        }
    }
    $ret;
}

{
    *Test::Builder::_is_diag  = sub {
        my ($self, $got, $type, $expect) = @_;

        $self->_diag_fmt( $type, $_ ) for \$got, \$expect;
        my $diff = colordiff($got, $expect);

        no strict;
        local $Test::Builder::Level = $Test::Builder::Level + 1;
        return $self->diag(<<"DIAGNOSTIC");
         got: $got
    expected: $expect
$diff
DIAGNOSTIC
    };
}

あと、printable ではない文字を、そのままテスト結果に吐かれても困るので

{
    no warnings 'redefine';
    *Test::Builder::_diag_fmt = sub {
        my ($self, $type, $val) = @_;
        if ( defined $$val ) {
            if( $type eq 'eq' or $type eq 'ne' ) {
                $$val = dumper($$val);
                $$val = "'$$val'";
            }
            else {
                $self->_unoverload_num($val);
            }
        } else {
            $$val = 'undef';
        }
    };
}

sub dumper ($) {
    my ($str) = @_;
    $str =~ s{([^\x0a\x20-\x7e\x{3040}-\x{309F}\x{30A0}-\x{30FF}])}{
        sprintf('\\x%02x', ord $1);
    }eg;
    $str;
}

とかやっています。見えない文字があるとかは切実に困るので割と便利です

Data::Dumper は null 文字を Dump しない

全く知らなくて少しまえに大変にハマったのですが、Data::Dumper は普通に使うと \0 を Dump しないようです。(してるけど見えない?)

my $str = "\0";
Dumper $str; #=> ''

[ unpack("C*", $str) ]; #=> [ 0 ];

普段 p を Data::Dumper に展開するようにしてデバッグしているので本当にハマります。

個人的にはデバッグ用に

  • utf8 flagged 文字列かどうかが見た目でわかる
  • \0 がちゃんと出てくる
  • 表示できそうな文字 (英数字・ひらがなカタカナ程度) 以外は全部 \x{} に

みたいなのが簡単にできるモジュールが欲しいのですが既にあるのかな

2009年 12月 16日

2009年 12月 15日

gerry++

プロンプトをゆのっちから文乃さんに

2009年 12月 17日

最近の tig.rb (twitter irc gateway)

またいろいろいじくっていて、大きな変更をいくつか入れたりしています

  • lists に対応
    • @mzp さんがなんとなくやっていらっしゃったのを取り込みつつ
    • 今まで存在していた group 機能は廃止され、lists になりました
  • 発言者が follower かどうかがわかりやすく
    • 発言者が follower じゃない場合 (一方的に follow している場合)、その人に +o がつくので、だいたいのクライアントだと @ がつきます
  • 発言者が protected の場合わかりやすく
    • 発言者が protected の場合、+v がつきます。irssi だと % がつきます
  • /me reload を追加
    • 大抵の変更は tig.rb の再起動なしで反映できるようになりました
  • ratio を自動計算に
    • あまり賢くないのでまだどうにかしたいですが、ratelimit が緩和されてやる気がなくなったので放置気味
    • 更新頻度に応じてクロール頻度が変わります。
    • /me ratio で確認できます
    • (例: Intervals: #)
$ git clone git://github.com/cho45/net-irc.git
$ cd net-irc
$ ruby examples/tig.rb --debug
2009年 12月 18日

京都は、人と遠い、寂しいところが良いのだそうだ。緩やかに寂しい。

一方東京は賑やかだけれども、メインストリームにいないと強い孤独があると思った。コントラストが強い。

差分取得して何かするスクリプト

というのが欲しい機会はなかなかに多くて、その度に「取得したデータはどこに保存しておこう?」と悩みます。MySQL にいれるほどでもない。/tmp においてしまうと消えてしまってこわい。

のでスクリプトファイル自体に書きこんでしまう、というのを考えてみました。ちょっとこわいですが簡単なスクリプトならこう書いて cron でぶんまわしてもいいかもしれないですね。

retrieve_updates には、文字列の配列リファレンスを返すルーチンを渡してやります。そうすると実行する度に前回との差分を返します。

2009年 12月 19日

おれ、生まれかわったら北海道増毛町に生まれたい

2009年 12月 20日

何度か Google Chrome を既定ブラウザにしようとしているけどいろいろおかしいので常用できない……

  • アドレスバー補完で C-n すると、候補が変わったように見えるのに、RET すると常に最初の候補が選択される
    • これはバグだよね……
  • アドレスバー補完で TAB が使えない
  • 縦置きタブができない (実装されないらしいので我慢するしかない……)
  • アイコンが PIcasa に似ている (間違える)
2009年 12月 21日

D30 で撮ってきたけど、そんなに気になりませんね。パっと見の雰囲気と、よく見たときの感じが、やっぱりちょっと、よくないけど、普通は気付かない気がする。液晶が全く使えないような感じ (DP2 の液晶を小さくした感じ。すごく不安になる) だし、ファインダーで頑張る感じでもないので、AF に任せてたくさん撮った。

あと、オートホワイトバランスの傾向が、全然 5D と違うんだな、と思いました。5D のやつは、現場の雰囲気を残す感じのホワイトバランスに設定してくれるけれど、D30 のは、白を白にしようと頑張ろうとするみたいだ。RAW だからあんまり関係ないけど、意外と、カメラのホワイトバランスの設定に影響をうけて現像してしまうなと気付けたのでよかった。

カメラ技術に関すること (写真技術ではなく) とか、意識的に勉強しないようにしてたけど、エンジニアのはしくれなのでやっぱ無理です

2009年 12月 22日

> id:motemen san

↓ これ一番最近でたやつ (17万)

Canon デジタル一眼レフカメラ EOS 7D ボディ EOS7D - キヤノン

キヤノン

3.0 / 5.0

↓ コストパフォーマンスよさそう (8万ぐらい、一年ぐらいまえ発売)

Canon デジタル一眼レフカメラ EOS 50D ボディ EOS50D - キヤノン

キヤノン

3.0 / 5.0

レンズキットだと面白くないので

↓ これ安いし性能がいい

Canon 単焦点レンズ EF50mm F1.8 II フルサイズ対応 - キヤノン

キヤノン

3.0 / 5.0

↓ 写る範囲的にはこれが丁度いいかも

Canon 単焦点レンズ EF35mm F2 フルサイズ対応 - キヤノン

キヤノン

3.0 / 5.0

2009年 12月 23日

2009年 12月 24日

Opera が唯一 javascript:for(;;)alert(''); に対抗できるブラウザ

Opera 10.50 から遂にダイアログ系が全てページごとに別々になった。ページ内ではちゃんとブロックするけど、ブラウザ全体はブロックしない。最も正しい挙動だと思う。

Opera は前々から、alert に script 実行を止めるチェックボックスがついていたり、Basic 認証のダイアログが大量に開いたとしても、同じ認証は1度入力すれば全て消える仕様になっていて、それなりにまともだったけれど、10.50 からは、もう煩わしい大量のダイアログに悩む必要がなくなった。素晴しい!

懸念されるようなこともないことはない。ページ内に Basic 認証のダイアログが表示される形になるので、フィッシィングサイトがでてくる可能性があるかもしれない。一応、Server という部分をクリックすると、ちゃんとダイアログがでて検証可能 (https の場合は証明書の確認・http の場合はフィッシングサイトではないか、という確認) になってる。まぁ知らないサイトの Basic 認証を入力することなんてないと思うけど……

現状の各ブラウザの挙動

javascript:for(;;)alert(''); したときの挙動 (Mac 版のみ)

Google Chrome (4.0.249.43)
OK のみのダイアログ、止める方法がない。該当タブを閉じることもできない。通常の方法で終了することもできない。
Safari (4.0.4)
OK のみのダイアログ、止める方法がない。該当タブを閉じることもできない。通常の方法で終了することはできる。
Firefox (3.5.6)
OK のみのダイアログ、止める方法がない。かなり頑張れば該当タブを閉じることができる。通常の方法で終了することはできる。
Opera (10.50)
OK + Stop executing scripts on this page のダイアログ。ページごとに独立。タブは普通に閉じられる。他のタブを見ているときには表示されない
2009年 12月 25日

2009年 12月 26日

2009年 12月 27日


やっぱ背景が汚ない……

2009年 12月 28日

神社はだいたいどこも、新年の準備をしていた。年の初めは実家に帰っているので京都の神社は巡れないが、境内に人がいっぱいになるのを想像して帰ってきた。

昨日

  • 平野神社
  • 北野天満宮
  • 今宮大社
  • 建勲神社 (新年の準備っぽいことはしてなかった)

今日

  • 下鴨神社 (火をたくんだろうなぁというところがデカくてこわかった)

最近 Lightroom 3 Beta を使ってみてる。正直 Photoshop のほうが軽くていいんだけど、Photoshop をアップグレードするのは大変なので、Lightroom 3 がでたら買おうかと思ってる…… 製品版では軽くなるといいなぁ。

それはともかく、Lightroom を入れて適当に今までの写真を全部カタログにつっこんでみたら、思ったよりも全然撮ってないことが分ってびっくりした。今年は割と撮ったつもりだったけど、2007年よりも残っている枚数が少なかった。

撮った枚数はシーケンス番号でわかる

  • IMG_8378.CR2 - IMG_1219.CR2 (2840)
  • CRW_1106.CRW - CRW_1399.CRW (293)
  • SDIM0001.X3F - SDIM1014.X3F (1013)

4146ぐらいだった。やってることの量が少ないと、やっぱそれだけ、気付くことが少ないので、よくない。来年は普通に10kは超えるようにしていきたい (とはいえ、それを一番の目標とせず、まずはちゃんと風景を記憶してから)

2009年 12月 29日

2009年 12月 30日

2009年 12月 31日

登戸から多摩川河川敷を歩いた。なかなか面白かった。

別のカメラ (40D)、別のレンズ (EF28-135mm F3.5-5.6 IS) で特に何も考えずにパシャパシャ撮った。ひさしぶりにズーム使ったら、便利さがよくわかった。100mm単焦点を買っていくらか撮ったおかげで、多少望遠側の感覚が掴めてきていて、意識的に、どの焦点距離を使うかを考えられたのはよかった。すなわち、どんぐらい被写体に近づくか、とか

小さいときにいった神社、どこだかハッキリ覚えていなくて、歩きまわってしまった。最終的にいけたのはいいけど、想像していた位置になくて、もしかして記憶自体が捏造されているのだろうかとかと不安になった

約束の時間までに暇ができてしまって、適当に古本屋に入って「海辺のカフカ」を読みはじめたら、更めて発見することが多々あって、ついつい買ってしまった。前回読んだのは高校生のときだ。

上巻の中盤あたりの大島さんの話がおもしろかった。前読んだときはなにも思わなかった

でもひとつだけ言えることがある。それはある種の不完全さを持った作品は、不完全であるが故に人間の心を強く引きつける──少なくともある種の人間の心を強く引きつける、ということだ。

レンズによる写りの違いってほんと歴然としてあるんだなぁ……