2012/03/31

Androidでhttp通信するアプリをJunitでテストする

テストプログラムが流行り。というか、複雑になったソフトをexcelシートにまとめた条件入れてポチポチこなしていくのは限界なので、当然の流れ。 なので、AndroidのアプリもJUnitでテストしてみる。

android.jarがclasspathに含まれていると動かない、というのはあちこちで見かける通りなのだが、android.jarを除いたら、通信で使っているhttpclientのライブラリが見つからないとのエラー。 2010-08-24 - にゃんだふる日記によると、android SDKで使用しているのはApache HttpClient 4.0beta1相当らしい。ので、Index of /dist/httpcomponents/httpclient/binaryからhttpcomponents-client-4.0-beta1-bin-with-dependenciesをダウンロード、libディレクトリを丸ごとTestプロジェクトにコピー。srcディレクトリとlibディレクトリが同じ階層に並ぶようにする。
これらのライブラリは、JUnitでテストするときだけ必要なので、テストプロジェクトのライブラリには加えないでおく。 Eclipseから実行するときの設定で、クラスパスにこれらのライブラリを外部Jarとして加えればよい。


2012/03/11

RTX1100でL2TP Serverを立てる

RT107e/RTX1100/RTX1500 ファームウェア公開-Rev.8.03.92 | ヤマハの音とネットワーク製品を語るで、 RTX1100でもL2TP Serverがサポートされるようになった。古い機種でもちゃんとメンテナンスされるどころか、機能追加も行われるから、Yamaha Routerはいいよね。
設定については、ドキュメント L2TP/IPsec を見ればOK!なのだが、注意点。IPsecのpolicyで暗号アルゴリズムと認証アルゴリズムを選ぶ時、何でもいいというわけではないようだ。まぁ、接続してくるクライアント側と同じにしないと通信できないのだが。あと、コマンドラインのヘルプだとアルゴリズムが1個しか表示されないが、暗号と認証の2つを指定する必要がある。1個しか指定していなくてもエラーにならなかったけど、接続時のpolicyの調整が失敗する。


2012/03/10

バックアップのタイミングを調整する

便利なTime Machineではあるものの、バックアップ中はやっぱりCPUやネットワークのリソースを使うので、実施タイミングを調整したい。
ということで、
の2つが見つかった。
平日は帰宅してから寝るまで、土日は朝から寝るまで、バックアップはしないようにすると、逆に、バックアップする時間は
  • 平日は昼間と深夜
  • 土日は深夜
ということになる。
どちらを使っても設定パターンは多くなる。また、バックアップ開始時間を調整するだけなので、夕方にスタートしたバックアップが夜になっても終わっていない、ということが起こる。
ま、しばらく使ってみてから判断しよう。


2012/03/06

Windows8を入れてみた

Consumer Preview版ということで、まだしろーとさんお断り、検証用途のみという状態だけど、仮想環境を作って入れてみた。
HostはMacBook Air上のVirtualBox。設定は




画面は、[Windows 8] VirtualBox(Windows 8のVM)に解像度追加に従うと、幸せになれる。


2012/03/03

CloudCoreでIPv6を使う

CloudCore(クラウドコア)|KDDIウェブコミュニケーションズ。 破格の値段なので、申し込んだ。64bit版CentOS 5.7。監視はいつものようにMunin。IPv6は必要なので、6to4で。
下記のページを参考に。
そして、muninのpluginの1つであるmultipingで各サイトまでの時間を定期的に測定する。6to4のgatewayが混んでいるのか、munin nodeへのアクセスの度にエラーメールがポロポロ飛んできて鬱陶しいので、パラメータを調整。/etc/munin/plugin-conf.d/munin-nodeに
[multiping]
env.ping /bin/ping6
env.ping_args -c 1 -W 1
env.host ipv6.google.co.jp aaa bbb
env.names Google aaa bbb
と記述することで、タイムアウト待ちで他のpluginも道連れ、という事態を防止。もうIPv6のアドレスはデフォルトで割り当ててもいいと思うけどなぁ。わざわざサーバーを借りようとする人を相手にしているんだから。



