2003-11-23

中村友次郎氏のお父様は小説を書かれていらしたのですね。

更新情報

コマンドラインの実行(cmdlinex)」2.16と、「[最近使った文字列拡張]拡張(strhist)」の後継、「[最近使った文字列拡張]拡張 2(strhist2)」1.00を公開しました。

cmdlinex 2.16は外観を大幅に変えてみました。次で内部的なところ(コマンドの実行部分)をごそっといじろうと思っているので、その前に変えられるところは変えておこうということで。

strhist2は旧作のソースのスパゲッティぶりに嫌気がさして書き直したものです。まあ、やってることが同じな以上、結果的には似たようなコードになってしまいましたが。

Microsoft Encarta 総合大百科 2004

お買い物日記 – 更新履歴(2003年11月) – Final β Laboratory
http://www.finalbeta.jp/update_log/2003_11.html#log20031121_1

びんごっ! 日本語はUTF-8でURIエンコードか。ふむふむ。これならSearchDDw+から簡単に制御できそうです。こんなに楽なのはエンカルタ99以来じゃなかろうか。

ああ、これ(コマンドライン引数で検索できる)だけでも今使っている「エンカルタ 総合大百科 2002」からバージョンアップする意味があるなあ。

ところで、付属のBookshelf 3.0というのは2002に付いていたものと同じものということなんでしょうか。もしそうなら……。

Microsoft Bookshelf Version 3.0 でWZから単語検索

……もしそうなら、こんなマクロを今ごろ書いても意味あるかしら……。

// bs3 - Microsoft Bookshelf Version 3.0 で単語検索
void main(TX *text)
{
    txstr szfind;
    txGetWordWhole(text, szfind);
    txstr szfilename;
    pathFullConfig(szfilename, "¥m.vbs");
    TX *textScript = textopen(szfilename);
    txDeleteText(textScript);
    txInsert(textScript, "Set BSDef = WScript.CreateObject(¥"BsDefine.BsDefine.2¥")¥n");
    txInsert(textScript, "BSDef.InvokeDefine(¥"" + szfind + "¥")¥n");
    txSave(textScript);
    textclose(textScript);
    shellExecute(szfilename, "open");
}

もっともBookshelf 3.0はホットキーでアプリを選ばず単語検索できるわけですが。まあ制御方法がわかったぞと、それが言いたかっただけです(笑)。

2003-11-20

宗教論争に火を点けろ(笑)!

べつにWZマクロに限らずC言語系の言語一般にあてはまるのではないかと思うのですが。

以下の例では、fooというFOOオブジェクト(typedefされた構造体)を作成して、そこからなにやら文字列を取得していると考えてください(シチュエーションは適当にでっち上げたので必然性に乏しいですがご勘弁を)。

void sample1(TX *text)
{
    FOO *foo = fooNew();
    if (foo) {
        DWORD sizeBuff = fooGetStringLength(foo) + 1;
        mchar *pszBuff = malloc(sizeBuff);
        if (pszBuff) {
            fooGetString(foo, pszBuff, sizeBuff);
            printf("%s", pszBuff);
            free(pszBuff);
        }
        fooDelete(foo);
    }
}

これは以下のようにも書けますよね。

void sample2(TX *text)
{
    FOO *foo = fooNew();
    if (!foo) return;
    DWORD sizeBuff = fooGetStringLength(foo) + 1;
    mchar *pszBuff = malloc(sizeBuff);
    if (!pszBuff) {
        fooDelete(foo);
        return;
    }
    fooGetString(foo, pszBuff, sizeBuff);
    printf("%s", pszBuff);
    free(pszBuff);
    fooDelete(foo);
}

さて、どっちがいいのでしょう。とくに、後者でfooDelete(foo);が二つ出てくることになるのはどうなんでしょう?

2003-11-14

WZ5でマクロがいろいろおかしいとのご報告をいただいております。すみません、もう少しお待ちを……。

本当にやばい時は「やばい」とか言うことすらままならず

ここ数日、ThinkPadのハードディスクへのアクセスが頻繁に止まるようになってしまって、フルリカバリを余儀なくされたり、その過程でデータがいくつか破損してたり(IMEの登録単語が吹っ飛んだ(泣))、仕方がないので急遽先代のPCに乗り換えて仕事してたりと、まあ大変だったのですが、それをおもしろおかしく書く暇もなく……。

Windowsのイベントログには「遅延書き込みエラー」みたいに記録されてたんですけど、これってハードウェア的に問題が出はじめたせいなんでしょうか? それともファイルシステムの整合性が失われて起きたソフトウェア的な問題? じっくり調べて見極めるような余裕はなかったので、さっさとデータを退避させて新しいHDDと交換しちゃいましたけど……。

しかしパソコンってめんどくさいっすね……はぁ(嘆息)。

2003-11-07

