本日の成果

本日の成果を記録していきます。

タグ: Computer

  • TortoiseGitに挫折してTortoise Bazaarにした

    Category:

    本日の成果:TortoiseGitに挫折してTortoise Bazaarにした

      仕事が変わったのをきっかけにいろいろ効率化してみようと思って、まずはプログラムソースや文書をバージョン管理してみることを試みてみることにしたよ。
      いま現状は、ソースのバージョン管理はMicrosoftのVisual SourceSafe(VSS)、しかもそのチェックアウト&コミットに携われるのは専任の1名のみという運用で、その他の設計書や業務文書はバージョン管理システムの支援は一切なし(必要に応じて別名で保管 & 定期的に一括バックアップ)という酷い有様なのだ。そしてだいたい年に1回ぐらいという結構な頻度でそれらサーバ群のどれかが壊れて大騒ぎして数日かけて直近の更新を除いて復活するのだが、そういう状況がなかなか改善しない。
      そこで自分でバージョン管理をやってみることにした。要件は大体次のような感じ。

    1. 無料であること
    2. 簡単に操作できること
    3. 日本語ファイル名が扱えること
    4. 管理用情報を全ディレクトリに撒き散らさないこと

      将来的に同僚がバージョン管理システムの便利さに開眼することも想定して、簡単に操作できることは欠かせない。操作のしやすさという点では、TortoiseSVN以上のものはないのだけれど、subversionはバージョン管理下にある全ディレクトリに管理用の .svn というフォルダを作ってしまうのだ。これが現在の職場の作業と相性が悪い。知らない名前のフォルダがあちこちにあったらまず拒否反応を示す。ていうか即消す。そこで次点の、(Tortoise)Gitを試してみたのだがこれが日本語(というかcp932)と激しく相性が悪かった。対策としてはファイル名やコミットメッセージに日本語を使わないことです、なんてユーザのブログにしれっと書いてあったりもしますがウチの職場でそれを実行したらちょっと不便すぎます。あとファイル名も、当社では日本語が使えないと話になりません。Windows使う前はみんなファイル名に日本語なんて思いもよらなかったくせに。

      と、いうわけでGitも捨ててBazzarに行ってみることにしました。ちょっと「簡単に」とはいかないのですが。本家サイトにあるmsiのインストーラから普通に入れただけの状態では、システムエンコードがascii前提らしく、日本語ファイルを扱おうとするとそこかしこでエラーが起きます。いろいろ試行錯誤した結果、python入れた上でbzr本体はpythonパッケージを入れ、またpythonのsiteconfigでシステムエンコードをcp932にすることで、うまいこと日本語を扱えるようになりました。TortoiseBzrから実行するbzrもこれを指すようにしてやれば、GUIからも日本語ファイル名が普通に使えます。ただし、コマンド実行時のメッセージがエンコードされた状態で表示されます。エラーで動かないのとは違うのでまあ我慢するか。
      GUIはTortoiseBZRという名前でもTortoiseSVNとはあまり似てないです。ていうか主要部分はqbzrというQtベースのGUIツールなのだそうな。しばらく使って慣れればなんとか。

      で、ここ1ト月ほど使っていますがまぁまぁ便利。もうすこし履歴が溜まってくるときっといつか役に立つ日が来ると信じたい。あと、私がまだBazzarのブランチとかチェックアウトとか共有レポジトリとかの概念をよく理解していないので勉強しないと。

  • AutoHotKeyもの3点

    AutoHotKeyもの3点
    Category:

    本日の成果:AutoHotKeyもの3点

      前に書いたエントリで導入したAutoHotKeyで、いろいろと細かい機能を作って使っているのですが、その中でもそこそこ他の人も使える可能性がありそうなものを単体のexeファイルにしてみたので公開するよ。とても小粒なのでわざわざSourceForgeとかにプロジェクト申請する気にならない・・・。(^_^;

      その1 「IMENotifier」

      IMEのON/OFFが切り替わるたびに、画面中央に短時間、小さなウィンドウを表示して、オンになったこと/オフになったことを都度知らせます。

    IMENotifierの動作イメージ

      手前味噌ですが、私自身はこれさえあればWindows標準の言語バーは要らないというくらい便利に感じております。これを使う前は、IMEのオン/オフが判らないとどうしようもないので言語バーを出して、でも年中出てると邪魔なのでXLangBarというソフトで直接入力時は言語バーを非表示にしていました。しかしそのように目立たなくすると今度は必要なときに目に入らずに、ayamattenyuuryokusiteしまいます。その点このツールでは画面中央に表示され、オン時とオフ時とで色が違うので判りやすく、しかもすぐ消えるのでさほど邪魔にもなりません。「さほど」というのは、例えばソフトウェア側でIMEのオン/オフを高速で何度も繰り返すようなソフトがあったような場合は、このツールはそれにいちいち反応して画面表示しますので、そのような場合には邪魔になるかもしれないということです。そのようなときはタスクトレイのアイコンを右クリックして出るメニューから動作を一時停止してください。

      IMENotifier-1.00.zip

      その2 「LazyF1」

      そもそもAutoHotKeyを入れるきっかけとなった[F1]誤操作対策ツールです。作成の背景等はこちらを参照。
      [F1]キーを、しばらく押し続けないと反応しないようにします。

      LazyF1-1.00.zip

      その3 「MouseNoAway」

      これはこちらのエントリで書いた、マウス跳び対策のツールです。そもそも私のところでだけ発生するような変な現象ではあるのですが、ひょっとしたらどこかにニーズがあり、その人が何かの間違いでここに辿り着く可能性もありますので、というかせっかく作ってみたので公開します(笑)。

      MouseNoAway-1.00.zip

  • GetSpecialFolderPath.bat を作った

    Category:

    本日の成果:GetSpecialFolderPath.bat を作った

      私はWindowsのコマンドプロンプトのバッチファイルをかなりヘビーに使い倒してる方だと思います。バッチファイルは私はMSX-DOSの頃から使ってました。MSX-DOSでは単に順番にコマンドを実行する(たまに一時停止する)くらいの機能しかないのですが、MS-DOSでは環境変数やERRORLEVELを使った制御もでき、Windows NTからはcommand.comでなくcmd.exeになってまた大幅に拡張され、その後Windowsのバージョンアップに伴って少しづつ機能が増えたり仕様変更されたりしているようです。

      ただ、そういう屋上屋の歴史の結果として例によって仕様が破綻してまして、やや複雑なことをやろうとすると仕様なのかバグなのか判らない謎の挙動を示したりします。個人的にはバッチファイルはかなり上手く行っていない方ではないかと、ややこしいバッチファイルを作る度に思います。UNIXと違ってプログラムのパラメータは1個の文字列として渡されるだけで、切り分けはプログラム側で行わなければならない、ということがさらに話をややこしくしていると思います。
      まぁその辺も踏まえて出してきたのがWindows Script HostとかWindows PowerShellだと思うんですが、それらは古い環境だと入ってなかったりするんですよね・・・。

      話が逸れました。バッチファイルを作る話でした。バッチファイル内では環境変数でWindowsのシステムディレクトリとかProgram Filesとかの位置を知ることができますが、その類の全部環境変数に入ってるわけではないので、例えばスタートメニューやSendToの位置は判らないのです。そして悪いことにそれらの位置はWindowsのバージョンによって異なるうえに、その手のツールを使えば任意のフォルダに設定できたりするので、バッチファイルからそれらをアクセスしようとすると、本来やりたい処理よりも操作する先のディレクトリを決めることの方が大変なくらいでした。
      しょうがないのでその辺を楽にするバッチファイルを作りました。バッチファイルなのでWindows 2000以降ぐらいなら多分どこでも動きます! しかし、中身は実はRubyスクリプトなので、パスの通ったディレクトリにruby.exeが必要です!! (ダメじゃん)

      GetSpecialFolderPath.zip

      バッチファイルなので、他のバッチファイルから呼び出すときは、callコマンドと組み合わせて使います。

    call GetSpecialFolderPath CSIDL_STARTMENU

    などとすると、スタートメニューのパスを標準出力に出力します。

    call GetSpecialFolderPath CSIDL_STARTMENU STARTMENU

    などと、2つ目のパラメータを与えると、環境変数(この例では%STARTMENU%)に結果を格納します。

  • ZumoDrive をやめて Dropbox にした

    Category:

    本日の成果:ZumoDrive をやめて Dropbox にした

      複数マシンで同期を取るストレージサービスとして、私はこれまでZumoDriveを使っていたのですが、あまり有効に使えていませんでした。というのは、私のニーズとこのサービスの特徴があまりマッチしていなかったということだと思うのですが、ZumoDriveが作成した仮想ドライブは、その中のファイルを読み書きしようとしたときに初めてクラウドから取ってくる(その際キャッシュにあれば再利用する)という仕組みなので、レスポンスが遅く、しかもその時にネットに接続していないとダメということになるのです。もちろんこれは、全ファイルをPC上にキャッシュしておく必要がなく、実ドライブよりも大きな仮想ドライブを作成できるという、ZumoDriveの利点の裏返しなので原理上当然なのですが。その他、なんだか書き込んでから他のマシンに反映されるまでの時間が長く感じました。

      そこでZumoDriveをやめて、Dropboxを使うことにしました。DropboxはZumoDriveと逆に、全ファイルをあらかじめ常に最新の状態に保っておくようにしている代わりに、その分それらファイルの容量を各マシンでまるまる消費します。これで単独のドライブにして固定のドライブ文字を割り当てられるとなお良かったのですが、最近はWindowsでも自分のホームディレクトリ以下に何でも置くのが主流なのね・・・。

  • WinMerge Portable 改造版 v1.03

    Category:

    本日の成果:WinMerge Portable 改造版 v1.03

      昨日、普段使わない環境で、私が改造して公開しているところのWinMerge Portable 改造版を起動したところ、起動時のスプラッシュスクリーンを非表示にしていた筈なのに表示され、しかもそれが消えない(笑)という現象に遭遇しました。これまでそのようなことはなかったので、何が原因なのか判らないのですが、とりあえず対策を施して新版をリリースしました。