2008年5月31日土曜日

バイナリファイルの長所と短所

プログラミングでファイルについて学ぶとき、最初に学ぶのはテキストファイルだろう。しかし、ファイルはテキストファイルばかりではない。バイナリファイルもある。多くのCの入門書がテキストファイルしか扱わずバイナリファイルを説明していない。また、バイナリファイルについて説明する場合でも、その長所と短所を正確に伝えていない。
よくある説明は以下のようなものだ。いわく、テキストファイルでは数字を文字で表現するため桁に応じて長くなるのに対して、バイナリファイルでは固定長でよい。つまり、バイナリファイルの方が容量効率がよいという説明だ。
しかし、これは適切ではない。整数ではバイナリファイルの方が効率が良くなる傾向はある。しかし、文字列ではテキストファイルの方が効率がよい。なぜなら、テキストは可変長で、多くの場合、配列全体を使うことはないからだ。つまり、バイナリファイルでは未使用領域が多くなり、容量効率が悪くなることが多い。
もちろんデータ構造を工夫すれば容量効率を高めることができる。しかし、バイナリファイルを使い始めたばかりの初心者に、そこまで要求するのは酷というものだ。
バイナリファイルの長所は容量効率ではない。それでは何かと言えば、読み書きが速いということだ。テキストファイルは数を文字に変換する必要がある。文字列は基本的に変換する必要がないが、厳密には文字コードや改行コードなどを変換することがある。つまり、プロセス内部のデータ形式をファイルのデータ形式に変換する作業を伴う。その分、わずかに遅くなる。それに対してバイナリファイルは内部形式をそのままファイルに書き込む。そのため若干速い。
それゆえバイナリファイルにはデータ形式が機種依存になる問題点がある。例えば、エンディアンなどの問題だ。ある機種で出力したデータを別の機種で入力できないことがある。バイナリファイルを使う時には機種依存性を考慮する必要がある。
最近ではCPUの性能が向上し、テキスト処理のためのわずかなオーバーヘッドは無視できるようになった。そのためバイナリファイルよりテキストファイルの方が便利になった。OfficeがXMLを使うのも、そのような流れの中で自然なことだ。なお、Officeの文書はバイナリであるが、これはXMLをzipで圧縮するためだ。圧縮すればバイナリとなるが、圧縮しなければ必ずしもバイナリの方が容量効率がよいわけではない。

2008年5月28日水曜日

双六はプログラム

双六を知っている人は多いだろう。というより、知らない人はいないだろう。
双六は、さいころを振って、その目の数だけ進み、そのマスの指示に従う。これを繰り返し、ゴールを目指すゲームだ。
双六からさいころを取り除くとほとんどプログラムになる。双六を使ってプログラムの原理を説明してみる。
これから下記のような図を用いる。
1,1,1,1
ここで、左端をスタート、左端をゴールとする。また、その他の数字は右に進む距離を示す。つまり、上記の例では左端から1つずつ右に進み、右端で停止する。
この例では、数字は(「右に進め」という)命令を意味する。よって、プログラムに他ならない。ただし、このプログラムは具体的な計算は何もしない。
実際のCPUでもこの例のように1つずつ命令を読み取り実行する。しかし、実際のCPUでは命令を実行するたびにメモリの内容を変更する。つまり副作用で計算を行う。副作用を省いてしまえば上のように簡単な双六になってしまう。
次の例を示す。
3,0,0,1
これは0の部分をスキップしている。
1,1,1,-2
これは無限ループだ。永遠に右端に到達しない。
3,3,0,-2
これは終了(右端に到達)する。
このような単純な双六にレジスタや条件分岐のルールを盛り込むと本格的なプログラムになる。

ワープロに両面見開きモードを

Wordで閲覧するとき、印刷レイアウトのまま2ページ表示することがある。
(全画面閲覧はレイアウトを確認できないので使えない。)
そのとき、両面印刷で製本した状態とは異なる点が気になる。
両面印刷で製本すると奇数ページが見開き右になる。したがって、見開き状態では(-,1),(2,3),...と表示されなければならない。しかし、実際には(1,2),(3,4),...と表示される。これが微妙に使いにくい。
製本時のイメージを確認しながら編集できるモードが欲しい。
印刷プレビューが要求を満たすが、編集できない。プレビューと異なり、編集できたままで、正確なページに対応して表示してくれればよい。
1ページずれるだけなら非印刷ページというものを作り、それを挿入するという方法も考えられる。しかし、セクションを奇数ページから始める場合は、それを自動的に調整する機能が必要となる。
これができるとワープロがそのまま電子書籍の代わりになる(かもしれない)。

