#CakePHP でMissingModelException

ローカル環境からUnix系のサーバーのテスト環境に、CakePHPで開発したサービスを移行する。動かない。

PHPUnitでテストケースを動かすと内部エラーになる。ログを見るとMissingModelExceptionが出力されていた。

何のことはないモデルのファイル名が違っていた。Postモデルは、Post.phpを見に行くということ。これをpost.phpにしていた。Windowsではファイル名の大文字小文字は関係ないが、Unix系のLinuxでは気にしましょうということ。

以上、絶対に同じ間違いをしそうなので、覚え書きとして残しておく。

モバイルルーターのファームウェアのバージョンアップ

AndroidのAtermのアプリを久々に起動したらファームウェアのアップデートが来ていた。アプリからのバージョンアップの方法がわからないので、マニュアルを引っ張り出す。ボタンを長押ししたり、リセットを押したりと、マニュアルを見ないとバージョンアップの方法はわからない。

今回わかったことは、マニュアルは大事に取っておくことは重要ということ。

Google+: View post on Google+

Eclipseのファイルの切り替えを速くする。

普段プログラミングで使っているEclipseで、ファイルの切り替えが遅くなっています。上のタブをクリックして別のファイルに切り替えるだけでも、2~3秒待たされます。ファイルをオープンするときも待たされます。

たかが2~3秒でも反応がないと、イライラします。このままだと、このイライラが開発に支障がきたします。

新しくEclipseをダウンロードしてインストールしても変わりません。プラグインを入れすぎという原因でもなさそうです。

Googleさんに聞いてみると、メモリの設定でEclipseの起動が速くなるとのこと。早速試してみます。eclipse.iniに記述されているメモリの最小と最大の設定の部分を、以下のよう変えてみます。

-Xms512m
-Xmx1024m

するとサクサクファイルを切り替えることができるようになりました。

普段のPCはメモリをたくさん積んでいた方がいいですね。ちなみに今のPCは8GBです。まだまだです。

追記

しばらく経ったら、前と余り変わらない遅さになってしまった。

おそらくEGitかJGirtが原因なのかと思います。アンイントールしたらファイルの切り替えが速くなりました。便利だったのに残念です。

追記の追記

速くなったと思ったら、変わらず2~3秒ファイルの切り替えに待たされます。EGitでもなさそうです。

PHPカンファレンス2012に参加申し込み

PHPカンファレンス2012に参加申し込みをして。間に合ったようだ。

今年も会場が同じところだけど、去年のように部屋に入りきれずに、会場にいるのにストリーミングを別室で見ているのなんて、ばかなことが起こらないだろうか心配。

Embedded Link

PHPカンファレンス2012
こちらは参加登録用のイベントです。 カンファレンスの詳細な内容についてはPHPカンファレンス2012公式サイトを御覧ください。 同日・同会場で開催されるWordCamp Tokyoについてはこちらをご覧ください。 混雑状況予測の為に別途、セッション参加希望フォームの入力をお…

Google+: View post on Google+

タブレットのACアダプター購入

先日買ったタブレットですが、USB経由で充電するとなかなか満充電になりません。80%程で充電が止まってしまったりもします。。

そこで、タブレットを購入したお店で、このタブレットに適合するACアダプターを変換プラグと共に購入しました。1,700円ほど也。

このACアダプターだと、モリモリ充電できるようになりました。

In album 2012年8月27日(写真 1 枚)

Google+: View post on Google+

#MongoDB のセミナーと懇親会の参加

MongoDBのセミナーと懇親会に参加してきました。

セミナーは、MongoDBの概要と、ユーザー事例、AWSとMongoDBの関係、次の2.2の話。

懇親会に参加しましたが、何と10名ほどの参加。10genの方も参加。みなさん顔見知りのようで、私はどなたも知らない、アウェイ状態。

という中で、国内最大規模のMongoDBユーザーの方とお話しできました。印象に残ったのは、MongoDBのような新しいものに挑戦するには、相当な覚悟が必要なのですね。当たり前ですが。しかも、プロジェクトのメンバーすべてのコンセンサスを得られなければいけません。これは重要。海外では既に大規模の案件が出ていたようですが、それでも相当なプレッシャーがあったに違いません。

そう言えば、どなたとも名刺交換をしていませんでした・・・。

cron の設定ですべてコメントにすると。

