Home

日記
GPUがコンピューティングの主役になる? from ZDNet (13:49)Edit

>MicrosoftはWindowsのグラフィックアーキテクチャを変更し、Windows 2000以降のネイティブドライバでは、GDI操作(Windowsの最も一般的な2Dグラフィック操作)をDirectDrawサーフェイスに行うように変更した。 >Longhornではこれがさらに推し進められ、Windowsの描画がすべてDirect3Dオブジェクトのテクスチャになる。デスクトップ背景はもちろん、ウィンドウの1つずつがポリゴンのサーフェイスとして処理される。

しらなかったよー。そんなことになっていたなんてー。

Published At2003-05-08 00:00Updated At2003-05-08 00:00

日記
WikiとTRON (13:49)Edit

【レビュー】Windows環境で手軽にBTRONの世界を体験できる「BTMemo」(1) from MYCOM PC WEB」の美崎さんのコメント#1に返事を書こうと思ったんだけど、ネタ的にコメント欄で収まりきれない感じなんで、本文に昇格。

ローカル環境で動作するWikiシステム

WikiMemoというのは自作のWindows用アプリケーション(現在のところ非公開)で、.NET Framework環境で動作するWiki風ハイパーテキストメモ帳です。Windowsクライアント上で、

を行うことができます。Windowsローカル環境で動作するので、

>Wikiは編集時に、(比較的小さなことの多い)枠の中で、(ブラウザによって)限られた編集機能を使わなければならないので、つらいと感じることがあります。

のようなWebアプリケーションとして実装されたWikiの欠点(Webブラウザの編集インターフェースが弱い、編集途中の保存やプレビューが不便)は解消されています(というか、解消することが出来ます)。

Wikiはもともと、Web上で多人数の手によってコンテンツを編集・閲覧することができるように作られたものですが、その仕組みのうち、

  • キーワードでドキュメント同士が結びつけられる(ハイパーリンク)
  • プレーンテキストベースの可読性が良い文法で、そこそこリッチな表現が可能になる

というところは、Web上でなくても有用な要素だと思います。そこで、その部分を中心にローカル環境用に実装し直すことによって何が可能になるのかを、WikiMemoを使って実験しているわけです。

Wiki文法で記述されるので、Web上の(WikiLikeをはじめとする)Wikiシステムにそのテキストをほぼそのまま投稿することが出来るというあたりも、Web上のWikiシステムを使っている人間にとっては利点でしょう。私の場合は、個人的なメモ(WikiLikeに掲載する文章の下書きや断片)も、仕事上のメモも、他人に見せるドキュメント(印刷)も、最近ではこの上で作ることが多くなっています。

WYSIWYGとドキュメントの内容/デザインの分離

>で、わたしは基本的にはBTRONのひとなので、WYSIWYGモードレスがいちばん楽だと思うのですが、いかがでしょう?

私はWikiの利点として、「レンダリング(HTML化)しなくてもその意図が読みとれる整形ルールになっている」ことが大きいと思っています。たとえばHTMLでは、

<ul><li>リスト項目1</li><li>リスト項目2</li></ul>

となるものを、Wiki文法では、

*リスト項目1
*リスト項目2

と自然な見た目を伴う表記で書けることになります。

つまりWiki文法テキストは、直観的なリッチテキスト編集環境をプレーンテキストベースで実現するための仕組みとして使えるのではないかと考えているのです。

また、WYSIWYGモードレスな環境は確かに直観的であるという利点がありますが、一方「HTML+CSS」のような「ドキュメントの内容とデザインは分離しよう」というアプローチもあります。ドキュメントの見栄え(デザイン)というものは、ドキュメントの内容の上からかぶせる差し替え可能な要素であり、本質ではない(場合が多い)という考え方です。

すべてWYSIWYGモードレスにしようというアプローチでは、ドキュメントの内容とデザインの分離が難しくなる気がします。

Wikiベースの場合は、

  • テキストの内容(および構造)をテキスト編集で作成する
  • それをレンダリング(HTML化+CSS装飾)する

という二つのモードを持つことにより、ドキュメントの内容(および構造)の作成と、そのデザイン(表示)を分離することが出来ます。ちなみに現在のWikiMemoでは、ドキュメントごとのCSSファイルおよびレンダリングエンジンを切り替えることが出来るようになっています。