VCの掲示板の構成が再編されたので、Known Bugsは今の書式だとすべての報告を含めることができなくなってしまいました。考えてどうにかします。

もうひとつ。cmdlinexがWZ5でいろいろおかしいというご報告をいただきました。コマンド(「dir」などの単純なもの)の実行に失敗するとか、Windows XPなのに[シェル]に「command.com」と表示されるなどです。後者は原因がさっぱりわからないんですが……。調べていきますので今しばらくお待ちください。

って、あれ? cmdlinex Ver. 2.15って公開してましたっけ!? 2002年11月22日公開ってことになってるんですが……この時期はサイト更新してなかったですね。ダウンロード用のアーカイブにも2.14までしか置いてないなあ……、と思ったら、TX-Cライブラリにはしっかり2.15で載っている。更新内容も書いてある。公開してから何らかの事情があってすぐに引っ込めたのかなあ? 「自分のことなんだから覚えてろよ」って感じですが……。

それとも、ライブラリに2.15公開とか書いておきながら、今のいままで新しい書庫をアップロードするのを忘れてたとか? しかし、それはそれで誰も言ってくれなかったというのは悲しすぎなんですが……(笑)。うーむ。

2003-11-03

PVが、WZ5では一度起動したあと終了後にもう一度起動できない、というご報告をいただきました。が、どうもこれはWZ5の側がいけないっぽいです。VCの掲示板に報告を投げておきました(470@wz3.cgi)。

とりあえず、[環境設定]の[WZウィンドウの待機]を「0」にすれば回避できます。

nisitaniさん、ご報告ありがとうございました。

更新情報

IMEのオン・オフ状態を、ファイルを閉じてからも記憶するプラグイン、imestateを公開してみました。便利かどうかはその人の使い方によると思いますが。

M.Ishidaさんが公開されているmiCaretの、IMEの状態でキャレットの色を変える機能と組み合わせて使うのがおすすめです。

iTunes for Windows(続き)

iTunes for Windows – 更新履歴 – Final β Laboratory
http://www.finalbeta.jp/update_log/2003_11.html#log20031102_1

「アーティスト」→「アルバム」の階層管理に慣れてしまった身としては、ジャンル、アーティスト、アルバムで絞り込みを行なう(ためにそれらを表示するための領域が取られる)のはとくに使いやすいとも感じませんでした。というか、今更WMAもOggも使えないソフトには乗り換えようがないなあ。

よく考えると、WMAに対応していないってのはすごいことですよね。たいした度胸というか。

AAC、ATRAC3(Plus)、OggにWMAなど、ポストMP3フォーマットは気になってはいるのですが、どれも移行してしまうと再生環境の選択肢が大幅に絞られてしまうので、どれにすれば幸せなのかがまだ見えていない自分としてはいまだにMP3なんですよ。音質ではけして満足しているわけではないのですが……。

使いやすいと感じるか感じないかの差は、たぶん求めている使い方の違いなのでしょう。ただ、取り込んであるCDの数が増えてくると「アーティスト名/アルバム名」の2階層ツリーでは見通しが悪くなってきませんか? そういう意味でiTunesは「絞り込みアプローチ」になってるのかなあ、と感じたんですよね(Windows Media Player 9ではツリー上でアーティスト名タイプしてインクリメンタルサーチしてたので)。

WZ NAVIが「絞り込みアプローチ」になったのも、機能や設定が多すぎて階層による分類が助けにならなくなった結果ではないかと、ってここでその話を出すのもなあ(笑)。ある種の病気……。

ときにこれ、プレイヤーだけの小さな画面にしたり、ドロップしたファイルをライブラリに登録せずに再生したりはできないんでしょうかね。まずライブラリありき、という感じですが、ネットでちょっと試聴してすぐ消したいようなものもライブラリに残ってしまうのが煩雑です。実体のないレコードを一括削除するような機能も見あたらないのですけど……。

たぶん(アップルとしては)そういうの(一回きりの視聴)はQuickTimeの役目だと考えていて、iTunesは、おっしゃるとおり「まずライブラリありき」のライブラリ管理ソフトなのでしょう。関連付けでファイルのダブルクリックから再生させるのに使うようなアプリケーションではないような感じですね。Tunesが最初に出たとき、「Rip, Mix, Burn」なんてコピーがありましたが、そういうワークフローを強く意識して作られてるのでしょう。で、僕のメインの使い方というのがまさしくそれ(CD Walkmanで再生するために再生リストを作ってCD-RWに焼く)だったと。

しかしそれだけなら別にWindows Media Player 9でもできてるわけで、まあ早まって乗り換えたりはまだしないとは思いますが……。

あ、プレイヤーの小型化はいわゆる「最大化/元に戻す」ボタンでなるみたいです。アルバムを曲順で聞く云々は、アーティスト順にソートしてたので「?」と思ってしまったのですが、アルバム名でソートしているときはトラック順に並びますね。