2008年5月27日火曜日

IMEもWeb APIへ

Yahooは、かな漢字変換ソフトVJEをWeb APIとして公開したそうだ。
これによりIMEを持たない端末からも日本語が使えるようになる(かもしれない)。
これは結構重要なことだ。
以前OpenOfficeのSaaS版を使ったが、日本語が入力できずに使い物にならなかった。IMEがWeb APIになれば海外で開発したソフトでも使えるようになるかもしれない。(対応していなければ使えるようにはならないだろうが)
もっとも、突っ込みどころは少なくない。IMEを搭載しないPCには2種類ある。IMEを使わない海外のPCと、IMEすら使えないほど非力なPCだ。いずれもWeb APIがあるからといって簡単には使えない。とくに後者の場合、IMEを動作させるよりAjaxを動作させるブラウザを動かす方が難しいかもしれない。

OpenCacheはどうか?

OpenDNSというサービスがある。DNSを集約させることで(内部的にはクラスタ化しているだろうが)十分スケールできるサービスを実現している。おかげてDNSのトラフィックを削減できる。
同様にWebのアドレスからコンテンツを引き出す際にキャッシュサーバがあるとトラフィックを削減できるだろう。これはさしずめOpenCacheともいうべきものになるだろう。
今はGoogleのキャッシュがそれに近い。しかし、似て異なるものだ。
(スケールするかという意味で)実現できるかどうか、また運用のためのビジネスモデルがどうなるのか見当がつかないが、あれば便利なサービスなので、そのうち誰かが始めるかも知れない。

通話はGSM、データは3G

3G携帯は日本で普及しているが、海外ではあまり使えない。特にアメリカとヨーロッパで違う点が不便だ。世界で使うにはGSMがよい。GSMは枯れていて、どこでも使える。通話に関してGSMで困ることは何もない。
困るのはデータ通信だ。データ通信は3G以上でなければ遅くて使い物にならない。
つまり、3Gに余裕があれば通話も3Gでやればよい。しかし、そうでなければGSMでやればよい。
データに関しては3Gだけが選択肢ではない。Wi-Fiが使えるなら、その方がよい。
携帯に多くの機能を詰め込む前に本当に必要な機能を厳選したらどうか。それで不自由はないだろう。

2008年5月26日月曜日

Gmailにブログ機能を

過去のメールを探す時がある。
キーワードを思い出せないときは日付で検索する。
Gmailには日付で検索するオプションがある。
しかし、日常的に使う場合、ブログのように日付のメニューでアクセスできると便利だ。
メールはブログと異なり、自分しかみない。しかし、最近ではメールを共有することも増えてきた。Googleグループはその一例と言える。
メールを共有すればそのままブログにできる。公開タグを設定すればそのままGmailを使える。

2008年5月23日金曜日

CGIによる排他制御

CGIで排他制御する方法のことではない。排他制御するためにCGIを使う方法を考える。
1つのサーバの中でもCGIは並行処理だ。ましてや複数のサーバの間では排他制御が必要になる。ただし、排他制御すべき資源は共有資源に限られる。通常は、1つのサーバに資源が集約される。よって1つのサーバのCGI同士で排他制御できれば十分であることが多い。そのためにはflockなどが使われる。
しかし、Webアプリケーションの連携が進むと、1つのサーバに資源を集中する単純な配備が困難な場合も出てくる。また、複数のWebアプリケーションが同期したいこともある。そのような場合、1つのサーバのCGI同士で排他制御しても意味がない。そこで、排他制御するためにCGIを使う方法を考える。
原理は簡単だ。資源IDをパラメータとしてCGIを呼び出し、獲得できればOKを返し、そうでなければ失敗するか、あるいは待つ。これはComet型のPush配信ともいえる。Cometとは、簡単にいえばクライアントを長く待たせるということだ。
実際にCGIが排他制御するには資源IDに相当するロックファイルをflockする。これが一番簡単だろう。

グリーンピースの功罪