cron の設定ですべての行に#を付けてコメントにして保存して終了。再度開くとすべて消えているのね。そんなものなのか。

今回やってしまってビックリした。cronの設定のバックアップがあったので事なきを得た。

php-adifをGitHubに公開しました。

アマチュア無線のログデータの交換フォーマットであるADIFデータフォーマットを解析して、PHPの配列に展開するクラスライブラリであるphp-adifをGitHubに公開しました。ここからダウンロードできます。バグ報告は、GitHubのPull Requestで受け付けます。

アマチュア無線は今となっては、とてもマイナーな趣味であり、しかもそのログ交換データフォーマットですので、ほとんど使われることはないでしょうね。もし、ログを取り込んで処理をするなんてアプリケーションを作成するときにお使いください。自分もこのクラスライブラリを使って、もっとマイナーなサービスを作成しようかな・・・。

今回はソースを公開するというよりも、試しにGitHubでどのようにソースを公開するかを理解するほうの実験の意味合いが大きいと思います。

ADIFのマルチバイト対応は難しい

アマチュア無線のログデータを交換するデータ形式にADIF(Amateur Data Interchange Format)というものがあります。趣味のプログラムでインポートクラスライブラリをPHPで作成してみました。

ADIFでは

Head Data Head Data Head Data
<eoh>
<call:6>WN4AZY<band:3>20M<mode:4>RTTY<qso_date:8>19960513<time_on:4>1305<eor>
<call:5>VK9NS<band:3>40M<mode:5>PSK63<qso_date:8>20101022<time_on:4>0111<eor>

のような形式になります。元々の仕様は、シングルバイトしか考えていないようなので、こちらに日本語を含んだマルチバイト文字を設定すると対応が難しくなります。見ての通り、コロン(:)の次にはデータ長が入ります。例えば、日本で一番使われている某ログソフトではシフトJISしか考えていないので、日本語を含んだコメントは

<comment:6>テスト

のようにマルチバイト文字は2バイトで出力されてしまいます。しかし、UTF8上では、2バイトに限らないので、このデータ長での指定は使えません。<>の区切り文字で解析していくことになります。コメントに<を使われたりすると、値の終了がどこだかわからなくなってしまいます。シフトJISのまま処理しようすれば、マルチバイト文字の2バイト目に<を使われれば難しくなります。

ADIFのドキュメントを読んでも<>:のような区切り文字をエスケープすることは記述されていませんので、どうしてもデータ長で値を読み込んで行くのでしょう。

某ログソフトのADIFのエクポートが、

<comment:3>テスト

のように、文字数で出力してくれればいいのにと思うのですが、昔のシフトJISを基準にしているので無理だろうなと思うのでした。後はADIFのバージョン3に記述されているXMLベースのADXファイルフォーマットに期待です。

#MongoDB をWindowsのサービスで動かす。

MongoDBの「Quickstart」の「Install MongoDB on Windows」に従って、サービスで動かそうとすると、

C:\>\mongodb\bin\mongod.exe --config=c:\mongodb\mongod.cfg
all output going to: C:\mongodb\log
logpath [C:\mongodb\log] should be a file name not a directory
Thu Aug 16 14:16:10 dbexit:
Thu Aug 16 14:16:10 shutdown: going to close listening sockets...
Thu Aug 16 14:16:10 shutdown: going to flush diaglog...
Thu Aug 16 14:16:10 shutdown: going to close sockets...
Thu Aug 16 14:16:10 shutdown: waiting for fs preallocator...
Thu Aug 16 14:16:10 shutdown: closing all files...
Thu Aug 16 14:16:10 closeAllFiles() finished
Thu Aug 16 14:16:10 dbexit: really exiting now

なんてエラーになってサービスに登録できない。ドキュメントの通りのままだと動かないようだ。

そこで、C:\mongodb\logに空のlog.txtというファイルを作って、c:\mongodb\mongod.cfgに

logpath=C:\mongodb\log\log.txt
dbpath=C:\mongodb\data

というようにファイル名まで指定してあげると

C:\>\mongodb\bin\mongod.exe --config=c:\mongodb\mongod.cfg --install
all output going to: C:\mongodb\log\log.txt

C:\>net start MongoDB
The Mongo DB service is starting.
The Mongo DB service was started successfully.

のように無事に起動できるようになった。