機動戦士ガンダムOO 6

 丁度今、GyaO『機動戦士ガンダムOO』の第六話を観終わったところです。

内容は、

「ソレスタルビーイングの新装備凄いんだお!」

今後も、各回お決まりのパターンで紛争に介入しながら、少しずつソレスタルビーイング云々な謎に迫るって感じの進行になるでしょう。

気になった点

・ルイスが出てこなかった。

ルイスのいないOOに価値はありません。

バッチファイルで非同期実行

 いつも巡回するページとか、必ず使うソフトとかをまとめて起動したいです。テキストファイルにパスを列挙して、”.Bat”拡張子で保存して実行しても、ひとつひとつソフトを終了させないと、次のソフトが起動しません。

 なんとかして非同期で実行する方法がないか調べてもわかりません。代替案としてプログラムランチャーを探しましたが、どれもランチャーを立ち上げてからグループを選択、見たいな使い方で納得いきません。バッチファイルをダブルクリックで実行するように、ワンステップで一括起動したいです。

 どうにもならないので、VB.NETで次のコードを書きました。

Module Module1
Sub main()
Dim FileName As String
FileName = System.Environment.GetCommandLineArgs(1)
Dim Reader As New System.IO.StreamReader(FileName, System.Text.Encoding.Default)
Do Until Reader.Peek = -1
System.Diagnostics.Process.Start(Reader.ReadLine().ToString)
System.Threading.Thread.Sleep(500)
Loop
Reader.Close()
End Sub
End Module

 なんだ、やってみたら簡単じゃないですか。あとはこれをビルドして、先のバッチファイルの拡張子を適当に変えて、その拡張子をビルドした実行ファイルに関連付ければ目的達成です。

 きっと、もっとスマートな方法があるでしょう。そもそもこれだけのことで.NETは大袈裟な気がします。他の皆さんはスクリプト系の言語とか使うんでしょうか。そもそもバッチファイルで何とかする方法があるんでしょうか。出来ればその方がスッキリしていて良いと思います。

aniscapeっていらない子なのでは?

 aniscapeの最大の売りの機能は、同一フォルダ(配下のフォルダも含む)内の複数のお気に入りとショートカットを一括で開けるランチャー機能です。なかなかありそうで無い機能だと思います。

 しかし、その為にブラウザごと作る必要はありませんでした。本当に申し訳御座いませんっ!って感じです。ランチャーだけあれば良いのです。さらにもうひとつの売りのお気に入りをテキストで検索する機能ですが、これはfub.netの機能の劣化パクリなので、fub.netを使えば良いです。気に入らなければfenrirで同様のことが出来ます。

 既にある物を作るモチベーションはありません。ある物を使えばいいのです。無い物を作りたいものです。aniscapeを(僕の技術で)無いものに出来るアイディアがあったら下さい。

お気に入り管理の違和感

 ウィンドウズのファイルはフォルダーで区切られていて、favoriteという名前のフォルダーがそのままIEのお気に入りになっています。なので、お気に入りはフォルダごとに整理することになると思います。

 皆さんも、ジャンルごとにフォルダを作り、お気に入りを振り分けていると思います。この構成は名前の衝突が起こり得ないので、ファイルの管理には最適なのでしょう。

 しかし、お気に入りの管理にもそれがそのまま当てはまるのでしょうか。例えばあるお気に入りが複数のジャンルに当てはまるとします。そうすると、検索性を良くする為には、その複数のフォルダに同じ内容のお気に入りを作ることになります。僕はそれに強い違和感を感じます。無駄が多いと思いませんか?もう一度お気に入りを整理しようとしても、同じ内容のお気に入りがいくつもあって煩雑です。

 僕は以前から、漠然とではありますが、この違和感を解消して形にしたいと考えています。ちょっと考えを整理してみようと思います。以下、お気に入りを”.URLファイル”と書きます。

【案.1】

URLとタイトルをリストに列挙する。そこにタグを付けて検索に利用する。一つのURLとタイトルの組み合わせには複数のタグを付けられることにする。

・問題点

IEのお気に入りとの互換性が無い。効果的な相互変換も難しい。ツリー構造の、目的の.URLファイルを段階的に絞り込んでいけるという長所がない。いや、AND検索で絞り込んでいける。それでも案.2のようなUIも併用する必要があるかも。

【案.2】

.URLファイルの中身がINI形式であることを利用して、既存の.URLファイルにタグを埋め込む。これをツリー形式で画面に出力して検索に利用する。フォルダに対応したノードを作り、フォルダ内のフォルダや.URLファイルを子ノードとして追加していくのは通常のお気に入りと同じ。.URLファイル内にタグが見付かると、そのタグと同名のノードの子ノードとして追加する。同名のノードが無ければ新たにタグ名のノードを作り、その子として追加していく。

・問題点

INI形式に従ってタグを付加しようとすると、タグは一つ、または決まった個数以下の数しか付けられない。既存の.URLファイルを加工するのは精神衛生上良くない。実際に出力されたツリーはかえって複雑にならないか。実際にツリーを生成しようとすると無限ループになったりして。あ、フォルダ名とタグ名に優先順位を付ければループにはならないか。実際に保存されている状態とツリーとして出力されている様子が違うと、かえって管理がしにくくならないか。直感的でない。全ての.URLファイルの内容を読み込まないとならないのでツリーの生成に時間がかかるかも。