Wikiテキストの可搬性

Wiki文書のデータはシンプルなテキストなので、どんなシステム(OS、環境)でも気軽に編集できます。またレンダリング環境がなかったとしても、テキスト自体に十分意味があります(レンダリングしなくても読解可能)。出力結果であるHTML+CSSファイルは、さまざまなWebブラウザ環境で表示することが出来ます。

また、プログラムが書ける人にとっては、Wiki文法のレンダリングエンジンは比較的簡単に実装できるので、さまざまなシステム(OS、環境)に移植することが簡単です。レンダリングフォーマットも必ずしもHTMLである必要はありません。Wiki文法を使って書かれたプレーンテキストを見栄え良く表示することが目的なのですから、たとえばAcrobat ReaderPDFドキュメントとして出力してもいいでしょう。

というようにWiki文書を中心にしたドキュメントは、非常に可搬性が高いものになります。特にWeb上で動作するWiki(文法を採用したCMS)と連携させやすいため、クライアント環境+Webサーバー環境で共通利用するドキュメントを作成するには非常に便利です。

ただ、こういうものを作っていると、構造化テキストの枠にきれいに収まらない要素(画像や添付ファイル的なもの)も取り扱いたくなります。そのあたりのリッチな機能を(UI的に)スマートに表現する手法として、BTRON的な環境は良さそうだなー。というのが「【レビュー】Windows環境で手軽にBTRONの世界を体験できる「BTMemo」(1) from MYCOM PC WEB」で書いた話なわけですね。

話が発散気味なんでひとまずここで終了。

Published At2003-05-08 00:00Updated At2003-05-08 00:00

日記
PHPのauto_prepend (13:49)Edit

PHPに関するメモ。

PHPにはauto_prependという設定がある。これは、PHPファイルの頭に自動的に指定したファイル(コード)を付与する設定だ。あるディレクトリ以下のすべてのPHPファイルに共通する処理などは、このauto_prependを使うことによって手軽に実装できる。

auto_prependはphp.iniで設定するが、php.iniの設定は.htaccessで上書きすることもできる。

これらの機能を使用することによって、PHPにおける共通処理はかなり柔軟に表現することが出来るだろう。

これを使うと作りかけのライブラリのいろいろな機能がもっとスマートに書き直せるなー。と思いつつも、PHP5の言語仕様をちらっと見たところ、PHP4でもうコードを書く気力がなくなった(どうせ書くならばPHP5になってからにしたい)ので、まあしばらくこの知識は使われることがないと思うけど。

Published At2003-05-09 00:00Updated At2003-05-09 00:00

日記
ソニー、スカパー!の録画にも対応可能な縦置き「コクーン」などを発表 from MYCOM PC WEB (13:49)Edit

うわー、すげー欲しい。けれども、RD-X2HDD+DVD-RAMレコーダー)で自力予約録画した番組もろくに消化できずにためまくってしまい、今やほとんど使っていない現状を考えると、買ってもどうせ見ている暇はないんだろうなー。半自動でばりばりDVD-Rに書き出してくれる機能とかあれば、老後の楽しみにできるのに。

Published At2003-05-09 00:00Updated At2003-05-09 00:00

日記
MS Passportのセキュリティ問題で個人情報が漏洩 from ZDNet (13:49)Edit

多分かなり基本的なミスだったんだろうなー。クリティカルな処理が実はGETで簡単に呼び出せてしまったりして、あとはその穴と標準機能を組み合わせていろいろ出来ちゃうって感じの。

Published At2003-05-09 00:00Updated At2003-05-09 00:00

日記
Windows XP「2人同時利用」が可能に from ZDNet (13:49)Edit

ようやくデスクトップのランタイム環境が仮想化されて、同時に複数のデスクトップ環境を実行できるようになったのか。X Windowみたいにデスクトップサービスみたいなのが裏で走って、それにユーザーのデスクトップ実行環境が接続するイメージになるのかなー。

Windows XP以降は、同時マルチユーザーログイン時の管理の切り離しがかなり進んでいるし、デスクトップ描画がDirectDraw Surfaceに割り当てられているんだったら、表示側でn個のデスクトップ処理を行うのは簡単そうだ。あとは、キーボードとかマウスとかの入力デバイスとかシステムイベントの通知とかが、きちんと対応するデスクトップに対して送られればいいのかな。