環境保護団体グリーンピースが捕鯨船乗組員による鯨肉横流しの証拠を私書の無断開封により入手したことを記者会見で明らかにした。
この件について、不正を暴く手段であっても不正を行うべきではないという意見が多数上がっている。
グリーンピースという団体は反発を招きやすい。特に、鯨が絡むと、ナショナリズムから捕鯨に反対する人に反対する人も多い。
両方とも悪いと結論付けるところまでは異論がないだろうが、どちらがより悪いかを考える必要がある。
私の意見では、鯨肉横流しの方が私書の無断開封により悪いと思う。一般論でいえば逆かもしれない。
しかし、今回、グリーンピースは確信があっての無断開封であり、無原則に開封したわけではないだろう。そして、横流しは慣例化していたと思われる。つまり、誰かが告発しなければ永遠に不正が続いた可能性がある。
グリーンピースに罪がないわけではない。その罪は償うべきだ。そのうえで功績も大きいと思う。
まさかとは思うが、横流しが、乗組員への報酬として暗黙のうちに了解されており、それを廃止することで、その副収入を補うために正式な報酬を増やすなどということを行うとしたら、暴挙だろう。そんなことを考えるものがいないことを祈りたい。

2008年5月21日水曜日

西高の謎

これは独断と偏見に満ちた仮説に過ぎない。
「~西高」のように西の字がつく高校には優秀なところが多い。それは、最初に設立され、伝統があるからだ。
ある地方で県立高校が設立されると優秀な人は皆そこへ行こうとする。例外は少ない。
やがて人が増え高校を新設するとき、元の高校の東側にできる。新しい高校は東高と呼ばれる。やがて、北や南にも高校が新設されると元の高校は西高と呼ばれるようになる。
なぜ最初の高校が西側にできるのかはわからない。西の土地が安いのかもしれない。あるいは関東の西では、東京へ近い方(東)へ発展するために、新しい高校が東にできるのかもしれない。

大学計算機の古きよき時代

昔、大学の計算機は教員と職員が協力して管理していた。教員は自作のプログラムを教育や運用に活用した。
現在、情報システムは複雑化し、教員や職員の手に余るものとなった。SEが管理し、教職員は直接手を出せなくなった。
その結果、自作のプログラムを使う機会も減り、教育効果が減退し、管理コストが増えた。
これは理系学科に顕著だった。理系学科にとってはSEによる管理は利点ばかりではなかった。しかし、多くの文系学科にとっては利点だけだった。その結果、理系学科は文系学科と同じ環境で勉強することになり、理系の特徴は失われていった。
これは一面の真実だが、公平な推論ではないかもしれない。

SSDが変える社会

SSDはHDDを駆逐するかもしれない。当分コストの差が埋まらなければ両立するだろうが、SSDのシェアが増えるのは必然といえる。むしろいつまでHDDがあるかと問うべきかも知れない。
SSDはHDDより速く省エネで信頼性が高い。逆に容量は小さく、値段は高い。
SSDの影響は決して小さくない。安価なSSDが普及した将来の社会を想像してみよう。
SSDのような駆動部のないドライブをゼロスピンドルドライブという。将来のPCはすべてゼロスピンドルになるだろう。HDDだけでなくCDもなくなる。DVDやBDもない。メディアはSDになる。省エネになり駆動時間が長くなる。しかも故障に強い。SSDは駆動部がないので故障しにくい。しかし、寿命はある。それはフラッシュの読み書き限界に由来する。よって仮想記憶が単純に復活することはない。DRAMで十分な主記憶を構成し、二次記憶をSSDで実現する。
SSDはHDDより高速だ。DRAMとの差が縮まる。その結果、主記憶は大きなキャッシュとなり、太いバスでSSDと結合されるかもしれない。SSDのアクセスを遅らせたり分散させたりできれば単一記憶の再現も夢ではない。
CPU内部にもフラッシュメモリが取り込まれ、電源オフしても記憶が失われることがなくなるかもしれない。あるいは瞬時にハイバネートするかもしれない。そうなれば家電並みに気軽に電源のオン・オフを行うことができるようになる。
PCが身近になることは間違いない。家電の整理がなされ、PCに吸収されるものもでてくるだろう。
携帯音楽プレーヤの大容量化がすすみPCで管理できなくなる。現在の製品はフラッシュメモリのプレーヤよりHDDのPCの方が容量が大きいことを前提としている。それが崩れる。ネットワークが必須となる。
しかし、大量のデータを転送するには今のインターネットは非力だ。いまでさえ光は100Mbpsが基本だ。これからは1Gbpsを単位とするようになる。それにはインフラの再構築が必要となる。その普及は遅い。
そこでメディアが復活する。SSDを着脱可能にしたメディアが登場する。より一般的なメディアとしてSDを拡張したものがSSDに転用されるだろう。内蔵と外付けの境界があいまいになる。これらのメディアがBDを駆逐する。
HDDビデオレコーダはSSDレコーダに代わる。高速アクセスを活かして複数局の録画が可能になる。あるいは同一局の複数時差録画が可能になる。このときダビング10はどうなるだろう。もっとも、それまでには自由にダビングできるようになっているかもしれない。
Gmailの利用は減るかもしれない。しかし、SSDはデータセンターにもよい影響がある。省電力で速いSSDはサーバに適している。クラウドが普及するだろう。

