タグ: Computer

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

    本日の成果: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点

    本日の成果: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 を作った

    本日の成果: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 にした

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

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

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

  • WinMerge Portable 改造版 v1.03

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

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

  • DCエミュ試した

    DCエミュ試した

    本日の成果:DCエミュ試した

    フォォォォ斑鳩が! 斑鳩が!!

      ほぼ実機なみの速度で動いたんですが微妙に音と画面がズレる。やっぱりまだ実機のほうがいいな・・・。

  • マウスを細線化した

    マウスを細線化した

    本日の成果:マウスを細線化した

      乱暴に扱われることも多いでしょうし、メーカーとしては仕方のないことなんでしょうが、マウスとキーボードのケーブルはみんな太すぎる。そしてゴツすぎる。
      特にマウス。マウスって手で持ってそれ自体を動かして操作するものだというのに、ケーブルがゴツすぎる。本体の形とか手触りとかにこだわったマウスはいろいろありますが、ケーブルにももうすこしこだわってほしい。いや強度を上げろと言っとるのではない! やめてー!!
      マウスのケーブルは、サイズの大きな高級機よりも、小さな安いマウスのほうが、細くてしなやかなケーブルを使っていることが多いようです。確かに大きいマウスのほうが、引っ張って振り回したりなんかされたときにかかる力も大きいのでしょうけれど、それにしても直径で2倍も太いケーブルにする必要はあるのかしらん。
      というわけでお気に入りのマウスと、ケーブルの細い安物マウスを買ってきて、移植手術をすることにしました。

      古いマウスからケーブルを外して、移植先のマウスのケーブルのコネクタに合わせたハーネスを精密圧着レンチでギシギシと作ります。圧着ってハンダ付けより楽で楽しいなフフフ。ああっ途中の写真撮り忘れた。

    工具どもが夢の跡
    移植手術後のマウス

      キーボードは、マウスとは比較にならないほど大きくて重いし、マウスと違って頻繁に移動させるものではないので、それほどこだわる必要はないと思いますが、それでも、昔よくあったカールコードとかにしてくれると嬉しいんだけどなぁ。

  • AutoHotKeyでポインタ跳び防止した

    本日の成果:AutoHotKeyでポインタ跳び防止した

      会社のPCに、自前のキーボードとマウスを繋いで使っています。情報漏洩防止の観点からは問題ないと思いたい(笑)。ところでこのマウスが、ポインタがたまににピョと飛ぶのです。常に正確に右に512ドット飛ぶのです。故障しているのではないかとも思われますが(ていうか多分そう)、めんどくさいのでそのまま使ってました。大抵は忘れた頃にピョと飛ぶ程度なので。
      でも最近、たまに機嫌が悪いとおそろしい頻度で飛びまくるようになってきたのです。それも仕事が忙しいときほど飛びまくりモードが発動しやすいような気がする(多分気のせい)。作業のリミットが近づいて焦っているときにピョピョピョピョとポインタが飛んで、うっかり違うところをクリックしてしまったりすると、温厚な私でもだんだん怒りがこみあげてきます。ムキー!!

      というわけでそのような状況を改善するソフトはないものかと、探してみると見つかるもので、最近までカーソルリミッタというフリーソフトを使ってました。これはどちらかというとイメージセンサのご乱心を防ぐためのソフトのようで、異常に高速なマウスポインタの動きを検知したら元の場所にポインタを戻してくれるというものです。これのおかげでかなり怒りが治まったものの、このソフトの作者も言うとおり、完全ではありませんでした。まず、「異常に高速」なのを検出するのに、ポインタの過去の座標と現在の座標とを比較するのですが、これが実際に画面に表示されたポインタの座標なので、例えば「画面右端付近で操作をしているところでピョと右に512ドット飛ぼうとしたが、すぐに画面の端にぶつかり、実際には例えば20ドットしか移動しなかった」ような場合、このソフトはこれを20ドットの移動としか認識しないので「異常に高速」とは見なしてくれません。逆に20ドットの移動を「異常に高速」と見なしてもらうように設定変更することもできますが、今度は普通にマウスを素早く移動しただけでも「異常に高速」とされて元の位置に戻されてしまうようになってしまいます。それと、この「異常に高速」だったら「元の位置に戻す」という動作は、一旦マウスポインタが表示された後で行われるので、よく見ると一瞬だけピョとポインタが飛んでいるのが判ってしまうという問題もありました。
      そのようなわけでその辺まで含めて解決してくれるツールは見つけられず、自作するか現状で我慢するかしかないのかと思っていたところに、AutoHotKeyでマウスの動きを監視するスクリプトというのを見つけまして、試してみたところ前述の問題をクリアすることができそうで、これを参考にしてマウスの加速度と かかる重力を逆算して、異常値を検出したらそのメッセージを捨てるスクリプトを作ってみたところ、かなり良好な結果が得られました。もう、今までのストレスが嘘のよう。
      c++でDLL作ってメッセージフックして・・・としなければいけないかと思っていたところが、スクリプト一本で目的を達成してしまいました。AutoHotKey強力ですね。でもお前さん、ホットキーのツールだった筈なのに、何でそんなことまでできちゃうんだい?

  • 新プリンタ買った

    新プリンタ買った

    本日の成果:新プリンタ買った

      私はプライベートでは、紙に印刷したいというニーズはほとんどないのです。なので、むかーしエプソンのPC98互換機を使ってた当時の、24ドット熱転写プリンタ以来、プリンタは所有していませんでした。その頃は、まだリストや文書は紙に印刷して読むものだと思っていたのです。用紙やリボンが貴重品だったので、なるべく用紙を節約するためのツールをかなり気合を入れて作ったりもしておりました・・・。
      しかしこのたび、妻のプリンタがインク切れになったのを契機にどーんと無線LAN内蔵の奴を買いました。スキャナ機能もついてる奴。

      最近のプリンタはすごいな、160だか180だかDPIだった当時とはえらい違いだ。インクカートリッジなんかオンラインで注文できるし。HTTPサーバも動いてて、ブラウザからスキャンできたりするし。印字速度もなんだか2~3行いっぺんに印刷してるとしか思えないほど速いよ。

    HP B109n
  • むかしのブックマークを整理した

    本日の成果:むかしのブックマークを整理した

      5年ぐらい前のブックマークフォルダを発見したので、Deliciousにマージしたよ。いろいろと、もう繋がらなくなっているサイトがあって、時代の流れを感じるなぁ。友達の昔の掲示板とか。今ではほとんど名前を聞かなくなったチップセットのメーカーとか。