Published At2003-05-09 00:00Updated At2003-05-09 00:00

日記
MSのNGSCB、ウィンドウ外観でセキュリティ保護 from ZDNet (13:49)Edit

>セキュアなウィンドウの情報は、ほかのウィンドウがかぶさったりバックグラウンドに移動されると消滅する

なるほどそういうインターフェースはいいかもね。でも、そうやってセキュアさを強調したウィンドウを呼び出す処理はどうやるんだろうな? いちいち面倒くさい操作(パスワード入力とか)が必要というのはうざそうだし、かといって誰でも簡単に呼び出せるようじゃウィンドウ表示のインターフェースに凝る意味がなくなってしまう。

Published At2003-05-09 00:00Updated At2003-05-09 00:00

日記
理想はPCゲーマー?――Windowsクライアント戦略が狙うもの from ZDNet (13:49)Edit

現在PCにお金を(過剰に)使ってくれるのは、一部のコアゲーマーと必要に迫られたエンタープライズ系顧客くらい、って感じなのかなー。その二つは両極端過ぎて、同時にサポートするのは難しそうだ。さらにもっとも数が多い、ごく普通のビジネス・ホームユーザーという層も捨てるわけにいかないし。

Published At2003-05-09 00:00Updated At2003-05-09 00:00

日記
Media Center PCはこの先どうなっていくのか from ZDNet (13:49)Edit

ソニーは、Media Center PCにまったくコミットしようとせず、今までのデスクトップ用Windows+独自ソフト環境を続けているからなー。少なくともソニーに、自前のソフトウェア資産を捨ててでもMedia Center PCに移行する気にさせる程度まで達しないと、Media Center PCは成功しないんじゃないかな。

Published At2003-05-09 00:00Updated At2003-05-09 00:00

日記
Web日記システムの欠点はtitle要素の扱いだ from 気分はノースサイド (13:49)Edit

ずいぶん前に自分の中では解決した問題なんだけど、きちんと文章でまとめたことがなかった気がするんで書いてみよう。

  • Web日記システムは、“日記”という名前がついているからといって、日付を主管理単位にしてしまうのはよろしくない。基本は意味のある文章のかたまり(「ドキュメント」とか「ページ」とか私は呼んでいる。blog風に言えば「トピック」とか「エントリー」か)を管理単位とする。
  • ドキュメントにはその内容を表す「タイトル」を付けることを推奨する。ただし、タイトルに関しては日常雑記的な、特に言うべき内容がない場合もあり得るので、その場合は自動的に記述した日付・時刻がタイトルとして埋め込まれる。
  • また長文に関しては、その文章の概要を表す「要約」をつけることも推奨する(WikiLikeでは要約欄も持っている)。
  • 文章中で重要な(キーワードとなる)単語は、大括弧二つで囲む(Wikiのブラケットネーム化)することによって、
    • キーワード検索用リンクとなる。
    • その文章の検索用インデックス(そのキーワードで検索するとその文章がヒットする)となる。つまり、日常雑記的なタイトルが付いていないドキュメントに関しても、キーワードレベルでの検索は可能になる。
    • ジャンル検索の際のジャンル(ジャンル検索はキーワード検索の特殊な例である)となる。
  • ドキュメントは、1ドキュメント単位、ジャンル単位、日付単位など自由に表示できるようにする。内部管理単位はそのいずれにも依存しないようにしつつ、それをどう見せるか(Web日記的にするか、Wiki的にするか、blog的にするか)は表示側の処理が決める。

といったアプローチによって、Web日記的な文章とそうでない文章を同じCMS上で扱えるようにしている。

ただ、ここのWikiLikeはどちらかというとWeb日記・blog的な使い方の機能はかなり実装済みなんだけど、それ以外の使い方用の機能はまだあまり実装していないので、そのあたりの可能性はまだあんまり見えてないだろうな。本当はもっと全然違う見せ方のコンテンツなんかも同じシステム上で表現できるようになる予定なんだけど。

Published At2003-05-10 00:00Updated At2003-05-10 00:00