MicrosoftのGoogle対策

今度はMicrosoftの側から考えてみる。
Googleにも死角はある。それどころか順調に成長しているのが不思議なくらいだ。
第1の問題点は広告に頼る収入だ。Googleの広告は検索結果に連動するため検索広告あるいはターゲット広告と呼ばれる。これはインターネット広告の一部でしかない。Googleが支配していない広告も多い。たとえば、インターネット以外の広告だ。マスコミはGoogleよりMicrosoftを選ぶだろう。なぜなら彼らはWindows/Officeのユーザーだからだ。つまりGoogleと競合しない広告はいくらでもある。広告に関与する方法はメディア以外にもある。また、広告はしょせん商品の売上に依存する。商品をつくる企業が広告会社より小さくなることはない。
第2の問題点は技術者の流出だ。Googleから技術者が流出しつつある。年をとると大学キャンパスのような職場が理想とはいえなくなる。また、おもしろいプロジェクトに関与する機会も減る。しかし、同じような問題はMicrosoftにもある。どちらが本当の意味で魅力的な職場環境を提供できるかが課題だ。
これらのことからMicrosoftがとるべき戦略が見えてくる。まず、検索広告に固執せずあらゆる方面から広告業界と連携することだ。そうすれば一番中心をとることさえできるかもしれない。次に技術者の処遇を改善することだ。よい技術者を集めることがなにより重要だ。

余暇の計画

スケジュール管理をしていると空き時間を見つけることができる。
多くの場合、スケジュール管理では会議や出張などの大きなイベントしか登録しない。すると、それ以外の時間は空き時間ということになる。しかし、本当はその時間こそ生産的な仕事の時間だ。
Remenber the milkのようなささいな出来事まで管理しようという試みもある。ただし、Remenber the milkが普通のスケジュール管理とそれほど違うとは思えない。
そこで、欲しい機能を考えた。それは余暇をねん出する機能だ。
たとえば移動時間、食事時間など見えない時間は多い。これらを見える化して効率化を図る。そして小さな仕事を割り当てる。

グループウェアのスケジュール同期

スケジュール管理には様々なソフトがある。Outlookが一番一般的かもしれない。私自身はGoogleカレンダとiPAQをOutlookで同期している。
個人で使うものと会社で強制されるものがある。後者の代表はグループウェアだ。
グループウェアは単体では孤立している。多くは自社製品で囲い込むので十分な機能が提供されることはない。要求と対応は常にいたちごっこを繰り返す。
少なくともその連鎖を断ち切るにはオープンにするしかない。理想をいえばグループウェアとGoogleカレンダないしOutlookを同期して欲しい。
また、複数のグループウェアの間で同期する規格が欲しい。

マルチインターネットバンク

複数の銀行口座を持つ人は多い。そのような人の多くはネットバンクを使っているだろう。ここでネットバンクとはネット専用口座のことではなくネットで口座にアクセスするサービスをさす。
しかし、複数のネットバンクを使って口座を管理するのは面倒だ。きびしいいい方だが銀行の都合でユーザに不便を強いている。
このようなときはワンストップサービスを導入すべきだ。これは銀行系列とは独立ないし中立であるべきだ。必ずしも1つである必要はない。競争はした方がよい。
銀行は情報システムを簡素化し、金融商品の開発に注力する。銀行のサービスはSaaSとなり、ワンストップサービスのフロントエンドで統合する。SaaSレベルで特殊性を競う必要はない。金融商品で差別化すればよい。
マルチインターネットバンクのプロバイダーはATMのように利用料を徴収してもよい。また、銀行のコストダウンを運用費に充ててもよい。

トイレットペーパーの向き

小ネタをひとつ。
トイレットペーパーをセットするとき回転する向きに合わせてセットしないと回しにくいことになる。
たびたび向きを間違えてセットされていることがある。人間だから間違えるのは当然だが、間違えを減らすような工夫がなされていないことが問題だと思う。
1つは縦にセットすることが考えられる。そうすればどちらむきでもよい。
もう1つは包装紙に印刷しておくことだ。包装紙をとるときに向きが分かるようになる。
こんな小さなことでも何らかの改善につながればよい。

Gmailでの大量印刷

