inotifywaitを使ってプログラム終了を検知する


Linux kernelにinotifyが組み込まれている環境では、inotify-tools パッケージ のinotifywaitを使って、パラレル実行した結果が全部終わるのを待ってから、次に進むようなスクリプトが作れるらしい。(kernel 2.6.13以降ならinotifyを使えるらしい)
inotify-tools

process1~process4までをいっぺんに並列実行して
それが全部終わったprocess5を実行させたい

#!/bin/bash
process1 &
process2 &
process3 &
process4 &

#ここで処理を待って

process5
exit

こんなスクリプトを書きたい場合・・・

#!/bin/bash
(process1; touch /tmp/myprocess/p1) &
(process2; touch /tmp/myprocess/p2) &
(process3; touch /tmp/myprocess/p3) &
(process4; touch /tmp/myprocess/p4) &

#ここで処理を待って
for i in {1..4}; do
  inotifywait -e CREATE -qq /tmp/myprocess/
done

process5
exit

説明!

  inotifywait -e CREATE -qq /tmp/myprocess/

ここは、/tmp/myprocess/ にファイルが作られたことを検知する。
/tmp/myprocess/ に何でもいいから1つファイルが作られるまで、待ちとなる。

この処理をfor文で4回繰り返している。つまり、ファイルが4つ作られるまでは、ここで待つことになる。

問題点
RHEL/CentOS5では、inotify-toolsが標準で入っていないこと。
コンパイルしてインストールする必要がある。

注!
このスクリプトは、例えば、100個ぐらい走らせたい処理があるけど、CPU coreが4つあるから、同時実行は4つとして、終わり次第次々に実行させていきたい。という場合には使えません。

Xperiaシリーズのバッテリーメモ


Sony Ericsson のAndroid携帯で採用しているバッテリー型番についてのメモ書き
(2011/07/12 修正)

・BST-41 ( ドコモバッテリー型番 SO04 )
Xperia X10(SO-01B) BST-41 1500mAh
Xperia Play BST-41 1500mAh

・BA750 ( ドコモバッテリー型番SO05 )
Xperia Arc(SO-01C) BA750 1500mAh
Xperia Acro(SO-02C, IS11S) BA750 1500mAh

・BA700 (ドコモバッテリー型番 不明SO06? )
Xperia Pro BA700 1500mAh
Xperia Neo BA700 1500mAh
Xperia ray(SO-03C) BA700 1500mAh

・EP500
Xperia Mini EP500 1200mAh
Xperia Mini Pro EP500 1200mAh
Xperia X8 EP500 1200mAh
Xperia W8 EP500 1200mAh

・BST-38
Xperia X10 mini pro BST-38 970mAh
BST-38のスマートフォンでの採用例は他になし

・専用品採用
Xperia X10 mini 専用品 950mAh

・不明
Xperia active 不明 1200mAh

BST-41, BA750, EP500については、バッテリー自体のサイズを拡大化している大容量バッテリーの存在を確認。具体的にはMUGEN POWERのBatteryDoor付きの製品とかです。

EA800のバージョンアップ


半月ほどASUS Eee Note EA800の存在を忘れちゃったりしていたんですが、新しいfirmwareが出たっぽいので、電源を入れてみました。

Eee Note Sync Versionがバージョンアップ! V1.1.1.44 → V1.2.2.52
なんと、日本語化!!!

firmwareの方もバージョンアップ!

V1.0.8.94 TW→V1.0.12.115 TW

EA800本体の日本語化は無し。

しかし、なぜか、キーボード設定に「Japanese」があり、それを選ぶと、ローマ字入力で漢字変換ができます。
しかも、推測変換付き。

なのに、まだインターフェースは日本語化を含まず
ちょっと謎です。

なお、日本語化はEee Note EA800 日本語化計画 ver 20110318で可能でした。
まぁ、翻訳できてない箇所もありますけど

Flea Line Lightで03番号が持てる?


FleaLine Lightを契約してしばらくたつわけですが、いろいろ知らない間にサービスが始まっていたようで・・・

・2011/03/02 アフィリエイト プログラム開始
・2011/03/10 管理画面がAndroid/iPhone対応
・2011/04/01 受付代行サービス(FleaAgent)03番号提供サービス(FleaNumber)開始
・2011/04/08 拡張転送サービス(FleaRoute)開始

これら、すべて既存ユーザにお知らせしないというのもどーなんだろ?と思いますが・・・
まぁ、アフィリエイトプログラムについては、4/28に連絡がありましたけど・・・

03番号については、ちょっとどうしようか悩みどころですね。

— 2011/05/12 追記 —
FleaMobile-eというイーモバイルのMNVOを始めました、といったお知らせがきました。
今度は遅くなかったですねw

X10 mini proの純正ROMでマルチタッチ


先週、ついにXperia X10 mini proでもマルチタッチ(2点認識)ができるようになりました。

—- 注釈情報1 start —-
Xperia X10は、オフィシャルで可能になっています。
Xperia X10 miniとX8は、先にアンオフィシャルで可能になっていますが、ハードウェア的に嘘マルチタッチな感じです。
「X10 mini」と「X10 mini pro」は名前とサイズが似ていますが、タッチパネルを構成するハードウェアが別物なので、流用できませんでした。
—- 注釈情報1 end —-

—- 注釈情報2 start —-
Xperia X10/X10 mini/X10 mini pro/X8は、カーネル部分を書き換えることはできません。
このため、カスタムROMとしてリリースされているXperia用 Android 2.2やAndroid 2.3というのは、カーネル部分はAndroid 2.1のまま、ソフトウェア部分のみをAndroid 2.2/2.3に載せ替えたもの、となります。
逆に、カスタムROM用にリリースされているカーネルの追加モジュールは、Android 2.1でも動作してしまうことがあるのです。
—- 注釈情報2 end —-

まずはマルチタッチドライバを[DEV] Dualtouch Releaseより、入手。
次にマルチタッチ設定を記載したandroid.hardware.touchscreen.multitouch.xmlを入手して、
手順に従ってやっていきます。

1. /system領域を書き換え可能にする

# mount -o rw,remount /dev/block/mtdblock0 /system

2. android.hardware.touchscreen.multitouch.xml を /system/etc/permissions/ にコピー

# cp /sdcard/android.hardware.touchscreen.multitouch.xml /system/etc/permissions/

3. アクセス権限設定

# chmod 644 /system/etc/permissions/android.hardware.touchscreen.multitouch.xml

4. cy8ctma300_ser.ko を /system/lib/modules/ にコピー

# cp /sdcard/cy8ctma300_ser.ko /system/lib/modules/

5. アクセス権限設定

# chmod 644 /system/lib/modules/cy8ctma300_ser.ko

6. /system/build.prop に以下の2行を追加

ro.product.multi_touch_enabled=true
ro.product.max_num_touch=2

7. /system/etc/hw_config.sh に以下の2行を追加

insmod /system/lib/modules/cy8ctma300_ser.ko
sleep 1

8. 再起動
9. 待ってる間、一服しよう
10. マルチタッチのテストをしよう!2点認識までだよ
11. (うまくいかなかったら) ショックのあまりコーヒーに落とさないよう注意!
12. (Mandatory)びっくりするほどユートピア!

…最後のあたりは、手順の原文の趣旨を尊重してみました^^;;;

ちなみに、私自身はCM6 v2.0で使ってるため、純正ROMでの使い勝手に関してはよくわかりません。