ブログ

  • iPhone 4 ICカード化計画その1

    iPhone 4 ICカード化計画その1

    本日の成果:iPhone 4 ICカード化計画その1

      解像度マニアの私はiPhone 4をワクテカしながら買ったわけですよ。iPadよりもiPhone 4なわけですよ。発売から1ト月半ほど経ったころにブツが届きました。うむやはりDPIは高い方がよい。これまで使ってたiPhone 3GSもこの解像度でなぜこんなにっていうくらいキレイでしたが、iPhone 4を見た後だとその違いは歴然です。特にブラウザ使ったりPDF見たりするとき、文字の読みやすさが段違いです。このクッキリハッキリの世界は前にもどこかで・・・と思ったのですが、これはアレです、LinuxザウルスSL-C700です! 思えば解像度はiPhone 4と比べてもZaurusの方が高い。アンチエリアスなしでも日本語が大変読みやすかったものでした。

      それはさておき、多くの人も言っているように、iPhoneはFerica機能が入っていないので、スイカだとか電子マネーだとかが使えません。スイカ一枚一緒に持ち歩けばいい話ではありますが何となく不便さを感じるのです。誰にも信じてもらえないのですが私は持ち歩くものはなるべくシンプルに数を減らしたい主義なのです。
      アップルはそんな私のために(嘘)、iPhone 4で本体裏側を平らにしてくれました。これで裏側にICカードを装着する余地がでてきます。3GSでは裏側が曲面だったため、ICカードをくっつけるのは容易ではなかったのです。ICカードを付けられるようにするために、アップルはiPhone 4の裏側をフラットにしたのに違いありません。
      で、同じような考えのもと、iPhone 4にICカードをくっつける試みをされている方もいるようです。では、私もやってみます。

      こちらがターゲットのiPhone 4。

      裏側。平らだ! 素晴らしい!!

      そしてこんな感じのICカードを・・・

      こう! くっつけられればいいのですね。

      ただくっつけるだけなら、その辺の両面テープで充分くっつきます。手近にあった弱粘着タイプのテープでも、3cmほど切って貼れば充分な強度でついてくれました。普段使ってて勝手に剥がれることはないと思います。逆に接触面全体に両面テープなど貼ろうものなら二度と剥がせなくなるに違いない。
      これでも当初の目的を達した状態になっていることはなっているんですが、iPhone本体もICカードもむき出しで、特にICカードのほうがすぐ表面磨耗しそう。あと隙間にホコリ溜まりそう。なので、もう少し凝ってみようと思います。

      まずはビニール製のガワを買ってきてみました。裏側もすっぽり覆うタイプの。これで一緒にICカードも挟んでやればOKじゃないかということで。

      お! 写真だとなかなかいい感じですね。でも、実はカードの厚み分、カバーが変形してて、ちょっと醜い状態になっているんです。肥満体になってしまっているんです(笑)。

      表から見ればわかるかな。上端と下端の引っかかりはOKですが、ICカードの厚みのせいでフチの部分がiPhone本体にうまく引っかからず、凹状に歪んでます。本来iPhone本体に回り込んで引っかかるべき部分が引っかかってないので、その分横にはみ出して、厚さだけでなく横幅も増してしまっています。

      ちなみにこれが、ICカードを挟まず普通に装着した状態。ビシッとストレートです。(笑)

      で、とりあえず上の状態で実運用を試みたのですが、かなりの確率で駅改札での読み取りに失敗します。ガワを外してICカード単体でタッチすると上手く通ります。ガワを半脱ぎ(笑)にしてiPhone本体と5mmぐらい隙間を作っても上手く通れます。これはアレですね、iPhoneと干渉してますね・・・。

      というわけでだいぶ前に買った干渉防止カードをさらに挟むことになりました。これ、最近見かけないけど今どこで売ってるんだろう。

      ということで、これらの組み合わせでしばらく本番運用しておったのですが、やっぱりせっかくのiPhone 4が肥満体なのはどうかと思うので、もうすこし何とかしたくなってきたのでした。

      そこで、次に買ってきたのがシリコーン樹脂製の似たようなカバー。ビニール製より柔らかいのでカード挟んでもそんなに影響ないのではないかと思ったのですが、

    ・・・あんまり変わりませんでしたぁ~。

      ちなみにこちらが本来のフォルム。

      仕方がないので、板あててカッターでスパッと切ってみました。(笑)

      この切り込みのおかげで、ICカードを挟んでもカバー本体の変形が抑えられ、iPhone本体に引っかかる部分が、うまいこと引っかかってくれています。

      正面から見てもホラこのとおり!

      切った口からICカードが脱落しないか心配だったり、柔らかい素材なのでその分厚いのか、もとのiPhone 4よりだいぶ印象が変わってしまったり、などとまだ改善の余地はあるものの、とりあえずこの状態で1ヶ月ほど使っておりました。
      駅改札でiPhoneをタッチして通ると、たまに駅員さんが「なぬ?」みたいに凝視するのが面白かったです。つづく

  • ガンダム見た

    本日の成果:ガンダム見た

      実はまともにガンダム見たことなかったのですが、こないだついに見ました。最初の奴の劇場版のDVDの奴。通勤中に1週間ほどかけて。なるほどあのセリフはこういうシチュエーションで語られたものだったのか・・・と感心することしきり。

      ガンダムは、ちょうど子供の頃にガンプラブームがあって、早朝に模型店に行列したりするのが流行っていたのですが、ちょっと斜に構えたイヤな子供だった私はそれを知ると興味を持たなかったのでした。親戚の家に本があって大雑把なストーリーはそれで知ったおぼえがある。
      というわけなのでmixiのこのコミュニティを退会します。(笑)

      ・・・あ、それから! 今関連コミュで見つけちゃったので代わりにこっちのコミュニティに入りました。(^_^;

  • 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強力ですね。でもお前さん、ホットキーのツールだった筈なのに、何でそんなことまでできちゃうんだい?