Gmailでメールを印刷するとウインドウ(あるいはタブ)が開かれる。Firefox 2.0ではあまり多くのウィンドウを開くと、それ以上開けなくなるようだ。Gmailで多くのメールを印刷しようとする時には注意が必要だ。
もともと印刷はしない方がよいという考えがGmailにはある。しかし、仕事の能率を考えるとそれだけで割り切ることはできない。
大量印刷の問題を回避する方法はおそらくいくつかあるだろう。例えば、タグをつけて全部印刷するなどだ。

2008年5月19日月曜日

Googleの対Microsoft戦略

MicrosoftはYahoo買収を目指すなど、Google対抗策を推進している。
これは巨人が小人に戦いをいどんでいるようなもので滑稽な構図ではあるが、当事者は真剣だ。
MicrosoftはOSやOfficeによる潤沢な資金を活用できる。Googleの資金はMicrosoftに比べればはるかに少ない。
このような状況でGoogleはどのような戦略を取るべきだろうか?
よく流布しているのはOS, OfficeのSaaS版で相手の弱点を攻める戦略だ。Googleは携帯用にAndroidを開発した。これはLinuxのディストリビューションに他ならない。GoogleがULCPC用のOSを開発し、提供すれば、Microsoftもうかうかしていられない。少なくとも大きな収益源が失われつつある。ただし、Googleもそれで利益を出せるわけではないので、両者とも消耗戦となる。消費者は漁夫の利を得ることができるかも知れないが、両者とも収益は減少する。ただし、どちらがより消耗するかと言えば明らかにMicrosoftだ。Googleのクラウドには十分な余裕がある。それに対して、Microsoftは新たにクラウドを形成したり、非SaaS版を開発したり、コスト増となる対応をせまられる。
一番よいのは新たな市場を開拓し続けることだ。両者とも新たな市場を目指している。しかし、その方向性はかなり違う。
個人的な意見だが、Googleが広告市場に固執する限りはMicrosoftを超えることはないと思う。なぜなら、広告自体は本当のイノベーションではないからだ。何らかの製品を売ることが広告の目的であり、魅力的な製品がなければ広告も成立しないからだ。

2008年5月17日土曜日

ECサイトの重複注文チェック

Amazonをよく使う。そして同じ本を2冊注文してしまうことがたびたびある。
前に購入したことを忘れて新たに注文したというわけではない。
操作ミスで2冊注文してしまう。おそらくクリックを2回してしまうのだと思う。2度押したつもりがないので、注文時に確認することを怠ってしまうのもいけないのだろう。
このような誤った注文は売上を伸ばすため、歓迎するECサイトもあるかもしれないが、多くの場合は信用を失う結果につながるだろう。
簡単な重複注文のチェックがあるとよい。

2008年5月16日金曜日

Executable Storage

クラウドが浸透するとデータはサーバ側に置くようになる。
そのときクライアント側にダウンロードし、処理した結果をアップロードするというのは無駄が多い。
非力なクライアントに遠回りしてデータを届けるのだから、きわめて無駄な処理と言わざるを得ない。
しかし、現在のオンラインストレージサービスのほとんどは、そのような使い方を強要する。
理想的には、ストレージに近いところのプロセッサを借りて実行するべきだ。その場合、データはクライアントまでダウンロードされることはない。すべてがサーバ側で処理したように見える。つまり、ストレージ側で実行したことになる。
実行可能なストレージというわけだ。
しかし、すべての処理をストレージで行うのは現実的でない。対話が必要な処理はクライアント側で行った方がよい。その役割分担をどうすべきかが課題となる。

Gearsで学ぶSQL

このようなタイトルの本が出版されてもおかしくない。
GearsとはGoogle Gearsのことだ。Webアプリをオフラインで実行可能にする。
GearsにはSQLiteというDBMSが内蔵されている。
つまり、Gearsを介してDBを利用することができる。
通常では、自分でJavaScriptのプログラムを書いて、このDBにアクセスしなければならない。
しかし、同じことを考える人はいるもので、このDBをJavaScriptなしにアクセスできたらよいと考えた人がいた。
Google GearsのサイトからGoogleGears_SampleAndTools.zipをダウンロードするとdbquery.htmlが含まれている。これでSQLを直接入力することができる。

UMLの多重度をターゲット側に書く理由

最近、児玉公信著「UMLモデリング入門」という本を読んだ。
この中で氏はUMLの多重度をターゲット側に書く理由をER図に由来すると説明している(ように読めた)。ソースからターゲットへの対応がカラスの足のように見え、それがターゲット側に位置するというわけだ。
面白い意見だと思った。
しかし、もっと単純な理由ではないかと思う。それは"A student attends a/many course/s"という英文を考えると、a/manyという多重度はターゲットに相当する目的語を修飾している。つまり、英文で自然に考えるとターゲット側に多重度を書くことになるのだと思う。
UMLに限らずCSの表記では、しばしば英文法に由来するものが見受けられる。これもその1つだと思う。

