月別アーカイブ: 2007年4月

EMOBILE EM ONE 神経質なタスク管理からの開放

今まで買った PocketPC 機は PocketPC2000~2003 で 5台あります。
その前にキーボード付の WindowsCE マシン (HandlheldPC) も2台使っていました。
PocketPC になって常に付きまとうのが

・終了しない OK ボタンとタスクの終了管理
・ソフトインストールによる不安定化

でした。定期的なリセットは必須で、それどころか何かアクションをする前に
リセットが必要になることもあります。

これらの経験から、W-ZERO3[es] では 絶対安定 優先で
できる限りデフォルトで使い、システム系のソフトをほとんど入れない
構成で使っていました。

・Today に入れたソフトは applus 1つのみでそれ以外はできるだけはずす
・タスクマネージャーとソフトウエアラウンチャを使わない
  スタートメニューのみでやりくり
・追加常駐ソフトは ctrlswapmini のみ
・シンクロはデータ転送の最初だけで普段は同期しない

普段良く使うソフトは限られているので、割り切ると意外になんとかなります。

Today 画面の「実行中のプログラム」数が増えるとすぐに不要なものは
メモリ管理画面から終了させました。
プログラム数はいつもだいたい 0~3 くらいに抑えています。

ソフトのインストールも、頻度の高いものや常駐系はできる限り本体メモリ
へ入れます。この辺も安定優先だと1つ1つ厳選してインストール先を
考える必要がありました。

●EM ONE では

EM ONE のメモリ (RAM) は多く、プログラム実行領域として 128MByte あります。
これは RAM 64M の WM5 機種の約 2倍、RAM 64M の PPC2000~2003 機種の
約 4倍に相当します。

タスクの終了を特に気にしないで、7本くらいソフトが立ち上がっていて

 予定表、GSFinder、NetFront3.3、IE、ブンコビューア、Opera、電卓

が動いてる状態でまだ 70MByte ほど空きがあります。
PocketPC で、アプリが終了しない OK ボタンでもいいかも、
とはじめて思いました。

本体のフラッシュメモリも余裕があります。
ユーザーエリアで 390MByte もあるので、実はまだ mini SD カードを
使っていません。今のところは全部本体メモリにインストールしています。

操作性やら慣れてない部分やらいろいろと使いづらい部分もあるけれど、
メモリが多いとこんなにも気が楽だとは。

・回線速度の快適さ
・メモリ制限からの開放

この2つだけで今は十分満足です。

とうとう EMOBILE EM ONE 買いました

とうとう EMOBILE EM ONE 買いました

欲しかったのは端末ではなくてサービスです。
今まで PDA 系を買った動機は、端末の魅力がすべてでした。
W-ZERO3[es] と同じ代わり映えの無い WindowsMobile5.0 を搭載しており、
サイズも大きくて通話もできない EM ONE を買った理由は
ずばり「高速な回線」が欲しかったからです。

でも使っているうちに EM ONE は使えるマシンだと気がつきました。
過度に期待しなかったせいもあるのですが、これは結構良いかもしれません。

●ポケットPC端末の些細な欠点と ZERO3[es] を最高だと思ったわけ

PDA として PocketPC 機を使い出したのは初代 iPAQ からです。
大ヒットしたこの PDA は CPU に StrongARM を搭載しており、
圧倒的な速度と拡張性で PocketPC のスタンダードになりました。

その後新機種が出たり、新OS になったりでいくつかの PDA (PocketPC) を
使ってきました。だけど基本的なスタイルはどれも同じで操作性も
そんなにかわりませんでした。

・電源ボタンの操作しやすさが必要

 PalmTop タイプの PDA は前面にボタンがありタッチパネルを備えています。
 そのためかばんやポケットに入れる際、誤動作を防ぐにはいちいち電源を
 切る必要がありました。

 取り出して使いたい場合は電源を入れて、しまう前に電源を切ります。
 電源ボタンは押しやすい方がよく、PocketPC の多くは独立したボタンに
 なっています。

・電源ボタンの反応の鈍さ

 間違って電源をつけた場合、または電源をつけたあとすぐ思い直して
 かばんにしまおうと思った場合はすぐに電源を切りたいものです。
 だけどこれがうまくいきません。

 電源を ON にしたあと数秒は、各種デバイスの認識等に時間がかかり
 その間電源が切れないようになっているからです。
 何度ボタンを押しても反応しないし先行入力もききません。
 反応しないのであわてて連打していると、うっかり電源が切れたのにすぐ
 また入れてしまうこともありました。

 逆に、電源を切ったけどすぐまた使いたいという場合も、電源が切れて
 いるので、実際に使えるようになるまで若干待たされることになります。

