2005年12月アーカイブ

[ケータイウォッチ] スパイシーソフト、通信可能な3G向けVアプリを配信可能に
一般の人向けには、まずはこのニュースは何を意味するのかから話さないといけなさそうですが・・・

Vodafone端末向けJava「Vアプリ」の場合、通信やら端末内ストレージへのアクセスやら、今話題の「個人情報」に関わるような機能が利用できるAPIを「セキュリティ対象クラス・メソッド」と呼び、利用に制限を課すことにしています。具体的なAPIリスト(appgetより、該当ページは認証が必要なため勝手に転載)

で、具体的な利用制限は、アプリ開発者に「オフィシャル登録」をさせるというものです。まぁいってみれば、身元確認などを伴う書類審査です。審査をするとこは、Vodafone自信ではなく、アプリ配信を行う主体である「コンテンツアグリゲータ」です。一般人向けのコンテンツアグリゲータは、アプリ☆ゲット(スパイシーソフト)モバイルゲームチャンネルがあります。

っと、ここまでが2G端末までの話。話がややこしくなるのが、3G端末投入に当たってまた別の制限を課してきたとこです。ここでいう3G端末とは「V」が取れた3G対応端末以降を表していて、それ以前のは対象となりません。技術文章上では「3GC端末」ということになります。

3GC端末では、上記の「セキュリティ対象クラス・メソッド」とはまた違ったAPI群を定義し、それを利用する際に「オフィシャル登録」とはまた違った制限を課すことになっています。このAPI群は、大まかには上記の「セキュリティ対象クラス・メソッド」とほぼ一緒と思っていいです。一部MIDP 2.0の新機能やらが追加されているという感じです。

制限のかけ方はMIDP 2.0で定義された「Trusted/Untrusted MIDlet Suite」を使っていて、早い話が、PKIによる署名が有効であればTrusted MIDlet扱いで動き、そうでないならUntrusted MIDlet扱いで動く、てなもんです。で、Trusted MIDletでないと、この制限されたAPIを使うときに端末が拒否動作をするわけです。

んで話はここから。オフィシャル登録している作者ならばこのTrusted MIDletとするための署名を自由につけられるならば話はわかりやすいんですが、この署名が全くできなかったというのがこれまででした、少なくとも一般作者では。3GCな端末が発売されて1年たつのに署名付きアプリを配信できないとは何事だ、という感じでVodafoneを見限った人も少なからずいることでしょう。

んで今回、その署名付きアプリに対応したというのが上記のニュースになるわけです。えぇ、長かった。理解していただけましたでしょうか。。・・・ここまでは本題じゃないんですがね。

で、ここからが本題です。

今回のニュースに関し、スパイシーソフトからな〜んにもリリースがないです。「署名つきに対応した」というふつーのリリースはもちろんのこと、「どうすれば署名付きになるのか」「オフィシャル登録とのかねあい」などなどの情報がいっさい告知されていません。私は2ちゃんねるのスレ(ここここ)やニュースサイト(インプレスITmedia)に張り付いている変人だからこそ署名対応の話を知り得たわけで、そうじゃない人にはどうするんの?と思うわけです。ケータイウォッチが、このニュースのソースをどこから仕入れてきたのかというのも謎です。

