AndroidのAtermのアプリを久々に起動したらファームウェアのアップデートが来ていた。アプリからのバージョンアップの方法がわからないので、マニュアルを引っ張り出す。ボタンを長押ししたり、リセットを押したりと、マニュアルを見ないとバージョンアップの方法はわからない。
今回わかったことは、マニュアルは大事に取っておくことは重要ということ。
Google+: View post on Google+
とある5丁目で活動する還暦を過ぎたWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。
AndroidのAtermのアプリを久々に起動したらファームウェアのアップデートが来ていた。アプリからのバージョンアップの方法がわからないので、マニュアルを引っ張り出す。ボタンを長押ししたり、リセットを押したりと、マニュアルを見ないとバージョンアップの方法はわからない。
今回わかったことは、マニュアルは大事に取っておくことは重要ということ。
Google+: View post on Google+
普段プログラミングで使っているEclipseで、ファイルの切り替えが遅くなっています。上のタブをクリックして別のファイルに切り替えるだけでも、2~3秒待たされます。ファイルをオープンするときも待たされます。
たかが2~3秒でも反応がないと、イライラします。このままだと、このイライラが開発に支障がきたします。
新しくEclipseをダウンロードしてインストールしても変わりません。プラグインを入れすぎという原因でもなさそうです。
Googleさんに聞いてみると、メモリの設定でEclipseの起動が速くなるとのこと。早速試してみます。eclipse.iniに記述されているメモリの最小と最大の設定の部分を、以下のよう変えてみます。
-Xms512m
-Xmx1024m
するとサクサクファイルを切り替えることができるようになりました。
普段のPCはメモリをたくさん積んでいた方がいいですね。ちなみに今のPCは8GBです。まだまだです。
しばらく経ったら、前と余り変わらない遅さになってしまった。
おそらくEGitかJGirtが原因なのかと思います。アンイントールしたらファイルの切り替えが速くなりました。便利だったのに残念です。
速くなったと思ったら、変わらず2~3秒ファイルの切り替えに待たされます。EGitでもなさそうです。
cron の設定ですべての行に#を付けてコメントにして保存して終了。再度開くとすべて消えているのね。そんなものなのか。
今回やってしまってビックリした。cronの設定のバックアップがあったので事なきを得た。
アマチュア無線のログデータの交換フォーマットであるADIFデータフォーマットを解析して、PHPの配列に展開するクラスライブラリであるphp-adifをGitHubに公開しました。ここからダウンロードできます。バグ報告は、GitHubのPull Requestで受け付けます。
アマチュア無線は今となっては、とてもマイナーな趣味であり、しかもそのログ交換データフォーマットですので、ほとんど使われることはないでしょうね。もし、ログを取り込んで処理をするなんてアプリケーションを作成するときにお使いください。自分もこのクラスライブラリを使って、もっとマイナーなサービスを作成しようかな・・・。
今回はソースを公開するというよりも、試しにGitHubでどのようにソースを公開するかを理解するほうの実験の意味合いが大きいと思います。
アマチュア無線のログデータを交換するデータ形式に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の「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.のように無事に起動できるようになった。

CakePHPでMongoDBをつなげてテストデータの投入のシェルとかを書いています。
データの投入の前にMongoDBのコレクション(RDBならテーブルかな)の全データクリアをしたいのですが、今まではこのようにTRUNCATEをSQLで呼び出していました。
$this->Model->execute('TRUNCATE TABLE table);これはMongoDBでは動きません。MongodbSource.phpにはtruncate()というメソッドがりますが、どう呼び出したら動くかわからず、以下のようにしました。
$this->Model->query(array('$eval' => 'db.collection.drop();'));$evalってなあに? といった状況です。もっといい方法があるかも。
PHPのマイナーなフレームワークを調べていたら、既に日本人によるユーザー会が立ち上がっていた。
オープンソースのカンファレンスに行くと、とってもたくさんのユーザー会が存在することがわかる。まるでユーザー会立ち上げマニアがいるみたいだ。立ち上げたらキチンとユーザー会としての活動をしてくれればいいのだが、飽きたかどうかわからないが、放置されているユーザー会も多いこと。
ちなみに前述のユーザー会のホームページの最終更新日は、去年の11月でした。国内のユーザー会が分裂してしてグダグダになって、周りから取り残されてしまったオープンソースのCMSもあったけ。
最近買った格安タブレットのSmartQ K7ですが、充電アダプターは付属していません。USBケーブルから充電します。
手元にあるAC-USBアダプターで充電してみたが、充電できないアダプターがあるようです。
PCIの1個口のアダプターはダメ。ノーブランドの2個口もダメでした。充電できたのは、ダイヤテックのAC-USBアダプターでした。アンペアの関係でしょうか?
ちなみにPCから直接つないだUSBケーブルでの充電はOKでした。これが一番安全かもしれません。あとはプリンストンのBluetoothのヘッドセットのACアダプターが、たまたまプラグがあっていたので、これでも充電できました。
Google+: View post on Google+
iPodがダメならiPhoneということで渋谷のビックカメラで購入。最初からアップルのことだからiPodは修理不能と諦めていました。
手続きして30分ほどで引き渡し。説明、確認と、携帯電話を購入するときって、何でだんだん面倒になっていくのかな・・・。
早速、帰りの電車の中でアドレス帳の引き継ぎの設定を始めます。しかし、ネットワークにつながらないなんておっしゃいます。
家に帰って調べてみると、iPhoneのアクチベーションをしなければいけないのね。ビックカメラの店員さんは、何も言ってなかったな。
リセットしてアクチベーションを行います。途中、アップルIDをメールアドレスで入れろと言われたので、ツレのアドレスを入れたら既に登録していると怒られた。この辺りはよくわからなかった。Gmailのアドレスを入れたら何となくOKだった。皆さんよくiPhoneの設定がわかるのね。Androidの端末を持っていると、逆にわからないかもしれない。
アドレス帳の同期をとって、PCのiTunesとミュージックの同期をとって、保護フィルムを貼ってツレに引き渡して完了。何か仕事でiPhoneでチェックするときには使うことを申し渡しておく。
Google+: View post on Google+