メモリと描画支援とFirefoxと

ThinkPad くんを購入してちょこちょこいじっているわけですが、購入初期状態の 1G メモリーではさすがにたりない! Apache と MySQL と Eclipse と Firefox あげよーもんなら、物理メモリ超えてしまいます。 これじゃーせっかくのデュアル CPU がもったいないーというわけで購入。 メモリといえばここだ!

上海問屋 – 本店 – ホーム

SO-DIMM 1GB 1,899円

1G 1,899円ってあんた。(笑) こちらは小さな部品はメール便で送ってくれるので、受け取りも楽チン。

もともと 1G ささっているので、1G 追加でデュアルチャンネルになるはずです。

memory

てなわけでいい感じになりました。 速くていいっすねー。 Firefox なんか一瞬であがります。 🙂

さすがにチップセット内蔵グラフィックなので、そのへんの値はでないようですね。 ただデュアルチャンネルにしたせいかここの数値もアップしました。 内蔵は VRAM がメインメモリにとられるせいだと思われます。

この数値をみて思い出したのが、最近のグラフィック描画のハードウェア支援です。

Windows Vista は AERO 機能をオンにすると、グラフィックカードの描画支援をつかってすべてを描くようになるのは有名です。

また、実は Mac のミドルもこの機能を持っていて、

Quartz – Wikipedia

Quartz (クオーツ) は、アップルオペレーティングシステムMac OS X の描画コアエンジン。前身である NeXT の DPS (Display PostScript) に代わり、PDF ベースの描画モデルを採用したもの。

Mac OS X v10.4 (Tiger)ではビデオチップのプログラマブルシェーダを使って、描画演算をほぼ全てビデオチップ内で実行できるQuartz 2D Extremeを実装する予定であったようだ。(開発途上のまま搭載されオフにされており、正式にはサポートされていない。)

最近は、この隠し機能をONにして性能アップを試みるのが Mac ユーザの間で流行っているようです。

どちらにせよ、アプリケーションの描画というのは年々複雑になっていますので、描画のミドルが専用ハードを使おうとするのは当然の成り行きなのかもしれません。

てなわけで、ベータ段階にある Firefox 3.0。

ぼくはまだつかったことありませんが、こいつも OpenGL を介してグラフィックチップの描画支援をうけて動作するようになる、、、はずです。

cairo – Wikipedia

cairoカイロ)は様々なバックエンドに対応したフリーのグラフィックライブラリであり、ソフトウェア開発者にデバイスに依存しないベクトルベースのAPIを提供する。現在、X Window SystemWin32 GDIQuartzOpenGLglitz経由で)、ローカルなイメージバッファ、PNG画像、PDFPostScriptSVGなどの出力をサポートするバックエンドを持つ。cairoは、利用可能な場合はハードウェアアクセラレーションを利用するように設計されている。

今回の Gecko は描画が cairo というライブラリに移行した最初のものになりますが、OpenGL サポートが enable になって出荷されると思われます。 これにより、画面のレンダリング時の基本描画、アルファブレンディング、アンチエイリアス等々、速く描画できるようになるハズです。 (そのかわり、Firefox 3.0 系は Windows 9x 系で使えなくなる)

周りの評判を聞いていると結構速いそうです。 まー描画以外のパフォーマンスアップも当然あると思うので一概にはいえませんが、楽しみな修正の一つです。 🙂

コンテンツの配信について考える

現在インターネット上でコンテンツを配信する一般的な技術は、HTML を Web サーバにおいて http にのせて配信することです。 で、よりユーザにつかいやすい formated な形式でコンテンツを配信してやろうじゃないか、というのが RSS とか ATOM とかの技術だと思います。

ぼのさんとこで、RSS について盛り上がっていたので、せっかくなのでぼくの思う理想のコンテンツ配信技術を書いてみます。 🙂

RSS や ATOM はそのサイトの”新着”をみる手段として今は主に使われていますが、たぶん本来的にはそのサイトのすべてのドキュメントを決まった形式でとりだすものです。

ただ、RSS の略を見ると Really Simple Syndication と、Rich Site Summary の 2(3)種類あって、Summary の言葉もみえるので RSS はコンテンツ配信の意味合いはやや薄いのかもしれませんが、ATOM の思想は新着配信なんかではなくコンテンツ配信技術です。

