2010年1月30日土曜日

Windows Live ID を Hybrid W-ZERO3 で新たに取得した際に注意すること

blogはまとめて書くんじゃなくて内容ごとに書くといいんでしたっけ。とりあえず分離。

  • Windows Liveのメニューから既存のLive IDに切り替えない方がよい。警告通り、切り替えてしまうとhotmail受信トレイが消え、電子メールから見ても、hotmailのアカウントが消失してしまう。切り替え後に即時同期をしても受信トレイは復活しないが、切り替え後に新しくメールを受信した際(タイミング不明)に、既存Live IDの受信トレイと同期する。既存Live IDのhotmail側に大量の未読メールを抱えている場合は注意。
  • 既存のLive ID への切り替え作業を行うときは、Wifiなどで接続しておいたほうがよい。
  • 既存のLive ID で『リンクID』機能を使うとかなり便利。 PCから willcomlive.jpのLive ID に簡単にアクセスできる。HW03側のhotmail受信トレイもPCから読みやすくなる。既存Live ID でhotmailなどにログインし、右上の自分の氏名をクリック、『他のアカウントとのリンク』をクリックすると、リンクIDの設定画面に飛ぶので、そこ で新しく取った willcomlive.jp のLive IDをリンクすればよい。
  • willcomlive.jp のLive IDでPCからhotmailにログインすると何故か言語が英語になっている。日本語にしとくといいかも?(私は試す前にアカウント切り替えをやってしまって失敗しました)
うーん、メールと同期するのは止めておいた方がいい気がしてきました。

あと、メニューにある、『WIndows Live ID サインアップ』にも癖があって、WiFiではサインアップ出来ません。で、一旦willcomlive.jp のLive IDを作成し、PC上からhotmailなどにログインしてそのパスワードを変更した後だと、(既存Windows Live ID に切り替える、等の作業を繰り返した後で) willcomlive.jpドメインのWindows Live IDで『再設定』を行おうとすると、『完了』ダイアログ後の『サインイン』で、パスワードを入力できません。(再設定時のパスワードで固定されてしまいます。)
多分ですが、再設定が終了、という時点でHW03側の初期パスワード(@pdx.ne.jp側のメールアドレスに届きます。ユーザごとに固有のようで、何回再設定しても同じパスワードが届きます。)を勝手に入力しようとしています。PC側からwillcomlive.jpドメインのWindows Live IDパスワードを変更するのはおすすめできないみたいです。HW03から再設定をするときは、初期パスワードに変更しておくことをお勧めします。
だいたい、なんで再設定なのにパスワードを固定されなきゃいかんのだ…新規ID取得ならともかく。


Hybrid W-ZERO3(WS027SH)に関するいくつかのメモ

■Windows Live ID を Hybrid W-ZERO3 で新たに取得した際に注意することは別記事に移動しました。

■WILLCOM UIについて
  • WILLCOM UIは、Today画面から起動するアプリ (Todayプラグイン) として動くが、他のプラグインとは排他である。電源投入→OS起動→WILLCOM UI起動、という順なので、WILLCOM UIの表示を切れば、起動の見た目は早くなる。
  • WILLCOM UI の上で動いているコンポーネント (特にW-INFO) は、WILLCOM UIでしか表示されない。Todayプラグインとしては提供されないようだ。えー。
  • 従来機種Todayプラグインとして提供されてきた機種依存の表示(ライトメールの受信状況など)は、今回 Today 画面から利用できない?
  • クイックメモのTodayプラグインも見当たらない。WILLCOM UIコンポーネントにも無い。もったいない。
  • Ad[es]とかから持ってきたらダメかな。ダメだろうなあ…
  • WILLCOM UIはとっととコンポーネント仕様を公開したらいいと思うんだ。