・W-ZERO3[es] の良いところ

 W-ZERO3[es] は、スライド式のキーロックボタンを備えることで電源
 周りの欠点を克服してしまいました。

 (1) スライド操作による確実な先行入力
   ハード的なスライド操作は、スイッチがどの位置にあるかによって
   目的が決まります。実際の動作までラグがあったとしても確実に
   操作できますし、人間は完了を待つ必要がありません。

 (2) 電源を切らなくていいという快適さ
   せっかく AutoPower OFF があっても、電源をすぐ切らなければいけない
   理由は誤動作を防ぐためでした。画面に何かものがぶつかっていれば
   AutoPower OFF してくれない可能性もあります。

   W-ZERO3[es] はすぐにキーロックだけできるので、時間のかかる
   電源切断をせずにすみます。ロックだけしておけば一定時間後に勝手に
   電源が切れます。

   またポケットにしまった直後にやっぱりもう一度データを見たいと
   思ったら、AutoPower OFF 前ならロックを解除するだけですぐ
   操作できます。電源 OFF までに余裕(バッファ)があることで、
   人間の気まぐれな判断に対するレスポンスが向上しているわけです。

・W-ZERO3[es] カーソルキーの使いやすさ

 昔はタッチパネルのみの PDA もありましたが、PocketPC ではカーソルキーが
 標準搭載されています。だけど携帯電話のボタンに比べると、自分が使ってきた
 機種では操作性が劣るものが多かったように思います。
 スマートフォンとして携帯電話と同じ土俵に立ってようやく、ボタンの
 シビアな操作性も重要視されるようになってきたのではないでしょうか。

なので W-ZERO3[es] は、携帯電話の視点でみると「うーん」な部分もあるけれど、
PocketPC 機種としてみれば欠点が克服されて非常に使いやすくなっているわけです。
便利な PocketPC 機種としてたいへん気に入って使っていました。

さて EM ONE はというと、W-ZERO3[es] ですごい良い! と思った部分を必ずしも
引き継いでいません。
だけど使っているとまた違う別の良さがありました。

(続く)

DirectX SDK April2007 とバージョン番号

2007/04/05 に一旦配布された DirectX SDK April2007 は、その
後ダウンロードセンターから消えていました。
先日改めて再公開されています。
タイミングの問題で引っ込めただけかと思いましたが、アーカイブのバイナリ
サイズが異なっており内容も更新された可能性があります。

どこが変わったのか、具体的な違いを見つけることはできませんでした。
d3dx9_33.dll
d3dx9d_33.dll
d3dx10_33.dll
d3dx10d_33.dll
これらの dll は特に更新されていないように見えるので、Runtime しか
入れていない場合は特に置き換えなくても大丈夫そうです。
ただし、include/dxsdkver.h に書かれている SDK のビルド番号は異なって
いたので何らかの更新があったことは確かなようです。
2007/04/05 版 SDK をインストールしている人は、念のため最新版を
入れなおしたほうがいいでしょう。

●DX SDK April2007 (2007/04/05版) dxsdkver.h
————————————————–
#define _DXSDK_PRODUCT_MAJOR 9
#define _DXSDK_PRODUCT_MINOR 18
#define _DXSDK_BUILD_MAJOR 943
#define _DXSDK_BUILD_MINOR 0000
————————————————–

●DX SDK April2007 (2007/04/09正式版) dxsdkver.h
————————————————–
#define _DXSDK_PRODUCT_MAJOR 9
#define _DXSDK_PRODUCT_MINOR 18
#define _DXSDK_BUILD_MAJOR 944
#define _DXSDK_BUILD_MINOR 0000
————————————————–

ちなみにこのヘッダを見ると、DirectX SDK 自体のバージョン番号は未だに 9 の
ままであることがわかります。つまり短絡的に言うと SDK そのものは DirectX9
です。SDK は DirectX9 だけど、Direct3D9 と Direct3D10 の両方が含まれて
いることになるでしょうか。

ついでなので歴代の SDK のバージョン番号を調べてみました。
dxsdkver.h が追加されたのは、Decmber2004 からです。

PRODUCT/BUILD
9.04 / 91.0000 Dec2004 install 先が Program Files になる、dxsdver.h追加
9.05 / 132.0000 Feb2005
9.06 / 168.0000 Apr2005
9.07 / 239.0000 Jun2005
9.08 / 299.0000 Aug2005
9.09 / 376.0000 Oct2005
9.10 / 455.0000 Dec2005 ここから install 名から 9.0 が消える
9.11 / 519.0000 Feb2006
9.12 / 589.0000 Apr2006
9.13 / 644.0000 Jun2006
9.14 / 701.0000 Aug2006
9.15 / 779.0000 Oct2006
9.16 / 857.0000 Dec2006 ここで D3D10 が RTM
9.17 / 892.0000 Feb2007
9.18 / 943.0000 Apr2007 04/05版
9.18 / 944.0000 Apr2007 04/09版