論文か患者か

医者の業績評価は難しい。
研究者なら論文、教師なら教育で評価される。学者は両方だが、一般的には両立できると考えられている。
しかし、医者の場合、論文と患者(臨床)を両立させるのは難しいだろう。
例えば、京大の山中教授が臨床に時間を費やしていたらiPS細胞の開発に後れを取っていただろう。もっとも山中教授が臨床をしているのかどうかを私は知らない。たぶんしている時間はないだろうと推測する。
病院の臨床は大学の授業より多くの時間を費やすだろう。特に外科手術は数時間に及ぶことも珍しくない。
そのため、論文か患者かで業績の傾向が二分されると思う。これを公平に評価するのは難しい。
極端な言い方をすれば、人命と何本の論文が釣り合うのかということだ。
しかし、iPS細胞のように1本の論文が何人の命を救うかもしれない(今はまだ可能性だけだが)。
最近の世論は論文より臨床を重視してきているように思える。しかし、論文も重要であることを忘れてはいけないだろう。

UPS不要のPC

サーバの運用ではUSPはかかせない。
しかし、UPSのコストも管理も無視できない。可能ならUPSなど使いたくない。そういうサーバ管理者も少なくないだろう。
そのようなニーズに答える製品を作ればよい。
例えば、ノートPCのようにバッテリを内蔵する。UPSより安くて管理が容易ならよい。コンピュータを休止させるわずかな時間をかせぐことができればよい。
SSDを高速化し、休止に至るまでの時間を極力短縮する。
仮想化をせず、小さな物理メモリのマシンを多く使った方がよいのかもしれない。
休止時間が短くなれば、バッテリも変わる。リチウムイオンでなくてもコンデンサのようなものでもよくなるかもしれない。そうなれば全く消耗しないのでメンテナンスフリーになる。
抜本的な対策としてはフラッシュメモリのように記憶の消えない、DRAM相当の速さのメモリを開発することだ。

スキャナとSaaS

文書の電子化にスキャナは欠かせないツールになっている。
しかし、程度問題ではあるが、スキャナは手軽に使うことができない道具の1つだ。
HDDはドライバ不要で、接続してすぐに利用できる。
しかし、スキャナを使うには、ドライバは勿論ビューアなどのツールまでインストールする必要がある。最低限の使い方ならWindowsの標準ツールでもTWAINはサポートしているが、いまどきPDFくらいまで変換してくればければ(文書管理の目的では)使い物にはならない。
そこで、このような面倒なインストールを一切不要にする方法がないか考えるとSaaSに行きつく。
非標準なツールはサーバ側に用意し、スキャンデータをサーバに転送して加工すればよい。WIFI対応なら結線も不要だ。
また、サーバへの回線が細い場合は、スキャナにストレージを内蔵することも考えられる。Linuxサーバを内蔵すればアプリケーションを実行することもできる。
コストは増えるだろうが、それほど大きくはないだろう。

健康的なフライドポテト

ファストフードではフライドポテトが定番だ。ハンバーグだけでは物足りないときポテトのセットを注文する。
しかし、このポテトは高カロリーな点が問題だ。小腹を満たす程度でよいのに、必要以上にカロリーを摂取してしまう。
Sサイズのセットがあってもよいが、それとは別に健康的なフライドポテトを考えてほしいと思う。
油の種類を変えたり、あるいは油を極力少なくした調理法を考えるのはどうだろう。
ヘルシーであることを売りにすれば、量が少なくても価格を維持できるのではないだろうか。

インクジェットプリンタの掃除

近頃のエアコンは掃除までしてくれる。まさにメンテナンスフリーだ。
しかし、インクジェットプリンタはメンテナンスフリーに程遠い。
家庭のインクジェットプリンタは年賀状印刷くらいにしか使わない。1年中止まっていることが多い。そのため、いざ印刷しようとすると目詰まりを起こして、なかなか使えない。クリーンアップだけでかなりの時間を使う。
待機電流の問題はあるが、定期的に掃除してくれる機能がプリンタにあってもよいのではないかと思う。少なくても、消費電力を優先するか使い勝手を優先するかを消費者が選択できるとよい。何も印刷しなくてもインクが失われるが、それが問題だと思う人は通常モードで使えばよい。しかし、多くの場合、目詰まりを起こすとカートリッジごと交換しなければならない。下手をすれば修理に出さなければならない。それなら徐々に減る方がまだましだ。
インクジェットプリンタは大変無駄な消耗品だと思っている。

