2008年07月14日 (月)

オープンソースの iPhone アプリ開発環境を試す (3) - [iPhone & iPod Touch]

winChain を使って iPhone の GUI アプリを作成してみる。winChain には winChain Template Builder.exe というソースコードのテンプレートを作成してくれるアプリが同梱されているのでコレを使おう。

1) winChain Template Builder.exe を起動する。
templatebuilder1.jpg

2) 必要な項目を指定して[Create Template]ボタンをクリックする。
templatebuilder2.jpg
テンプレートが作成されると以下のメッセージが表示される。
templatebuilder3.jpg
[OK]ボタンを押してメッセージを閉じ、[X]アイコンをクリックしてソフトを終了する。

指定したディレクトリにプロジェクト名のサブディレクトリが作成されて、その中にテンプレートのファイル群が作成されると思いきや、実際にはプロジェクト名のサブディレクトリは作成されず、指定ディレクトリ直下にテンプレートのファイル群が作成される。これで合っているのかなと思ってビルドしてみると、Makefile 中で指定されているファイルのパスと実際のファイルの所在が一致していないためにビルドはコケる。どうやら winChain Template Builder のバグっぽい。

3) プロジェクト名のサブディレクトリを作成して、そこへテンプレートのファイル群を移動する。上の例だと C:\cygwin\iphone-apps にテンプレートのファイル群が作成されているので、helloapps サブディレクトリを作成してこれらのファイルを移動する。

デフォルトの Makefile のままビルドするとルートディレクトリ直下に helloapp.app というディレクトリが作成されてしまう。開発者の好みだと思うが、僕はプロジェクトにサブディレクトリを作って実行モジュールを格納したいので Makefile を変更しておこう。

4) Makefile 中に BUILT_PRODUCTS_DIR の定義を追加する。

INFOPLIST_FILE=Info.plist
SOURCES=\
	main.m \
	helloapp.m
 
CC=/usr/local/bin/arm-apple-darwin-gcc
CFLAGS=-g -O2 -Wall
LD=$(CC)
LDFLAGS=-lobjc -framework CoreFoundation -framework Foundation -framework UIKit -framework LayerKit
PRODUCT_NAME=helloapp
SRCROOT=/iphone-apps/helloapp
BUILT_PRODUCTS_DIR=$(SRCROOT)  ←追加
 
WRAPPER_NAME=$(PRODUCT_NAME).app
(以下省略)

5) cygwin のシェルを開いてプロジェクトのディレクトリ(/iphone-apps/helloapp)へ移動し、ソフトをビルドする。

$ make

ビルドに成功すると helloapp.app サブディレクトリが作成され、実行モジュール(helloapp)と Info.plist が格納されているはず。

6) iPhone の /Applications ディレクトリへ helloapp.app フォルダ丸ごとコピーする。

7) アプリアイコンを追加するために iPhone のメイン画面を強制リフレッシュする方法がわからないので iPhone を再起動する。
再起動後はメイン画面に helloapp アイコンが追加されているはず。

8) helloapp アプリを実行する。
テンプレートのまま何も処理を追加していないので何もしないけど。

なんとか GUI アプリも作成することができた。凝ったアプリを作るならば iPhone SDK に勝る環境は無いだろうけど、簡単なコマンドラインソフトを書くとか、ニーズによってはオープンソースの開発環境の方が役立つこともあるかもしれない。winChain はいかんせん完成度が低い(バグもあるし)のが残念だけど、やる気になれば Mac を持っていない人でも iPhone アプリが開発できるのは魅力かも。というか、Apple が Windows 版 iPhone SDK をリリースしてくれるといいんだけどな。

2008年07月13日 (日)

オープンソースの iPhone アプリ開発環境を試す (2) - [iPhone & iPod Touch]

前回 winChain のセットアップは完了したが、いきなり iPhone の GUI アプリを作成するのは荷が重い。Jailbreak した iPhone(僕が持っているのは iPod Touch だけど)ならばシェルも使えるので、まずはシェル上で実行できるコマンドラインアプリを作成してみる。

1) 以下の hello.c を作成する。

#include 
 
int main(int args, char *argv[])
{
	printf("Hello, dreamhound!\n");
	return 0;
}

2) 以下の Makefile を作成する。

