2014年5月25日日曜日

20140524_yokohama.devtestingメモ

この本で言っているユニットテストとは?
 →オブジェクト間の振る舞いを表すテスト。
 あるメソッドを呼んで、それがどういった戻り値を返すといったことをテストするのではなく、
 あるメソッドにオブジェクトを渡した時にそれが内部でどう扱われているかといったことをテストする。


 振る舞いをテストするといった時にテストコードがスパゲッティになることを防いで、
 やるテストをはっきりさせること。

 メソッド名で振る舞いを表せれば、テスト内容も振る舞いに寄って行きそうだよね。

 ユースケースシナリオ

 ユースケースシナリオとユニットテストの間でこのデータがどこのテーブルと関連づいているかは
 テストする前にはっきりさせておく必要がある。

 列車事故が悪いのは、
 ・クラスの内部構造まで把握しなければいけないこと
 ・呼び出し元が期待した結果を一発で返していないこと
 ・テストを保守するときに難しくなる

 複数の責務がある場合にはその責務は全て分割されているのであれば、
 それをまとめる行為に別の名前があるから、その名前がメソッド名になる。                                   

2014年5月6日火曜日

Ruby On Rails + MySQL

下記あたりを参考に
参考1
参考2
参考3

config/database.ymlのユーザー名やパスワードを隠ぺいする方法。
参考

Ruby on RailsからMySQL接続に発生するエラー

Ruby on RailsからMySQLに接続しようとして下記エラーが発生

MySQLをインストールしてから再度実行でうまくいきました。(参考)


libmysqlclient.18.dylibがないと言われた場合。
参考

2014年5月3日土曜日

プロファイルがHIDの時RN-42とOSX間で通信が途絶える件について

RN-42レポート

秋月で売っている安価なBluetoothモジュールについて記す。

もともとこのモジュールをなぜ手にしたかというと
HHKBを無線化したかったからである。
http://addsict.hatenablog.com/entry/2013/07/27/164647

HHKBは無線版が存在しない。
しかも最近公式から下記のような商品が出た。
http://www.pfu.fujitsu.com/direct/hhkb/detail_enebrick.html

違う…違う…
俺(ら)がほしいのはそれじゃない…。

というわけでGWだし、参考サイト見る限り2日で行けそうと思ったのでやってみたわけだ。

しかし、ここで使ってるBluetoothモジュールRN-42に問題が発生しどうも動かない。
というわけで、悪戦苦闘した結果を伝えたいと思う。

HHKBの無線化は参考サイト通りやるだけで動くようになる(RN-42は秋月の評価版を使用)
http://akizukidenshi.com/catalog/g/gK-07378/
とても素晴らしい。
ただし参考サイトで使っているモジュールはRN-42HIDというもので秋月では手に入らないものになっている。
それとArduinoからRN-42への入力は分圧しているが、
私の環境では分圧しちゃうと信号が届かないので分圧はしなかった。
データシート見る限り分圧しないとモジュールが壊れる気はする。
分圧版
http://secretbase-of-forest.blogspot.jp/2014/04/rn42bluetootharduinoandroid.html
非分圧版
http://benkyo-chu.blogspot.jp/2014/04/rn-42-bluetooth-bluetootharduinoled.html

私の環境で秋月のRN-42評価版を使用した場合に問題が起きるのは、
通信相手としてMBAを選択した場合だけであった。

Windows7とiPhone5では問題が起きず通信が途切れることはないのだが、
MBAとの通信でのみキーボードとの通信が5〜6秒ごとに途絶え、その間のタイプが無視されてしまっていた。

調べてみるとArduinoとHHKBには問題がなく、
RN-42とMBA(OSX 10.9.2)間でのやりとりに問題があるようであった。

このことはRN-42に電源供給のみで他の部品を接続していない状況で
MBAとペアリングを行い、挙動を確認することで判明した。

この組み合わせでも一定間隔でRN-42のLEDが消え、かつBluetoothの接続がMBA側で途切れていることが確認でき、通信→切断→再接続…を繰り返していた。
これはWindows7やiPhone5間ではない挙動であった。
柱上変圧器さんと同じ症状である。[RN-42-EK HID版だが]
(下記コメント欄)
https://www.youtube.com/watch?v=I2gzqrchnlQ


参考サイトの作者に問い合わせを行って見たところ、
やはりRN-42HID版を手に入れてやるのが良いとの助言。
また、OSX 10.9 Marvericksで、途切れる症状は出たことがないとのこと。
参考サイトで同じ症状が出ているもなかさん(下記コメント欄)とも連絡をとってみたところ、
http://addsict.hatenablog.com/entry/2013/08/18/170204
GalaxyNexus(Android)では症状が出ずに、
MBP(OSX)で同じ症状が出ていたとのこと。

RN-42評価版とOSXの組み合わせ(プロファイルはHID)で症状が出るみたい。
取り敢えずもうネット情報でも太刀打ち出来なくなったのでサポートに聞いてみることにする。

誰か何か知ってたら教えて。

参考までにRN-42の設定は下記である。
Mode = Pair
Profile= HID
HidFlags=200
Authen=1
PinCode=1234