仮想宇宙旅行

宇宙は誰でも行けるところではない。それだけに行ってみたいと思う人は少なくないだろう。
仮想的に宇宙旅行を体験できそうなツールが徐々にそろってきた。
Google EarthのSkyやMars、それに加えてMicrosoftのWorldWide Telescope(WWT)が登場した。
WWTは学習ソフトとしての1面をもつようだ。この上で宇宙ツアーやプラネタリウムが企画される日が来るかもしれない。

2008年5月9日金曜日

HP iPAQ 112

HP iPAQシリーズをよく使っている。いまどきなら本来はスマートフォンを使うべきなのだろうが、使いもしないのに基本料をとられるのがいやでPDAに固執している。そのうち気が変わるかもしれないが、今のところ不自由はない。
今まではiPAQ rx4540を使っていたが、今回からiPAQ 112に変えた。若干大きいが薄い。しかも少し軽く感じる。なにより画面が大きくなって文字が読みやすくなった。最近は視力が落ちて、文字が大きいと助かる。
この軽さになれるとスマートフォンも重く感じる。
Active Syncを使えばスケジュールも簡単に同期できる。
上位機種もあるが、112で十分だと思う。

プログラムの美しさ

今のプログラミング教育では、プログラムの美しさを教えることは難しい。
音楽学校では、音の美しさを追求しているだろう。音楽は美しさだけではないだろうが、美しさは極めて重要だ。
しかし、情報系の学校では美しさはなおざりにされている。美しさより、正しく動くこと、そして効率よく動くことが重視される。これは、ある意味では当然だ。美しくても正しくなく、効率の悪いプログラムを喜ぶ人はいない。しかし、これは段階的な発展だ。今の教育では、効率まで教えるのが精いっぱいで、美しさを教えるところまで至らないということでもある。
プログラムの美しさには、いくつもの評価軸が考えられる。代表的な評価軸はソースの読みやすさだろう。デザインパターンもソースを抽象的に把握するために役立つ。
しかし、単に、コメントを書いたり、適度にインデントするだけでは十分でない。いうなれば主張、あるいは哲学が必要だ。
プログラムはプログラミング言語でかかれた文学だ。その主題を読み取る技能が読み手にも要求される。短い作品は容易に理解できるが、大作となるとなかなか理解できない。読み手の問題もあるが、実は書き手の問題もある。書き手が読み手のことを考えずに、単に動けばよいという手抜きをすると、とたんに読みにくくなる。

DAISY XML

ちょっと気になる記事があったのでメモしておく。
MicrosoftがOpen XMLをDAISY XMLに変換するアドインを提供し始めたそうだ。
DAISY XMLは他のツール(DAISY Pipeline)を使ってデジタル録音図書に変換できるらしい。
これは視覚障害者だけでなく健常者にとっても意味のあることだと思う。
例えば、原稿を作成すれば、自動的にPodcastに変換できる。自然に読み上げることができるかどうかわからない。おそらく無理だろうが、何らかの役には立つだろう。また、当面は日本語もサポートされないだろう。しかし、このような方向性は正しいと思う。

JavaScriptで学ぶプログラミング

Canvas対応ブラウザが普及すれば、JavaScriptで楽しいプログラムを作ることができそうだ。
それによって、JavaScriptが教育用言語として注目されるようになるかもしれない。
JavaScriptを教育用言語としてみた場合は利点と欠点がある。
ブラウザだけで勉強できるのは大きな利点だ。JavaScriptを実行するガジェットもある。
初心者は型付けを面倒に感じる。型のないJavaScriptは初心者にわかりやすいかもしれない。
Canvasでグラフィックスを扱える。しかも、3Dまで可能なので、ちょっとしたゲームを作ることもできる。HTMLからJavaScriptへ自然に移行することができるだろう。教育プランが作りやすい。
本格的な段階になると独特のオブジェクトベースが気になるだろう。そのあたりが正当?な言語に切り替える潮時だろう。
イベントドリブンな書き方が初心者に抵抗なく受け入れられるかわからない。GUIアプリケーションを作成する入門書ではイベントドリブンという言葉を説明するところから入ることが多いが、かえって混乱させているような気がする。はじめからそういうものだと、あるがままに受け入れる初心者は、案外抵抗なく理解するのではないかとも思う。