【案.3】

INI形式の制限を取り除くために、中身をXMLにしたお気に入りの形式をでっち上げる。

・問題点

案.2と殆ど同じ。

【案.4】

そんなこと気にしているのは僕だけだろうから、諦めて忘れる。

・問題点

無し。

なんかとんでもなく難しい悩みを作ってしまった気がします。

aniscapeあれこれ

 僕のPCでaniscapeを起動すると約30秒掛かります。これが.NETの宿命なのでしょうか。それとも僕のPCが非力なだけでしょうか。でも、現状ではVB.NETしか出来ないので仕方ありません。

 常駐モードを付けようか迷ってます。自分で使うだけなら最小化しておけば同じことです。aniscapeは自分用です。すみません、ただ面倒なだけです。そもそも僕以外に使ってる人がいないと思います。いたらビックリします。

 お気に入りのフォルダ内のページを一括して開いて、一緒に入れておいた.LNKファイルも同時に実行出来たら巡回が楽になります。数ページを開くだけならタブが使いやすいけど、沢山のページを開いた時にはタブよりもリスト表示の方が使いやすいです。この2点を実現する為だけに今のaniscapeを作りました。 

 aniscapeに関してはもうやることがありません。だったらメニューだけあって実装されていないaniscapeオプションとオフライン作業を早くなんとかしやがれって思います。

 aniscapeオプションに関しては、もともと自分用に最適化されたブラウザなのでカスタマイズの必要がありません。必要なら手元にソースコードがあるので、それを弄れば済みます。僕以外にaniscapeオプションを必要としている人がいたら実装します。いたらビックリです。どこをどうカスタマイズ出来る様にするのかさえ決定出来れば、実装自体は手間の掛かることではないと思います。

 オフライン作業に関しては、単にやり方が判らないだけです。誰か教えて下さい。

作業グループ2

 3つの案をそれぞれ試してみました。どれもしっくり来ないので戻しました。その過程で実装した項目のD&Dでの並び替えだけは残しました。

 見た目がイケてないんです。直感的じゃありません。そういえば、タブブラウザのグループタブも見た目がゴチャゴチャした感じになるのが嫌で使ったことがありませんでした。

 しばらくこの件は忘れます。きっとそのうち、ふといい案が浮かぶでしょう。

作業グループ

 タブブラウザでいうグループタグみたいな、そんな機能が欲しいと思いました。

ちょっと考えてみた案1

 ウィンドウリストをツリー表示にして分ける。

ちょっと考えてみた案2

 ウィンドウリストにラベルと仕切りを追加して分ける。

ちょっと考えてみた案3

 ウィンドウリストの各項目の横に、動作には直接影響しない、ユーザが自由に使えるチェックボックスを付ける。

 1はドラッグ&ドロップで手軽にグループを分けて整理出来る様に出来ます。この場合、グループ専用の親ノードをラベルを指定して作成するか、既存のウィンドウのノードにドロップすると子ノードとして追加されるかでも使い勝手が変わるでしょう。

 2は右クリックメニューからラベルの追加を選んでラベルのテキストを入力でしょうか。面倒でしょうか。でも、一番見やすそうです。

 3は何よりも実装が手軽で有難いです。でも、この場合は項目の並び替え機能も同時に欲しくなります。並び替えのみで考えると、僕には必要性が感じられません。

 似たような形のブラウザが少ないので、参考材料が少なくて悩みます。とりあえず実装して試す、なんてのは面倒です。kikiでもいじりながら考えましょう。

何かが違う

 今日も引越し屋さんのバイトに行ってきました。

 aniscape3(仮)なのですが、窓リストが邪魔ですね。表示させておくと置き場所に困ります。

 いっそのこと開き直って窓リストを廃止してタスクバーに表示させちゃいますか?ウィンドウズXPではタスクバーにグループ化の機能も付いてます。この方が合理的ですよね。

 そもそも、何故タスクバーにグループ化の機能があっても尚タブブラウザなのでしょうか?リソースの節約でしょうか?もう節約しなくても足りなくなったりしませんよね。デスクトップがウィンドウで散らかりますか?それは確かにそうですね。でも、それを逆に自由度と捉えたのがaniscape3(仮)なので、そこはスルーします。

 タブは切り替えが手軽で簡単でしょうか?いちいちタスクバーまでカーソルを動かさなくてもいいですからね。でも、aniscape3(仮)は左手はキーボードという前提があるので、Alt+Tabでウィンドウの切り替えは簡単です。Alt+Shift+Tabとかだとちょっと押しにくいですね。まぁ、そこは慣れですか。

 ん~、ウィンドウがタスクバーに表示されるようにして、暫く自分で使ってみましょうか。それで使い勝手が良ければ、設定ファイルを用意して、ユーザーが編集出来るようにしたらいいでしょうか。

 やってみましょう。