■その他
  • スタイラス必須。Ad[es]と同等のものがついてきます。
  • PCとの連携については、Microsoft Office Outlook の有無で印象がかなり変わる。Windows Mobile を使う人は持っていた方がいいのかもしれない。高いんだけどねえ…。Outlook持ってなくてもいい、ってのがいわゆる Myphone サービスっぽいんですが、Webインターフェースがいまいち使いづらい。あとWindows Live for Windows Mobile との区別もよく分からない。
  • USB給電周りは検証中の記事が役に立つ。eneloop mobile boosterは電源さえ切ればどのモデルでも(?)充電可能ってことか。KBC-L2AS(2口高出力タイプ)の2個口1つに束ねるとか無茶なケーブル作ったら電源投入時でも給電可能だったりするんだろうか。無茶すぎるか。
  • MicroSDは挿抜しにくいので一度刺したらほったらかしにするくらいで丁度いい。
  • ad[es](WS011SH)などから電話帳などを移動するには、連絡先、のメニューから、赤外線送信でHW03に全件転送すればよい。赤外線ポートの位置に注意。
  • アクセス先を切り替えたりして速度比較、なんてことをやっていると、あっという間にPHSと3G両方のパケット額両方の上限に到達するので気をつけよう。

2010年1月9日土曜日

unixbench 5.1.2 を FreeBSD でもCPU数に応じて動くようにしてみる

unixbench 5.1.2 を使ってベンチマークをとっていたのですが、FreeBSDで実行するとCPU数を認識してくれず、少々寂しい結果になるので、patchを作ってみました。ついでに、コンパイラの情報も表示させるようにもしてみたので、そのpatchも置いておきます。(FreeBSD版のpatchはLinux版のpatchの内容を含んでいます。)

■FreeBSD用のpatch はこちら→ unixbench-5.1.2.FreeBSD.patch
□Linux用のpatch はこちら→unixbench-5.1.2.custom.patch

GNU make が必要です。


%ls
unixbench-5.1.2.FreeBSD.patch unixbench-5.1.2.tar.gz
%tar -xzf unixbench-5.1.2.tar.gz
%patch -p < unixbench-5.1.2.FreeBSD.patch
Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -ruN unixbench-5.1.2.orig/Makefile unixbench-5.1.2/Makefile
|--- unixbench-5.1.2.orig/Makefile 2007-12-23 04:51:21.000000000 +0900
|+++ unixbench-5.1.2/Makefile 2010-01-10 16:11:10.219596811 +0900
--------------------------
Patching file unixbench-5.1.2/Makefile using Plan A...
Hunk #1 succeeded at 38.
Hunk #2 succeeded at 137.
Hmm... The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -ruN unixbench-5.1.2.orig/Run unixbench-5.1.2/Run
|--- unixbench-5.1.2.orig/Run 2007-12-23 06:48:10.000000000 +0900
|+++ unixbench-5.1.2/Run 2010-01-10 16:10:54.483552885 +0900
--------------------------
Patching file unixbench-5.1.2/Run using Plan A...
Hunk #1 succeeded at 62.
Hunk #2 succeeded at 80.
Hunk #3 succeeded at 681.
Hunk #4 succeeded at 723.
Hunk #5 succeeded at 734.
Hunk #6 succeeded at 796.
Hunk #7 succeeded at 1379.
Hunk #8 succeeded at 1582.
Hmm... The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -ruN unixbench-5.1.2.orig/Run_FreeBSD unixbench-5.1.2/Run_FreeBSD
|--- unixbench-5.1.2.orig/Run_FreeBSD 1970-01-01 09:00:00.000000000 +0900
|+++ unixbench-5.1.2/Run_FreeBSD 2010-01-10 16:10:09.484287187 +0900
--------------------------
(Creating file unixbench-5.1.2/Run_FreeBSD...)
Patching file unixbench-5.1.2/Run_FreeBSD using Plan A...
Hunk #1 succeeded at 1.
done
%cd unixbench-5.1.2
%vi Makefile
(Makefileを編集します。GMAKEに GNU make コマンドを設定してください。
 FreeBSDの場合は gmake になると思います。
 GRAPHIC_TESTS を切るかどうかはお好みで。FreeBSDで動くかどうかは試していません。
 CC で C コンパイラを変更できます。その場合は、後述の Run_FreeBSD を編集して下さい。)