2012/02/25

Time Machineが止まるのはSpotlightのせい?

Time MachineでNetwork上のサーバにバックアップをとるよう設定していると、時々、ネットワークをデータが全然流れていないことがある。
アプリケーション→ユーティリティ→コンソール.app を開いて、system.log を確認。すると、
Waiting for Spotlight to finish indexing ... とあった。Spotlightのインデックスを作るので、バックアップが止まっていると。
ググってみると、OS X Lion: Disable Spotlight Indexingというページ。mdutilコマンドでコントロールできるらしいので、ターミナルでmanして確認。

mdutil -saで現在の設定状況を確認すると、Time Machineのディスクだけではなく、そこのBackups.backupdbに対しても設定されている。インデックスの対象外にするには、これも指定する必要があると。
sudo mdutil -i off バックアップディスク/Backups.backupdbとして、しばらく様子見。当然のことながら、バックアップディスクの名前にスペースが入っていたら、'バックアップディスク/Backups.backupdb'とすること。


2012/02/19

Cloud上にTime Machineサーバーを用意する-その3

前回までで、クラウド上のサーバーをFinderから指定して接続できるようになったし、その状態で、Time Machineのバックアップディスクとして選択できるようになっているはず。できていないのであれば、先に進まずに設定を確認しよう。先に進めば進むほど、うまくいかないときの調査が難しくなるのだ。

