courier-imapをアップデートしようと思ったら・・・


今使っているqmail+vpopmail+courier-imapを最新版にしようと、依存性とか確認してみた。

すると・・・courier-imapが内部的に使う認証モジュールcourier-authlibにて問題発生。
現状は「0.63.0」ですが、「0.60.4よりvchkpwモジュールが削除」とのこと・・・
vchkpwモジュールというのがvpopmailと連動するためのモジュールなのでアップデート不可。

・・・・・・・・そういえば、そうでした。
すっかり忘れていましたよ^^;;;

しっかし、そうなると、代替策をどうするかなぁ・・・
LDAPモジュール or mysqlモジュールを使うようにいろいろシステム変更をする、ということになるのかな

Ginga-NCLとGinga-J


海外の地デジについて調べていたら、Ginga-Jなる単語が出てきたので調べてみた。

まず、基礎知識

・日本の地デジ形式 ISDB-T
・南米で採用されている地デジ形式 ISDB-TBもしくはSBTVD
ABNT=The Brazilian Association for Standardization (ブラジルの団体, 規格を定めている)
ARIB=Association of Radio Industries and Businesses / 一般社団法人 電波産業会(日本の団体, 規格を定めている)
SBTVD Forum=The Brazilian Digital Terrestrial Television Forum (ブラジルの団体)
DiBEG=Digitan Broadcasting Experts Group(日本の団体)
DVB=Digital Video Broadcasting Project(ヨーロッパの団体)
ETSI=European Telecommunications Standards Institute(ヨーロッパの団体, 規格を定めている)

海外の地デジ採用ニュースを追っていくと、DiBEG Newに「2011/10/19 モルジブで地デジ採用!」というのを発見。
他にどんなニュースがあるのかを見てみると、技術文章についてのアップデートがあった。(Update of ISDB-T International Harmonization Documents (ABNT – ARIB – SBTVD Joint Documents))

これの「6. Commonalities and Differences in the XML based multimedia coding scheme」に「6.1. NCL and the Ginga-NCL presentaiton environment」という形で、「Ginga-NCL」と、その後に「Ginga-J」という単語が登場してくる。

NCLはNested Context Languageの略で、XMLベースのアプリケーションを構成するための言語規格。
Ginga-NCLは、ABNT NBR 15606-2とABNT NBR 15606-5にて定義されている規格となっている。
この規格にはLuaによるスクリプト言語も含まれている。

また、Ginga-NCLには、ITU-R BT.1699-1で定義されているACAP-XおよびDVB-HTMLと、ECMAScriptのDOM level 1 API for BML for basic servicesにも対応している。

Ginga-NCLは、基本的には日本の地デジで採用されているARIB STD-B24の発展拡張系で、できることは、Ginga-NCLの方が多い。

Ginga-J(ABNT NBR 15606-4)も、ARIB-J(ARIB STD-B23)の発展拡張系となる。
どちらもJavaMEのJava TV 1.1をベースに拡張されている。
ARIB-Jの方は、ITU-T J.202ベースのDVB-GEM 1.2との互換がある。
GEMというのはMHPの拡張系で、MHP=Multimedia Home Platform、GEM=Globally Executable MHPというのがフルネームとなる。
ここら辺の関係はいろいろめんどいが、Introduction to MHP & GEMの図説をみるとわかりやすいだろう。

Ginga-Jで使われているJavaDTV 1.3というのはこれらをほぼ全て含んでいるらしい。

Ginga-NCL/Ginga-Jに関する資料はgingaオフィシャルにある。
Downloadページに、ブータブルのGINGA LIVE CDがあったり、VMware用の仮想イメージがあったりする。

ginga-NCL用のNCL Eclipseというのもあるが、現状英語による説明はない。

で・・・いろいろ見ても、いまだに分からない点が1つ・・・
なんで「Ginga」って言うん?
wikipedia englishを見ると「The name Ginga was chosen for the middleware in recognition of the culture, art, and constant fight for freedom and equality of the Brazilian people. Ginga is the fundamental movement in capoeira, and pronounced jinga; literally: rocking back and forth; to swing.」とある。
はしょって言えば、ブラジルがヨーロッパに植民地化されたあと、奴隷が武器を持たずに戦う技として作られていったカポエイラの基本的な構えが「ジンガ」といい、そこから名前を取った、と。

なお、以前はOpenGingaというプロジェクトもあったようですが、現在はつぶれてドメインは別物になっています。

Android携帯をBluetooth接続のGPSアダプタに見せるソフト


Android携帯のGPS/3Gネットワークによる現在位置検出機能を他の機器にもBluetooth接続で利用できるようにするソフトがあります。
Bluetooth GPS Output
10分間だけ使える体験版。
$1.99のBluetooth GPS Licenseを買うと制限が解除される。

Network/Bluetooth GPS
こっちは$1.99で販売しているアプリ。
Bluetooth接続とTCP/IP接続に対応している。
同じ作者のSolidSync Trip Tracker($1.99)で保存した移動ログを指定すると、実際には移動していないのに移動しているかのように機器に移動情報が送れるという機能があるので、GPS関連ソフトのデバグにも有用。

republic wireless


アメリカでrepublic wirelessという会社が、Android携帯本体を$199で買うと、それ以降の月々料金は$19だ、といってるサービスが始まったらしい。

Android携帯はLG Optimus で、Android 2.3での提供だとか。(ここの下のほうに記載あり)

