これより新しい分

■2011年6月24日(金)■

●本日のお届き物●

手嶌葵CD「さよならの夏〜コクリコ坂から〜」
CD「KEY THE METAL IDOL VOCAL DATA DISC」
CD「KEY THE METAL IDOL VOCAL DATA DISC U」

■2011年6月23日(木)■

●本日のお買い物・お届き物●

お買い物:アプライドにて。
「どっちもクリップ」880円

こういうやつ。これでカメラを固定しようと。
お届き物:
楽譜「やさしく弾けるピアノソロうたってひけるNHKみんなのうた」

■2011年6月22日(水)■

●本日のお届き物●

「山崎ハコ楽譜全集」

■2011年6月21日(火)■

●昨日のお届き物●

(届いていたのに今日になってから気づいた)
ロジクールC910というPCカメラ。
PCカメラは以前安いトイデジ2回ほど落札したが、両方ともすぐ壊れたので…こんどはまともなものを(ただし中古)。
……のつもりだったが、なんかおかしい。これホントに中古?
保証書に何も書いてないし、伝票に「お買い上げ日2010/12/16」と書いてあるが、伝票作成日が2011年6月17日?しかも個人からの落札のはずなのに店からの伝票に私の名前が書いてある???
しかも発送がやけに遅かった。(その旨連絡はあったが)
いわゆる自転車操業(入金後に商品手配に走る)じゃないかなと思うのでヤフーIDをさらしておく。「zero07zero7」
(まあこちらとしては新品?が手に入ったわけで結果オーライなわけだが、こういう手合いはある日破綻して商品を送らなくなる可能性が高い)
モノはさすが最高級品?高解像度でとてもGOOD。ただ、形状が、ディスプレイ等に「乗っける」ことを前提にした形状なのだが、それをやると画面の一部が隠されて邪魔だ。アームかなんかに固定するような方法はないものか。

■2011年6月18日(土)■

●本日のお届き物●

ビデオ「FILM of Nakajima Miyuki U」

■2011年6月14日(火)■

●本日のお買い物●

100円ショップにて、天津すだれ74×90cm

■2011年6月10日(金)■

●Windowsのファイル検索の謎挙動●

Windowsで、自作grepのようなコマンドラインツール(じゃなくてもいいけど)を使っていると、ずっと正常に使えていたのが、ある日変な挙動を示すようになる。ていうか、なった。
しばらく原因がわからなかったのが、こないだやっとわかった。
具体的には、チャットのログ置き場でgrepを使っていて、2010年までは正常に使えていたのが、2011年になって、ファイル名に「2011*.txt」を指定して検索すると、なぜか2009*.txtに該当するようなファイルまで結果に出てくる。
ファイル名を指定して検索する部分なんて、おおむねこんな処理だ。単純すぎて間違いようがないような気がする。
     handle=FindFirstFile(argv[2], &ffd);
     if (handle!=INVALID_HANDLE_VALUE){
         do{
             grep(argv[1], ffd.cFileName);
         }while(FindNextFile(handle, &ffd));
         FindClose(handle);
     }
最初、Vistaのバグ?と思ったが、XPマシンにログを全コピーして実験したら同じ結果になってしまった。(しかもチャットで他の人にプログラムソースを渡してテストしてもらったら再現しない?)
ここでふと思い当たって。dirコマンドに/Xオプションつけてショートファイル名を確認。そしたら案の定、たとえば 20090810-IRCnet.txt に対するショートファイル名が 2011AE~3.TXT のようになってた。
(チルダの前を勝手に変えるなよ、まったく…。Windows 95とかの頃はこんな命名規則じゃなかったと思ったのだが…。思うに、95の頃ってコマンドラインがもろ16ビットだったから常にショートファイル名を意識してたが、XP以降は全く意識してなかったからなあ)
で、これを修正してロングファイル名だけにマッチさせるようにするにはどうしたらいいのか?FindFirsrFile()とかのAPIの挙動を変更するスイッチのようなものは用意されていないっぽいので、検索後に自分で再度ワイルドカードとのパターンマッチをやって確認せんといかんのか?そんなコードは書きたくないのだが…とチャットでグチったら、PathMatchSpec()というAPIを使えばいいと教えてもらった。
     handle=FindFirstFile(argv[2], &ffd);
    if (handle!=INVALID_HANDLE_VALUE){
        do{
            if (PathMatchSpec(ffd.cFileName, argv[2]))
                grep(argv[1], ffd.cFileName);
        }while(FindNextFile(handle, &ffd));
        FindClose(handle);
    }
要はこんな感じ。これでショートファイル名を無視できる。
(余談。XPで動作確認しようと、古いマシンを立ち上げたら、ハードディスクが一台死んでた。ついこないだアナログキャプチャした時は正常だったのに……)
これより古い分

コメント,トラックバックはココログ