また、おそらく署名対応にするためのシステム変更が原因と思うんですが、トラブルが起こってます。上記のように署名付きに関しては3GC端末だけのもののはずなんですが、3GC以前の2G端末(P5端末以降)を対象としたアプリでトラブル起こってます。もう少し具体的に書くと、JSCL-1.2.0のStorageConnectionを使うアプリで3GC以前のP5端末向け(P6/P7端末にも上位互換で対応)のものをアップロードするとチェックでエラー扱いされちゃいます。(エラーの内容 このエラーは「オフィシャル登録」しか使っちゃいけない機能、「オフィシャル登録者」でも使っちゃいけない組み合わせ、を自動で検出してチェックするシステムでエラーが出ているものです。

上記のように、署名付きに対応したことすらふつうは知り得ない情報で、署名付きはあくまで3GC端末向けの話でそれ以前の端末向けとは関係ないはずで、ひょんなとこで変なトラブルに巻き込まれてしまったなぁというのが今回の感想です。

今回の件で思うのは、一般クリエータ向けのVアプリ配信専門ポータルってのがいかに商売として成り立っていないかということです。たぶんまともな対応を取れるほどのサポート体制になっていないんでしょうね、スパイシーソフトさん。コンテンツアグリゲータを通してしか一般作者がアプリを公開できないというVodafoneの仕様上、コンテンツアグリゲータに認定してもらえること自体がある程度権利になります。ビジネス向けはおいとくとして、上記のように一般向けのポータルはたった2つしかないので、その権利をうまく使えば、Vectorのケータイ向け版を作れるというビジネスモデルでのベンチャーだったんでしょうけど。

データフォルダアクセスや通信に制限があるものの自由に配布できるiアプリ、Javaを捨てBREWに向かい法人向けのみにシフトしたau、つっこんだ機能が使えるものの配布がコンテンツアグリゲータのみに制限されたVアプリ。根底には、今のPCのようなウィルスだらけなプラットフォームにはしたくなかったという思いがあっての制限だったんでしょうけど。

MIDP 2.0準拠でキャリアがいっさい口出ししていないっぽいWILLCOM・・・というかサンヨーが出てきて、この辺の考えも変わってくるんでしょうか。

修理に出してたルータが返ってきた

ルータ(NECのWR6600H)が壊れて修理に出してた件ですが、昨日修理先から返ってきました。修理されて返ってきたはずなのに製造番号が変わってるという点にはあえてつっこまないことにします。

で、修理に出したのが金曜日の夜・返ってきたのが日曜日の昼、なんだこのめちゃくちゃな早さは。。夜に出したんで実際に運ばれるのが次の日(=土曜)〜その次の日(=日曜)、メーカの修理なんで土日休んで、月曜に修理して送り返し、家に返ってくるのは火曜日かな、と勝手に想像していたのが間違いでした。。

修理に出すのも、サポセンが集荷の手配してくれ、運送業者の包装サービス付き。上記のようにめちゃ早の対応で、しかも配送には飛行機まで使ってるみたいだし。返ってきたルータは超厳重な包装しまくりの状態。なんだこの徹底されたサポート体制は。もともとパソコンの修理体制の中に周辺機器の修理体制も盛り込んじゃってるという形で動いているようで、単なるルータとはいえ、PC本体サポートと同等の体制で対応してくれたってことなんでしょう。でも、たかだか2万円の無線LANルータ・子機セットのためにそこまでサポートして元取れてるんですか?>NEC

で、なんで壊れたのかがわからないので修理内容が気になるんですが、「修理しました。もうOKです。」くらいにしか書いてなくてちょっと残念。まぁ完全にいかれているようだったんで、なんで壊れたかなんて修理の人にもわからんのでしょうけど。

壊れた原因で気になる点といえば、SSH(22)をつつく変な人があまりにも多かったので、壊れる1週間前にSSHを1022で動かすようStatic NATテーブルを書き換えたことくらいです。これが原因だとは思えないですし、これが原因だとしてもこれくらいで壊れるのもイヤですね。

Static NATの設定でポート番号の書き換えができない、DHCPで割り当てるIPアドレスをMACアドレスで縛る設定ができない、設定変更するたびに再起動を要求される、あたりが気になる点ですが、それ以外は快調だっただけに、今回の件はちょっと不意をつかれました。

goo blogが提供しているトレンドランキングってのがあります。トレンドランキングとは何かを改めて説明するのはめんどいので簡単にすませておくと、最近48時間以内にかかれたブログを対象にブログからリンクされたページをカウントし最も多くリンクされたページから順にランク付けするってものです。

前々からこれには興味を持っていて、これを使ってなんかおもろそうなものを作れないかなぁと思い数ヶ月前からトレンドランキング結果をちまちま保存してアーカイブしてきたんですが、とりあえず今回そのアーカイブされたものを表示するものを作ってみました。たとえば「http://www.rarul.com/trend/index.php?200510200115」とアクセスすると、ああ2004年10月20日の午前1時頃は古田敦也公式ブログに注目集まってたんだなぁ、とわかります。ちょうど監督就任が正式発表された頃ですね。・・・ってそれだけです。まだ2ヶ月ちょいしかたまってないのであまりありがたみがないかなぁ。

本当は、アーカイブされたものをいろいろ解析してみればトレンドランキングの仕様の「最近48時間」の48の部分を拡張できるかなぁ、と思ってたんですが、どうもそう簡単にはいかないようで。移動平均の差をとってhogehogeすれば・・・と思ってたんですが、それだけではうまくいかないですよ。なんかいいアイディアないですかねぇ。

「うまくいかない」をもう少し具体的に書いておくと、トレンドランキングに表示されるのは上位30件までなので31件目以降はどのくらいのリンク数を得ていたのかわからない、「$(t)の時のトレンドランキング」と「$(t-1)の時のトレンドランキング」の差をとっても「$(t)の瞬間のリンク数」-「$(t-48H)の瞬間のリンク数」しか出てこずそこから身動きとれない、など。

興味があるうちはトレンドランキングをアーカイブ保存し続けます。興味がなかったら知らない間にアーカイブするのが終わってるでしょう。

ルータがお亡くなりになられました

家で使ってるNECのWR6600Hが急死されました。享年5ヶ月でした。

・・・5ヶ月かい!! いくらぺーぺーのコンシューマ向けルータとはいえ、常時稼働低負荷で5ヶ月でなくなるとは情けない。そなたを保証期間内の無料修理送りにして進ぜよう。っというわけで、明日朝一で電話します。

んで、代わりに動いているのがcorega BAR SDという超ぺーぺーのしょぼすぎるルータです。なので、今変にrarul.comを攻撃されちゃうとすぐにルータがハングアップしてアクセス不能になっちゃいます。rarul.comの利用者は良識ある方々ばかりだと思いますので、いらぬ心配は不要だと信じております。

この影響により、'05/12/14(Wed)14:30 - 19:00ごろrarul.comにアクセスできませんでした。

Postfix+SpamAssassin

VineLinux3.2の場合、apt-get spamassassin で入る。でもちょっとバージョンが古いので、気にする人はソースとってきてコンパイルするなりしてください。

/usr/share/doc/spamassassin-2.64/sample-japanese-local.cf に日本語環境向けの設定ファイルがある、でもデフォルトのままではあまりよくないような気がする。(でも私はほぼそのまま使う)
/etc/mail/spamassassin/local.cfへコピーしてちょこちょこ編集

vi /etc/mail/spamassassin/local.cf
report_header 1
rewrite_subject 0
bayes_auto_learn 1
bayes_path /var/spool/bayes/bayes
bayes_file_mode = 777
などなど。
/var/spool/bayes/bayesをベイズ理論による学習に用いる設定にしてる。みなで共有する場合は、777で作ってあげましょう。

/sbin/chkconfig spamassassin on
/etc/init.d/spamassassin start

spamc < /usr/share/doc/spamassassin-2.64/sample-spam.txt |less
で動作確認、ちゃんと
X-Spam-Flag: YES
X-Spam-Checker-Version: SpamAssassin 2.64 (2004-01-11) on yuika
X-Spam-Level: **************************************************
X-Spam-Status: Yes, hits=1000.0 required=5.5 tests=GTUBE autolearn=no
version=2.64
などのヘッダが入っていればOK

/etc/postfix/master.cfの編集
# 既存の設定を書き換え
#smtp inet n - n - - smtpd
smtp inet n - n - - smtpd -o content_filter=spamassassin
# 新しく項目を追加
spamassassin unix - n n - - pipe
user=rarul argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}