売り文句は、$19/月。
wifiと3Gネットワークを、まるでハイブリッド自動車のように切り替えて使うから、安いんだ、と。

WHAT IS COST?を見ると、
・Unlimited minutes, data, & text (無制限の通話、データ通信、SMS)
・No contracts or early termination fees (長期契約や解約手数料無し)
・No overages, ever! (追加コストはない)
なんて、威勢のいい言葉が・・・

3G回線を使っても無制限で、$19っておかしいなぁ、と思っていたんですが、Androidcentralに「Republic Wireless — a great idea that’s not quite there yet」という紹介記事を発見。
「While not on Wifi, you’re limited to 550 minutes, 150 SMS messages, and 300MB data monthly while on Republic Wireless’ 3G network. 」

republic wirelessのページでは発見できなかった、「3Gネットワーク利用時は、550分の通話、150回のSMS送信、300MBデータ通信までが可能」という記載が・・・
3G接続時は無制限じゃない、というのは当然だなぁ、とは思うものの、それでも、この上限設定で$19って、結構安い気がしなくもない。

とはいえ、wifi主体でってのは、Androidcentralの記事の最後にあるとおり「I’ll have to wait for version 2.0」って感じがしますけどねぇ・・・

ま、どっちにしろ、アメリカの話なので、日本じゃ関係ないですけどね^^;;;

Androidでドコモ公衆無線LANに自動ログイン


ドコモの公衆無線LANサービス Mzoneがmopera Uスタンダードなら無料で使える、というので、mopera Uライトから契約変更してみた。

ドコモの手順によればAndroidの場合、SSID:docomoに接続した後、ブラウザ上でログイン処理を行わないといけない、ということになっている。
しかし、Windows系とか他の環境では、その処理も含めて自動的に行えるようになっているらしい。

では、標準ではないだけで、実現する方法があるはず、と探してみたところ、Android Marketで、mzoneconfというアプリがありました。
類似の機能を持つアプリは他にもありますが、mzoneconfの利点は常駐しないアプリで、Androidの無線LAN設定にMzone用の設定を追加してくれるだけ、という非常に割り切った作りである、という点です。

やってることは、手動で設定すると非常にめんどくさいことを、直接設定を書いてしまうことで実現している、という感じなようです。

Androidでは無線LANの設定をLinuxと同様にくwpa_suppilicantを使用して行っています。
Android 2.3の場合、wpa_supplicant ver 0.6.10です。

設定ファイルは、/data/misc/wifi/wpa_supplicant.conf にあります。

mzoneconfで設定を行ったあとの/data/misc/wifi/wpa_supplicant.confは以下のような感じでした。

ctrl_interface=wlan0
ap_scan=2
update_config=1

network={
        ssid="自宅のSSID"
        psk="自宅のWPA-PSKキー"
        key_mgmt=WPA-PSK
        priority=1
}

network={
        ssid="docomo"
        scan_ssid=1
        proto=RSN
        key_mgmt=IEEE8021X
        pairwise=NONE
        group=WEP104 WEP40
        auth_alg=OPEN SHARED
        eap=PEAP
        identity="ユーザ名-mopera@docomo"
        password="パスワード"
        phase2="auth=MSCHAPV2"
        priority=1000
}

Android側か、無線LAN側か、どちらの要因かはわかりませんが、うちの環境では上記設定では、無線LANを検出しなくなってしまいました。
元との設定差異をみた結果、おそらくは「ap_scan=1」が「ap_scan=2」になったことが原因なのではないかと思い、wpa_supplicant.confをファイルを直接書き換えました。
また、プライオリティが1000って大きすぎ?と感じたので、10としてみました。

ctrl_interface=wlan0
ap_scan=1
update_config=1

network={
        ssid="自宅のSSID"
        psk="自宅のWPA-PSKキー"
        key_mgmt=WPA-PSK
        priority=1
}

network={
        ssid="docomo"
        scan_ssid=1
        proto=RSN
        key_mgmt=IEEE8021X
        pairwise=NONE
        group=WEP104 WEP40
        auth_alg=OPEN SHARED
        eap=PEAP
        identity="ユーザ名-mopera@docomo"
        password="パスワード"
        phase2="auth=MSCHAPV2"
        priority=10
}

この変更後、再起動を行って、正常に動作することを確認しました。

ちなみに、mzoneconfでは、Mzoneアカウントを使ってのBB モバイルポイント(mobilepoint)および成田空港エアポートネットでの有料ローミングアクセスが利用できます。
その設定を有効にした場合にwpa_supplicant.confに追加される設定は以下の様になっていました。

network={
        ssid="mobilepoint"
        scan_ssid=1
        proto=RSN
        key_mgmt=IEEE8021X
        pairwise=NONE
        group=WEP104 WEP40
        auth_alg=OPEN SHARED
        eap=PEAP
        identity="ユーザ名-mopera@docomo"
        password="パスワード"
        phase2="auth=MSCHAPV2"
        priority=1000
}

network={
        ssid="NRT-AIRPORT"
        scan_ssid=1
        proto=RSN
        key_mgmt=IEEE8021X
        pairwise=NONE
        group=WEP104 WEP40
        auth_alg=OPEN SHARED
        eap=PEAP
        identity="ユーザ名-mopera@docomo"
        password="パスワード"
        phase2="auth=MSCHAPV2"
        priority=1000
}