beagleboard-eclairでマウス(未完
年末ぐらいからの色々。その1。
WebSocket が Android 2.0 (eclair) で使えたら良いなぁと思いつつ、
BeagleBoardでeclair動かしてみてたものの。
マウスが標準のAndroidだと未サポートってことで、ちょっと作りかけ。
色々なAndroidの実装というかリポジトリ覗いたんだけど、Android側に手を入れてる実装が多い。
Android側の更新が頻繁なことを考えるとKernel側でマウスを仮想タッチパネルに仕立て上げるほうが
良さそうっていう発想の元色々。
はじめはフィルタドライバで実装してたんだけど、Androidが拾ってくれない。
/dev/input/mouse とかは Android の EventHub は見てなくて/dev/input/event を見てる。
ということで evdev.c で EV_REL を EV_ABS にごまかしたりする仮想デバイスぽいドライバを。
カーソルの描画はOVL2使えば良いやって思ってたけど、微妙に失敗してるっぽい。
っていうか、androidがfbのダブルバッファリングに使ってるのか?
fbconかもしれん…けど見切れてない。
あと、画面の電源が入ってないときはタッチパネルのイベントを無視するっていうコードが、
Android側に入っていてそこだけは面倒でAndroid側修正した。
frameworks/base/services/java/com/android/server/KeyInputQueue.java:502 if (ev.type == RawInputEvent.EV_ABS) { send = true; }
とりあえずな現状のkernelパッチは続きに。
golang: 小ネタ集
・templateパッケージのデフォルトデリミタは"{","}"でJavascriptと相性が悪い
→さっさとSetDelims("{{", "}}");とかして変えた方がいい
(JavaScript外出しにしなさいって話もあるけど、それはそれでFileServerのハンドラが必要)
・htmlEscapeはtemplate.HTMLEscapeで
・Formの値は、req.FormValueで簡単に取得できる
goじゃなくてchromeだけど、
・ChromeのWebSocketはProxy環境下だと GET じゃなく、CONNECTで接続。
→ポート443(つまりhttpsのポート)使えばほとんどの環境で接続可能(なはず)
AVATAR観て(ネタバレなし)
ストーリー的なところはさておき、リアリティというか現実感が凄い。ドキュメンタリー見てたようなそんな感覚が残った映画でした。あとは最後のスタッフロール。山のように人の名前が・・・。すっごい巨大プロジェクト、成功お疲れ様でしたとPMP的な事考えたりするのは職業病w。
3Dがどうこうとかも有るけどそういうの抜きにしておヌヌめです。
golang: ARM用バイナリのクロスコンパイルに挑戦
cgoは試してない(クロスコンパイラの設定が面倒w)けど、ごく普通に動きましたよ。環境変数を、
export GOARCH=arm
にしてgoをコンパイル。5a 5c 5g 5lができたのを確認して、
$ 5g hello.go
$ 5l -o hello hello.5
$ file hello
hello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, stripped
をを。
BeagleBoardに持っていて実行。
# ./hello
hello, world
# cat /proc/version
Linux version 2.6.29-omap1-00007-gdebf08f-dirty (ku....@kumama) (gcc version 4.4.1 (0xlab) ) #8 Wed Dec 23 04:06:34 PST 2009
をを。
当たり前と言えば当たり前だけどなんか凄いw
来年はタブレットの年(たぶん)
既に始まっているといえば始まってるんだけど。
BIGLOBEがAndroid端末販売へ、アプリのマーケットプレイスも開設
Camangi、Android搭載の7型タブレット端末「WebStation」
”Win/Linux/Android”トリプルブート対応『Smart V7』
幻のタブレット「CrunchPad」、新名称「JooJoo」で発売へ
キーボードが外せるタッチスクリーン式ノートPC「Touch Book」
後、噂ながら、
Appleが1月にイベント開催 Macタブレット発表か?
などなど。
個人的にはリビングでごろごろテレビ見たりしてるときにちょっとネットしたいけどPC立ち上げるのは面倒(というかPCは立ち上がってるけどPC触るのが面倒)。とかいうときに、まともな(HTML5がサポートされてる)ブラウザが動くガジェットというかデバイスが有ればいいなぁと思ってて。(
BeagleBoardにHDMIでって思ってるけどEclairでマウスサポートをごにょごにょ中で実現に至ってなかったり。今はちょっとkernlいじってnfsrootにしてごにょごにょ中だけどBlog書いてる裏でCalendarSyncAdapterがNullPointerExceptionで落ちてますw)イメージ的にはタブレットPCというよりもどちらかというと大き目のデジタル時計とかフォトフレームの進化版?というか、そんな感じ。基本つけっぱなしで能動的にブラウザで検索したりっていうのも有りだし受動的にウイジットで天気予報とかRSSとかTwitterのフィード表示させたりとかもあり。
一般的にも携帯とPCを埋めるデバイスが有れば売れるはず。って今までもそういうところを狙ったデバイスは数多く有ったけどそんなに流行ってなかった。のは多分ブラウザが今一だったりできる事と比較して高価だったから。だけどandroidとARMでかなり状況は変わってくる。PCが3~4万で買える時代だけど、ARMベースで2万切る市場での争いになる気がする。
現在のメディアプレイヤーがAndroidでネットと融合っていうか。
後、大きな要因はNVIDIAのTegra。
NVIDIA Tegraベースのネットブック elan、重さ836gでHD動画10時間再生
NVIDIA Tegra
microsoftがXPのタブレットを仕掛けた時とは状況が違う。
アップルのタブレットも含め物欲との戦いになりそうな予感。Android+HDMIってとことでは”Android搭載の携帯ゲーム機「ODROID」”も良いなぁと思うんだけど。さてはて。
そういうデバイス向けの何かをWebSocket使って作れたら良いなぁと思ったり。goでarmで動くバイナリも作ってみたいし。