NicomentXenoglossia に関する雑記

重要な説明ではありませんが、作者としてはどこかに書いておきたいことを、手紙をビンに入れて海に流すくらいの感覚で書いています。フリーソフトマニア向け。なお、ツールと無関係な雑記は作者のひとりごとに置きます。

ページ内リンク
▼当ツールの方針
▼当ツールの来歴
▼当ツールに関するもろもろ開発環境共有DLL版オープンソースについて設定ファイルの名前当ツール内でのみ使う用語バージョン表記β版とか作者のトリップ
▼フリーウェアに関するもろもろエラーメッセージが不親切?その他

NicomentXenoglossia の方針とか

Windows のガイドラインについて

・当ツールは、さまざまな点でガイドラインを逸脱しております。

・少しずつ改善しておりますが、たとえば、「すべてのアイコンが Aero style アイコンのガイドラインに準拠するように」といったガイドラインには従う意思がありません。

(当ツールの作者は、Luna や Aero や Modern にその都度合わせる必要性を感じない人種です)

当ツールのユーザーインターフェースの方向性について

・仮に、リストを保存するとして、一般的なUI は、たぶん次のような感じです。

・ところが、当ツールのUI は、次のような感じです。

・まず、保存形式を選ぶメニューが、メインダイアログに常に表示されています(しかも、パッと見で何に使うメニューなのかまったくわかりません

・そして、メインダイアログに存在する、多くの機能で共通の入力欄にファイル名を入力する仕様です(動画ID、URL、検索ワード、フォルダのパスなど、なんでも同じ場所に入力します

・これは、私にとっては使いやすい方式なのですが、私以外には非常に使いづらいはずです。また、画面が大変ごちゃごちゃしています

つまり

・そんなこんなで、本当に申し訳ないのですが、当ツールの設計は、わりと根本的なところで、他人が使うことを前提にしておりません。

(上記の方針に関する、微妙な補足)

当ツールのユーザーインターフェースの方向性に関する補足

・たとえばViXの作者さんのように、「作者が使いやすいと感じるUI」が「多くの人が使いやすいと感じるUI」に近いなら、良かったのですが……。

・当ツールでは、そもそも 作者のUI の趣味がおかしいので、作者が「自分の使いやすいUI」で作ると、普遍的でわかりやすいUIから離れてしまうという感じです。

・当ツールの作者は、ほかの作者さんのツールを使うときでも、「設定が煩雑であること」や「設定が多すぎること」に不満を感じることがありません(「foobar2000」のようなツールを好んで選びます)

・当ツールの作者は、項目をズラズラと並べた中からワンクリックで選ぶ形のUI が好きです(「適度な一覧性」の感覚が変で、「こんなにたくさん並べてどうするの」と思う閾値が、人とズレています

設定についてのメモ

・「詳細設定」というダイアログの中身や、右クリックメニューの項目の配置がアレなのは、私のUI の趣味の問題という以前に、純粋に、項目が多いことで煩雑化している感じです。

・しかし、それでも当ツールとしては、「設定が固定されているよりは、設定が変更できる方が良い」という方針です。

(こだわりがなければデフォルトのままで使っていただいて、こだわりがあれば設定を変更して使っていただければ、という感じですまれに、「デフォルトの設定が俺のこだわりと違う」という苦情もいただくのですが、ご対応いたしかねます

当ツールの操作における、特殊な傾向など

・「この処理をする」→「どのファイルを対象にしますか?」→「このファイルを」 ではなく 「このファイルを対象にする」→「この処理を」 という流れが多めです。

・基本的に、右クリックメニューの中にあるのは「~を実行する」という類の操作で、設定を切り替える類の操作はほとんど置いていません。

※例外的に、「コントロールの表示/非表示の切り替え」や「設定ファイルを開く」という類の操作は、右クリックメニューにも配置しております。

・原則として、すべての設定項目は、ダイアログ上の目に見えるコントロール(チェックボックスなど)として存在するか、「詳細設定」のなかにあるということにしています。

※エディタでテキストファイルを編集する形の設定項目でも、「詳細設定」のなかにそれ用のボタンを作っています。ただ、ツリーの右クリックから開く「ブックマークの追加/編集」ダイアログだけは、ちょっと例外になります。

NicomentXenoglossia の来歴

初期のバージョン

・このツールは、自分がニコニコ動画を利用するにあたって、必要になったことがあればその都度できるようにしていく……という感じで、少しずつ作ってきたものです。

・上のスクリーンショットが、2007年10月のバージョンです(一番最初の機能がコメントファイルの分割だったので、「NicomentDividingDriver」という名前でした)

中期のバージョン

・それから、色々な番組をコメント付きで見たくなったので「実況ログtoXML」の機能を追加……という感じに拡張していきました。

(ニコニコチャンネルで配信されないような番組でもコメント付きで見られるので、「実況ログtoXML」はけっこう気に入っています)

・そんな感じで、全体の設計などはまったくなく、行き当たりばったりに機能を追加していった結果が、この設定ダイアログです。

最近のバージョン

・いちおう、少しずつ直してはおり、最近のバージョンでは次のような感じなっています。

※わかりにくさは大差ないです。

もっと最近のバージョン

・その後も、よく見ると設定項目は増えています。

※正直なところ、当ツールの作者は煩雑な UI が好きです。

留意事項

・元もと、自分専用の単機能の小物ツールのつもりで、目的の処理だけできれば、あまりちゃんとしていなくてもいいという方針でした。現在でも、あちこちがそういう作りのままになっています。

(変なところがハードコーディングになっていたり、最初にまったく想定していなかった追加機能を力技でムリヤリ処理していたり、ところどころ常軌を逸した仕様になっていたりします)

・申し訳ないのですが、このツールをお使いになる際は、そういうところをご容認いただけると助かります(ほかに選択肢がないようなニッチな機能が必要な場合に、仕方なく使う程度のツールです)

NicomentXenoglossia に関するもろもろ

開発環境とか

・当ツールは2007年から4年ほど、Visual C++ 6.0 で作っていました。色々と無理が出てきて、2011年5月から Visual C++ 2010 に移行しました。


そのころは、こんなでした。

・なので、当ツールには、Windows2000環境でVC6で作った部分が含まれており、作りが古いことの一因になっています。

・作者の遍歴としては、TURBO C → VC6 → VC2010という感じになります。

・最近では、Visual Studio 2015 を使用しています。

共有DLL版とか

・現状で、当ツールの実行ファイルのサイズは3MBほどです。

※やたらサイズが大きいのは、VC++2010のスタティックリンクでファイルサイズが大きくなる件の影響もあります(この辺など参照)

・「msvcr100.dll はマイクロソフト公式からダウンロードしてください」……という方式にすれば、当ツールの実行ファイルは1.3MBほどになりますが、たぶんほとんどの方にとってはどうでもよいことだと思いますので、いまのところセット版のみを配布しております。

・ちなみに、1.3MBのうち0.4MBはアイコンのリソースになります。

オープンソースとか

・もしも本気で欲しい方がおられるなら、当ツールのソースをお送りするのはやぶさかではありません。

・ただ、私の趣味で文字列や配列が無駄に自作クラスだったり、書いた時期によって真で0を返す関数と真で1を返す関数が混在していたり、難儀なソースになっております。

・いちおう、解凍パス付きのソースファイルがこちらで、私が死んだら解凍パスを公開するように知人にお願いしておきます。

※かつてViXの作者さんが仰った、「私がたった今死んだならば、私の親はパソコンどころかビデオもろくに操作できないような機械音痴(^_^;)ですので、ViXソースが入ったハードディスクはおそらくパソコンごと破棄され、誰の目にも留まることなく消滅するでしょう。それでいいのだ。私の作ったソフトウェアは、常に私とともにあらねばならないのだから…。」という発言は非常に好きなのですが、私自身はそこまで自作ソフトに思い入れもないので、こんな感じにしておきます。

※ただ、私の趣味でいうと、どうせなら死後は連絡不能開発者一覧に載りたいものです。

※なお、「使用条件」の通り、当ツールは二次配布OKです。私が音信不通になってこのサイトからツールのダウンロードもできなくなったときに、だれかがバイナリを配布してくださることは歓迎します。なんなら改造版バイナリの配布もOKです。

設定ファイルの名前とか

・アップデートを重ねるうちに、設定ファイルの名前が、現状の用途とかけ離れてしまったものがございます。

・しかし、旧バージョンからアップデートし続けている場合に、「ini ファイルを一度削除したら、設定ファイルの名前を変更しないといけない」といったことがないように、いまのところ、一度リリースしたファイルやフォルダの名前は変更しておりません。

・また、アップデートを重ねるうちに、設定ファイルの数が多くなってしまったので、現在、新しく追加する設定ファイルは「setting」というフォルダの中に作ったりしております。

・できれば、設定ファイルの大部分を「setting」フォルダの中に移したいところなのですが、「ini ファイルを一度削除したら、設定ファイルを移動しないといけない」といったことがないように、いまのところ、一度リリースしたファイルの場所は変更しておりません。

・という感じで、いちおう、アップデート時の利便性を優先しているのですが、その分、ファイル構成・フォルダ構成は整理されることなく、煩雑化する一方となっています。

用語とか

・当ツールにおいては、次のように区別しております。

 「動画の説明文」:ブラウザで見る動画の閲覧ページに表示されている、投稿者が書いた文のこと。

 「投稿者コメント」:動画の上を流れるコメントの中に混ざっている、動画の投稿者自身が投稿したコメントのこと。

・「ダウンロードリスト」とか「ブックマークツリー」とか呼んでいる部分は、次の画像の通りです。

・当ツールにおいて「XML」と呼んでいるものは、すべて、ニコニコ動画形式のコメントファイルのことです(それ以外のXML形式のファイルはあつかっていません)

・当ツールの設定や説明では、「&」+「なにか」+「;」の置き換えのことを、すべて「文字参照」と読んでおります。

・なお、当ツールの内部的には、「XMLの再構成」はDD(DividingDriver)、「実況ログtoXML」はWC(WeddingChange)、「ダウンロード」はES(FinalElementSuitHyperMiracleDownload)という略称で区別されています。一部の設定ファイルなどの中にDDとかESとかあるのは、その関係になります。

バージョン表記とか

・個人的には、「メジャー・バージョン」「マイナー・バージョン」「ビルド」「リビジョン」の4桁表記が苦手です。

・たぶん、それが一番ベターな方法なのだろうとは思いますが、なんというか、「2.2.3.2」と「2.2.2.3」がパッと見であまり違って見えないというか、4桁の数字は私の認知能力を超えているという感じです。

・また、更新日をバージョン名にしてしまう方法(「VER-2013-10-11」等)もある意味で便利なのですが、半年以上ほとんど変化がないときもあれば、1週間で大幅に変わることもある……といった変化が表現できないという面で、当ツールの更新状況には合わない気もします。

・そんなこんなで、当ツールでは、私の趣味で、基本的には「2.22」とか「2.23」の3桁表記で、細かい変更のときだけ「2.23b」「2.23c」と増やしております。

(通常は「a」を省略していると思ってください。当初は3桁だけで回すつもりだったのですが、やっぱり4桁目がないと不便なことがあるので、現在の形に落ち着きました)

・なお、普段は「0.01」ずつ上げますが、過去、大きな変更をしたときに、いきなり「0.1」とか「0.5」とか増やしたこともございます。

・また、私が更新日を把握しやすいように、「○○誕生日記念Ver」などと併記することが多いです。

(ツールをアップデートするタイミングがよくわからないので、誕生日を目処にすると回しやすいという理由もございます)

※ツールをアップデートするタイミング:ViXの作者さんのコラム「バージョンアップのジレンマ」みたいな感覚です。

ベータ版とか

・大変申し訳ないのですが、当ツールには未発見のバグが常に存在します(もちろん、どんなツールでもそうなのですが、利用者が何万人もいるようなツールと比べると、当ツールはよりチェックされていないことになります)

・ファイルの削除や上書きなど、取り返しのつかない結果になり得る操作については、それなりに慎重に動作確認を行ったりはしておりますが、万全ではないかもしれません。

・異常が見つかればできる範囲で早めに修正するようにはしておりますが、作者が普段自分で使っている範囲で起こらない異常については、作者が気付けないことが多いです。

・さまざまな環境で大勢に使われて安定していた実績のあるバージョンというものは存在しないので、そういう意味では常に「ベータ版」ということになります。

・ただ、よほどのことがなければ、バージョンアップによって増えるバグよりは、減るバグの方が多いので、あえて古いバージョンを使う方が良いというケースは少ないです。

(幸いなことに、いまのところは、取り返しのつかない結果になるような重大な問題が当ツールで発生したことはありません)

当ツールの作者が、2ちゃんねるで使用するトリップについて

・2013年8月の2chの情報流出以降、当ツールの作者として使用するトリップを「◆XENOGLOSSfHA」に変更いたしました。

・2013年8月18日以降、当ツールの作者は、以前のトリップ(◆XENOGLOobw)による発言を行っておりません。

・トリップを紛失したので、2018年11月からは、使用するトリップを「◆XENOGLOS/FSx」に変更しました。

エラーメッセージについて

その1

・当ツールに限らず、エラーメッセージに不満を感じることは多いようです。

・ためしに「エラーメッセージを出すなら」でググってみると、「エラーメッセージを出すなら、その解決策も明示して欲しい」「エラーメッセージを出すなら、『このエラーが出たときは、こういう対応を行ってみてください』というのを出してくれればいいのに」「エラーメッセージを出すなら、意味が判るメッセージにしてもらいたいものです」といった声がたくさん出てきます。

・もちろん、ツールがうまく動かなくてイライラしているときに、意味不明なメッセージに苛立ちを覚えるのは当然です。

・また、意味がわからないメッセージについて、わからない自分が悪いのではなく、わかるように書かない相手が悪いという結論になるのも、人間の判断としては自然です。

(もちろん、本当に相手が悪いケースも多いはずです)

・という感じで、お怒りはごもっともだと思うのですが、しかし、作る側にしてみると、いつも親切なエラーメッセージを表示するというのは、けっこう難しいことだったりします。

その2

・そもそも、エラーメッセージとは、どういうものか。

・たとえば、数学のテストで、三角形の辺の長さを求めたらマイナスになったとします。

・どこか計算を間違えたのか、実は公式を覚え間違えているのか、そもそも根本的に解き方が違ったのか……。原因はわからなくても、とにかく何かが間違っていることは確かです。

・その状況が、「エラー:正になるはずの値が、負になりました」です。

・そんな感じで、ツールがエラーメッセージを表示するときには、いつも原因が分かっているわけではありません

その3

・しかし、「そういえば、前回のテストでも同じことがあった。あのときは確か……」といった経験があれば、そういう心当たりを確認して、「5行目でマイナスかけるマイナスがマイナスになっている」などと分かるかもしれません。

・当ツールでも、ダウンロードに失敗した場合には、そういった確認をして、「ログイン状態を共有できてないかも」「たぶん存在しない動画」「権利のない有料動画」といったメッセージを出そうとします。

・しかし、あらかじめ想定しているパターンに合わなかった場合には、「あるべき文字列が見つかりませんでした」といったエラーメッセージを出します。

・これは、「正になるはずの値が、負になりました」みたいなものを、そのまま表示している形になります。

・この辺、あらゆるエラーを事前に想定しておくのは無理ですので、不親切に感じられると思いますが、ご理解いただければ幸いです。

その4

・あと、当ツールでは、古いバージョンでは「権利がないか、存在しない動画です」と表示していたエラーについて、最近のバージョンでは「権利がない、存在しない、手順違い、未ログインetc」と表示しております。

・これは、あるエラーについて、最初は2通りのケースしかないと思っていたのが、後になってから、別のケースでそのエラーになる場合があると知った……という次第です。

・そんな感じで、作者の知らないケースが存在する場合に、エラーメッセージに見当違いのことを表示してしまうことはあり得ます。

・できるだけ注意してはいるのですが、あらゆるエラーを事前に想定しておけない以上、ある程度こういったことが起こってしまうことは仕方ないと考えております。

フリーウェアに関するもろもろ

ユーザーと作者の認識の違い、みたいなこと

・私が想像するに、利用者様の認識の内では、フリーウェアは減点法で採点されていると思います。

・つまり、自分の要求をすべて満たすツールというのが基準ラインで、不満があるたびに、そこから減点していく感じです。

(「○○に対応していない」「××のチェックボックスの場所が悪い」「□□の処理が遅い」でマイナス3点という具合に、「指を折って数えられる不満がいくつあるか」が基準になる感じです)

・一方、作者としては、加点法で採点してほしいと思っていたりします。

そのツールが存在しなかった場合をプラマイゼロとして、少しでも利用することがあるツールならプラスになるような基準で考えていただければ……という感じです)