CC=/usr/local/bin/arm-apple-darwin-gcc -v
CXX=/usr/local/bin/arm-apple-darwin-g++
TARGET=hello
LD=$(CC)
LDFLAGS = -framework CoreFoundation \
          -framework Foundation \
          -framework UIKit \
          -framework LayerKit \
          -framework CoreGraphics \
          -framework GraphicsServices \
          -framework CoreSurface \
          -lobjc
 
all:	$(TARGET)
 
Hello:	$(TARGET).o
	$(LD) $(LDFLAGS) -o $@ $^
 
%.o:	%.m
		$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
 
clean:
		rm -f *.o $(TARGET)
 

3) hello.c と Makefile を cygwin でアクセス可能な適当なディレクトリへコピーする。
例えば /iphone-apps/hello というフォルダを作成してコピーする。cygwin のルートは Windows パスでは C:\cygwin なので、/iphone-apps/hello は C:\cygwin\iphone-apps\hello を指す。

4) cygwin のシェルを開いて3のディレクトリへ移動する。
5) プログラムをビルドする。

$ make

エラーが出たら何かが間違っているということ。正常終了すれば hello という実行ファイルが作成されるはず。

6) WinSCP 等のSecure Copy クライアントを使って、5で作成した hello を iPhone の適当なディレクトリへコピーし、実行パーミッションを設定しておく。
例えば /temp/dreamhound ディレクトリを作成してコピーする。
iphone-winscp.jpg

7) TeraTerm +TTSSH 等の SSH クライアントを使って iPhone に接続し、6で hello をコピーしたディレクトリへ移動して hello を実行する。
printf で指定した文字列が正しく表示されていればOK。
iphone-teraterm.jpg

コマンドラインソフトの作成は簡単だった。次は iPhone の GUI を使ったアプリの作成に挑戦してみよう。

2008年07月12日 (土)

オープンソースの iPhone アプリ開発環境を試す (1) - [iPhone & iPod Touch]

iPhone アプリ開発環境は Apple が配布している iPhone SDK が標準。だけど世の中には、オープンソースの iPhone アプリ開発環境も存在する。iPhone Toolchain と呼ばれるパッケージがそれ。Toolchain とは「製品開発に使われるソフトウェアを集めたパッケージ」という意味があるらしい。その構成は ARM プロセッサ用コンパイラと標準ライブラリ群に加えて、iPhone 用フレームワークといったところだろう。

iPhone Toolchain を Windows に移植した winChain というパッケージもある。これを使えば本来 Mac 環境で行う iPhone アプリ開発を Windows マシンでも行えるのだろうか。興味深いのでちょっと試してみよう。

winChain
http://code.google.com/p/winchain/

まずは winChain のセットアップ。Toolchain 自体をインストールしてから、Windows 上の Unix シェル環境である Cygwin をインストールする。

1) 以下の2つのファイルをダウンロードする

preBuiltToolchain v1.0
http://www.megaupload.com/jp/?d=DB0O3YNK
(MEGAUPLOAD というファイル共有サイトからダウンロード)

winChain 1.0.1.zip
http://code.google.com/p/winchain/downloads/list
(公式サイトからダウンロード)

2) ダウンロードした preBuiltToolchain.rar を解凍する
WinRAR等のアーカイバを用意しておこう。

3) ダウンロードした winChain 1.0.1.zip を解凍する

4) winChain.exe を実行する
winChain1.jpg

5) [Browse]ボタンをクリックして、preBuildToolchainを解凍したフォルダを指定する。
すると[Copy Toolchain Files into Place]ボタンが有効になる。

6) [Copy Toolchain Files into Place]ボタンをクリックする。
すると preBuildToolchain ファイル群が \cygwin フォルダへ移動される。
ソフトはハングアップしたような状態でディスクアクセスだけが激しく行われる(僕のマシンで3分間程度掛かった)。インストールが終わると以下のメッセージが表示される。
winChain2.jpg

7) 次は cygwin をインストールするのだけど、winChain.exe の[Install Cygwin Environment]ボタンは有効にならないので(プログラムソースを見たら有効にならないような処理になっていた。理由は不明)、[X]アイコンをクリックして winChain.exe を終了する。

8) winChain のディレクトリの Resources/InstallCygwin.exe を実行する。
cygwin1.jpg

