工房日記(2003/05〜)
工房日記(2003/05〜)
03/06/30
FNCVT
4.0bで直してみた件は、問題報告者のソレとは違ってた模様。どうやら問題はMP3ファイルのID3情報解析部分にあるようで、とりあえずその辺を調べてみるがよくわからず。ファイルクローズ漏れを見つけたものの、それであの現象にはなると思えないし・・・で、報告者から問題になったファイルを送ってくれることを期待してみたり。確かにID3解析はV2でのテストがあまりできてないって事実はあるんだよなぁ。自分が持ってるMP3のほとんどがV1だったことにもそれはそれでびっくりだけど。
ぷちらんちゃ
こちらでも「テンキーでタブ番号を指定するとアイコンが書き換わらない」という問題を報告される。これは単純ミスなのでちょちょいと修正。で、要望も一緒に頂いているのでそれも組み込み。と、あっさりと修正が終わってしまったのだが、これだけで出すのは寂しいかな・・・ということでサポート項目を探してみることにした。やろうかどうしようか迷ってるものが1つあって、登録されているものをリストで表示して編集できたらいいかなというもの。でも頻度を考えたらそんなに必要もないよなぁとか思っていたりして。
03/06/27
FNCVT
昨日の件についてFNCVTの修正。修正と言ってもぷちらんちゃで修正した関数をそのまま持ってくるだけなので簡単ではあるけれど。で、ちょっとしたサポート項目もあったのでさくさく入れ込んで、取り急いだ感じっぽくはあるが4.1として完成させた。これでしばらくは自分的に完璧・・・と思いたい・・・。(^^;
03/06/26
ぷちらんちゃ
ネットワークパスでの指定ロジックを入れた際、そういえばまだFNCVTでは修正してあったネットワークパスワードの入力をさせる部分が入ってないわけで、その関連の問題があることを報告される。FNCVTとは違って、登録ボタンに表示してる分にはパスワードの入力をさせない方がいいだろうということでそのためのアイコンも適当に作成し、いろいろと試しながら修正。・・・そうしているうちにWNetAddConnection3()の使用方法に誤りがあったことに気付き、こうなるとFNCVTの方でも・・・と試してみるとやっぱり不具合を発見。とりあえずそちらは置いておくとして、まずはぷちらんちゃの修正を完了させた。で、Ver1.5aとして完成。FNCVTも修正しなきゃなぁ。
03/06/25
FNCVT
昨日の件について報告を待ちつつ、品質向上のためにいろいろ動かしていたら、別のしょーもない不具合を発見。日時変換した際に書かれるログの一部が、全然わけわかんない関係ない文字列が出てしまうというもの。使う変数を間違えただけなのでとっとと修正したものの、ちょっと自分に呆れてみたり。
で、とりあえず昨日の件は昨日修正した件だろうという見切り発車気味の決断をし、4.0cとしてリリースすることにした。某雑誌の掲載許可返信の締め切りが明日なもんで、まぁ今出ている4.0bよりはいいだろうということで。
03/06/24
FNCVT
あるファイルを読み込んだときに落ちるという現象の報告を受ける。詳細は不明なのだが、とりあえず自分でいろいろと試してみると「%」の入ったパスを読み込もうとしたときに落ちることがあるのを発見。調べてみると、環境変数が入っていたらそれをその内容のものにパスを変換する関数を作っていたのだが、その処理がおかしくて落ちることがあるというのが判明。これは修正したものの、それが今回の現象のものなのかは報告者の方に確認しないとわからないわけで、さてどうしたものか。
03/06/19
FNCVT
括弧の処理で使用できる括弧として2種類ほど追加。ヘルプもちょっと詳しくしてみたり、いろいろと手を入れてVersion 4.0bとして完成ということにした。これでとりあえず4.0としてやりたいことは改善も含めてやった気がするし、しばらくまた開発を休んでみようかなぁと思ったり。ああ、そういえば4.0になってからまだVectorにも登録してない・・・。
03/06/18
FNCVT
Version4.0でサポートしたネットワークパスの指定で、相手ホストにネットワークログインをしていないと読み取ることができなかったのを今更ながら気付く。早速ログインするような機能を付けようと思いつつ、今までネットワーク関係の関数なんて使ったこともなかったわけで、それを実現するためにはどうすればいいかしばらく調査&試行錯誤。で、結局WNetAddConnection3()を使ってそれだけで完了っぽい。この他いろいろと気付いた改善項目を入れてみた。
03/06/13
FNCVT
Ver4になったときに入れようと思ってた機能を入れ忘れていたことが発覚。今まで変換対象設定で「変換対象とする拡張子」を指定できていたのだが、どうせならここを正規表現で好きなように入れられた方が自由度高いよな・・・と思っていて、慌ててそれを入れることに。ついでに変換制御文の日時変数で、Exif日時を使用する際に代用日時をわざわざ指定しなくてもいいようにした。Exif情報がなかった場合はNULLが入るようになるわけだが、まぁ余計な情報をわざわざ入れたくない人も多いだろうと。と、この2点だけを修正して、ヘルプも直して急遽4.0aとしてリリース。「変換対象とする拡張子」がそのまま「正規表現」へと変わることもあって、4.0が広まる前に急いでリリースした次第。相変わらずツメが甘いなぁと実感してみたり。
03/06/12
FNCVT
滑り込み要望で、ネットワークパスも指定できるように改善。あまり難しく考えず、入力チェックをちょっと変えただけで動作もうまくいけたので簡単。ついでに、ぷちらんちゃでは有効にしてた環境変数の使用もサポートしてみたり。後はログを開く際に上書き禁止にしてみたり、ヘルプを修正したりと細々した作業をせっせとやって、ようやく自分的にも納得してVer4.0として完成した。今回はかなりの修正が入ったなぁ・・・。トータルでソースのステップ数も10000行を超えたし、後々修正が入ったりすると面倒になってくるのかも。
03/06/11
ぷちらんちゃ
FNCVTでネットワークパスでの指定ができようにという要望があり、その修正が終わったときにこっちにも入れておこうとぷちらんちゃにもそのロジックを入れた。ヘルプの修正も完了し、これでいよいよというかやっとVer1.5としてリリース。そんなに修正量はなかったんだけどまた随分遅くなってしまった気が。
03/06/10
FNCVT
プレビューで変換不要やエラーのものを対象外にするボタンはチェックボックスにして、切り替えを楽にしてみた。で、追加要望で変換不要のものはプレビューから除外させてほしいというのがあって、まぁそれだったら変換対象外のを除外させた方が万人にはいいのかなとそういう仕様にしてみたり。しかしこれがまた難しい処理を作ることになるなんて。もともと入れ込まなきゃならなかったのかも知れないが「仮想リストビュー」でプレビューを作ることにして、データは自分で管理するようにしたものの性能を上げようとしてクラスのアドレスインデクスを作ったらそこからは何故か書き込みがうまくいかないし、よくわからないので結局シリアルに上から処理を加える部分をシークして・・・というインデクスの意味がないものになってしまった上、性能もちょっと落ちてしまった気がしないでもなく。まぁこれはプレビューで非表示や対象外を設定できるようになったこととの代償となるくらいだからいいのかなぁ。
で、せっかくのVer4なんだし、ということで簡単なID3情報を使用しての名称変換GUIも入れてみた。まだこっちの方が処理的にも簡単。これが終わったらいい加減にリリースしないと。
ぷちらんちゃ
更に要望があった件を入れ込む。こっちの作業は相変わらず楽々でいいな。
03/06/04
FNCVT
なんとか「位置指定での置換」の処理も完成。ポインタ関係の処理ってのは本当に「もうイヤだ」と言いたくなるくらい面倒で、何度投げ出そうかと思ったことか。特に今回は制御文のときと違って、「先頭or最後尾から」「何バイト目」「以前or以後」「何バイト分」「全角2バイト目の位置だったらどうする」とかを考えなきゃならないような仕様で頑張ってしまった故に、もう何が何だかという状態だった。
で、他にプレビュー周りで「変換不要のものがわかるように」という要望があったものを入れ込んで、ついでに変換不要やエラーのものを一発で対象外にできるボタンを付けてみたり。ここまで作り込めば十分Ver4として世に出せるかな・・・というところまでやっと辿り付いた。
ぷちらんちゃ
FNCVTの位置指定置換処理を作ってる途中で、気分を変えようと要望があった件を入れ込む。ああ、こっちの作業は何て楽なんだろう・・・。(笑
03/05/28
FNCVT
ログ関係は色々ありつつも完成。要望も組み込み、括弧の処理の不具合修正ついでに対応括弧を大幅増加してみたり。他に、不意に思いついた「位置指定での置換」をサポートする気になり、変換制御文での指定もどきを置換のGUIに入れ込む。置換の画面は他の画面に比べて寂しい造りだったので、まぁこれはこれで。しかしこの処理もなかなか面倒で、関数での処理を流用しようにもそう簡単にはいきそうもないようで、結局ずるずると作り続けてる感じ。
ぷちらんちゃ
幾つかの要望が入っているのだが、FNCVTの作業が一段落しないと手が付けられない・・・。(^^;
03/05/22
FNCVT
ログの抽出にかなり苦労しつつ、やっとまぁちゃんと動くようにまでは修正完了。既に元に戻してるログかどうかも判断しなきゃならなかったり、予想以上に苦労した感じ。で、他にやらなきゃいけないのが変換ログの世代保持。設定で何世代前の変換ログまで残すかというのを設定させて、それを超えたら古いログ部分は消去しようとしてるわけだが、元に戻してあったりするとその部分も消去しなきゃならないわけで、あー何だかもうファイルポインタを追いかける処理ってのは何と面倒なことかと思いつつ処理を考えて・・・。完成はまだまだ遠いかな。
03/05/20
FNCVT
密かにいつかやろうと思っていたことがあって、それはログの出力方式の変更。今までは1回の変換毎にログがクリアされていたため、ログから元に戻すにも前回変換したものでないと戻せないわけで、何回か前の変換のものを元に戻そうとしてもログのバックアップを取るとかしていないとできなかったのが気に掛かっていた。で、ログの出力方式を時系列にしてx回の変換ログを保持できて、元に戻すときにはそれらをリスト化してどの変換結果から戻すか選択できればいいなぁ、と。ただ、それをやるにもかなりの作業量が発生するのは目に見えてるし、それまでのバージョン互換を考えるとなかなか手が付けられないしでほっとかれていたもの。で、今回やっとVersion 3.xも落ち着いたことだし、そろそろVersion 4.0に入って、まぁ今回はバージョンが変わるので今までとの互換は勘弁してね、という言い訳も通用させようかと思ってみたり。ここでやっておかないといつまでも不便なままってのもアレだし。
で、ログの出力形式を変更することはとりあえずささっと作り込めたものの、やはり最大の難関はログの抽出とそのリスト化。そしてそれぞれに対してやっぱりプレビュー機能も必要・・・ということでやることがてんこ盛り。とりあえず今のところ要望もないし、ゆっくりやろうか・・・。
03/05/15
FNCVT
つづき。考えればわかることなのだが、Exif、ID3情報があるかどうかを見るということはそれぞれのファイルに対してファイルオープンしてフォーマットを確認することになるわけで、それはもう性能も重くなってしまうわけで。で、苦肉の策として、設定によるがExif、ID3かどうかはまず拡張子で判断するようにしてしまうことにした。これでまぁそんなには性能も変わらなくて済むようにはなったのだが。せっかくなのでリストにもExif、ID3フォーマットであるかどうかを表示する列を作り、ただでさえ狭いリスト表示枠を更に圧迫してしまってみたり。とりあえずここまで作ればリリースしていいだろうということで、3.4cとしてリリースすることにした。
ぷちらんちゃ
要望が入り、選択済みタブをシングルクリックしたときに出る名称変更ダイアログを、ダブルクリックでダイアログが出るように変更。これは簡単なのでとっとと修正し、他にまた自分で使っているうちに改善しようと思ってた「登録名など、名称の最大長が40バイトではちょっと足りない」を改善。まぁ80バイトもあれば十分だろうということで、これも修正。で、他にいじるところもなくなったので、1.4dとして今回もFNCVTと同時リリースすることになった。
03/05/12
FNCVT
3.4bでプレビュー時に対象から外すことができるようにしたのだが、その際に対象外となったものの色をグレーにしたつもりが、環境によってはその違いがわかりにくいことがあったり。なので、それを示すアイコンをプレビューの表に入れることにした。ついでにプレビューでエラーになったものの文字色を赤にして、それ用のアイコンも付けてみたり。と、ここまでは軽く作り、更に「Exif、ID3情報のあるものだけを対象とする」機能があると嬉しいかな、とか思い立ってこれも作り込み開始。しかし、これが予想以上に面倒なことになってしまったのだった・・・。つづく。(ぉ
03/05/07
GW中は開発をゆっくりお休みできたのでちょっとやる気回復。
しばらくソースを見ないでいると、自分で作った関数仕様や変数の意味を忘れて割と大変。
FNCVT
「ディレクトリ内の変換対象ファイルの中で、更に変換対象を選択したい」という要望があったため、それをサポートすることに。どうやって実現しようかと考えて、やっぱりプレビュー画面で選択させるのが一番自然だろう、ということで作り込み。最初は変換対象ファイル群のリストに変換対象とするかのフラグを入れ込もうとしたのだが、何だかわけがわからなくなってきたので別に持つことにして、そうしたら今度は思いのほか影響範囲が大きかったりして結構苦労してしまったり。で、やっと完成して3.4bとしてリリースへ。
ぷちらんちゃ
やっとこさVectorに登録した(今日公開)のだが、密かにちょっとした不具合を発見する。表示色をデスクトップ色にすると、なぜかユーザ設定色プレビューの絵までがデスクトップ色になってしまっていたというもの。描画するときの判定がいろいろたくさんあって修正も思ったより多かったものの、まぁ軽く修正。で、ついでに今までも気になっていた「起動時や再描画(特にドラッグによるサイズ変更)時に画面が真っ白で一瞬表示される」というのも直そうと調査。調査というか、原因がウィンドウクラスの背景色を白にしてるからってのがわかりきってるので、それを色なしにしてしまって修正完了。ということでこれも1.4cとしてFNCVTと同時リリースすることになった。