たとえば、1サイトを “ドキュメント配信サーバ” と考えます。

HTML と RSS/ATOM のそれぞれはプレゼンテーションレイヤのひとつで、サイトのドキュメントデータベースから外部にデータを渡す役割を持ちます。 HTML はユーザインターフェースを含む HTML ブラウザへの表示。 RSS/ATOM は対応フィードリーダへの配信です。

情報取得する場合、HTML の場合は人の判断によるブラウザ操作が必要で、またフォーマットされたものではないのでデータの扱いが難しく、RSS/ATOM は昨日も書いたようにフォーマットがただの1ファイル。 配信として考えると、この形式は全記事全文をひとつのファイルに収める必要があり、条件抽出とかもできないので現実的ではありません。

コンテンツ配信としてはどっちも技術的にはいけてないのです。

もーしかしてとおもって、ATOM のプロトコルを読んでみたのですが、”必要な情報を必要な部分取り出す” といった API はないようです。 コンテンツを publish する API はあるのですが。

よく映画の中の世界とかで、妙なハイテク OS 画面(?)に調べたいことを入力すると、なにやらネットワークを調べ、たとえば人の情報がびっと表示されるとかあります。 また、「どこそこで情報が遮断された!やばい!」とかそんな場面もよくみられます。

現実をみていると、なんじゃそら(笑) と思ってしまいますが、意外と未来はあたっているのかな、、と思ってみたりすることがありました。

たとえば、いまは検索とかだとクローラが、Web をみてまわりキャッシュしフォーマットされていない HTML データをなんとかタグをたよりに解析し、タンキング集計。 それをもとにユーザに結果をかえす仕組みになっています。

問題は、クロールする時間があってリアルタイムじゃないし、取得できる情報はフォーマットされていないし、検索アルゴリズムをユーザが決められないという問題があります。

たとえば、”ドキュメント配信サーバ” から条件を指定してフォーマットされたデータを取得できるプロトコルがあるとします。

この日付でこの文字列を含んでいてとか条件指定すると、リアルタイムに最新ドキュメントが取得できる。 ”ドキュメント配信サーバ”が他の”ドキュメント配信サーバ”のドキュメントにリンクしていたら、さらに通信に行ったり。 認証があっても面白そうです。

これで、リアルタイムにフォーマットされたデータを取得できます。 また、条件から無関係なものをとりのぞくのは、こちら側の仕事です。 たとえば Google にされなくてすみます。 自由な世界です。

“ドキュメント配信サーバ”同士が、P2Pみたいに有機的にぱ~ってつながっていく様子はさながら SF でかっこいいし、検索や結果表示の UI は好き勝手できるし、 「どこそこで情報が遮断された!やばい!」も実現可能ですね。 🙂

リアルタイム性っていうのは娯楽的にも面白い部分で、またネットワークだと半リアルタイムがつかえて、今もニコニコ動画とか twitter とか人気のあるサービスには”動き”があります。 Microsoft の Live サービスってよく考えた名前だなと思ったことがあります。 たぶん、今後インターネットが発展するのに必要なのはライブ感。

てーーことを数年前に考えてできたサイトが、実は hiromasa.zone です。

WP じゃないところ、Eclipse の解説とかのせているところは自前のアプリなんですが、今は mod_rewrite で .html にごまかしちゃっていますが、ホントは

http://zone.maple4ever.net/document.php?mid=%3C20050807174620.42f5ca5c9be5a.unboard%40hiromasa.zone.ne.jp%3E

こんな引数つけて hiromasa.zone を呼んであげると、情報をかえすようになっています。 簡単な API で、ドキュメント部分だけかえすとかもできるようになっていたりするんですが、まぁ対応アプリなんかあるわけもなく、呼べるのはぼくのつくった管理画面だけです。(笑)

全文、全記事配信可能なプロトコルになっているわけです。 なんかドキュメントID を全世界ユニークにしたかったらしく、メールの message-id みたなのがついているのが見えます。 

