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

 いつも巡回するページとか、必ず使うソフトとかをまとめて起動したいです。テキストファイルにパスを列挙して、”.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を(僕の技術で)無いものに出来るアイディアがあったら下さい。

いろんな意味で『氏ね!』と思ったこと

 今日もバイトに励んでいました。トイレの清掃をしている時のことです。

 トイレの個室には、予備のトイレットペーパーを保管している棚があります。そこには簡単な鍵を掛けているのですが、鍵を開けなくても扉を少しだけ開けることが出来ます。中身を出せる程ではないのですが、雑誌の1冊くらいは入れることが出来ます。

 僕は、トイレットペーパーを補充する為にその棚を開けました。そうすると、普段は入っていない物が入っていました。そう、成人している殿方向けの、テープで止められていて、剥がさないと読めない雑誌です。コンビニの本棚の、一番奥に置いてあるジャンルの雑誌です。上下2箇所止めてあるうちの、下のテープが剥がされていました。そのまま無理やり開いて中を見た形跡もありました。写真を撮り忘れたので、掲載出来ないのが心残りです。

 犯人は何を目的にして商品をトイレに持ち込み、トイレで何をしていたのかは想像も出来かねる程の謎ですが、神秘なのですが、とりあえず氏ねと思いました。

『色んな意味で氏ね!』

と思いました。

10月6日の走行記録

 昨日はロードで札幌に出かけました。目的は、前の支笏湖TTの時にロードキッズに置いてきたライトの回収と、オーディオショップでスピーカー完成の報告.etcです。

 深夜のバイトを終えて一息ついたら出発。バイト先で羊羹を3つ買いました。レジで

「お疲れ様です」

と言いました。でも、僕は正装だったので誰かわからなかったのか、様子が変でした。

 いつもは道道46号を北広島駅まで進んでエルフィンロードに入るのですが、今日は国道36号をまっすぐ進みました。でも、やっぱりエルフィンロードで行きたかったのでここで右折しました。これが大正解でした。適度なアップダウンで自動車も少なく、とても良い道でした。次からはこのルートを使おうと思います。その先はここで左折して道なりに進めばエルフィンロード入り口の北広島駅です。

 札幌に着いたらロードキッズでライトの回収です。その後、友人宅に寄ってからオーディオショップ札幌音蔵に行きました。CF204-8Aを買った店です。ここで完成したスピーカー結果報告です。ここの常連さんはとても濃い人ばかりなので退屈しません。常連さんの中に学校の先生をしている方がいて、その方からDENONのPMA-390を頂けることになりました。しかも初代のPMA-390です。もう最高です。楽しみです。

 夜9時頃までを音蔵で過ごし、帰路に着きました。深夜のバイトの後、ずっと寝ずに過ごしていたので帰りの走行は辛かったです。

 PMA-390を楽しみに過ごそうと思います。

お気に入り管理の違和感

 ウィンドウズのファイルはフォルダーで区切られていて、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】

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

・問題点

無し。

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

特攻(ぶっこみ)の幼児車

 暴走族でも何でもありません。ただの自転車です。幼児車です。

 というのも昨日、チャリタイを買いに行く途中、ママチャリで片側1車線の道路を走っていました。すると、前方の路地の左側から物凄いスピードで幼児車が横切りました。

 乗っていたのは見た目小学校入学前の女の子。速度は目測で20~25km/h位出ていたと思います。一時停止も減速も全く無しです。声を掛ける間も無く右側の路地に消えていきました。

 未来の沖美穂かも知れません。