このmaster.cfの書き換えにより、Postfixがローカル配送する前にSpamAssassinをフィルタとして通すようになる。書き換えた後「/etc/init.d/postfix restart」で/var/log/maillogにエラーがないか確認。少なくとも私は、コンソール上では「起動成功!!」みたいに表示されておきながら実は動いていない(ログにもエラーあり)なんて状況になったもんで。

あとは、正データ・負データから学習してやればOK
sa-learn --spam /home/rarul/spam
sa-learn --ham /home/rarul/ham

でも、学習の甲斐なく、今のところスパムが素通りの模様。何が悪いんだろ。

イルミネーションの罠

某所のイルミネーションイベントより。みんな「きれい」とかいっていますがどう見ても発光ダイオードです。 本当にありがとうございました。

ケータイでぴろりんとかフラッシュ付きで短時間露光とか、そういう写真を撮ってる人を見るともはや殺意を覚えてきてしまいました。ここで「感度が・露出時間が」とかつっこむと「こいつはヲタだ」と思われてしまうんでしょうね。そういうやつを世間ではヲタと呼ぶのならオレはヲタでかまわないや、と変に開き直ってしまいました。

MIDP 2.0 for WILLCOM メモ

今回Java対応してる端末はWX310J (日本無線)WX310SA(三洋)W-ZERO3(シャープ)。てか、Windows MobileなのにJavaですか、へぇ。JBlendだから、別にMS vs Sunはどうでもいいか。

