5丁目通信(仮称)

とある5丁目で活動する還暦を過ぎたWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。

投稿者: muneando

  • ストラップを追加で購入した話し

    ザックを背負ってカメラをぶら下げて歩くときに、首に負担のかからないストラップ。便利なのでもう一つ買った。自分で自作できるかもしれないけど。これでカメラ2台にザック2つで交換できるようになった。

    Google+: View post on Google+

  • 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ファイルフォーマットに期待です。

    著:加納勉, 編集:Webon編集部
    ¥480 (2025/04/23 15:16時点 | Amazon調べ)
    CQ出版
    ¥1,650 (2025/04/27 16:31時点 | Amazon調べ)

    電波を出すには必ずアマチュア無線の国家資格が必要です。電波法令を守って楽しみましょう。

  • 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.

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

  • CakePHP でのMongoDB でTRUNCATE TABLEの話し

    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ってなあに? といった状況です。もっといい方法があるかも。

    著:山田祥寛
    ¥3,366 (2025/04/25 12:34時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/04/25 12:34時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/04/25 12:34時点 | Amazon調べ)
  • とりあえずユーザー会を作るのか?

    PHPのマイナーなフレームワークを調べていたら、既に日本人によるユーザー会が立ち上がっていた。

    オープンソースのカンファレンスに行くと、とってもたくさんのユーザー会が存在することがわかる。まるでユーザー会立ち上げマニアがいるみたいだ。立ち上げたらキチンとユーザー会としての活動をしてくれればいいのだが、飽きたかどうかわからないが、放置されているユーザー会も多いこと。

    ちなみに前述のユーザー会のホームページの最終更新日は、去年の11月でした。国内のユーザー会が分裂してしてグダグダになって、周りから取り残されてしまったオープンソースのCMSもあったけ。

  • PHP対応したけど、MySQLは対応していないのね。SQLiteはあるか…

    PHP対応したけど、MySQLは対応していないのね。SQLiteはあるか。

    Embedded Link

    「さくらのレンタルサーバ」ライトプランにおけるPHP対応のお知らせ | さくらインターネット
    「さくらのレンタルサーバ」ライトプランにおけるPHP対応のお知らせ。

    Google+: View post on Google+

  • 格安タブレットの充電。その後・・・。

    どうもUSB経由では満充電できないようだ。確実の充電できるのは、ACジャックが合致したプリンストンのBluetoothヘッドセット付属のACアダプター。

    タブレットを買ったときに、一緒にACアダプターを買っておくべきだった。充電できるところを家の中で2カ所くらい確保してあると安心。

    Google+: View post on Google+

  • 格安タブレットを充電するためのAC-USBアダプターの話し

    最近買った格安タブレットのSmartQ K7ですが、充電アダプターは付属していません。USBケーブルから充電します。

    手元にあるAC-USBアダプターで充電してみたが、充電できないアダプターがあるようです。

    PCIの1個口のアダプターはダメ。ノーブランドの2個口もダメでした。充電できたのは、ダイヤテックのAC-USBアダプターでした。アンペアの関係でしょうか?

    ちなみにPCから直接つないだUSBケーブルでの充電はOKでした。これが一番安全かもしれません。あとはプリンストンのBluetoothのヘッドセットのACアダプターが、たまたまプラグがあっていたので、これでも充電できました。

    Google+: View post on Google+

    続きはこちらから