今回は、VPN経由で接続できるようにする。
手軽にやるには、OpenSSHのポート転送機能を使うというのが考えられる。ただし、設定にはちょっとコツがいるようだ。Tunneling afp over sshが参考になる。
で、どうせならhttp proxyを超えられる方法がいいなと思い、Simple Repeater `stone'を使ってみたのだが、うまくいかなかった。
というわけで、OpenVPN - Open Source VPNを使用する方針で進める。
OpenVPNの解説はググるとよく見つかる。
などあるが、OpenVPN 2.2でやってみる。設定ファイルの記載事項がバージョンによって微妙に違ったりするので、ググった時は注意。

まずはサーバー側。rpmでさっくり入れる。
設定は、OpenVPN.JP 日本語情報サイト - 静的鍵 Mini-HOWTOを参考にする。
設定ファイルと静的鍵を/etc/openvpn/に置く。設定ファイルの拡張子は.confにしておくこと。
設定ファイルの中身は、こんな感じ。UDP 443で接続する設定にしてみた。
dev tun

ifconfig 10.8.0.1 10.8.0.2
secret static.key
comp-lzo
#user nobody
#group nobody
proto udp
#proto tcp-server
port 443
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
tun-mtu 1350
サーバー側のFirewallで、UDP 443を通すように設定しておくこと。

次、クライアント側。
先に、~/Library/openvpnというフォルダを作成し、そこに、下記のような設定ファイルを用意。
remote Time MachineサーバのIPアドレス 443
dev tun
ifconfig 10.8.0.2 10.8.0.1
secret static.key
comp-lzo
#user nobody
#group nobody
#proto tcp-client
proto udp
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
log-append /var/log/openvpn.log
tun-mtu 1350
  • remoteの行の最後の443は、サーバー側の設定ファイルのportで指定した443
  • proto udpはサーバー側とクライアント側と、同じ
  • tun-mtu の数字も、サーバー側とクライアント側とでそろえる
クライアント側はtunnelblick - OpenVPN GUI for Mac OS X - Google Project Hostingをインストール。フォルダ~/Library/openvpnの内容を見てくれるので、起動したのち、作成した設定ファイルを指定すればOK。サーバー側でopenvpnが起動していれば、接続できる。

ちゃんと通信できる状態かの確認をする。
クライアント側でTerminalを開き、ping 10.8.0.1とする。timeoutせずに、10.8.0.1から応答があればOK。

Terminalを開いているので、VPNで繋いだ時のサーバーの名前を登録してしまおう。
/etc/hostsにIP アドレスとサーバーの名前が書いてあるので、同じように10.8.0.1に対する名前を追加する。例えば、10.8.0.1    timetunnelとする。
この名前を使ってFinderから接続(afp://timetunnel)し、Time Machineの「ディスクを選択…」で選択する。

これで無事、VPN経由でTime Machineのディスクにアクセスするようになった。
バックアップのスピードは、ネットワーク、特に上りの回線速度に依存する。OpenVPNでのロスもあるのだが、それについてはyamata::memo: OpenVPNのスループットが参考になる。



2012/02/18

Lionのpostfixを動かし続ける

LionのPostfixは定期的に起きだして、用が済めば寝てしまう設定だが、いつも起きていたほうが都合がいいので、/System/Library/LaunchDaemons/org.postfix.master.plist を変更する。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
 <key>Label</key>
 <string>org.postfix.master</string>
 <key>Program</key>
 <string>/usr/libexec/postfix/master</string>
 <key>ProgramArguments</key>
 <array>
  <string>master</string>
<!--  <string>-e</string>
  <string>60</string> -->
 </array>
 <key>QueueDirectories</key>
 <array>
  <string>/Library/Server/Mail/Data/spool/maildrop</string>
 </array>
 <key>AbandonProcessGroup</key>
 <true/>
 <key>OnDemand</key>
 <false/>
 <key>KeepAlive</key>
 <true/>
 <key>RunAtLoad</key>
 <true/>
</dict>
</plist>


Cloud上にTime Machineサーバーを用意する-その2

Time Machineサーバーの立て方について、もうちょっと参考になるページをリストアップ。
LAN上に立てる時と基本的にはいっしょ。しかし、セキュリティを考え、プロトコルとしてafpovertcp(TCP 548)だけ通す。こうすると、Time Machineの画面の「ディスクを選択…」で表示されないが、あらかじめFinderのメニューにある「移動」→「サーバへ接続…」で繋いでおく(サーバアドレスにafp://サーバアドレス/)と、表示されるようになる。一度設定しておけばよいことなので、この位の手間は許容範囲だろう。それに、Finderで繋がらなければ何も始まらないので、設定確認という意味もある。

Time Machineの画面で設定できれば、とりあえずバックアップ開始!なのだが、結構時間がかかったりする。

  • 初回のバックアップはLAN上のサーバーに対して行い、scpでTime Machineサーバーにコピーする。
  • scpでコピーが終わったら、再度LAN上のサーバーにバックアップを行い、rsyncで差分をTime Machineサーバーにコピーする。

という手順でやってみた。

次は、このバックアップをVPNで行うようにしてみる。



2012/02/13

Cloud上にTime Machineサーバーを用意する-その1

Macを使っていて「いいな」と思うのが、Time Machine、バックアップ機能。便利なんだけど、MacBookだと、いちいち外付けのディスクを繋がないといけないし、だからといってNASに取るようにしても、結局、同じ場所にバックアップがあるので、地震がきたらアウト!Dolly Drive - OnLine Backup for Apple Time Machineというサービスがあるのだが、日本からだと非常に遅い。
で、NASに取れるのであれば、サーバー借りて同じようにやればいいじゃん。というわけで、CloudCore(クラウドコア)|KDDIウェブコミュニケーションズに借りて、作ってみた。多分、Amazon EC2上でも同じようにやれるはず。
Time Machineやるのに必要なのソフトがNetatalk - Networking Apple Macintosh through Open Source。ググってみるとたいへんそうなのだが、Netatalk 2.2.2 と CentOS 5 および 6 用パッケージの公開 - orrisrootの日記というのがあるので、ありがたく使わせていただく。ちなみに、CloudCoreは64bit CentOS 5.7。設定はNetatalkとAvahiを使ってFreeBSDマシンをTime Capsuleとして使う - mteramotoの日記を参考にした。
で、あとはfirewallを適当に設定すればいい(TCP 548)。messagebusとavahi-daemonが動いていないとNetatalkがエラーになるので、それも注意。
MacBookだと当然外に持ち出すわけで、そうすると通信が制限されている環境でバックアップを取る必要がでてくる。そこをどうするかというのは、また今度。


2012/02/12

MacBook Airが起動しなくなった!

ある日、帰ってきてみたら、MacBook Airが止まっていた。よーくみたら、電源アダプターのコードが外れていた。繋いでスイッチ・オン!。ログイン画面が出るはずのところで、ずっと歯車が回っている状態。4日ほど放置したら、ログイン画面が現れた。
ログインして数時間使ったのち、再起動させてみたら、また、歯車状態。4日も待つのは勘弁してほしいと思い、Single User Modeで起動してfsck。問題ないのでlogoutしたら、その画面のまま。USB Etherを繋ぐとデバイスを認識したとのメッセージが表示されるので、固まっているわけではない。
電源ボタンを入れなおして、リカバリーモードで立ち上げて、ディスクユーティリティを起動。ディスクをチェックしてみるも、問題なし。
このままでは使い物にならないので、ジーニアスバーに持ち込むと、

  • おそらくSSDがおかしくなっている
  • 場合によってはロジックボードの交換も必要になるかもしれない
というわけで、修理に出すことに。バックアップができていないことを告げると、リペアセンターではなく店舗修理で対応して、元のSSDを返却してもらえることになった。

問題は、MacBook AirのSSDのインタフェース。mSATAっぽいのだが、正式な情報がない。元データを失うと何のための店舗修理だかわからなくなってしまうため、手堅く対応製品を購入する。【 購入金額15,000円以上で送料無料 】【MacBookAir SSD用ケース】OWC Mercury On-The-Go Pro [...。高い。 製造元から買えば、為替の関係で少しは安くなるかと思ってみてみたら、Sold out。ということは、今あるこれを買うしかない!
届いてみたら、びっくり。茶箱ではなく、ちゃんとした製品の箱に入っていた。しかも、携帯用の皮のケースまで入っている。高くて当然。というか、皮のケースはなくていいし、ケースもこんなおしゃれな透明な奴でなくていいから、安くしてほしい。

修理からあがってきたので、さっそくSSDをこのケースに入れてMacBook Airに繋いでみる。USBバスパワーなので、ケーブル1本でOK。
ホームディレクトリは無事に残っていたようなので、Terminal上でコピー。残りはぼちぼちやっていこう。


2012/02/11

ZumeDrive終了→Pogoplug cloudへ移動

Zumodriveが危険なのでSugarSyncに乗り換え - ku-sukeのはてなダイアリーでやばそうと言われていたZumoDrive - あらゆるデバイスでメディアや文書をお楽しみくださいから、ついに終了アナウンス。ZumoDrive Shutdown FAQ / General / Knowledge Base - ZumoDrive Support
専用のダウンロードツールが提供される。How to use the ZumoDrive Downloader tool / General / Knowledge Base - ZumoDrive Support
では、データをどこへ持っていくか?Pogoplug: あなたのモバイルにクラウドストレージを。最近、クラウド上に無料で5Gの容量を提供しはじめたので、そこにする。
ダウンロードツールを使ってもいいのだが、Explorerでコピー。手元にないファイルはストリーミングで送られてくるので、いったんwork diskにコピーしてからPogoplugへ。ちょっと手間だけど、たくさんのファイルがあるわけでもないので。
コピーしたらファイルを削除。って、同期ができていない?Snow leopard上のドライブには、ファイルがまるまる残っている。ま、いいか。クライアントソフトをアンインストール。アンインストールしたらWeb Pageが表示されたけど、悲しいのは、サービス終了で移動しなければいけない利用者だよ。

最近、この手のクラウドストレージサービスの競争が激しくなってきている気がする。ZumoDriveやPogoplugはストレージドライブという形だけど、bitcasaはフォルダがそのままクラウドにつながっている形。Dropboxみたいだけど、共有するというアプローチではないみたい。ちょっと注目。



2012/01/08

DollyDriveのボトルネックはデータセンター?

MacBook Air --[VPN]-- Amazon EC2(California) -- DollyGrid(FL)
という環境で、バックアップ中なのだが、とても遅い。

左のグラフはEC2のVPNインタフェースのトラフィック。200kbps程度出ていたと思ったら、ここ数日は100kbpsを切る位まで落ちている。
VPNはADSL上り1Mbpsの回線で張っているので、帯域的には余裕だし、EC2のネットワークもまだまだ余裕。

となると、ボトルネックになっているのはDollyGrid?初回バックアップさえ終わってしまえば、この程度の帯域でも問題なく使えるということ?
このスピードだと、ちょっと他人には勧めにくいなぁ。基本的には、sshのtunnelでAFPを流しているようだから、似たようなサービスが出てきても不思議ではないよね?


2012/01/07

RTX1100をラックに取り付けた

Yamaha RTX1100をラックに取り付けた。良い感じ。
YRK-1000 19インチラックマウントキットは、RTX1100を上下に挟み込むような形になっている。また、下側のプレートには穴が開いていて、RTX1100の足が丁度収まるので、前後にズレてしまうことがない。写真下側のように、RTX1100の背面が見える形で取り付けてみた。


結構大きい箱に入ってくるのだが、中は2枚のプレート。もう少し薄い箱でもいいかも。


2012/01/04

ブックストッパーゲット!

技術書を読んでいると、ページを開いたままPCで試してみたり、調べてみたりということがある。この時、片手で本をおさえつつ片手で入力、というのは非常にやりにくい。
調べてみたところ、フリップクリップ/FLIP KLIP がいいらしい。送料を考えて、東急ハンズへ買い出し。
文具売り場に発見。プラスティックのカバーかなんかの中に入っているように思っていたけど、むき出しで台紙を挟んだ状態で、小さなかごの中に入っていた。注意深く探さないと、見落としてしまいそう。

分厚い本だとブックストッパー じゃなければ無理かなぁと思ったけど、試した感じでは問題なさそう。というか、ブックストッパー、レビュー見る限り、2個ないと意味なさそうだし、その割に出来が…って感じ。しばらくこれで様子見。

FlipKlip Book Holder, book open hands free, book clip page holders



2012/01/03

マウスが繋がらない


ADTEC Bluetooth Adapter AD-BTA2BUFFALO BSMLB02BK という組み合わせで、Vista上で使っていたのだが、暮れの大掃除でPCを動かした後から繋がらなくなった。

マウスの電池が切れたのかと思い、充電したての電池に交換したが、だめ。Adapterの接続が緩んだのかと思い、デバイスマネージャで確認したところ、問題なし。ググってみると新しいBluetooth Driverがあるようなので、Toshiba Bluetooth Portal:からダウンロード、インストールしてみるが、変わらず。



マウスを認識させようと、ウィザードに従って作業を進めると、デバイスを検索する画面まで進んでタイムアウトしてしまう。
困った!


2012/01/02

元旦からAmazon

元旦からAmazon。未読の山が残っているのに…。


2012/01/01

去年買ったもの

相変わらずSoftware Designは何となく買っているのだが、それ以外のもの。

「テスト」はExcel表ではなく、プログラムであるべきというスタンスなので、それに関する本。Excelに書かれた条件を設定してこなしていくなんて面倒なことはやってられない。そういうものこそ、プログラムで処理すべきであろう。コンピュータを使うことが恐ろしく安くなっているのだから、可能なことはコンピュータで処理すべき。それがプログラムのテストであっても。


そして、久しぶりにS.E.N.S.のアルバムがでたので、忘れずに購入。




2012年年賀状




2011/12/30

iTunesのアルバムアートを充実させる

iTunesのアルバムジャケット写真がないものがある。なければ埋めたくなるもの。
みんな考えることはいっしょなはずなので、ググッてみると、いいページを発見。
iTunesのアルバムアート(アートワーク)取得ツールまとめ - NONにある、 Voralent Broadwayを試してみる。

これは便利。候補のイメージがいくつか表示され、選択できるというのもいいのだが、既に選んだ人がいるイメージであれば、何人が選んだのか表示されるというのもGood。ソーシャルだね:-p