MIDP2.0メモ(ん・ぱか工房)
willcom Javaアプリスレッド vol.1
WILLCOM Javaアプリ(PukiWiki)
画面サイズ、フォントサイズ、ヒープサイズ、データフォルダへのアクセスあたりを整理しなきゃダメかな。

JSR 75の「FileConnection Optional Package」が使えるらしい。「file://localhost/」でデータフォルダにアクセスできるらしい。「file:///」じゃないのか?"/"が1本足りないような。JSCLのStorageConnection(com.j_phone.io.StorageConnection)に似すぎ、Vodafoneがcommitしたのか知らん。FileSystemRegistry#listRoots()(javax.microedition.io.file.FileSystemRegistry)でルートディレクトリ集合を得られる仕様なので、「file:///localhost/」を直接指定するのはよくない気がする。「Possible Root Value」が/から始まってないとこでミスりそう。。*.jadに「MIDlet-Permission: javax.microedition.io.Connector.file.read」を忘れないように。

エミュで実行中、ちょっとでもRecordStore(javax.microedition.rms.RecordStore)にアクセスするたびにPCのHDDがガリガリとお忙しく動く。仕様なのか私の環境が悪いのかがわからん。実端末で問題になるのかもわからん。とりあえず終了時(MIDlet#destroyApp)にだけ書き込むようにしてみた。そしたら終了時にエミュがエラーはきやがる。destroyAppメソッド処理がが5秒以内に終わらないと強制終了させられる「5秒ルール」があったような気がしないでもない。Vodafoneには、アプリ終了時にdestroyAppが呼ばれる保証がないとかいう意味不明な仕様もあったし、困ったもんだ。C:\WTK22\appdb\DefaultColorPhone\run_by_class_storage_conf.dbがRecordStoreの保存先、エミュのRecordStoreを消すにはこのファイルを消せばよい。

Gauge(javax.microedition.lcdui.Gauge)はエミュでは視覚的なメータしか表示してくれない。おかげで、今現在の値がわからない。不便だ。横に数値も添えてくれればいいのに。CustomItem(javax.microedition.lcdui.CustomItem)使えばそういうのを自作できるようになったが、Form(javax.microedition.lcdui.Form)の上で行儀よく振る舞わなければならないItem(javax.microedition.lcdui.Item)の仕様上、CustomItemの実装に課される制約が重く感じる。こんなの使うくらいなら、Form使うのをあきらめてCanvas(javax.microedition.lcdui.Canvas)使うだろうな、ふつう。(わかりやすくいえば、ボタンやコンボボックスやチェックボックスなどのコントロールがItemにあたり、そんなコントロールを自作できるようになってるのがCustomItemってことです。コントロールとしての共通の振る舞いがCustomItemにも求められるため、実装上注意しなきゃいけない仕様がCustomItemにはたくさんある。)

JSCLのFEPControl(com.j_phone.ui.FEPControl)にあたるものがMIDP2.0にはなくてちょっと困る。FEPControlは、処理の流れをブロックしてユーザにテキストを入力してもらうと、ブロックした制御が動くと同時に入力してもらったテキストが返ってくる、というように使える。この流れはTextField(javax.microedition.lcdui.TextField)では代用できない。TextFieldでは、入力してもらったテキストが引数となるようなコールバック関数をListenerとして提供するのが限界か。

JSCLのcom.j_phone.util.GraphicsUtil#drawRegionがほぼそっくりそのままjavax.microedition.lcdui.Graphics#drawRegionとなってる。

あと、エミュでプロポーショナルフォントになっててビビった。まぁプロポーショナルだったのはさすがに英数だけだったけど。Font.FACE_SYSTEM(javax.microedition.lcdui.Font)じゃなくてFont.FACE_MONOSPACE使いなさいってことか。

まだメモりたいことがあった気がするけど思い出せないのでここまで。

このアーカイブについて

このページには、2005年12月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2005年11月です。

次のアーカイブは2006年1月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.5.0