Low-level Activity API

Amazonで注文していた“Learning Python“が届いて、勉強開始。700ページもある。いつ終わるのか。

Python言語の勉強はまぁこつこつやるとして、少し気になっていたのは、この間書いたXO-1用の画像取り出しのスクリプト。やり方がよくわからなかったこともあって、Recordアクティビティがデフォルトでつけるタイトルの文字列”Photo by “で検索したのだが、このやり方だと、タイトルを変えられるともう検索に掛からなくなる。たぶんRecordアクティビティが翻訳されて、英語以外の環境で使われてもアウト。

正しくやるには、MIMEタイプがimage/jpegのものを引っぱってきて、しかもRecordアクティビティで作られたものだけを選んでやるべき。まぁ、それくらいだったら、APIさえわかればPythonがわからなくてもなんとかなるだろうと調査開始した(←Pythonの勉強よりこっちが楽しい)。

すると、ここにLow-level Activity APIのドキュメントが見つかり、どうもMIMEタイプを指定して検索することもできそうで、あとは、メタデータを見れば、そのデータを作ったアクティビティの”Bundle ID”(アクティビティ毎に指定される固有の文字列)が取れそうだということがわかった。

で、やってみたら、MIMEタイプを指定して検索するのはできた(なぜかえらく遅い)が、”Bundle ID”が取れない。どうも、”Bundle ID”ではなくて、本来”activity_id”のところに入るべき16進のIDが間違って入れられているようだ。うーん。

しょうがないので、dev.laptop.orgに出かけて行き、問題をレポート前回のは”Duplicate”でクローズされたが、今回はどうなるか。

(附記 2008-01-04)
なんと昨日の夜問題をレポートしたら、今日の午前中に直りました。早いなぁ。この調子なら、もっと問題を上げようかという気になる。とりあえず、(Abiword由来の)Writeでスポット変換できない件と、カメラで撮ったJPEGにExifヘッダがついていない件(まぁバグではないけど、せめて撮影日時くらい書いて欲しい)をレポートするかな。

(附記 2008-01-04)
Exifの件はもうレポートされてますね(Ticket #5622: Record doesn’t save EXIF data)。

(附記 2008-01-05)
ついでにSugarのDatastoreがらみでもう一個問題をレポートしてみたら、それはそういうものだからもっと勉強してくれというような返事が返ってきた。うーん、確かにSugarはそういう設計思想なのかもしれんが、正直言ってしっくりこない(何のことを書いているのかわからないですな、これでは)。もうSugarは忘れて、Debianでも入れるか、とも思うけれど、そんなことするんだったら、最初からASUS Eee PC買っとくべきだったよなぁ。うーん(うなってばかり)。

いまさらここで(しかも日本語で)ほえても仕方ないが、Sugarのユーザーインターフェースはそのままでもいいから、各プログラムが普通にファイルを読み書きできて、Journalは普通のファイルマネージャで、そのかわりプログラムのアイコンがクリックされたときは前にそのプログラムが終了した状態から始まる、くらいのデザインだったら良かったのになぁ。

(附記 2008-01-07)
Ticket #5860は”wontfix”でクローズされて、#5876がオープンされました。これ、結構面倒な問題だと思う。XOのJournalに、アクティビティの状態を保存しているレコードと、Activityとは直接関係のないレコード(要はただのファイル)が混在していて、しかもアクティビティによっては(例:Paint)ただのファイルとして扱えるレコード(Paintの場合はPNGファイル)にアクティビティの状態を保存することにしてるのが混乱のもと。だいたい画面下のブラウザのアイコンをクリックしてブラウザを使うたびにJournalにレコードが溜まっていくというのもいかがなものか。

やっぱり「アクティビティ」という概念を無理やり導入するところに無理があるじゃないかしらんと考えていたら、すでにクローズはされているものの、面白いTicketが見つかった。

Ticket #1053: OLPC needs a usable GUI (i.e. not Sugar)

Let’s move to a window system where the objects on screen are responsive to the user. Where programs are programs, and none of them are jargon “activities”. Where you can run more than the twelve apostles that are lined up along the bottom of the screen.

OLPC should abandon Sugar and install a working Linux GUI.

おれもそう思うぞ。

Leave a comment