PRODUCT の番号は 9.04 から始まっていますが、その前にも DirectX9.0 SDK
3つほど公開されています。たぶんこんな感じではないでしょうか。

9.01 DirectX9.0 SDK
9.02 DirectX9.0 SummerUpdate 2003
9.03 DirectX9.0 SummerUpdate 2004

上記3つの SDK のデフォルトインストール先は C:\ 直下でした。
Dec2004 から Program Files に入るようになります。
また当初は 「Microsoft DirectX 9.0 SDK (Jun2005) 」のように
インストールフォルダ名に “9.0” が含まれていました。
Dec2005 から “9.0” が消えて「Microsoft DirectX SDK (Dec2005) 」
になっています。

20年前のモバイル PC-1417G

これ手に入れました! PC-1417G
知り合いから譲っていただきました。
約20年前に発売された SHARP のポケットコンピュータです。
一見ボタンの多い電卓に見えますが、BASIC 言語搭載でプログラミングが可能。
さらに POKE、PEEK 命令を使ったメモリの直接操作、CALL 命令を使った
マシン語(機械語)サブルーチンの呼び出しも可能です。

一旦マシン語さえ動けばそれはそれ、ネイティブなアプリケーションと
同じなので、ハードウエアを駆使したプログラミングも可能でした。
たとえ BASIC 命令に無くても、RENUMBER したり、MML 指定による音楽
再生したり、5×7 のドットマトリクスに絵を描いたり、
I/O ポートを駆使して RS-232C で無理やり通信したり、
BASIC コンパイラを走らせたりなどなど、いくらでも応用できます。

メモリも少なくて CPU も遅かったし画面も小さいけれど、
今の PDA と同じように工夫したりプログラムを作ったりと、
使い方を制限されることなく自在に操れる懐の深さは
十分 「常に持ち歩ける小さいコンピュータ」 といえるものでした。

SHARP の BASIC 系ポケコンは PC-1211/10 で始まりました。
その後 8bit CPU 搭載でマシン語が使える PC-1250/51/55/45 や、
関数計算機能を強化した PC-1401 シリーズ、4行 LCD の PC-1350系、
高級タイプ PC-1500 系などさまざまなバリエーションが登場します。

この PC-1417G は CASL/COMET エミュレータを搭載した大学専用機です。
同等の市販バージョンは PC-1445 になります。

使ってみて驚くのは、今でも関数電卓として便利に使えること。
保存状態のよさもあるのでしょうが全くどこも劣化しておらず当時のまま。
製品として完成されたタフさを感じます。

タッチの軽いハードウエアキーもしっかりしており、当たり前だけど
PDA やパソコンの電卓アプリよりずっと使いやすいものです。
電池も 100時間規模で持つし、意外に小型で薄くて軽量です。

何をするにもじっと待つことに慣らされた今の PDA に比べると、
電源を入れて即使えるポケコンは新鮮です。

キー入力は先行入力がきかないので、ほんのわずかにレスポンスが悪く
感じますが必要十分でしょう。(PC-1350系はもっと遅かった)
CPU SC61860 は割り込みの概念が無いのでキーバッファがないからです。
(PC-E500 以降に使われた SC62015 にはきちんと割り込みがあります)

さすがに今から BASIC やマシン語で凝ったプログラムを書こうという
気にはなりませんが、RUN モードでできる計算だけでも、
プレイバックに変数やラストアンサー、カンマ式など便利な機能があります。
コレクションのつもりだったけど、パソコンの隣に置いて結構使ってます。

CPU は 8bit SC61860 768KHz 、RAM は 8Kbyte なので
今の PDA は 10000倍くらい速くて 10000倍以上メモリが多いことになりますね。


薄さ


大きさ比較(上から V905SH、W-ZERO3[es]、PC-1417G)


中身(RAM増設できそうなパターンあり)

DirectX SDK April 2007 と仕様変更

恒例の DirectX SDK 更新がきました。
DirectX Software Development Kit April2007
たいした変更はないだろう・・と思いつつ入れ替えるとコンパイルが通りません。
どうも D3DX10 関連の関数で、ほとんどのものに引数が追加されているようです。
しかもマニュアルは仕様変更前の状態で、これらの追加引数の説明がありません。
ヘッダファイルを直接見ながら追加パラメータを1つ1つ調べていくしかなさそうです。

D3DX10CreateShaderResourceViewFromFile() 等、このへんは比較的使用頻度が高い
と思われます。基本的には一番最後に NULL を追加すれば良いだけです。

CreateShaderResourceView~ と CreateEffectFrom~ しか使っていなかったので
あまり大きな変更をせずに済みました。
わかりきってることですが、D3DX 系関数への依存はできるだけ避けておいた方が
良いでしょう。