複数ファイルのアップロード

HTML5が策定されているが、HTMLには多くの制限がある。
複数ファイルのアップロードもその1つだ。今のHTMLでは、1つずつファイルを選択してアップロードするしかない。複数のファイルやフォルダーごと選択して、ドラッグ&ドロップをしたいものだ。
今でもアプレットなどを使えば可能だろう。しかし、ブラウザ自体で可能になればアプリケーションの操作性は大きく変わる。特にAjaxアプリケーションは進歩するだろう。

2008年5月8日木曜日

Garminとレンタカー

Garminは携帯ナビゲータ(PND)だ。しかも、安い。実際、使ってみたが、カーナビとして十分使える。ポータブルなので歩行時のナビゲータにもなる。
ところで、いまどきのレンタカーには、必ずカーナビがついてくる。しかし、レンタカー会社にとってはコストアップの原因にもなる。導入コストだけではなく地図のメンテナンスも必要だから維持コストも発生する。そのためレンタカーの価格自体も高くなる。
そこで、GarminのようなPNDを使えば、カーナビ導入コストを大幅に下げることができるだろう。最低でも1/5にはなるだろうが、場合によっては1/10くらいになるかもしれない。また、車載カーナビの場合は車の台数分だけ必要だが、携帯カーナビなら利用分だけ用意すればよい。故障を考慮しなければ全く無駄がない。
さらに、歩行用ナビゲータとして利用できるので、サービスに付加価値を与えることができる。今後、レンタカー会社で採用が増えるのではないかと考えている。
ただし、レンタカー会社が系列のしがらみにとらわれていたら無理だろう。そのつけは消費者へまわってくる。

2008年5月1日木曜日

ふるさと納税:なぜ「ふるさと」だけなのか?

ふるさと納税という制度が始まった。
しかし、この制度には疑問がある。
なぜ、「ふるさと」だけなのだろうか?
もともと地方の財政危機にある自治体を支援する目的だろう。それなら出身者だけで支えるのはおのずと無理があるだろう。広く寄付を集う必要がある。
にもかかわらず、寄付先を「ふるさと」に限定してしまえば、富める自治体はまずます富むのではないだろうか?
このような制度が何の役に立つのかわからない。
何かしらもっともらしい試算をしたのだろうか?

Hackingの楽しみ

PNDでも話したが、iPodやEee PCなどの格安商品にはそれまでにない魅力が付加されている。
それはユーザ自身がHackingできること、またはHackingする楽しみを味わえることだ。安いので壊しても気にならない。気軽にいろいろなことが楽しめる。これがユーザを強く魅了し、他の追随を許さない強い忠誠心をもったユーザを囲い込むことにつながっている。
このような視点で考えると、既存の高付加価値戦略とは異なる戦略が見えてくる。つまり高価値創造戦略とでもいえるものだ。製造者がきまりきった価値を押しつけ、高く売りつけるのではなく、ユーザが必要に応じて自ら価値を付加する。
初期機能で十分なら単なる低価格品だが、初期機能に満足しないユーザもサードパーティ製品などを用いて機能を追加できる。拡張性といってもよいかもしれない。しかし、既存の拡張性とは異なる。なぜなら、iPodもEee PCもメーカーが規定した拡張性は無に等しいものだからだ。新しい拡張性はユーザの側で生まれる。しかも、メーカーの予想を超えるものとなる。
これから高価値創造戦略をとるならば、自分たちの予想を超える使われ方を予想するという一見矛盾した発想が必要になる。しかし、決して難しいことではない。設計段階で断念した機能を後付けできる余地を残しておけばよいのだ。
高価値創造型商品は製品そのものを売るというよりHackingの楽しみを売る大人の玩具と位置付けてもよい。

PND

PND(Personal Navigation Device)は簡易携帯ナビゲーションだ。代表的商品はGarminだろう。nuvi 250は一般のカーナビと比べてもきわめて安い。つまり、PC界におけるEee PCのようなものだ。
いま、どこの商品カテゴリーでも低価格帯の商品が急速に進歩している。Garmin, ASUSTek, タタなど枚挙にいとまがない。これらの価格帯に世界中がシフトする可能性がある。一大価格革命の時代が到来する可能性がある。
これにより先進国に限られていた市場が全世界に広がる可能性がある。そうなれば低価格路線は行き場を失い終息するかもしれない。しかし、それは日本のような付加価値路線の勝利を意味するものではない。むしろ、低価格商品が普及するずっと前に高付加価値商品は無用となるだろう。低価格商品に価値を付加するのは決して難しくないからだ。