9) 画面の指示通りに進む。[Select Local Package Directory]はデフォルトが変わった名前のディレクトリなので、自分にとって分かり易いディレクトリに変更しておいた方がいいかも。
cygwin2.jpg
あと、ダウンロード先サーバーは自分のロケーションに近いものを選んでおいた方がいいかも。
cygwin3.jpg
残りの手順はデフォルトのまま進む。

10) ダウンロードが始まったら、あとは待つのみ。ダウンロード後にインストール処理が自動的に始まる。
cygwin4.jpg

11) インストールが完了すると、アイコンを登録するかどうか聞いてくる。
cygwin5.jpg

12) [完了]ボタンをクリックして完了する。

これで winChain のセットアップは一通り完了。次は実際にソフトを作成してみる。

2008年07月11日 (金)

RSSリーダーを RSS Bandit に乗り換える - [インターネット]

ブログ形式のウェブサイトが多い昨今、RSSリーダー利用者は多いに違いない。僕も類に漏れず、goo リーダー(アプリ版) というRSSリーダーソフトを利用している。

ネット上でソフト比較や評価記事を散々読み漁った挙句にこのソフトに決めたのだけど、まあ基本的な機能は好み通りであるものの、使い勝手に難を感じることが多くて不満が蓄積。具体的には「Windows ソフトにも関わらず、Windows ソフトの慣習に従っていない部分が多い」ということ。例えばダイアログボックス上のボタンの配置1つを見ても、Windows のユーザインターフェースガイドラインでは[OK]ボタンが左で[キャンセル]ボタンが右と規定されているにも関わらず、goo リーダーでのボタン配置は反対。ショートカット割り当てやツールバーの体裁も一般的な Windows ソフトと違った部分が多いように思える。何か思い入れがあってそうしているのなら尊重もするが、単に細かい配慮が成されていないだけのような。

そうは言っても、なかなか代わりになるソフトも見つからず、goo リーダーをずっと使い続けてきたのだけど、やっと重い腰を上げて RSS リーダーの乗り換えを検討。RSS リーダーが出始めた頃に当時の著名なソフトは一通り試した経験があるのだけど、その中でも RSS Bandit がバージョンアップを重ねて最近の評価はかなり高い様子。早速最新版をダウンロードして試用開始。.NET を使っているようだけど、起動してしまえば重さはほとんど感じない。表示スタイルも僕の好みだ。というわけで、goo リーダーからの乗り換えを決断し、RSS Bandit が当面の僕の常用 RSS リーダーとなった。goo リーダーはもっと細かい部分を作りこめば更に良いソフトになると思うんだけどな、勿体無いなぁと思う。

i18n_aware1_s.jpg

2008年05月29日 (木)

携帯電話の電池の減りが早い - [携帯電話]

先日契約した Verizon Wireless の携帯電話のその後。他キャリアでは圏外だった自宅屋内で通話できるようになったのはとっても有り難いのだけど、それでもやっぱり電波状況は良くないようで端末の電池の減りが結構早い。フル充電していても翌日の夕方には電池ゲージが1つ欠けた表示になっている。多分ずっと自宅に居た場合には待ち受けは1週間も持たなそうな感じ。マメに充電するようにしないとな。

DSCF5669.jpg

2008年05月28日 (水)

ノートパソコンのキーボードを交換する - [パソコン]

先日 eBay で中古パーツとして購入したノートパソコン用キーボード にやっと交換。以前に清掃のためにキーボードを外したことがあったので、交換手順は既に理解している。もともとのキーボードは日本語で購入した中古キーボードは英語なので、これで晴れて英語キーボードとなる。交換が終わったらシステムを起動してキーボードのドライバを「101/102 英語キーボードまたは Microsoft Natural PS/2 キーボード」から「PC/AT PS/2 キーボード(84キー)」へ変更。ドライバを変えておかないと特殊キーのキーアサインが一致しないので。念のためにシステムを再起動してキーアサインに問題ないことを確認。中古とは言え良品のキーボードはまだキーのバネが強くて「打っている」という感じがする。

DSCF5439.jpg DSCF5446.jpg DSCF5447.jpg
kb_driver1.jpg kb_driver2.jpg

2008年05月27日 (火)

TeraTerm + TTSSH で iPod Touch に接続できない? - [iPhone & iPod Touch]