%vi Run_FreeBSD
(ベンチマークをとる perl スクリプトです。Makefileでの記述を参考に、
my $gMake = 'gmake';
my $cCompiler = 'gcc';
 を書き換えてください。)
% gmake
% ./Run_FreeBSD
gmake all
gmake[1]: Entering directory `/home/tarai/unixbench-5.1.2'
Checking distribution of files
...
(ここからベンチマークを実行しますので、60分ほど放置するか、
screen などで逃げられるようにしておいたほうがいいでしょう)


./Run のかわりに ./Run_FreeBSD を実行すると、こんなふうにベンチマークが取れる、はず。

BYTE UNIX Benchmarks (Version 5.1.2-custom)

System: zitaku.localdomain: FreeBSD
OS: FreeBSD -- 8.0-RELEASE-p2 -- FreeBSD 8.0-RELEASE-p2 #0: Thu Jan 7 18:38:59 JST 2010 tarai@zitaku.localdomain:/usr/obj/usr/zsrc/sys/GENERIC
Machine: amd64 (GENERIC)
Language: en_US.utf8 (charmap=, collate=)
Compiler: gcc (GCC) 4.2.1 20070719 [FreeBSD]
CPU 0: hw.model: Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz (0.0 bogomips)

CPU 1: hw.model: Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz (0.0 bogomips)

CPU 2: hw.model: Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz (0.0 bogomips)

CPU 3: hw.model: Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz (0.0 bogomips)

CPU 4: hw.model: Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz (0.0 bogomips)

CPU 5: hw.model: Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz (0.0 bogomips)

CPU 6: hw.model: Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz (0.0 bogomips)

CPU 7: hw.model: Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz (0.0 bogomips)

1:41AM up 1 day, 6:44, 1 user, load averages: 0.00, 0.00, 0.00; runlevel

------------------------------------------------------------------------
Benchmark Run: 土 1 09 2010 01:41:48 - 02:13:24
8 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables 19614465.7 lps (10.0 s, 7 samples)
Double-Precision Whetstone 4220.0 MWIPS (9.7 s, 7 samples)
Execl Throughput 3474.9 lps (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 131206.9 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 33294.4 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 462368.5 KBps (30.0 s, 2 samples)
Pipe Throughput 1622117.6 lps (10.0 s, 7 samples)
Pipe-based Context Switching 248853.7 lps (10.0 s, 7 samples)
Process Creation 10993.0 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 7765.5 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 2535.4 lpm (60.0 s, 2 samples)
System Call Overhead 974418.6 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 19614465.7 1680.8
Double-Precision Whetstone 55.0 4220.0 767.3
Execl Throughput 43.0 3474.9 808.1
File Copy 1024 bufsize 2000 maxblocks 3960.0 131206.9 331.3
File Copy 256 bufsize 500 maxblocks 1655.0 33294.4 201.2
File Copy 4096 bufsize 8000 maxblocks 5800.0 462368.5 797.2
Pipe Throughput 12440.0 1622117.6 1304.0
Pipe-based Context Switching 4000.0 248853.7 622.1
Process Creation 126.0 10993.0 872.5
Shell Scripts (1 concurrent) 42.4 7765.5 1831.5
Shell Scripts (8 concurrent) 6.0 2535.4 4225.6
System Call Overhead 15000.0 974418.6 649.6
========
System Benchmarks Index Score 873.4


------------------------------------------------------------------------
Benchmark Run: 土 1 09 2010 02:13:24 - 02:42:59
8 CPUs in system; running 8 parallel copies of tests

Dhrystone 2 using register variables 81213813.6 lps (10.0 s, 7 samples)
Double-Precision Whetstone 26264.1 MWIPS (9.9 s, 7 samples)
Execl Throughput 7712.6 lps (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 93489.7 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 23754.0 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 371435.3 KBps (30.0 s, 2 samples)
Pipe Throughput 8691978.0 lps (10.0 s, 7 samples)
Pipe-based Context Switching 2075904.6 lps (10.0 s, 7 samples)
Process Creation 16325.9 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 21494.6 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 2922.0 lpm (60.1 s, 2 samples)
System Call Overhead 5527171.2 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 81213813.6 6959.2
Double-Precision Whetstone 55.0 26264.1 4775.3
Execl Throughput 43.0 7712.6 1793.6
File Copy 1024 bufsize 2000 maxblocks 3960.0 93489.7 236.1
File Copy 256 bufsize 500 maxblocks 1655.0 23754.0 143.5
File Copy 4096 bufsize 8000 maxblocks 5800.0 371435.3 640.4
Pipe Throughput 12440.0 8691978.0 6987.1
Pipe-based Context Switching 4000.0 2075904.6 5189.8
Process Creation 126.0 16325.9 1295.7
Shell Scripts (1 concurrent) 42.4 21494.6 5069.5
Shell Scripts (8 concurrent) 6.0 2922.0 4870.0
System Call Overhead 15000.0 5527171.2 3684.8
========
System Benchmarks Index Score 2050.6





以下説明。patchを当てずに実行すると、

BYTE UNIX Benchmarks (Version 5.1.2)

System: zitaku.localdomain: FreeBSD
OS: FreeBSD -- 8.0-RELEASE-p2 -- FreeBSD 8.0-RELEASE-p2 #0: Thu Jan 7 18:38:59 JST 2010 tarai@zitaku.localdomain:/usr/obj/usr/zsrc/sys/GENERIC
Machine: amd64 (GENERIC)
Language: ja_JP.utf8 (charmap=, collate=)
CPU: no details available
12:28AM up 1 day, 5:30, 1 user, load averages: 0.00, 0.00, 0.00; runlevel

ベンチマークの結果も 1CPUのときのみを計測して終わってしまいます。これはつまらない。

理由は、Run スクリプトが Linux 決め打ちのコードになっていて、CPUに関する情報を
/proc/cpuinfo から取っているためです。Linux エミュレーションを入れていれば、おそらくその絶対パスを書き換えるだけでいいと思うのですが、たまたま手元のマシンにはLinux エミュレーションを入れていなかったので、perlの勉強がてら、sysctlから取るようにしてみました。

sysctl の情報しか取り出していないので、bogomips や CPUの機能情報は決め打ちで埋めてます。CPUの個数さえ分かれば SMP の時のベンチマークも取るようになるので、これで十分かなと思っています。これ以上の情報を取ろうとすると cpuid とかのお世話にならないといけないのかな?

NetBSD, OpenBSD, PC-BSD などの場合は、sysctl のキーが同じなら、Run_FreeBSD のスクリプトを見て場合分けを書き換えればいけると思います。手元にないので確認は取れてません。

Linux エミュレーションが有効な場合は、./Run にある $pCpuinfo="/proc/cpuinfo" を書き換えれば ./Run でも実行できると思います。そういうふうに書き換えてはおきましたが、動作は未確認です。

実は Compiler 情報も表示するよう改造していたり、本家 Run スクリプトも、ハードコーディングしている部分を書き換えたりしているので、これをそのまま ports パッチにするのは改変の度が過ぎると思います。(バージョン情報もちょっといじっています。)Run_FreeBSD のファイルを抜いたものを本家に提出して、もし本家に採用されたら、そこから USE_GMAKE=YES, USE_LINUX=YES という条件で ports を作るのが綺麗な気がしますけど、需要があるのかどうか……