まぁまぁ、このようなリアルタイムコンテンツ配信は、ぱっと考えても現在の通信インフラじゃできないかなーって部分もありますが、インターネット2 くらいになったら当然のようにでてきそうな技術ではあります。 プロトコルの名前は Gopher 2 !?(嘘

そーこー相当考えた結果、どうにもいまの RSS/ATOM が気に入らなくて、やれないんならやめちゃえ! というわけもあってぼくのブログは抜粋配信なのです。 単純にただの技術者の頑固です。

かわいそうに、とそっと見守っていただけると幸いです(笑)

ちなみに、このサイトは

<div class="entry" style="">

でエントリの内容がはじまりますので、全文ほしい方は適当に RSS 生成してもらえればとおもいます。

なにを隠そう、ぼくも Yahoo! とかのニュース、勝手に全部全文生成して Google Reader で読んでいます。。 ニュースとかは、ね。 いいのだ。 😛

 

RSS の配信について考える

何を隠そう、いわゆるサイトのフィード配信の実装がというのは、どうもぼくの好みに動いてくれないのです。 考えれば考えるほど釈然とせず。 ちょうどぼのさんも、悩んでらっしゃるようでしたのでトラックバックしてみます。 🙂

power source* » [アンケート] power source* のフィード配信形式

そんな中、今月中にリリースされるであろう WordPress 2.5 では、フィード設定で「全文」を選ぶと、more(続きを読む)以降も掲載される運びとなりました。そう、完璧な全文配信となるのです。

これは事件です…!

こんな長文を世間に流すなんて…!

しかも、本当は、記事を更新したらそれを再送信したいとさえ思っているのです。*1

# コピペで手書き文字までもってくる Windows Live Writer すげー。(余談

ぼくがおもう、RSS 系情報配信の問題点は、

  • 完全な配信管理するなら、サイトの全"記事"を1ファイルで配信しないといけない。 RSS はただのファイルなので、初期状態、その人にとっての新着なんかわかりようないので、やるなら全記事ださないと不完全。
  • push 配信じゃないので、情報の伝達がクライアント(フィードリーダ)依存である。 記事の修正がいきわたらない可能性を常にはらんでいる。 たとえば初期記事をとってキャッシュされ、その後あまり更新されないような実装だとかなり寒い。

という感じです。

このようにフィード配信はかなりいーかげんな世界で動いているので、情報の伝達手段としてはあんまりあてにならない方式になってしまっていて、自分てきには、

あ~、RSS なんかなんとなく最終更新の通知がいけばいいや。

みないなイメージでいます。

そんなこんなで考えたあげく、うちは抜粋配信。 単純に、みんなに ping うつだけじゃつまらないということで、抜粋文をつけているイメージです。 画像とかつけて遊んでいるのはそのせい。 🙂

ぼくは投稿後、割とすぐに記事を修正することが多いので、特に Google Reader とかは初期投稿を超速でとりにくるので、全文配信してると修正前の誤解をあたえてしまう内容が配信されてしまうという怖さもあります。 キャッシュされるとおわるので。 これはちゃんと推敲しろって話ですが(笑)

ほとんどの方は、RSS を時系列の新着としてみていて、記事をクライアントに配信、タンキングするという機能としてはみていないと思います。 また、フィードリーダーも基本的にはニュース的にどんどんみていくインターフェースになっています。

なので、ぼのさんが指摘されているように昔の記事の修正で内容が "age" されてくると、わりとハテナ?となってしまいます。 もちろんフィードリーダも、あとでその記事を活用できるようにタグをつけ、URL ユニークで記事を更新タンキングする機能はありますが、活用している人は少ないのではないでしょうか。

重要な情報はブックマークして本サイト側をみると思います。 これはおそらく、無意識に RSS の記事配信やフィードリーダーのタンキングを信頼していない証拠です。

というわけで! ぼのさんのサイトのような、辞書的に調べ物ができるレベルの記述があるサイトさんは、

more までがよい (←今コレ)

がよいのではないでしょうか。 更新があればサイト側を拝見します。

とアンケートに答えてみました。 🙂

ちなみに最後にぼくの RSS リーダの画面です。

Gregarius 

抜粋すらひっこめて、全部本サイトで拝見しております。 なんかやっぱりテーマの中で見るのがすきなのです。

意味と表現の分離なんか、コンピュータの方式とか仕組みのメリットだけのはなし。 本質的にはできないこと。

MSPゴシックで HERMES とか CHANEL とか Apple とかのロゴ描かれてたら、"意味"ないよね? あたりまえですがデザインにも当然多大な意味があります。 🙂