先日 Jailbreak した iPod Touch には OpenSSH をインストールしてあるので、これまでは Mac のターミナルで ssh を起動して iPod Touch に接続していた。あるとき、そういえば Windows マシンにも SSH 接続できるソフトをインストールしてあったなぁと思い出したので、TeraTerm + TTSSH で接続を試みる。しかし以下のメッセージが表示されて接続できず。

ttssh_failed.jpg
(This program does not understand the server's version of the protocol.)

このメッセージでネット検索してみると、どうやら SSH のプロトコルにはバージョンが存在するらしい。iPod Touch の OpenSSH は新しいロトコルを使っていて、僕が試した TTSSH では古いプロトコルしかサポートしていないために、このメッセージが表示された模様。ちなみに僕の環境にインストールされているソフトのバージョンは以下の通り:

  • Tera Term Pro 2.3
  • TTSH 1.5.4 (Compatible with SSH protocol version 1.5)
新しいバージョンに対応した TTSSH を同梱した TeraTerm が配布されているようなので早速ダウンロード。TeraTerm は UTF-8 対応になって TTSSH も同梱され、かつオープンソースとして SourceForge で管理されているらしい。

UTF-8 TeraTerm Pro with TTSSH2 - SourceForge
http://sourceforge.jp/frs/index.php?group_id=1412

インストールして試してみると問題なく iPod Touch に SSH ログインできる。ありがたや。

  • Tera Term Professional 4.58
  • TTSH 2.46 (Compatible with SSH protocol version 1.5 and 2.0)

2008年05月26日 (月)

外付けRAIDドライブを購入する (4) - [パソコン]

DSCF5430.jpg数日遅れで2台目の RAID ドライブが到着。こちらも1台目と同様に RAID 1 設定に変更して NTFS でフォーマットしておく。手元に Mac 環境もあるのだけど、必要ファイルは大した容量も無いので、必要ならば USB メモリにコピーして RAID ドライブへ移すことにしよう。Mac と両方で使えるようにしたければ FAT32 でフォーマットしておけば良いのだけど、頻度が低い Mac 環境のためにNTFS の恩恵を受けられなくなるのは惜しいので。

RAID ドライブが2基並ぶとそれなりに見栄えがする。まあ個人のバックアップ環境としては RAID 1 構成の大容量ドライブが2基あれば、それなりに十分だろう。これらのドライブを如何に上手く利用していくか、その段取りを決めていくのが今後の課題かな。これでドライブが飛ぼうが内蔵ボードが飛ぼうが電源がイカレようが、保存してあるデータが読み出せないという事態は避けられるようになった。バックアップ環境が整ってなんとなく安心。備えあれば憂いなし。

2008年05月25日 (日)

外付けRAIDドライブを購入する (3) - [パソコン]

DSCF5392.jpgeBay で時間差で2台落札した RAID ドライブのうちの1台が到着。まずは開梱して、ついでに筐体も空けてみる。説明書を見ながらフロントパネルを外すと、2基の SATA ドライブが縦置きに挿入されている。使われているドライブは SAMSUNG 製 HD400LJ で既に現行品ではないけれど、ネットで見る限りではそれなりに評価は高いドライブである。

筐体を元に戻してパソコンの USB ポートへ接続して電源投入。初期状態では 400GB のドライブ2基として認識される。付属 CD-ROM から RAID 設定用のユーティリティソフトをインストールし、コンフィギュレーションを RAID 1 構成に変更してから NTFS でフォーマット。400GB もあるのでフォーマットには時間が必要。放置しておくとやがてフォーマットも終わり、今度は 400GB のドライブ1基として認識。これで RAID 1 構成でドライブが動き始めた。フリーウェアのディスクベンチマークソフトをダウンロードして性能評価してみるが、性能は上々といったところ。常用ノートパソコンの内蔵ドライブよりも良さげかも?信頼性重視で RAID 1 にしているので速度はあまり期待していないけど、速いに越したことはないものね。

DSCF5396.jpg DSCF5397.jpg DSCF5404.jpg

CrystalDiskMark 2.1 での評価結果 - 左はノートパソコン内蔵 SATA ドライブ、右は DriveStation Duo (RAID1)
cdm_internal.jpg cdm_raid.jpg

2008年05月24日 (土)

外付けRAIDドライブを購入する (2) - [パソコン]

RAID 1 の外付けストレージを探し始めたものの、500GB で $400 ぐらいする。少し旧式のモデルだと現品限りで $250 ぐらいまで値下げされているけど、それでも普通の外付けストレージに比べれば高価な買い物だ。大手オンライン販売業者のサイトで一通り値段をチェックしてから eBay へ移動して出品を細かくチェックする。ハードドライブはある種消耗品のようなもの、バックアップ用としての中古品の購入は論外、新品を明記した出品のみを洗い出してチェックする。

drivestation-duo.jpgすると Buffalo の DriveStation Duo 800GB という RAID 1 構成可能な外付けドライブが、複数の出品者から激安スタートで出品されている模様。この製品の後継で 1TB 版が出回っているために値崩れしているのだろうと予想する。Amazon.com で調べてみると、List Price $778.46(これはあり得ない価格だと思うぞ)で、いまだにAmazon.com の扱い価格は $438.99 である。eBay の相場は $150 弱だからおよそ3倍。Amazon.com のレビューを見ると、付属ユーティリティに問題があって RAID 構成の設定に難儀したという書き込みもあるが、現在はメーカーのサイトからアップデート版がダウンロードできるらしいので問題無いだろう。Buffalo はアメリカではトップメーカーでは無いけれど、日本市場を知っている僕にとっては馴染みもある。

というわけで、eBay で新品の DriveStation Duo 800GB をおよそ $145 で落札。他州からの送料を含めると $165 ぐらいか。同じ出品者が複数台出品していたので、数日後に終了する出品をほぼ同じ入札値段でもう1つ落札して合計2台を調達。RAID 1構成のドライブとは言っても、本体(電源や基板など)が故障したらお手上げ。本体のトラブルに備えて万全を期すために同じモデルを2台持っておくべきと判断する。結局トータルで $320 ほどになったが、それでも Amazon.com の1台分の売価よりも $100 以上安い。出品者からは FedEx Ground でそれぞれ発送した旨の連絡を貰う。落札日が離れていたので一括発送は依頼できず。

2008年05月23日 (金)

外付けRAIDドライブを購入する (1) - [パソコン]

DSCF2593.jpg以前に Asterisk の勉強用にセットアップした Linux ボックスSamba をセットアップしてファイルサーバーとして稼動させ、さらに ディスクを増設して ネットワーク経由で常用マシンのファイル群をバックアップするのに使っている。だけど、いかんせん使い勝手が悪い。常時電源オンではなく必要なときだけしか立ち上げないのだけど、それでもブートアップとシャットダウンの手間は面倒だし、使用中はファンがブンブン回っているので音がうるさい。100Mbps の LAN 経由でギガバイト単位のファイル群をコピーするの時間が掛かるし、ディスクは IDE で物理的にも速くない。

こういう不満だらけのバックアップ環境を使っていると、当たり前のように使うのが億劫になってバックアップ頻度が下がって行き、いざトラブルというときに随分以前のバックアップしか取っていなかったなんてことになりかねない。やっぱり余ったPCやパーツを使いまわしてファイルサーバーを立てたりするよりも、スイッチポンですぐ使えるお手軽便利なストレージを調達した方が自分の為だよなぁ。最近は特に仕事が忙しいこともあり、とりわけトラブルに対する恐怖感が増しているのかもしれない。

ということで、外付けストレージのメーカーサイトを巡回して使えそうなストレージを探してみる。形態としては NAS(Network Attached Storage)とUSBやFirewire接続の外付けストレージが考えられるが、僕の場合は常用マシン1台のみの定期バックアップと過去プロジェクトのアーカイブの蓄積が主な用途なので、NAS にする必要は無かろうと判断。データ量が多いので LAN 経由は能率が悪いし割高だしね。さらに、バックアップメディアの信頼性を心配しているときりが無いので、RAID 1 によるミラーリングが可能なストレージを選ぶことにする。まあそれなりに費用は掛かるけど、どこかの時点でバックアップ環境を見直しておかないと、イザという時に痛い目を見るのは判りきっている。ある程度お金が掛かっても仕方ないと覚悟を決める。

2008年05月22日 (木)

T-Mobile Hotspot の年間パスを激安で調達する - [インターネット]

t-mobile-hotspot.jpgコーヒーが美味いか安いか、値段が安いか高いか、まあそういう議論は棚上げして、出先でその店舗を用意に見つけることができるコーヒーチェインは恐らく Starbucks だろう。Starbucks の各店舗では T-Mobile Hotspot の Wi-Fi サービスが提供されていて(2008年春から AT&T のサービスへ移行したが、T-Mobile Hotspot カスタマは従来どおり使える)、実は僕は友人がほとんど使わないけど契約しているというアカウントを好意で使わせてもらっていたので、出先でパソコン仕事をするために非常に重宝していた。だけどその友人もケータイ電話を T-Mobile から AT&T へ移行することを決めたとのことで、僕の Starbucks の Wi-Fi 利用ももはやこれまでか。だって普通にサービス加入したら1ヶ月 $29.99(T-Mobile の電話サービスと併用加入だと $19.99)、毎日使うならともかく、実際は週に数時間しか使わないものなぁ。

olpc-logo.jpgさてどうしたものかとネット巡回していたら、OLPC プロジェクトの Wiki に T-Mobile Hotspot の名前 を発見。OLPC(One Laptop per Child)とは 100 ドルのノートパソコンを製造して途上国の子供たちに提供しようというプロジェクト。メディアで取り上げられることが多いので大まかな内容は僕も知っていたけど、そのプロジェクトに T-Mobile が協賛して OLPC XO(このプロジェクトで製造されたノートパソコン)を1台購入するともう1台が途上国に寄付され、かつ、T-Mobile Hotspot の1年間の使用権がオマケで付いてくるらしい。

すぐに eBay へ移動して T-Mobile Hotspot OLPC で出品を検索すると、このオマケを転売している出品が即座に見つかる。件数はあまり多くなく5件ほど。アメリカ国内はもとより、「オマケで貰ったけどカナダ在住だから使えね~」とか「ドイツ在住だからやっぱり使えね~」といったアメリカ国外からの出品もある。暫らくウォッチすると、大体 50 ドル前後で落札されている模様。普通に契約したら月額 $30 x 12ヶ月 = $360 の出費だから、僕にとっては激安と言っても過言じゃない。$60 ほどで即決可の出品があったので、買いはぐれる前に購入させてもらった。PayPal で決済すると出品者から PIN コードがメールされてきて、オンラインでアカウント開設したらその日から1年間 Hotspot が使えるとのこと。早速サインアップして実際に Starbucks で試したら問題なく使えた。超お得な買い物だったな。

これで僕の Hotspot 接続も1年間は繋がったなぁ。1年後にも何か出物があったらいいんだけど。

2008年05月21日 (水)

Verizon Wireless の国際通話契約ができず - [携帯電話]

先日契約した Verizon Wireless の携帯電話だけど、どの通話プランを選んでも国際通話は含まれていない。カスタマサービスにリクエストして国際通話可能なようにアカウントを変更してもらう必要があるらしい。試しに日本の電話番号をダイヤルしてみると、暫らく無音が通じてから「国際通話をしたければカスタマサービスに電話しろ」の自動アナウンスが流れる。僕は日本のクライアントとこの電話でやり取りすることも有り得るので、早速カスタマサービスに電話して国際通話をリクエストしてみたものの、「新しいお客様は加入後3ヶ月以上経過しないと国際通話プランを追加することができません」と言われる。そういう規約なら仕方ないのだけど、ダメ元で「要求された額だけデポジットするから開通させてよ」と頼んでみたがあっさりダメと言われて撃沈。というわけで、あと3ヶ月は新しい携帯電話で国際通話はできないことが決定。以前のプリペイド電話機を残しておいたので、当面は2個持ち歩かないとダメそう。国際通話を使う人が別キャリアから Verizon Wireless へ移る場合には注意が必要だな。

2008年05月20日 (火)

シリアルマウスを調達する - [パソコン]

今更シリアルマウスでもないのだけど、機器間の接続インタフェースを製作していて「何か簡単なプロトコルでデータの送受テストをするのに役立つデバイスが無いかなぁ」と思いを巡らせていたら「シリアルマウスでいいじゃん?」とひらめく。まあ言うならばシリアル接続の「ダムデバイス」という感じか。だけど量販ショップの店頭で探してみたけれど既に扱っておらず。店員に聞くいても「何に使うの?」と逆に聞かれるのもうざいのでおとなしく帰宅し、eBay で中古マウスを $1.99 で購入。送料の方が高くついた。そして昨日やっと到着。昔のマウスは皆こんなだったんだよなぁと回顧心に浸ることしばし。

DSCF5384.jpg DSCF5385.jpg

Powered by
Movable Type