<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.jp/~d/styles/rss2japanesefull.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.jp/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss version="2.0"><channel><title>Xlune::Blog</title><link>http://blog.xlune.com/</link><description>PHP Javascript Actionscript linux css とかの書留</description><language>ja</language><copyright>Copyright 2008</copyright><lastBuildDate>Fri, 29 Aug 2008 15:18:08 +0900</lastBuildDate><generator>http://www.sixapart.com/movabletype/?v=4.1-ja-boomer-r1118-20080226</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.jp/xlune" type="application/rss+xml" /><item><title>PHPからSkypeチャットを送信</title><link>http://blog.xlune.com/2008/08/phpskype.html</link><category>PHP</category><pubDate>Fri, 29 Aug 2008 15:18:08 +0900</pubDate><guid isPermaLink="false">http://blog.xlune.com/2008/08/phpskype.html</guid><description>&lt;h3&gt;RTMのリマインド機能みたいにSkypeメッセージ送りたい&lt;/h3&gt;
&lt;p class="mb30"&gt;
オレオレリマインダー的なものが必要だったので、PHPからSkypeチャットしてみたメモです。&lt;br /&gt;
&lt;/p&gt;

&lt;h3&gt;LinuxはD-Bus経由で通信&lt;/h3&gt;
&lt;p class="mb30"&gt;
調べたところ、Linux上でSkypeAPIを利用するには、アプリケーション間でやりとりを行ってくれるD-Busっていうのを使うらしい。&lt;br /&gt;
自分の場合は、すでにD-Busのパッケージが入ってたので特にすることはないが、なければ yum や apt-get で簡単に入るようだ。&lt;br /&gt;
あともちろん、Linux版のSkypeも必要。
&lt;/p&gt;

&lt;h3&gt;runlevelは5&lt;/h3&gt;
&lt;p&gt;
Skypeはテキストログインでは使えないっぽい。&lt;br /&gt;
なので、Linuxはグラフィカルログインである必要がある。&lt;br /&gt;
この時点で、ちょっとやる気が落ちてきた。&lt;br /&gt;
ちなみに、テキストログインで運用中の場合は、コマンドラインで
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;telinit 5&lt;/code&gt;&lt;/pre&gt;
&lt;p class="mb30"&gt;
と叩くとグラフィカルログインに動的に変更できる。(もちろんグラフィカルログインに必要なパッケージが揃っていれば)
&lt;/p&gt;

&lt;h3&gt;PHP DBus を入れる&lt;/h3&gt;
&lt;p&gt;
スクリプトからD-Busを利用するためには、そのための拡張やライブラリが必要です。Perlの場合は 'Net::DBus' ってのが既にあったので簡単に実装できました。&lt;br /&gt;
なので、すっきりしないですが、PHPからPerlスクリプトを叩くって方向でやってたんですが、最近&lt;a href="http://labs.gree.jp/Top/OpenSource/DBus.html"&gt;グリー株式会社&lt;/a&gt;さんって所が 'PHP DBus'っていうPHP拡張モジュールを作ってくださったので、それをありがたく使わせてもらうことにしました。
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://labs.gree.jp/Top/OpenSource/DBus.html"&gt;PHP DBus&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://labs.gree.jp/Top/OpenSource/Skype.html"&gt;PHP Skype API wrapper class&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="mb30"&gt;
さらに、Skype用のラッパークラスまで提供されています。まさに、渡りに船状態&lt;br /&gt;
インストール方法など、詳しい情報もこちらに載ってるので、それらを参考に導入しました。
&lt;/p&gt;


&lt;h3&gt;とりあえず、Linuxのターミナル上から実行テスト&lt;/h3&gt;
&lt;p&gt;
まず、Linux上でSkypeを立ち上げて、ターミナルから下記のPHPを叩く。
&lt;/p&gt;
[skype_sample.php]
&lt;pre&gt;&lt;code class="php"&gt;&amp;lt;?php
require_once 'Skype.php';
$skype = new Skype("skype_test_app", 5, true); //1.このスクリプトのアプリケーション名, 2.SkypeAPIのPROTOCOLバージョン, 3.デバッグモードスイッチ
if($skype-&gt;connect()){
  $chat_id = $skype-&gt;invoke("CHAT CREATE hoge"); //SkypeAPIを参照。SkypeID(この場合は'hoge')に対してSkypeチャットを作成する。
  $chat_id = preg_replace('/ .+$/', '', $chat_id[1]); //上の戻り値からChatIDのみを抽出(汚くてゴメン)。
  $skype-&gt;invokeChatmessage($chat_id, "メッセージだよ。"); //ChatIDを指定してメッセージを送信。
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p class="mb30"&gt;
初回は、Skypeがこのスクリプトとの通信許可を求めてくるので許可する。&lt;br /&gt;
どうだろう？うまくいけば指定先にメッセージが送信されているはず。&lt;br /&gt;
&lt;br /&gt;
現状、Skype.phpが開発中のもののようで、コンストラクタの引数の後ろ２つはスルーされる。&lt;br /&gt;
自分の場合は気になったので、手動で修正したが、そのうち修正されるはずなので問題ないと思う。
&lt;/p&gt;


&lt;h3&gt;外部、及びcronから実行テスト&lt;/h3&gt;
&lt;p&gt;
まず、普通に外部からSSHかなんかで接続して、PHPスクリプトをコンソールから叩くと
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Fatal error: Uncaught exception 'Exception' with message 'dbus_bus_get() failed'&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
な感じでエラーになる。cronの場合も同じだろうと思う。&lt;br /&gt;
今現在も、これに対する正しい対処の方法が分からないんだけど、まぁ、環境変数が違うんだろーなと思って、Linux上のターミナルとSSH接続の外部コンソールの環境変数の違いを洗い出したところ、どうやら
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;DBUS_SESSION_BUS_ADDRESS&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
という環境変数をセットする必要があるようだ。&lt;br /&gt;
セットする値の方は
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;unix:abstract=/tmp/dbus-XXXXXXXXXX&lt;/code&gt;&lt;/pre&gt;
&lt;p class="mb30"&gt;
な感じで、コロコロ変わってしまいそうな値です。&lt;br /&gt;
まぁ、再起動とかしなきゃ大丈夫だと思うので、今回はハードコーディングで環境変数セットしてやります。
&lt;/p&gt;
[skype_sample.php]
&lt;pre&gt;&lt;code class="php"&gt;&amp;lt;?php

putenv("DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-XXXXXXXXXX");

require_once 'Skype.php';
$skype = new Skype("skype_test_app", 5, true); //1.このスクリプトのアプリケーション名, 2.SkypeAPIのPROTOCOLバージョン, 3.デバッグモードスイッチ
if($skype-&gt;connect()){
  $chat_id = $skype-&gt;invoke("CHAT CREATE hoge"); //SkypeAPIを参照。SkypeID(この場合は'hoge')に対してSkypeチャットを作成する。
  $chat_id = preg_replace('/ .+$/', '', $chat_id[1]); //上の戻り値からChatIDのみを抽出(汚くてゴメン)。
  $skype-&gt;invokeChatmessage($chat_id, "メッセージだよ。"); //ChatIDを指定してメッセージを送信。
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p class="mb30"&gt;
これで動くと思います。&lt;br /&gt;
必要なのは、Skypeが起動しているところのsessionアドレスなので dbus-launch とかで新規に作っても駄目っぽいです。
&lt;/p&gt;

&lt;h3&gt;まとめ&lt;/h3&gt;
&lt;p class="mb30"&gt;
Linux版のSkypeは現在バージョン2なので、PROTOCOL 5 までしか対応してないけど、そこそこ遊べそう。&lt;br /&gt;
ただ、Skypeクライアントを使わず、WebAPIのようなものがあればこんな面倒なことはしなくていいなぁ。どこかやらないかなぁ。&lt;br /&gt;
あと、現状では汎用的なものになってないので、今後も調査してみる。
&lt;/p&gt;
--&lt;br /&gt;
もっとシンプルな方法があるはず。
&lt;p&gt;&lt;a href="http://feeds.feedburner.jp/~a/xlune?a=j4ICIW"&gt;&lt;img src="http://feeds.feedburner.jp/~a/xlune?i=j4ICIW" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.jp/~f/xlune?a=JcEl4uVK"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=JcEl4uVK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=u7IHdUPK"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=u7IHdUPK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=IbFsrIgk"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=IbFsrIgk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=IRgN0TNK"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=IRgN0TNK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>symfony1.1.1 のカスタムタスクでPropelが利用できずに困った</title><link>http://blog.xlune.com/2008/08/symfony111_propel.html</link><category>PHP</category><pubDate>Wed, 27 Aug 2008 19:18:19 +0900</pubDate><guid isPermaLink="false">http://blog.xlune.com/2008/08/symfony111_propel.html</guid><description>&lt;h3&gt;カスタムタスクって何？&lt;/h3&gt;
&lt;p class="mb10"&gt;symfony 1.1 から導入されたsymfonyをコマンドラインから利用するためのもの。1.1以前のバッチスクリプトのようにsymfonyのライブラリにアクセスできるそうです。&lt;/p&gt;
&lt;p&gt;カスタムタスク生成コマンド&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;symfony generate:task [ネームスペース]:[タスク名]
例)
symfony generate:task hoge:fuga
&lt;/code&gt;&lt;/pre&gt;
&lt;p class="mb10"&gt;
これで lib/task の中にカスタムタスクが生成されます。&lt;br /&gt;
あとは、生成されたファイルの中の '// add code here' ってところに、自分のやりたいこと書いてくだけ。ラクチン。
&lt;/p&gt;
&lt;p&gt;実行するには下記のコマンドを叩く&lt;/p&gt;
&lt;pre class="mb30"&gt;&lt;code&gt;symfony [ネームスペース]:[タスク名]
例)
symfony hoge:fuga
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Propel使えないよ&lt;/h3&gt;
&lt;p&gt;当然のようにPropel使おうとしたんだけど&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;No connection params set for propel&lt;/code&gt;&lt;/pre&gt;
&lt;p class="mb10"&gt;
って怒られました。&lt;br /&gt;
なんかググっても要領を得なかったので、素直にソースを調べると "sfGenerateTaskTask.class.php" に生成コードの雛型が入ってました。
&lt;/p&gt;
&lt;p class="mb10"&gt;
どうやら、Propelを利用する場合と、利用しない場合の雛型があるようで、そのスイッチオプションは 'use-database' のようです。
&lt;/p&gt;
&lt;p&gt;改めて、カスタムタスク生成コマンド&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;symfony generate:task [ネームスペース]:[タスク名] --use-database=false
例)
symfony generate:task hoge:fuga --use-database=false
&lt;/code&gt;&lt;/pre&gt;
&lt;p class="mb10"&gt;
これで、Propelが使えるカスタムタスクが生成されます。&lt;br /&gt;
なんで、'--use-database=false' なのかは僕にはわかりません。'true'じゃないと気持ち悪いんですがね。&lt;br /&gt;
まぁ、問題があればそのうち修正されるんじゃないですか。
&lt;/p&gt;
&lt;p&gt;こっちを実行するにはアプリケーション名を引数で与える必要があるようです。&lt;/p&gt;
&lt;pre class="mb30"&gt;&lt;code&gt;symfony [ネームスペース]:[タスク名] [アプリケーション名]
例)
symfony hoge:fuga frontend
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;生成されたカスタムタスクソース&lt;/h3&gt;
&lt;pre&gt;&lt;code class="php"&gt;&amp;lt;?php

class hogeFugaTask extends sfPropelBaseTask
{
  protected function configure()
  {
    $this-&amp;gt;namespace        = 'hoge';
    $this-&amp;gt;name             = 'fuga';
    $this-&amp;gt;briefDescription = '';
    $this-&amp;gt;detailedDescription = &amp;lt;&amp;lt;&amp;lt;EOF
The [reminder:get-source|INFO] task does things.
Call it with:

  [php symfony reminder:get-source|INFO]
EOF;
    $this-&amp;gt;addArgument('application', sfCommandArgument::REQUIRED, 'The application name');
    // add other arguments here
    $this-&amp;gt;addOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', 'dev');
    $this-&amp;gt;addOption('connection', null, sfCommandOption::PARAMETER_REQUIRED, 'The connection name', 'propel');
    // add other options here
  }

  protected function execute($arguments = array(), $options = array())
  {
    // Database initialization
    $databaseManager = new sfDatabaseManager($this-&amp;gt;configuration);
    $connection = Propel::getConnection($options['connection'] ? $options['connection'] : '');
    // add code here
  }
}
&lt;/code&gt;&lt;/pre&gt;
--&lt;br /&gt;
仕様がコロコロ変わるとつらいなぁ。
&lt;p&gt;&lt;a href="http://feeds.feedburner.jp/~a/xlune?a=7PhgBz"&gt;&lt;img src="http://feeds.feedburner.jp/~a/xlune?i=7PhgBz" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.jp/~f/xlune?a=rhjSPADK"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=rhjSPADK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=BjQi4pNK"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=BjQi4pNK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=ZdEOch3k"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=ZdEOch3k" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=oqrSriXK"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=oqrSriXK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>【Blogパーツ紹介】サムライウエポン</title><link>http://blog.xlune.com/2008/08/blog.html</link><category>other</category><pubDate>Wed, 27 Aug 2008 13:08:03 +0900</pubDate><guid isPermaLink="false">http://blog.xlune.com/2008/08/blog.html</guid><description>&lt;p class="mb10"&gt;&lt;script src="http://download1.gamecity.ne.jp/blogparts/kunitori/samuraiWeapon.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/p&gt;
&lt;p class="mb20"&gt;&lt;a href="http://www.samurai-weapon.com/"&gt;サムライウエポン&lt;/a&gt;&lt;/p&gt;

&lt;p class="mb30"&gt;いやー、しばらくチョッカイ出してたら水攻めに遭ったよ。。。&lt;/p&gt;
--&lt;br /&gt;
ページ全体を使うBlogパーツが増えて面白い。
&lt;p&gt;&lt;a href="http://feeds.feedburner.jp/~a/xlune?a=CqzK1e"&gt;&lt;img src="http://feeds.feedburner.jp/~a/xlune?i=CqzK1e" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.jp/~f/xlune?a=BDm5gbwK"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=BDm5gbwK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=eX5wZ0WK"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=eX5wZ0WK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=6rWCYLkk"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=6rWCYLkk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=2UDAry9K"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=2UDAry9K" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>JavaScriptで迷路生成してみたよ</title><link>http://blog.xlune.com/2008/07/javascript_1.html</link><category>JavaScript</category><pubDate>Tue, 29 Jul 2008 20:01:58 +0900</pubDate><guid isPermaLink="false">http://blog.xlune.com/2008/07/javascript_1.html</guid><description>&lt;h3&gt;こんな迷路ができました&lt;/h3&gt;
&lt;p class="mb30"&gt;&lt;a href="http://labs.xlune.com/maze/"&gt;&lt;img src="http://blog.xlune.com/2008/07/29/up_images/canvas.png" alt="迷路" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;サンプルページ&lt;/h3&gt;
&lt;p class="mb20"&gt;&lt;a href="http://labs.xlune.com/maze/"&gt;迷路生成・探索サンプル&lt;/a&gt;&lt;/p&gt;
&lt;p class="mb30"&gt;
迷路の生成は&lt;a href="http://www.phys.cs.is.nagoya-u.ac.jp/~watanabe/tips/maze.html"&gt;クラスタリング&lt;/a&gt;で行ってます。&lt;br /&gt;
探索も何かアルゴリズム勉強しようと思ったんですが、難しかったので適当に作りました。。。&lt;br /&gt;
無駄な動きするけど、ゴールまでは到達するのでよし！
&lt;/p&gt;
--&lt;br /&gt;
いや、ヒマだったんでね。
&lt;p&gt;&lt;a href="http://feeds.feedburner.jp/~a/xlune?a=muwPxr"&gt;&lt;img src="http://feeds.feedburner.jp/~a/xlune?i=muwPxr" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.jp/~f/xlune?a=OK1YX9WK"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=OK1YX9WK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=h0sN7JkK"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=h0sN7JkK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=hP9NaZwk"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=hP9NaZwk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=Az1Yt5NK"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=Az1Yt5NK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>PC買って組み立てたら筋肉痛になった</title><link>http://blog.xlune.com/2008/06/pc.html</link><category>other</category><pubDate>Mon, 23 Jun 2008 19:06:58 +0900</pubDate><guid isPermaLink="false">http://blog.xlune.com/2008/06/pc.html</guid><description>&lt;h3&gt;購入パーツ&lt;/h3&gt;
&lt;p class="mb20"&gt;&lt;div class="tsukumo-detail-badge-panel" style="margin-bottom:0px;"&gt;&lt;div class="tsukumo-detail-badge-image" style="float:left;"&gt;&lt;a href="http://shop.tsukumo.co.jp/goods/0735858199643/" name="tsukumo-link" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/image/item/0735858199643_0.jpg" alt="インテル Core&amp;nbsp;2&amp;nbsp;Duo&amp;nbsp;E8400&amp;nbsp;Box&amp;nbsp;(LGA775)&amp;nbsp;《送料無料》" style="border: none;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-attributes" style="float:left;margin-left:15px;line-height:120%"&gt;&lt;div class="tsukumo-detail-badge-name" style="margin-bottom:2px;line-height:120%"&gt;&lt;a href="http://shop.tsukumo.co.jp/goods/0735858199643/" name="tsukumo-link" target="_blank"&gt;インテル Core&amp;nbsp;2&amp;nbsp;Duo&amp;nbsp;E8400&amp;nbsp;Box&amp;nbsp;(LGA775)&amp;nbsp;《送料無料》&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:0.85em"&gt;&lt;a href="http://shop.tsukumo.co.jp/akinlist/200510020000000/0735858199643/" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/img/common/badgeEqa.gif" border="0" width="16" height="16" title="同等品一覧" alt="同等品一覧"&gt;&lt;/a&gt;&lt;a href="http://www.intel.co.jp/jp/products/processor/core2duo/index.htm" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/img/common/badgeMaker.gif" border="0" width="16" height="16" title="メーカー紹介ページ" alt="メーカー紹介ページ"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-summary" style="margin-bottom:2px;line-height:120%;padding-right:16px"&gt;LGA775対応 Dual-CoreCPU 45nm&lt;/div&gt;&lt;div class="tsukumo-detail-badge-spec" style="margin-top:10px;margin-bottom:10px;line-height:120%"&gt;&lt;div class="tsukumo-detail-badge-spec-title" style="margin:0;font-size:1em;font-weight:bold;"&gt;商品スペック&lt;/div&gt;&lt;div class="tsukumo-detail-badge-spec-data" style="font-size:0.8em;left:10px;"&gt;&lt;table style="border:1px solid #ccc;"&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;CPUコア&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;Wolfdale&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;動作クロック&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;3GHz&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;対応形状&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;Socket775&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;FSBクロック&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;1,333&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;L2キャッシュ&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;6MB&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;CPUクーラー&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;○&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;パッケージ&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;BOX&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-footer" style="clear: left"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p class="mb20"&gt;&lt;div class="tsukumo-detail-badge-panel" style="margin-bottom:0px;"&gt;&lt;div class="tsukumo-detail-badge-image" style="float:left;"&gt;&lt;a href="http://shop.tsukumo.co.jp/goods/4937699432101/" name="tsukumo-link" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/image/item/4937699432101_0.jpg" alt="ASUSTeK P5K-E" style="border: none;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-attributes" style="float:left;margin-left:15px;line-height:120%"&gt;&lt;div class="tsukumo-detail-badge-name" style="margin-bottom:2px;line-height:120%"&gt;&lt;a href="http://shop.tsukumo.co.jp/goods/4937699432101/" name="tsukumo-link" target="_blank"&gt;ASUSTeK P5K-E&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:0.85em"&gt;&lt;a href="http://shop.tsukumo.co.jp/akinlist/202070001000000/4937699432101/" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/img/common/badgeEqa.gif" border="0" width="16" height="16" title="同等品一覧" alt="同等品一覧"&gt;&lt;/a&gt;&lt;a href="http://www.asus.co.jp/products.aspx?l1=3&amp;l2=11&amp;l3=534&amp;l4=0&amp;model=1866&amp;modelmenu=1" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/img/common/badgeMaker.gif" border="0" width="16" height="16" title="メーカー紹介ページ" alt="メーカー紹介ページ"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-summary" style="margin-bottom:2px;line-height:120%;padding-right:16px"&gt;Intel P35 Express搭載 LGA775対応 ATXマザーボード&lt;/div&gt;&lt;div class="tsukumo-detail-badge-spec" style="margin-top:10px;margin-bottom:10px;line-height:120%"&gt;&lt;div class="tsukumo-detail-badge-spec-title" style="margin:0;font-size:1em;font-weight:bold;"&gt;商品スペック&lt;/div&gt;&lt;div class="tsukumo-detail-badge-spec-data" style="font-size:0.8em;left:10px;"&gt;&lt;table style="border:1px solid #ccc;"&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;チップセット&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;Intel P35 Express&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;PCI Express x16&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;最大メモリ容量&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;8GB&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;メモリスロット（DDR2）&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;メモリスロット（DDR）&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;0&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;VGA機能&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;×&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;SOUND機能&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;○&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;USBポート&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;12&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;LAN機能&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;ギガビット対応（1000M bps）&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-footer" style="clear: left"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p class="mb20"&gt;&lt;div class="tsukumo-detail-badge-panel" style="margin-bottom:0px;"&gt;&lt;div class="tsukumo-detail-badge-image" style="float:left;"&gt;&lt;a href="http://shop.tsukumo.co.jp/goods/4988755622325/" name="tsukumo-link" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/image/item/4988755622325_0.jpg" alt="CFD販売 W2U800CQ-2GL5J" style="border: none;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-attributes" style="float:left;margin-left:15px;line-height:120%"&gt;&lt;div class="tsukumo-detail-badge-name" style="margin-bottom:2px;line-height:120%"&gt;&lt;a href="http://shop.tsukumo.co.jp/goods/4988755622325/" name="tsukumo-link" target="_blank"&gt;CFD販売 W2U800CQ-2GL5J&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:0.85em"&gt;&lt;a href="http://shop.tsukumo.co.jp/akinlist/201010015000000/4988755622325/" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/img/common/badgeEqa.gif" border="0" width="16" height="16" title="同等品一覧" alt="同等品一覧"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-summary" style="margin-bottom:2px;line-height:120%;padding-right:16px"&gt;DDR2 240pin DIMM Dual動作確認済セット&lt;/div&gt;&lt;div class="tsukumo-detail-badge-spec" style="margin-top:10px;margin-bottom:10px;line-height:120%"&gt;&lt;div class="tsukumo-detail-badge-spec-title" style="margin:0;font-size:1em;font-weight:bold;"&gt;商品スペック&lt;/div&gt;&lt;div class="tsukumo-detail-badge-spec-data" style="font-size:0.8em;left:10px;"&gt;&lt;table style="border:1px solid #ccc;"&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;対応&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;PC6400&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;容量&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;4GB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;ピン数&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;240ピン&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;CL&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;ECC&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;×&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;パッケージ&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;簡易パッケージ品&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-footer" style="clear: left"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p class="mb20"&gt;&lt;div class="tsukumo-detail-badge-panel" style="margin-bottom:0px;"&gt;&lt;div class="tsukumo-detail-badge-image" style="float:left;"&gt;&lt;a href="http://shop.tsukumo.co.jp/goods/2100000628179/" name="tsukumo-link" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/image/item/2100000628179_0.jpg" alt="FOXCONN 9600GT-512F&amp;nbsp;OC" style="border: none;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-attributes" style="float:left;margin-left:15px;line-height:120%"&gt;&lt;div class="tsukumo-detail-badge-name" style="margin-bottom:2px;line-height:120%"&gt;&lt;a href="http://shop.tsukumo.co.jp/goods/2100000628179/" name="tsukumo-link" target="_blank"&gt;FOXCONN 9600GT-512F&amp;nbsp;OC&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:0.85em"&gt;&lt;a href="http://shop.tsukumo.co.jp/akinlist/202010005000000/2100000628179/" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/img/common/badgeEqa.gif" border="0" width="16" height="16" title="同等品一覧" alt="同等品一覧"&gt;&lt;/a&gt;&lt;a href="http://www.foxconnchannel.com/product/GraphicCards/detail_overview.aspx?ID=en-us0000060" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/img/common/badgeMaker.gif" border="0" width="16" height="16" title="メーカー紹介ページ" alt="メーカー紹介ページ"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-summary" style="margin-bottom:2px;line-height:120%;padding-right:16px"&gt;GeForce 9600 GT搭載 PCI Express x16(2.0)対応ビデオカード オーバークロック仕様&lt;/div&gt;&lt;div class="tsukumo-detail-badge-spec" style="margin-top:10px;margin-bottom:10px;line-height:120%"&gt;&lt;div class="tsukumo-detail-badge-spec-title" style="margin:0;font-size:1em;font-weight:bold;"&gt;商品スペック&lt;/div&gt;&lt;div class="tsukumo-detail-badge-spec-data" style="font-size:0.8em;left:10px;"&gt;&lt;table style="border:1px solid #ccc;"&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;ビデオチップ&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;GeForce 9600 GT&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;搭載メモリ&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;512MB GDDR III&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;TV-OUT&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;○&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;デジタルDVI出力&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;○&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;パッケージ&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;パッケージ品&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-footer" style="clear: left"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p class="mb20"&gt;&lt;div class="tsukumo-detail-badge-panel" style="margin-bottom:0px;"&gt;&lt;div class="tsukumo-detail-badge-image" style="float:left;"&gt;&lt;a href="http://shop.tsukumo.co.jp/goods/4988755721004/" name="tsukumo-link" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/image/item/4988755721004_0.jpg" alt="HITACHI HDP725050GLA360" style="border: none;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-attributes" style="float:left;margin-left:15px;line-height:120%"&gt;&lt;div class="tsukumo-detail-badge-name" style="margin-bottom:2px;line-height:120%"&gt;&lt;a href="http://shop.tsukumo.co.jp/goods/4988755721004/" name="tsukumo-link" target="_blank"&gt;HITACHI HDP725050GLA360&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:0.85em"&gt;&lt;a href="http://shop.tsukumo.co.jp/akinlist/201505005000000/4988755721004/" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/img/common/badgeEqa.gif" border="0" width="16" height="16" title="同等品一覧" alt="同等品一覧"&gt;&lt;/a&gt;&lt;a href="http://www.hitachigst.com/portal/site/jp/menuitem.7f60d6528bc4715c21386293eac4f0a0/" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/img/common/badgeMaker.gif" border="0" width="16" height="16" title="メーカー紹介ページ" alt="メーカー紹介ページ"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-summary" style="margin-bottom:2px;line-height:120%;padding-right:16px"&gt;3.5インチ内蔵 シリアルATA-HDD&lt;/div&gt;&lt;div class="tsukumo-detail-badge-spec" style="margin-top:10px;margin-bottom:10px;line-height:120%"&gt;&lt;div class="tsukumo-detail-badge-spec-title" style="margin:0;font-size:1em;font-weight:bold;"&gt;商品スペック&lt;/div&gt;&lt;div class="tsukumo-detail-badge-spec-data" style="font-size:0.8em;left:10px;"&gt;&lt;table style="border:1px solid #ccc;"&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;容量&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;500GB&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;回転数&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;7200rpm&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;インターフェイス&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;シリアルATA 300&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;バッファ&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;16MB&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;パッケージ&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;バルク品&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-footer" style="clear: left"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p class="mb20"&gt;&lt;div class="tsukumo-detail-badge-panel" style="margin-bottom:0px;"&gt;&lt;div class="tsukumo-detail-badge-image" style="float:left;"&gt;&lt;a href="http://shop.tsukumo.co.jp/goods/4534782874581/" name="tsukumo-link" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/image/item/4534782874581_0.jpg" alt="LITE-ON DH-20A4P" style="border: none;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-attributes" style="float:left;margin-left:15px;line-height:120%"&gt;&lt;div class="tsukumo-detail-badge-name" style="margin-bottom:2px;line-height:120%"&gt;&lt;a href="http://shop.tsukumo.co.jp/goods/4534782874581/" name="tsukumo-link" target="_blank"&gt;LITE-ON DH-20A4P&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:0.85em"&gt;&lt;a href="http://shop.tsukumo.co.jp/akinlist/201550010000000/4534782874581/" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/img/common/badgeEqa.gif" border="0" width="16" height="16" title="同等品一覧" alt="同等品一覧"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-summary" style="margin-bottom:2px;line-height:120%;padding-right:16px"&gt;DVD±R DL最大8倍速記録対応 ATAPI接続 スーパーマルチドライブ&lt;/div&gt;&lt;div class="tsukumo-detail-badge-spec" style="margin-top:10px;margin-bottom:10px;line-height:120%"&gt;&lt;div class="tsukumo-detail-badge-spec-title" style="margin:0;font-size:1em;font-weight:bold;"&gt;商品スペック&lt;/div&gt;&lt;div class="tsukumo-detail-badge-spec-data" style="font-size:0.8em;left:10px;"&gt;&lt;table style="border:1px solid #ccc;"&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;接続&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;ATAPI&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;CD-R書込倍速数&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;48&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;CD-RW書込倍速数&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;32&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;DVD-RAM書込倍速数&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;12&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;DVD-R書込倍速数&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;20&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;DVD-RW書込倍速数&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;6&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;DVD+R書込倍速数&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;20&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;DVD+RW書込倍速数&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;8&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-footer" style="clear: left"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p class="mb20"&gt;&lt;div class="tsukumo-detail-badge-panel" style="margin-bottom:0px;"&gt;&lt;div class="tsukumo-detail-badge-image" style="float:left;"&gt;&lt;a href="http://shop.tsukumo.co.jp/goods/4571225040684/" name="tsukumo-link" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/image/item/4571225040684_0.jpg" alt="SCYTHE SCY-0311SE-BK" style="border: none;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-attributes" style="float:left;margin-left:15px;line-height:120%"&gt;&lt;div class="tsukumo-detail-badge-name" style="margin-bottom:2px;line-height:120%"&gt;&lt;a href="http://shop.tsukumo.co.jp/goods/4571225040684/" name="tsukumo-link" target="_blank"&gt;SCYTHE SCY-0311SE-BK&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:0.85em"&gt;&lt;a href="http://shop.tsukumo.co.jp/akinlist/202510000000000/4571225040684/" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/img/common/badgeEqa.gif" border="0" width="16" height="16" title="同等品一覧" alt="同等品一覧"&gt;&lt;/a&gt;&lt;a href="http://www.scythe.co.jp/case/scy-0311se.html" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/img/common/badgeMaker.gif" border="0" width="16" height="16" title="メーカー紹介ページ" alt="メーカー紹介ページ"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-summary" style="margin-bottom:2px;line-height:120%;padding-right:16px"&gt;ATX対応 ミドルタワーPCケース&lt;/div&gt;&lt;div class="tsukumo-detail-badge-spec" style="margin-top:10px;margin-bottom:10px;line-height:120%"&gt;&lt;div class="tsukumo-detail-badge-spec-title" style="margin:0;font-size:1em;font-weight:bold;"&gt;商品スペック&lt;/div&gt;&lt;div class="tsukumo-detail-badge-spec-data" style="font-size:0.8em;left:10px;"&gt;&lt;table style="border:1px solid #ccc;"&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;電源容量&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;450W&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;5インチベイ&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;3.5インチベイ&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;2&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;内部ベイ&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;6&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;USBコネクタ数&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;4&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;IEEE1394コネクタ数&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;0&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;Pentium4対応&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;○&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-footer" style="clear: left"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p class="mb20"&gt;&lt;div class="tsukumo-detail-badge-panel" style="margin-bottom:0px;"&gt;&lt;div class="tsukumo-detail-badge-image" style="float:left;"&gt;&lt;a href="http://shop.tsukumo.co.jp/goods/4544438012281/" name="tsukumo-link" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/image/item/4544438012281_0.jpg" alt="BenQ FP222WH-V2&amp;nbsp;《送料無料》" style="border: none;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-attributes" style="float:left;margin-left:15px;line-height:120%"&gt;&lt;div class="tsukumo-detail-badge-name" style="margin-bottom:2px;line-height:120%"&gt;&lt;a href="http://shop.tsukumo.co.jp/goods/4544438012281/" name="tsukumo-link" target="_blank"&gt;BenQ FP222WH-V2&amp;nbsp;《送料無料》&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:0.85em"&gt;&lt;a href="http://shop.tsukumo.co.jp/akinlist/101510000000000/4544438012281/" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/img/common/badgeEqa.gif" border="0" width="16" height="16" title="同等品一覧" alt="同等品一覧"&gt;&lt;/a&gt;&lt;a href="http://www.benq.co.jp/products/LCD/?product=1005&amp;page=features" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/img/common/badgeMaker.gif" border="0" width="16" height="16" title="メーカー紹介ページ" alt="メーカー紹介ページ"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-summary" style="margin-bottom:2px;line-height:120%;padding-right:16px"&gt;22インチワイド液晶モニタ&lt;/div&gt;&lt;div class="tsukumo-detail-badge-spec" style="margin-top:10px;margin-bottom:10px;line-height:120%"&gt;&lt;div class="tsukumo-detail-badge-spec-title" style="margin:0;font-size:1em;font-weight:bold;"&gt;商品スペック&lt;/div&gt;&lt;div class="tsukumo-detail-badge-spec-data" style="font-size:0.8em;left:10px;"&gt;&lt;table style="border:1px solid #ccc;"&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;液晶パネルサイズ&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;22型ワイド&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;最大解像度&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;1680×1050&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;ドットピッチ&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;0.282mm&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;コントラスト比&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;700対1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;幅&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;518mm&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;奥行&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;170mm&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;高さ&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;422mm&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;重量&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;5.8kg&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-footer" style="clear: left"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p class="mb20"&gt;&lt;div class="tsukumo-detail-badge-panel" style="margin-bottom:0px;"&gt;&lt;div class="tsukumo-detail-badge-image" style="float:left;"&gt;&lt;a href="http://shop.tsukumo.co.jp/goods/4943765031628/" name="tsukumo-link" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/image/item/4943765031628_0.jpg" alt="Logicool Cordless&amp;nbsp;Desktop&amp;nbsp;LX710&amp;nbsp;Laser&amp;nbsp;(LX-710)" style="border: none;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-attributes" style="float:left;margin-left:15px;line-height:120%"&gt;&lt;div class="tsukumo-detail-badge-name" style="margin-bottom:2px;line-height:120%"&gt;&lt;a href="http://shop.tsukumo.co.jp/goods/4943765031628/" name="tsukumo-link" target="_blank"&gt;Logicool Cordless&amp;nbsp;Desktop&amp;nbsp;LX710&amp;nbsp;Laser&amp;nbsp;(LX-710)&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:0.85em"&gt;&lt;a href="http://shop.tsukumo.co.jp/akinlist/203030000000000/4943765031628/" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/img/common/badgeEqa.gif" border="0" width="16" height="16" title="同等品一覧" alt="同等品一覧"&gt;&lt;/a&gt;&lt;a href="http://www.logicool.co.jp/index.cfm/products/details/JP/JA,CRID=2162,CONTENTID=12118" target="_blank"&gt;&lt;img src="http://shop.tsukumo.co.jp/img/common/badgeMaker.gif" border="0" width="16" height="16" title="メーカー紹介ページ" alt="メーカー紹介ページ"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-summary" style="margin-bottom:2px;line-height:120%;padding-right:16px"&gt;ワイヤレスキーボード＆レーザーマウスセット&lt;/div&gt;&lt;div class="tsukumo-detail-badge-spec" style="margin-top:10px;margin-bottom:10px;line-height:120%"&gt;&lt;div class="tsukumo-detail-badge-spec-title" style="margin:0;font-size:1em;font-weight:bold;"&gt;商品スペック&lt;/div&gt;&lt;div class="tsukumo-detail-badge-spec-data" style="font-size:0.8em;left:10px;"&gt;&lt;table style="border:1px solid #ccc;"&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;接続&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;USB&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;ホイール機能&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;○&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;コードレス&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;○&lt;/td&gt;&lt;td style="border-bottom:1px solid black;background-color:#ccc;"&gt;パッケージ&lt;/td&gt;&lt;td style="border-bottom:1px solid black;"&gt;パッケージ品&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="tsukumo-detail-badge-footer" style="clear: left"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;

&lt;h3&gt;感想とか&lt;/h3&gt;
&lt;ul class="mb30"&gt;
	&lt;li&gt;ハードは素人なんだけど、動いてよかった。&lt;/li&gt;
	&lt;li&gt;クアッドコアにしとけばよかったな～とも思うけど、今のところストレスは感じてないのでよし。&lt;/li&gt;
	&lt;li&gt;組み立て終わった後に、マザーボードの付属部品を見つけたんだが、気にしない。&lt;/li&gt;
	&lt;li&gt;グラフィックボードは新しいのに限る。&lt;/li&gt;
	&lt;li&gt;ディスプレイ２枚買ったんだが、デカ過ぎ、ワイドだし。机ギリギリ。でも慣れるとたまんない圧迫感。&lt;/li&gt;
	&lt;li&gt;内蔵ハードディスクも２個(RAID構成じゃないよ)買ったんだけど、データ移行したらすでに半分いった。次はテラだな。&lt;/li&gt;
	&lt;li&gt;面倒なので電源付きのミドルタワーケース買ったんだが、電源壊れないか心配。(壊れた前例あり)&lt;/li&gt;
	&lt;li&gt;電源入れたら、ミドルタワーケース付属のファン部分で、LEDが青く煌々と輝きだした。予想外。&lt;/li&gt;
	&lt;li&gt;無線マウスは使い勝手はいいんだが、たまに制御不能になったり、イベント取れなかったりしてイラッとする。&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;まとめ&lt;/h3&gt;
&lt;p class="mb30"&gt;
とりあえず、初期不良はなかったのでよかった。&lt;br /&gt;
前のPCは4年ぐらい使ってたんだけど、今回のPCもそれぐらいもってくれるといいなぁ。&lt;br /&gt;
サクサク動くマシンって、ただそれだけで素敵です。
&lt;/p&gt;
--&lt;br /&gt;
いや、なぜか筋肉痛なのよ。マジで。組み立てただけなのに。。。
&lt;p&gt;&lt;a href="http://feeds.feedburner.jp/~a/xlune?a=51IlaK"&gt;&lt;img src="http://feeds.feedburner.jp/~a/xlune?i=51IlaK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.jp/~f/xlune?a=oDKY1kSI"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=oDKY1kSI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=SSOJO7pI"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=SSOJO7pI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=9UH5pxPi"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=9UH5pxPi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=CAysQV3I"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=CAysQV3I" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>「TextAreaの高さを入力にあわせて調整する」を作っとく</title><link>http://blog.xlune.com/2008/05/textarea.html</link><category>JavaScript</category><pubDate>Tue, 20 May 2008 18:21:38 +0900</pubDate><guid isPermaLink="false">http://blog.xlune.com/2008/05/textarea.html</guid><description>&lt;h3&gt;あったらあったでいいレベル&lt;/h3&gt;
&lt;p class="mb20"&gt;
テキストエリアの動的な調整は、マウスでドラッグするやつも含めると、チラホラ見るようになってきた。&lt;br /&gt;
ユーザ視点においては、無いと困るというレベルではなく、あれば便利というもの。
&lt;/p&gt;
&lt;p class="mb10"&gt;
下記のような記事を見たので、自分も自分なりにちゃんとストックしておこうと思った。
&lt;/p&gt;
&lt;p class="mb20"&gt;
&lt;a href="http://dev.iralog.net/2008/05/textarea.html"&gt;textareaのサイズを入力にあわせて調整するJavaScript&lt;/a&gt; (イラストdeブログ開発記)&lt;br /&gt;
&lt;a href="http://blog.livedoor.jp/dankogai/archives/51053417.html"&gt;javascript - 勝手に添削 - textareaの高さを自動調節&lt;/a&gt; (404 Blog Not Found)
&lt;/p&gt;
&lt;p class="mb30"&gt;
追記：&lt;br /&gt;
実際にこういう機能が欲しい場合は、&lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt;と&lt;a href="http://plugins.jquery.com/project/autogrow"&gt;jQueryプラグイン&lt;/a&gt;使った方がラクチン。
&lt;/p&gt;


&lt;h3&gt;さくっとサンプル&lt;/h3&gt;
&lt;p class="mb30"&gt;
&lt;script type="text/javascript"&gt;
&lt;!--

/* setup */
var FormUtil = FormUtil || {} ;
FormUtil.TextArea = FormUtil.TextArea || {} ;

/* config */
FormUtil.TextArea.conf = {
	resizeClass: "auto-resize",
	resizeMin: 1,
	resizeMax: 30
};

/* resize func */
FormUtil.TextArea.autoResize = function(e){
	var conf = FormUtil.TextArea.conf;
	var textarea = e.target || e.srcElement || e;
	var rowCount = textarea.value.split("\n").length;
	rowCount = Math.min(conf.resizeMax, Math.max(conf.resizeMin, rowCount));
	textarea.setAttribute("rows", rowCount);
};

/* init event */
FormUtil.TextArea.init = function(e){
	var textarea = document.getElementsByTagName("textarea");
	var className = FormUtil.TextArea.conf.resizeClass;
	var regex = new RegExp("(^|\\s+)" + className + "($|\\s+)");
	for(var i=0,max=textarea.length;i&lt;max;i++){
		var tmp = textarea.item(i);
		if(!(tmp.getAttribute("class") || tmp.getAttribute("className") || "").match(regex)) continue;
		if(window.addEventListener){
			tmp.addEventListener("keyup", FormUtil.TextArea.autoResize, false);
		} else if (window.attachEvent) {
			tmp.attachEvent("onkeyup", FormUtil.TextArea.autoResize);
		}
		FormUtil.TextArea.autoResize(tmp);
	}
}

/* onload event */
if(window.addEventListener) {
	window.addEventListener("load", FormUtil.TextArea.init, false);
} else if (window.attachEvent) {
	window.attachEvent("onload", FormUtil.TextArea.init);
}

//--&gt;
&lt;/script&gt;
&lt;textarea rows="10" cols="50" class="auto-resize" wrap="off"&gt;へ
る
ぷ
み
｜&lt;/textarea&gt;
&lt;/p&gt;


&lt;h3&gt;JavaScript コード&lt;/h3&gt;
&lt;pre&gt;&lt;code class="javascript"&gt;/* setup */
var FormUtil = FormUtil || {} ;
FormUtil.TextArea = FormUtil.TextArea || {} ;

/* config */
FormUtil.TextArea.conf = {
	resizeClass: "auto-resize",
	resizeMin: 1,
	resizeMax: 30
};

/* resize func */
FormUtil.TextArea.autoResize = function(e){
	var conf = FormUtil.TextArea.conf;
	var textarea = e.target || e.srcElement || e;
	var rowCount = textarea.value.split("\n").length;
	rowCount = Math.min(conf.resizeMax, Math.max(conf.resizeMin, rowCount));
	textarea.setAttribute("rows", rowCount);
};

/* init event */
FormUtil.TextArea.init = function(e){
	var textarea = document.getElementsByTagName("textarea");
	var className = FormUtil.TextArea.conf.resizeClass;
	var regex = new RegExp("(^|\\s+)" + className + "($|\\s+)");
	for(var i=0,max=textarea.length;i&amp;lt;max;i++){
		var tmp = textarea.item(i);
		if(!(tmp.getAttribute("class") || tmp.getAttribute("className") || "").match(regex)) continue;
		if(window.addEventListener){
			tmp.addEventListener("keyup", FormUtil.TextArea.autoResize, false);
		} else if (window.attachEvent) {
			tmp.attachEvent("onkeyup", FormUtil.TextArea.autoResize);
		}
		FormUtil.TextArea.autoResize(tmp);
	}
}

/* onload event */
if(window.addEventListener) {
	window.addEventListener("load", FormUtil.TextArea.init, false);
} else if (window.attachEvent) {
	window.attachEvent("onload", FormUtil.TextArea.init);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p class="mb30"&gt;
"FormUtil"ってのを持ってるわけではない、これを期にフォーム関連の細かいコードを整理しようと思っただけ。&lt;br /&gt;
追記：scrollHeightとか読んでwrapにも対応したほうがいいよね。
&lt;/p&gt;

&lt;h3&gt;まとめ&lt;/h3&gt;
&lt;p class="mb30"&gt;
自分がJavaScriptを書くと、何か冗長な感じになってしまう。&lt;br /&gt;
もっと良い書き方を覚えたいので、質のいいライブラリでもながめよう、放置の可能性が高いが。。。
&lt;/p&gt;
--&lt;br /&gt;
JSは上の人のレベルが高すぎ、格差社会だ。
&lt;p&gt;&lt;a href="http://feeds.feedburner.jp/~a/xlune?a=6D2WVX"&gt;&lt;img src="http://feeds.feedburner.jp/~a/xlune?i=6D2WVX" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.jp/~f/xlune?a=CdV6YSCE"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=CdV6YSCE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=hZD8Qzz4"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=hZD8Qzz4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=xVY3KE4T"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=xVY3KE4T" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=mig6kpZv"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=mig6kpZv" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Passenger(mod_rails)をインストールしてApache2+Railsをシンプルに行こう</title><link>http://blog.xlune.com/2008/04/passengermod_railsapache2rails.html</link><category>Ruby</category><pubDate>Thu, 17 Apr 2008 21:27:53 +0900</pubDate><guid isPermaLink="false">http://blog.xlune.com/2008/04/passengermod_railsapache2rails.html</guid><description>&lt;h3&gt;Passengerって何？&lt;/h3&gt;
&lt;p class="mb10"&gt;&lt;a href="http://www.modrails.com/"&gt;&lt;img src="http://blog.xlune.com/up_images/image_20080417001.jpg" alt="Passenger" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="mb30"&gt;
mod_rails って言えば大体役割は伝わります。Apache2上で Ruby on Rails を動作させるためのApacheモジュールです。&lt;br /&gt;
今まで、Apache+Railsの実現には mod_ruby や Fast CGI などが使われてきたようですが、設定がやや面倒という印象がありました。&lt;br /&gt;
&lt;a href="http://www.modrails.com/"&gt;Passenger&lt;/a&gt;はその面倒さを和らげてくれるありがたいモジュールを提供してくれます。
&lt;/p&gt;

&lt;h3&gt;Passengerをインストール&lt;/h3&gt;
&lt;p class="mb10"&gt;
前提として Ruby と RubyGems、Rails がインストールされている状態とします。&lt;br /&gt;
さっそく下記コマンドで passenger をインストールしましょう。(インストールの仕方は&lt;a href="http://www.modrails.com/install.html"&gt;Passengerのページ&lt;/a&gt;で説明されています)
&lt;/p&gt;
&lt;code&gt;&lt;pre&gt;gem install passenger&lt;/pre&gt;&lt;/code&gt;
&lt;p class="mb30"&gt;
インストール権限があればこのコマンドだけでインストールできます。途中、依存関係にあるライブラリのインストールも求められた場合は一緒にインストールしましょう。
&lt;/p&gt;


&lt;h3&gt;Apache2モジュールのインストール&lt;/h3&gt;
&lt;p class="mb10"&gt;
Passengerをインストールしたら、Apache2モジュールをインストールします。&lt;br /&gt;
まずは、どのApache2に対してモジュールを生成するか指定しましょう。
&lt;/p&gt;
&lt;code&gt;&lt;pre&gt;export APXS2=[APACHE_ROOT]bin/apxs&lt;/pre&gt;&lt;/code&gt;
&lt;p class="mb10"&gt;
指定したら、あとは下記コマンドでインストールするだけです。
&lt;/p&gt;
&lt;code&gt;&lt;pre&gt;passenger-install-apache2-module&lt;/pre&gt;&lt;/code&gt;
&lt;p class="mb10"&gt;
コマンドを実行するとテキストベースのインストーラーが立ち上がりますので、Enterを押してステップを消化していきます。&lt;br /&gt;
インストールが成功すると、「Apacheの設定ファイルに下記のような設定を追加してね！」的なメッセージが出ますので、さくっと設定ファイルにコピペしましょう。&lt;br /&gt;
(環境によってパスが異なります)
&lt;/p&gt;
&lt;code&gt;&lt;pre&gt;LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-1.0.1/ext/apache2/mod_passenger.so
RailsSpawnServer /usr/local/lib/ruby/gems/1.8/gems/passenger-1.0.1/bin/passenger-spawn-server
RailsRuby /usr/local/bin/ruby
&lt;/pre&gt;&lt;/code&gt;
&lt;p class="mb30"&gt;
あとは、バーチャルホストの設定などをしてApacheを再起動すればRailsアプリがすぐに動きます。&lt;br /&gt;
(実はモジュールインストール時、aprが古いとか、RubyGamsが古いとか、新しくしたらメソッドねーよとか、色々もてあそばれましたが、普通の環境なら大丈夫だと思うので省略します)
&lt;/p&gt;

&lt;h3&gt;Fastladderを入れてみる&lt;/h3&gt;
&lt;p class="mb10"&gt;
せっかく環境が整ったので、&lt;a href="http://fastladder.org/ja/"&gt;Fastladder&lt;/a&gt;を入れて遊んでみる。&lt;br /&gt;
&lt;/p&gt;
&lt;code&gt;&lt;pre&gt;svn co http://fastladder.googlecode.com/svn/trunk/fastladder/ fastladder&lt;/pre&gt;&lt;/code&gt;
&lt;p class="mb10"&gt;
まずはsvnリポジトリからソースをチェックアウト。&lt;br /&gt;
あとは、"INSTALL.txt" に書いてあるものをインストールする。
&lt;/p&gt;
&lt;code&gt;&lt;pre&gt;gem install rfeedfinder
gem install feed-normalizer
gem install opml
gem install mongrel
gem install sqlite3-ruby
&lt;/pre&gt;&lt;/code&gt;
&lt;p class="mb10"&gt;
&lt;a href="http://freeimage.sourceforge.net/download.html"&gt;FreeImage&lt;/a&gt; っていうライブラリも必要らしいので入れる。
&lt;/p&gt;
&lt;code&gt;&lt;pre&gt;wget http://jaist.dl.sourceforge.net/sourceforge/freeimage/FreeImage3100.zip
unzip FreeImage3100.zip
cd FreeImage
make
make install
&lt;/pre&gt;&lt;/code&gt;
&lt;p class="mb30"&gt;
これで必要なものは全部揃いました。
&lt;/p&gt;


&lt;h3&gt;Fastladderのセットアップ&lt;/h3&gt;
&lt;p class="mb10"&gt;バーチャルホストの設定(サンプル)&lt;/p&gt;
&lt;code&gt;&lt;pre&gt;&amp;lt;VirtualHost *:80&amp;gt;
  ServerName www.yourdomain.com
  DocumentRoot [設置パス]/fastladder/public
  &amp;lt;Directory "[設置パス]/fastladder/public"&amp;gt;
    Order allow,deny
    Allow from all
  &amp;lt;/Directory&amp;gt;
&amp;lt;/VirtualHost&amp;gt;
&lt;/pre&gt;&lt;/code&gt;
&lt;p class="mb10"&gt;DBの初期化とクローラーの起動&lt;/p&gt;
&lt;code&gt;&lt;pre&gt;cd [設置パス]/fastladder
RAILS_ENV=production
rake db:migrate
script/crawler &gt; /dev/null &amp;
&lt;/pre&gt;&lt;/code&gt;
&lt;p class="mb30"&gt;
これでセットアップ完了です。
&lt;/p&gt;


&lt;h3&gt;Fastladderプレビュー&lt;/h3&gt;
&lt;p class="mb30"&gt;
→&lt;a href="http://fastladder.xlune.com/"&gt;Fastladder&lt;/a&gt;(注：プレビューなので真面目に使わないようにしてね)&lt;br /&gt;
うまく行ったようです。よかったよかった。&lt;br /&gt;
ちなみに、ものすごく重いですが、Passenger が悪いわけではなく、テストサーバが低能なだけです。あしからず。&lt;br /&gt;
でも実際 Passenger の処理能力は気になるところ。早く運用実績が公開されるといいですね。
&lt;/p&gt;


&lt;h3&gt;まとめ&lt;/h3&gt;
&lt;p class="mb30"&gt;
導入ハードルを低くする事が普及への近道ってのはもっともな話しで、エライ方々に定期的に叩かれてるPHPがあれだけ普及してるのは、まさに導入が「ラクチン」だったからに他ならないと思う。&lt;br /&gt;
そういう意味では、その評価ほど普及率が高くないRails(ruby)もやっと裾野を広げるチャンスが巡って来たのでは？
&lt;/p&gt;
--&lt;br /&gt;
はい、実はRails真面目に使った事ありません。
&lt;p&gt;&lt;a href="http://feeds.feedburner.jp/~a/xlune?a=MaCS6c"&gt;&lt;img src="http://feeds.feedburner.jp/~a/xlune?i=MaCS6c" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.jp/~f/xlune?a=iqAxtfTt"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=iqAxtfTt" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=wOXfknuX"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=wOXfknuX" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=1v16zGzB"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=1v16zGzB" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=1Etr2Gsl"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=1Etr2Gsl" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=QikEcfUq"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=QikEcfUq" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>クライアントサイドだけで画像が生成できるそうなのでデモっておく</title><link>http://blog.xlune.com/2008/04/post_12.html</link><category>Flash</category><pubDate>Wed, 16 Apr 2008 18:01:52 +0900</pubDate><guid isPermaLink="false">http://blog.xlune.com/2008/04/post_12.html</guid><description>&lt;h3&gt;情報元とか&lt;/h3&gt;
&lt;p class="mb30"&gt;
→&lt;a href="http://www.nihilogic.dk/labs/canvas2image/"&gt;Saving canvas data to image file&lt;/a&gt;&lt;br /&gt;
→&lt;a href="http://bitmap.dyndns.org/blog/archives/001506.html"&gt;Tanablog: サーバを経由せずに Flash の内容を画像に変換する&lt;/a&gt;&lt;br /&gt;
前に &lt;a href="http://bitmap.dyndns.org/blog/"&gt;Tanablog&lt;/a&gt; さんの記事を読んでたはずなのに &lt;a href="http://www.nihilogic.dk/labs/canvas2image/"&gt;"Saving canvas data to image file"&lt;/a&gt; でもう一回「へぇ～」と思ってしまった。これはイカン。&lt;br /&gt;
要は「dataスキーム使えば便利」って話なので、もう忘れないようにDEMOっておく。
&lt;/p&gt;

&lt;h3&gt;DEMO&lt;/h3&gt;
&lt;script src="http://blog.xlune.com/2008/04/16/up_items/js/drow_png.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;link href="http://blog.xlune.com/2008/04/16/up_items/css/style.css" rel="stylesheet" rev="stylesheet" type="text/css" media="screen,print" charset="utf-8" /&gt;
&lt;div id="tools"&gt;
	&lt;div id="drow_box"&gt;&lt;/div&gt;
	&lt;ul&gt;
		&lt;li id="slider-bg" title="Slider"&gt;
			&lt;p id="slider-thumb"&gt;&lt;img src="http://blog.xlune.com/2008/04/16/up_items/images/thumb-n.gif" /&gt;&lt;/p&gt;
			&lt;p id="slider-title"&gt;Size: &lt;span id="slider-value"&gt;0&lt;/span&gt;&lt;p&gt;
		&lt;/li&gt;
		&lt;li id="slider2-bg" title="Slider"&gt;
			&lt;p id="slider2-thumb"&gt;&lt;img src="http://blog.xlune.com/2008/04/16/up_items/images/thumb-n.gif" /&gt;&lt;/p&gt;
			&lt;p id="slider2-title"&gt;Alpha: &lt;span id="slider2-value"&gt;0&lt;/span&gt;&lt;p&gt;
		&lt;/li&gt;
		&lt;li id="color-icon"&gt;
			&lt;p id="color-picker"&gt;&lt;/p&gt;
			&lt;p id="color-title"&gt;Color: &lt;span id="color-value"&gt;0&lt;/span&gt;&lt;/p&gt;
		&lt;/li&gt;
	&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="wrap" class="mb30"&gt;
	&lt;div id="drow_clone_box"&gt;&lt;/div&gt;
	&lt;div id="drow_server_box"&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;メモ&lt;/h3&gt;
&lt;ul class="mb30"&gt;
	&lt;li&gt;上のボックスが描画ボックス(swf)、その右が描画オプション。&lt;/li&gt;
	&lt;li&gt;赤枠点線のボックスがdataスキームによる描画クローン。&lt;/li&gt;
	&lt;li&gt;青枠点線のボックスがサーバスクリプト経由の描画クローン。&lt;/li&gt;
	&lt;li&gt;IEでdataスキームを利用できるのはバージョン８以降らしい。&lt;/li&gt;
	&lt;li&gt;IE8 bata1/Firefox2/Safari3 で一応、動作確認はした。&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;まとめ&lt;/h3&gt;
&lt;p class="mb30"&gt;
ASによる画像作成・編集能力は非常に高いので、クライアントサイドに出力機構が備わっているというのは良いことだと思う。&lt;br /&gt;
まだブラウザ対応してねーとか、dataスキームってセキュリティ的にどーよ、とか色々目にするけど、便利な物は便利。
&lt;/p&gt;
--&lt;br /&gt;
詳細を記憶する必要はないが、関連インデックスを思い出さないのはイカン。
&lt;p&gt;&lt;a href="http://feeds.feedburner.jp/~a/xlune?a=N5xyaD"&gt;&lt;img src="http://feeds.feedburner.jp/~a/xlune?i=N5xyaD" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.jp/~f/xlune?a=68BVnxD2"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=68BVnxD2" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=OZrnbIbl"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=OZrnbIbl" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=u8SeVqA7"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=u8SeVqA7" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=uRLk3gvL"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=uRLk3gvL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=fiRhmO89"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=fiRhmO89" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>RE:スクリプト無しで実装する、タブが重なり合うナビゲーション</title><link>http://blog.xlune.com/2008/04/re.html</link><category>CSS</category><pubDate>Thu, 10 Apr 2008 16:25:19 +0900</pubDate><guid isPermaLink="false">http://blog.xlune.com/2008/04/re.html</guid><description>&lt;h3&gt;タブが重なり合うナビゲーション&lt;/h3&gt;
&lt;p class="mb30"&gt;
&lt;a href="http://coliss.com/"&gt;コリス&lt;/a&gt;さんというブログで&lt;a href="http://coliss.com/articles/build-websites/operation/css/978.html"&gt;「スクリプト無しで実装する、タブが重なり合うナビゲーション」&lt;/a&gt;っていう紹介記事があった。&lt;br /&gt;
ちなみに紹介先はコチラ→&lt;a href="http://www.henryhoffman.com/CSS-overlapping-tabbed-navigation.html"&gt;henryhoffman.com&lt;/a&gt;
&lt;/p&gt;

&lt;h3&gt;なんか"span"がもっさり&lt;/h3&gt;
&lt;p class="mb30"&gt;
「へぇ～」と思ってみてたんだけど、なんか"span"が二重になってて、"class"がポコポコ貼り付いてるんで、どーにも落ち着かない。&lt;br /&gt;
なので、"span"を使わない方法を考えてみた。
&lt;/p&gt;

&lt;h3&gt;ゼロにはできませんでした。。。&lt;/h3&gt;
&lt;style type="text/css"&gt;
&lt;!--
.tab-menu {
	display: inline-block;
	list-style-type: none;
	height: 32px;
	margin:0 0 0 20px;
	paddin:0;
	font-size: 12px;
}
html[xmlns] .tab-menu {
	display: block;
	padding: 0;
}
* html .tab-menu {
	height: 1%;
}
.tab-menu:after {
	display: block;
	visibility: hidden;
	height: 0;
	content: ".";
	clear: both;
}

.tab-menu li {
	float: left;
	height: 32px;
	margin:0 0 0 -20px;
	padding:0;
}
.tab-menu a {
	cursor: hand;
	display: inline-block;
	height: 32px;
	outline: none;
	padding-right: 31px;
	color: #555555 !important;
	text-decoration: none !important;
	background-image: url(http://blog.xlune.com/2008/04/10/up_images/menu_right_off.gif);
	background-repeat: no-repeat;
	background-position: right top;
	position: relative;
	z-index: 0;
}
html[xmlns] .tab-menu a {
	display: block;
}

.tab-menu a span {
	display: inline-block;
	height: 32px;
	line-height: 32px;
	padding: 0 1em;
	background-image: url(http://blog.xlune.com/2008/04/10/up_images/menu_back_off.gif);
	background-repeat: no-repeat;
	background-position: left top;
	white-space: nowrap;
	position: relative;
	z-index: 0;
}
html[xmlns] .tab-menu a span {
	display: block;
}

.tab-menu a.active {
	color: #FFFFFF !important;
	background-image: url(http://blog.xlune.com/2008/04/10/up_images/menu_right_on.gif);
	z-index: 500;
}
.tab-menu a.active span {
	background-image: url(http://blog.xlune.com/2008/04/10/up_images/menu_back_on.gif);
	z-index: 500;
}

.tab-menu a:hover {
	color: #FFFFFF !important;
	background-image: url(http://blog.xlune.com/2008/04/10/up_images/menu_right_on.gif);
	border: 0;
	height: 32px;
	z-index: 1000;
}

.tab-menu a:hover span {
	background-image: url(http://blog.xlune.com/2008/04/10/up_images/menu_back_on.gif);
	border: 0;
	z-index: 1000;
}
--&gt;
&lt;/style&gt;


&lt;p class="mb10"&gt;[選択済みなし]&lt;/p&gt;
&lt;ul class="tab-menu mb20"&gt;
	&lt;li&gt;&lt;a href="#"&gt;&lt;span&gt;メニュー&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#"&gt;&lt;span&gt;なが～いメニューです&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#"&gt;&lt;span&gt;Menu&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#"&gt;&lt;span&gt;メニュー&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p class="mb10"&gt;[選択済みあり]&lt;/p&gt;
&lt;ul class="tab-menu mb20"&gt;
	&lt;li&gt;&lt;a href="#"&gt;&lt;span&gt;メニュー&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#" class="active"&gt;&lt;span&gt;なが～いメニューです&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#"&gt;&lt;span&gt;Menu&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#"&gt;&lt;span&gt;メニュー&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p class="mb30"&gt;
けっこー考えたんだけど、やっぱ IE6以下 が "a"タグの":hover" にしか反応してくれないので、"span"を一個使っちゃいました。残念です。&lt;br /&gt;
一応、下記のブラウザで正常に表示されるのは確認しました。
(IE5.5/IE6/IE7/IE8bata1/Firefox2/Safari3.1/Opera9.26)
&lt;/p&gt;


&lt;h3&gt;ソースコード&lt;/h3&gt;
&lt;p class="mb10"&gt;
汚いですが、CSSコードとHTMLコードです。&lt;br /&gt;
肝は ":hover" 擬似クラスに定義してある "border: 0;" です。&lt;br /&gt;
これがないとIEで ":hover" による "z-index" の値が反映されません。
&lt;/p&gt;
&lt;p&gt;[CSS]&lt;/p&gt;
&lt;code class="css"&gt;&lt;pre&gt;.tab-menu {
	display: inline-block;
	list-style-type: none;
	height: 32px;
	margin:0 0 0 20px;
	paddin:0;
	font-size: 12px;
}
html[xmlns] .tab-menu {
	display: block;
	padding: 0;
}
* html .tab-menu {
	height: 1%;
}
.tab-menu:after {
	display: block;
	visibility: hidden;
	height: 0;
	content: ".";
	clear: both;
}

.tab-menu li {
	float: left;
	height: 32px;
	margin:0 0 0 -20px;
	padding:0;
}
.tab-menu a {
	cursor: hand;
	display: inline-block;
	height: 32px;
	outline: none;
	padding-right: 31px;
	color: #555555;
	text-decoration: none;
	background-image: url(http://blog.xlune.com/2008/04/10/up_images/menu_right_off.gif);
	background-repeat: no-repeat;
	background-position: right top;
	position: relative;
	z-index: 0;
}
html[xmlns] .tab-menu a {
	display: block;
}

.tab-menu a span {
	display: inline-block;
	height: 32px;
	line-height: 32px;
	padding: 0 1em;
	background-image: url(http://blog.xlune.com/2008/04/10/up_images/menu_back_off.gif);
	background-repeat: no-repeat;
	background-position: left top;
	white-space: nowrap;
	position: relative;
	z-index: 0;
}
html[xmlns] .tab-menu a span {
	display: block;
}

.tab-menu a.active {
	color: #FFFFFF;
	background-image: url(http://blog.xlune.com/2008/04/10/up_images/menu_right_on.gif);
	z-index: 500;
}
.tab-menu a.active span {
	background-image: url(http://blog.xlune.com/2008/04/10/up_images/menu_back_on.gif);
	z-index: 500;
}

.tab-menu a:hover {
	color: #FFFFFF;
	background-image: url(http://blog.xlune.com/2008/04/10/up_images/menu_right_on.gif);
	border: 0;
	height: 32px;
	z-index: 1000;
}

.tab-menu a:hover span {
	background-image: url(http://blog.xlune.com/2008/04/10/up_images/menu_back_on.gif);
	border: 0;
	z-index: 1000;
}
&lt;/pre&gt;&lt;/code&gt;
&lt;br /&gt;&lt;br /&gt;

&lt;p&gt;[HTML]&lt;/p&gt;
&lt;code class="html"&gt;&lt;pre&gt;&amp;lt;!-- 選択済みなし --&amp;gt;
&amp;lt;ul class="tab-menu"&amp;gt;
	&amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;&amp;lt;span&amp;gt;メニュー&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
	&amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;&amp;lt;span&amp;gt;なが～いメニューです&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
	&amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;&amp;lt;span&amp;gt;Menu&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
	&amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;&amp;lt;span&amp;gt;メニュー&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;

&amp;lt;!-- 選択済みあり --&amp;gt;
&amp;lt;ul class="tab-menu"&amp;gt;
	&amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;&amp;lt;span&amp;gt;メニュー&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
	&amp;lt;li&amp;gt;&amp;lt;a href="#" class="active"&amp;gt;&amp;lt;span&amp;gt;なが～いメニューです&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
	&amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;&amp;lt;span&amp;gt;Menu&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
	&amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;&amp;lt;span&amp;gt;メニュー&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/pre&gt;&lt;/code&gt;
&lt;br /&gt;&lt;br /&gt;

&lt;h3&gt;まとめ&lt;/h3&gt;
&lt;p class="mb30"&gt;
直感では"span"全部消せる！と思ったんだけど、気のせいでした。&lt;br /&gt;
やっぱ、1つの要素に複数の背景を指定できる機能(Safari3.xにはあるらしい)がないと、"span"使わざるを得ないよね(？)。&lt;br /&gt;
&lt;/p&gt;
--&lt;br /&gt;
絶対、もっといい方法があるはず
&lt;p&gt;&lt;a href="http://feeds.feedburner.jp/~a/xlune?a=RJ7WKP"&gt;&lt;img src="http://feeds.feedburner.jp/~a/xlune?i=RJ7WKP" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.jp/~f/xlune?a=qotmM0Yj"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=qotmM0Yj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=IDxyreBs"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=IDxyreBs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=U0eb88Zs"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=U0eb88Zs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=jvlTK9gH"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=jvlTK9gH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=vOz0wg7d"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=vOz0wg7d" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>FontStructがおもしろいので5分でフォント作ったwww</title><link>http://blog.xlune.com/2008/04/fontstruct5www.html</link><category>EDGE:Bookmark</category><pubDate>Tue, 08 Apr 2008 12:40:10 +0900</pubDate><guid isPermaLink="false">http://blog.xlune.com/2008/04/fontstruct5www.html</guid><description>&lt;h3&gt;FontStruct&lt;/h3&gt;
&lt;p class="mb20"&gt;
&lt;a href="http://e0166.blog89.fc2.com/blog-entry-455.html"&gt;ホームページを作る人のネタ帳&lt;/a&gt;で&lt;a href="http://fontstruct.fontshop.com/"&gt;fontstruct&lt;/a&gt;ってフォントジェネレートサービスが紹介されてたんだけど、これがまた、良く作りこんであって面白かった。
&lt;/p&gt;

&lt;h3&gt;さっそくフォント作った&lt;/h3&gt;
&lt;p class="mb10"&gt;&lt;a href="http://blog.xlune.com/down_items/20080408.ttf"&gt;&lt;img src="http://blog.xlune.com/up_images/20080408001.gif" alt="まいふぉんと" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="mb20"&gt;
はい、汚いです。。。ゴメンナサイ。&lt;br /&gt;
まぁ、結果はこんなんですが、これほど気軽にフォントを作成できる &lt;a href="http://fontstruct.fontshop.com/"&gt;fontstruct&lt;/a&gt; は素晴らしいですね。
&lt;/p&gt;
&lt;p class="mb20"&gt;
作成時のツールレイアウトやショートカットキーの割り当てなどもちゃんとしていて、久しぶりに良いものを見ました。
&lt;/p&gt;

--&lt;br /&gt;
日本語版は人海戦術の要素を組み込まないとフォントが完成しない。
&lt;p&gt;&lt;a href="http://feeds.feedburner.jp/~a/xlune?a=aFJ1v8"&gt;&lt;img src="http://feeds.feedburner.jp/~a/xlune?i=aFJ1v8" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.jp/~f/xlune?a=OjqW3lku"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=OjqW3lku" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=jR4U24dj"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=jR4U24dj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=OSeME47Z"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=OSeME47Z" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=3ooBxwtP"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=3ooBxwtP" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=qqL5ivmY"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=qqL5ivmY" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Flashゲーム「Red Bull Flugtag Flight Lab」を紹介してみる</title><link>http://blog.xlune.com/2008/03/flashred_bull_flugtag_flight_l.html</link><category>EDGE:Bookmark</category><pubDate>Thu, 27 Mar 2008 17:03:31 +0900</pubDate><guid isPermaLink="false">http://blog.xlune.com/2008/03/flashred_bull_flugtag_flight_l.html</guid><description>&lt;a href="http://www.redbull.com/flightlab/"&gt;http://www.redbull.com/flightlab/&lt;/a&gt;

&lt;p class="mt10 mb5"&gt;&lt;a href="http://www.redbull.com/flightlab/"&gt;&lt;img src="http://blog.xlune.com/up_images/image_20080327_001.jpg" alt="flightlab" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="mt10"&gt;&lt;a href="http://www.redbull.com/flightlab/"&gt;&lt;img src="http://blog.xlune.com/up_images/image_20080327_002.jpg" alt="flightlab" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="mt5 mb20"&gt;ヒコーキを作って飛ばせるゲーム。鳥人間コンテストを(ry&lt;/p&gt;

&lt;h3&gt;今日の EDGE Now!&lt;/h3&gt;
&lt;script type="text/javascript" src="http://edgenow.jp/blogparts/adobeedgenow.js?id=245"&gt;&lt;/script&gt;
&lt;p class="mt10 mb20"&gt;&lt;a href="http://edgenow.jp/"&gt;EDGE Now!&lt;/a&gt;&lt;p&gt;
&lt;p class="mt10 mb20"&gt;このマスク・・・進化しやがる！&lt;/p&gt;
--&lt;br /&gt;
すでにAAAランクのマスクになってる方もいらっしゃるwww
&lt;p&gt;&lt;a href="http://feeds.feedburner.jp/~a/xlune?a=7CZ5tG"&gt;&lt;img src="http://feeds.feedburner.jp/~a/xlune?i=7CZ5tG" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.jp/~f/xlune?a=2jt5UXey"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=2jt5UXey" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=tHCrHI1O"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=tHCrHI1O" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=QDVS9F1Z"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=QDVS9F1Z" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=YexQ1mBi"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=YexQ1mBi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=N8AHktlp"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=N8AHktlp" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>学習ゲームコンテンツ「Questionaut」を紹介してみる</title><link>http://blog.xlune.com/2008/03/questionaut.html</link><category>EDGE:Bookmark</category><pubDate>Wed, 26 Mar 2008 09:52:31 +0900</pubDate><guid isPermaLink="false">http://blog.xlune.com/2008/03/questionaut.html</guid><description>&lt;a href="http://www.bbc.co.uk/schools/ks2bitesize/games/questionaut/pop.shtml"&gt;http://www.bbc.co.uk/schools/ks2bitesize/games/questionaut/pop.shtml&lt;/a&gt;

&lt;p class="mt10"&gt;&lt;a href="http://www.bbc.co.uk/schools/ks2bitesize/games/questionaut/pop.shtml"&gt;&lt;img src="http://blog.xlune.com/up_images/image_20080326_001.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="mt5 mb20"&gt;学習ゲームコンテンツらしい。英語です。&lt;/p&gt;

&lt;h3&gt;ついでに EDGE Now! 試してみた&lt;/h3&gt;
&lt;script type="text/javascript" src="http://edgenow.jp/blogparts/adobeedgenow.js?id=245"&gt;&lt;/script&gt;
&lt;p class="mt10 mb20"&gt;&lt;a href="http://edgenow.jp/"&gt;EDGE Now!&lt;/a&gt;&lt;p&gt;
&lt;p class="mt10 mb20"&gt;やり方が間違ってなければ、この記事で推薦した「Questionaut」が EDGE Now! にエントリーされるはず。。。&lt;/p&gt;
--&lt;br /&gt;
現在、EDGE Now! の参加ブログ数が少ないのでチャンスかも！？
&lt;p&gt;&lt;a href="http://feeds.feedburner.jp/~a/xlune?a=ZgE1b7"&gt;&lt;img src="http://feeds.feedburner.jp/~a/xlune?i=ZgE1b7" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.jp/~f/xlune?a=qkM83GIO"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=qkM83GIO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=rpVg12dm"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=rpVg12dm" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=XDYgSOVa"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=XDYgSOVa" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=GzQAGe3i"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=GzQAGe3i" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=gedvnH54"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=gedvnH54" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>お使いのブラウザは優秀ですか？Acid3テストしてみたよ。</title><link>http://blog.xlune.com/2008/03/acid3.html</link><category>other</category><pubDate>Thu, 06 Mar 2008 13:21:16 +0900</pubDate><guid isPermaLink="false">http://blog.xlune.com/2008/03/acid3.html</guid><description>&lt;h3&gt;Acid3とは？&lt;/h3&gt;
&lt;blockquote&gt;
&lt;h3&gt;&lt;a href="http://journal.mycom.co.jp/news/2008/03/04/015/index.html"&gt;ACID3テスト登場、最初にクリアするブラウザは?&lt;/a&gt;&lt;/h3&gt;
Acid3試験はとくにWeb 2.0ダイナミックコンテンツに関する仕様をチェックすることを目的としており、ECMAScript 262やDOM2の実装上の潜在的欠陥を明らかにすることを目指している。
&lt;/blockquote&gt;
&lt;p class="pb30"&gt;
CSSの仕様だけじゃなくて、ダイナミックコンテンツに関する仕様もチェックしてくれるらしい。&lt;br /&gt;
すべてのブラウザが互換性の向上に尽力してくれると、一ユーザとしてはありがたいなぁ。(描画やスクリプト実行の信頼性以外の部分でブラウザ選択が可能になる)
&lt;/p&gt;

&lt;h3&gt;どんなテスト？&lt;/h3&gt;
&lt;p class="pb10"&gt;
テストしたいブラウザで、&lt;a href="http://acid3.acidtests.org/"&gt;acid3テストページ&lt;/a&gt;にアクセスするだけでテストが開始されます。&lt;br /&gt;
100ポイント(100ステップ)が最高点で、テストをクリアすると下記のような表示になるようです。
&lt;/p&gt;
&lt;p class="pb10"&gt;&lt;img src="http://blog.xlune.com/up_images/img_20080306_reference.jpg" alt="reference" /&gt;&lt;/p&gt;
&lt;p&gt;
今回は、自分の環境で出来る範囲でテストしてみました。
&lt;/p&gt;
&lt;ul class="pb20"&gt;
	&lt;li&gt;&lt;a href="#firefox2"&gt;Firefox 2 (Windows)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#firefox3"&gt;Firefox 3 Beta 4 (Windows)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#ie5"&gt;Internet Explorer 5.55 (Windows)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#ie6"&gt;Internet Explorer 6 (Windows)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#ie7"&gt;Internet Explorer 7 (Windows)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#ie8"&gt;Internet Explorer 8 Beta 1 (Windows)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#opera"&gt;Opera 9.26 (Windows)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#safari"&gt;Safari 3.0.4 Beta (Windows)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#firefrox2-mac"&gt;Firefox 2 (Mac)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#safari-mac"&gt;Safari 2.0.4 (Mac)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#safari-webkit-mac"&gt; WebKit r30790 (Mac)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="firefox2"&gt;Firefox 2 (Windows)&lt;/h3&gt;
&lt;p class="pb10"&gt;&lt;img src="http://blog.xlune.com/up_images/img_20080306_firefox2.jpg" alt="firefox2" /&gt;&lt;/p&gt;
&lt;p class="pb30"&gt;
&lt;strong&gt;49&lt;/strong&gt;ポイント&lt;br /&gt;
完成形の面影はあまりないですね。
&lt;/p&gt;

&lt;h3 id="firefox3"&gt;Firefox 3 Beta 4 (Windows)&lt;/h3&gt;
&lt;p class="pb10"&gt;&lt;img src="http://blog.xlune.com/up_images/img_20080306_firefox3beta4.jpg" alt="firefox3" /&gt;&lt;/p&gt;
&lt;p class="pb30"&gt;
&lt;strong&gt;59&lt;/strong&gt;ポイント&lt;br /&gt;
Firefox2と10ポイントしか違いませんが、かなりいい表示になりました。
&lt;/p&gt;

&lt;h3 id="ie5"&gt;Internet Explorer 5.55 (Windows)&lt;/h3&gt;
&lt;p class="pb10"&gt;&lt;img src="http://blog.xlune.com/up_images/img_20080306_ie5-55.jpg" alt="ie5" /&gt;&lt;/p&gt;
&lt;p class="pb30"&gt;
&lt;strong&gt;13&lt;/strong&gt;ポイント&lt;br /&gt;
最初の方で止まってしまいました。
&lt;/p&gt;

&lt;h3 id="ie6"&gt;Internet Explorer 6 (Windows)&lt;/h3&gt;
&lt;p class="pb10"&gt;&lt;img src="http://blog.xlune.com/up_images/img_20080306_ie6.jpg" alt="ie6" /&gt;&lt;/p&gt;
&lt;p class="pb30"&gt;
&lt;strong&gt;11&lt;/strong&gt;ポイント&lt;br /&gt;
なぜかポイントがIE5.5より低くなってしまいました。
&lt;/p&gt;

&lt;h3 id="ie7"&gt;Internet Explorer 7 (Windows)&lt;/h3&gt;
&lt;p class="pb10"&gt;&lt;img src="http://blog.xlune.com/up_images/img_20080306_ie7.jpg" alt="ie7" /&gt;&lt;/p&gt;
&lt;p class="pb30"&gt;
&lt;strong&gt;12&lt;/strong&gt;ポイント&lt;br /&gt;
・・・IE8に期待。
&lt;/p&gt;

&lt;h3 id="ie8"&gt;Internet Explorer 8 Beta 1 (Windows)&lt;/h3&gt;
&lt;p class="pb10"&gt;&lt;img src="http://blog.xlune.com/up_images/img_20080306_ie8beta1.jpg" alt="ie8" /&gt;&lt;/p&gt;
&lt;p class="pb30"&gt;
&lt;strong&gt;17&lt;/strong&gt;ポイント&lt;br /&gt;
やったー、最高記録だ！(IEの中では的な意味で)、わーい。
&lt;/p&gt;

&lt;h3 id="opera"&gt;Opera 9.26 (Windows)&lt;/h3&gt;
&lt;p class="pb10"&gt;&lt;img src="http://blog.xlune.com/up_images/img_20080306_opera9-26.jpg" alt="opera" /&gt;&lt;/p&gt;
&lt;p class="pb30"&gt;
&lt;strong&gt;46&lt;/strong&gt;ポイント&lt;br /&gt;
&lt;a href="http://acid2.acidtests.org/"&gt;Acid2&lt;/a&gt;はもちろん通ってるし、早い時期にクリアしそうですね。
&lt;/p&gt;

&lt;h3 id="safari"&gt;Safari 3.0.4 Beta (Windows)&lt;/h3&gt;
&lt;p class="pb10"&gt;&lt;img src="http://blog.xlune.com/up_images/img_20080306_safari3-0-4.jpg" alt="safari" /&gt;&lt;/p&gt;
&lt;p class="pb30"&gt;
&lt;strong&gt;39&lt;/strong&gt;ポイント&lt;br /&gt;
Operaには及びませんでしたが、こちらも今後期待できます。
&lt;/p&gt;

&lt;h3 id="firefrox2-mac"&gt;Firefox 2 (Mac)&lt;/h3&gt;
&lt;p class="pb10"&gt;&lt;img src="http://blog.xlune.com/up_images/img_20080306_mac_firefox2.jpg" alt="firefrox2-mac" /&gt;&lt;/p&gt;
&lt;p class="pb30"&gt;
&lt;strong&gt;50&lt;/strong&gt;ポイント&lt;br /&gt;
なぜかWindows版より１ポイント高かったです。
&lt;/p&gt;

&lt;h3 id="safari-mac"&gt;Safari 2.0.4 (Mac)&lt;/h3&gt;
&lt;p class="pb10"&gt;&lt;img src="http://blog.xlune.com/up_images/img_20080306_mac_safari_2-0-4.jpg" alt="safari-mac" /&gt;&lt;/p&gt;
&lt;p class="pb30"&gt;
&lt;strong&gt;?&lt;/strong&gt;ポイント&lt;br /&gt;
ポイントが表示されませんでした。表示されなかったのか、何かの要素に隠れているのか。
&lt;/p&gt;

&lt;h3 id="safari-webkit-mac"&gt; WebKit r30790 (Mac)&lt;/h3&gt;
&lt;p class="pb10"&gt;&lt;img src="http://blog.xlune.com/up_images/img_20080306_mac_webkit_2-0-4.jpg" alt="safari-webkit-mac" /&gt;&lt;/p&gt;
&lt;p class="pb30"&gt;
&lt;strong&gt;87&lt;/strong&gt;ポイント&lt;br /&gt;
Safari 2.0.4 (Mac) のポイントが表示されなかったので、最新の &lt;a href="http://nightly.webkit.org/"&gt;WebKit(r30790)&lt;/a&gt; で試したところ、本日の最高得点を叩き出しました。&lt;br /&gt;
ちなみに、Windows版の&lt;a href="http://nightly.webkit.org/"&gt;WebKit(r30768)&lt;/a&gt; も同ポイントでした。
&lt;/p&gt;

&lt;h3&gt;まとめ&lt;/h3&gt;
&lt;p class="pb30"&gt;
もう全ブラウザ WebKit 採用すればいいじゃんって思いますが、そうも行かないのでしょう。&lt;br /&gt;
もしクリアするブラウザが出てくるとして、自分の中ではOpera、Safariあたりが一番早い感じがします。&lt;br /&gt;
ただ、IE8にも期待ですし、やっぱりFirefoxが大好きなので頑張ってほしいですね。
&lt;/p&gt;
--&lt;br /&gt;
将来的に意味のないことをしてしまったな。&lt;br /&gt;
&lt;br /&gt;
追記１：誤字修正。&lt;br /&gt;
追記２：IE8 Beta 1 を追加
&lt;p&gt;&lt;a href="http://feeds.feedburner.jp/~a/xlune?a=FnDMoM"&gt;&lt;img src="http://feeds.feedburner.jp/~a/xlune?i=FnDMoM" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.jp/~f/xlune?a=fEhBYw0d"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=fEhBYw0d" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=dBkowKk8"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=dBkowKk8" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=cskc1Poa"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=cskc1Poa" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=MzybZgz4"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=MzybZgz4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=TQT3f8V7"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=TQT3f8V7" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>Apatna Jaxer を自分のサーバに入れてみる</title><link>http://blog.xlune.com/2008/02/apatna_jaxer.html</link><category>JavaScript</category><pubDate>Wed, 27 Feb 2008 18:07:17 +0900</pubDate><guid isPermaLink="false">http://blog.xlune.com/2008/02/apatna_jaxer.html</guid><description>&lt;h3&gt;Apatna Jaxer とは？&lt;/h3&gt;
サーバサイドJavascriptを実現するアプリケーションサーバ。&lt;br /&gt;
Apatna社自身は Ajaxサーバ と表現しているようです。&lt;br /&gt;
構成としては、Apache と Ajaxサーバ を個別に稼動させ mod_jaxer というモジュールで連携させる感じ。&lt;br /&gt;
&lt;br /&gt;
Firefox3と同じエンジンを利用していて、JavaScriptの標準に準拠。&lt;br /&gt;
サーバサイドの処理においてもDOM操作が可能で、protptype.jsやjQueryなどもサーバサイドで利用可能です。&lt;br /&gt;
さらに、Jaxer Framework というAjaxサーバで使える関数群が用意されていて、ファイル操作やMySQLなどのデータベース接続もJavaScriptで行えます。&lt;br /&gt;
&lt;br /&gt;
とにかく、JavaScriptです。&lt;br /&gt;
Perl,Ruby,PHP,Python,etc...なんて使いたくないって人には最適です。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;Apatna Jaxer のダウンロード&lt;/h3&gt;
&lt;a href="http://www.aptana.com/jaxer/download"&gt;Download Aptana Jaxer&lt;/a&gt;(Aptana Jaxer ダウンロードページ)&lt;br /&gt;
Windows版、Mac版、Linux版がそれぞれ用意されてます。&lt;br /&gt;
&lt;br /&gt;
これらのパッケージにはApache2.2もバンドルされていて、本来は事前にApacheを用意しておく必要はない。&lt;br /&gt;
しかし、今回は既に構築済みのApacheにJaxerを入れようと思ったので、そのように環境を設定していこうと思います。&lt;br /&gt;
&lt;br /&gt;
自分のサーバはLinuxなのでLinux版をソースディレクトリにダウンロードしておきます。(この時点での最新は Jaxer for Linux build 0.9.3.2156 でした)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;Apatna Jaxer の設置&lt;/h3&gt;
まず、ダウンロードしたファイルを展開します。
&lt;code&gt;&lt;pre&gt;unzip Jaxer_package_withApache.zip&lt;/pre&gt;&lt;/code&gt;
すると、AptanaJaxer というフォルダにファイルが展開されます。&lt;br /&gt;
(もし、バンドルされているApacheを利用する場合はこのAptanaJaxerを '/opt' に配置すれば簡単な設定で、すぐに利用可能です)
&lt;br /&gt;
次にAptanaJaxerをソースディレクトリから設置箇所に移動します。&lt;br /&gt;
私の場合はApacheディレクトリと同じ階層に設置しました。&lt;br /&gt;
以後、このディレクトリパスを [APP_PATH] 、Apacheディレクトリパスを [APACHE_PATH]、AptanaJaxerディレクトリパスを [JAXER_PATH]、公開トップディレクトリを [DOCUMENT_ROOT] と記述します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;mod_jaxer.so の設置&lt;/h3&gt;
'[JAXER_PATH]/jaxer/connectors' の中に mod_jaxer.so というApacheモジュールが入っているので、それをApacheモジュールディレクトリにコピーします。&lt;br /&gt;
&lt;code&gt;&lt;pre&gt;cp [JAXER_PATH]/jaxer/connectors/mod_jaxer.so [APACHE_PATH]/modules/mod_jaxer.so&lt;/pre&gt;&lt;/code&gt;
コピーしたら httpd.conf に、
&lt;code&gt;&lt;pre&gt;LoadModule jaxer_module modules/mod_jaxer.so&lt;/pre&gt;&lt;/code&gt;
という記述を追加して mod_jaxer.so を読み込む設定にします。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;Apache の設定&lt;/h3&gt;
'[JAXER_PATH]/jaxer/confs' の中に jaxer-linux.httpd.conf というlinux用の設定ファイルがあります。&lt;br /&gt;
これを下記のようにコピーします。
&lt;code&gt;&lt;pre&gt;cp [JAXER_PATH]/jaxer/confs/jaxer-linux.httpd.conf [APACHE_PATH]/conf/extra/httpd-jaxer.conf&lt;/pre&gt;&lt;/code&gt;
&lt;br /&gt;
コピーしたら httpd.conf の最後に、
&lt;code&gt;&lt;pre&gt;Include conf/extra/httpd-jaxer.conf&lt;/pre&gt;&lt;/code&gt;
という記述を追加して、httpd-jaxer.conf をhttpd.confにIncludeします。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;httpd-jaxer.conf の修正&lt;/h3&gt;
httpd-jaxer.conf 内に記述してあるパス等を、自分の環境に書き換えます。&lt;br /&gt;
今回は下記のように書き換えました(コメントは削除してあります)。
&lt;code&gt;&lt;pre&gt;&amp;lt;Directory "[JAXER_PATH]/jaxer/aptana"&amp;gt;
    Order Deny,Allow
    Allow from all
&amp;lt;/Directory&amp;gt;
Alias /aptana [JAXER_PATH]/jaxer/aptana

&amp;lt;IfModule jaxer_module&amp;gt;
  JaxerWorker localManagerWorker 127.0.0.1 4327
  &amp;lt;Location "/jaxer-server"&amp;gt;
    SetHandler JAXER
  &amp;lt;/Location&amp;gt;
  &amp;lt;Directory "[DOCUMENT_ROOT]"&amp;gt;
    DirectoryIndex index.php index.php3 index.html index.htm index.html.var index.html.var index.html.redirect
    
    JaxerFilter localManagerWorker .html
    JaxerFilter localManagerWorker .xhtml
    JaxerFilter localManagerWorker .htm
    JaxerFilter localManagerWorker .php

    Order Deny,Allow
    Allow from all
  &amp;lt;/Directory&amp;gt;
  &amp;lt;Directory "[JAXER_PATH]/jaxer/aptana"&amp;gt;
    JaxerFilter localManagerWorker .html
    JaxerFilter localManagerWorker .xhtml
    JaxerFilter localManagerWorker .htm
    JaxerFilter localManagerWorker .php

    Order Deny,Allow
    Allow from all
  &amp;lt;/Directory&amp;gt;

  &amp;lt;LocationMatch "/jaxer-include/"&amp;gt;
    JaxerPassThrough
    Order Deny,Allow
    Allow from all
  &amp;lt;/LocationMatch&amp;gt;
  
&amp;lt;/IfModule&amp;gt;
&lt;/pre&gt;&lt;/code&gt;
まぁ、大体こんな感じなんだけど、この設定だと全体に影響を及ぼすので、バーチャルホストを利用して専用のドキュメントルートを設定するなり、Directory指定で部分的に JaxerFilter を適用する設定にしたりする必要がありそう。&lt;br /&gt;&lt;br /&gt;
なのでドキュメントルート直下に"jaxer"というフォルダを作成して、その中で"JaxerFilter"を設定した。(.htaccessで設定を上書きできれば一番良いのだが、JaxerFilterの上書き許可の指定方法がわからん)
&lt;code&gt;&lt;pre&gt;&amp;lt;Directory "[JAXER_PATH]/jaxer/aptana"&amp;gt;
    Order Deny,Allow
    Allow from all
&amp;lt;/Directory&amp;gt;
Alias /aptana [JAXER_PATH]/jaxer/aptana

&amp;lt;IfModule jaxer_module&amp;gt;
  JaxerWorker localManagerWorker 127.0.0.1 4327
  &amp;lt;Location "/jaxer-server"&amp;gt;
    SetHandler JAXER
  &amp;lt;/Location&amp;gt;
  &amp;lt;Directory "[DOCUMENT_ROOT]/jaxer"&amp;gt;
    DirectoryIndex index.php index.php3 index.html index.htm index.html.var index.html.var index.html.redirect
    
    JaxerFilter localManagerWorker .html
    JaxerFilter localManagerWorker .xhtml
    JaxerFilter localManagerWorker .htm
    JaxerFilter localManagerWorker .php

    Order Deny,Allow
    Allow from all
  &amp;lt;/Directory&amp;gt;
  &amp;lt;Directory "[JAXER_PATH]/jaxer/aptana"&amp;gt;
    JaxerFilter localManagerWorker .html
    JaxerFilter localManagerWorker .xhtml
    JaxerFilter localManagerWorker .htm
    JaxerFilter localManagerWorker .php

    Order Deny,Allow
    Allow from all
  &amp;lt;/Directory&amp;gt;

  &amp;lt;LocationMatch "/jaxer-include/"&amp;gt;
    JaxerPassThrough
    Order Deny,Allow
    Allow from all
  &amp;lt;/LocationMatch&amp;gt;
  
&amp;lt;/IfModule&amp;gt;
&lt;/pre&gt;&lt;/code&gt;
&lt;br /&gt;

&lt;h3&gt;Jaxer の起動スクリプトの修正&lt;/h3&gt;
'[JAXER_PATH]/scripts' の中にJaxerの起動/停止スクリプトが入ってるので環境に合わせて修正する。&lt;br /&gt;
&lt;br /&gt;
[start.sh]
&lt;code&gt;&lt;pre&gt;##3行目辺り
export JAXERBASE=/opt/AptanaJaxer
↓
export JAXERBASE=[JAXER_PATH]

##6行目辺りをコメントアウト
sleep 3
$JAXERBASE/scripts/startApache.sh
↓
#sleep 3
#$JAXERBASE/scripts/startApache.sh
&lt;/pre&gt;&lt;/code&gt;
&lt;br /&gt;
[startJaxer.sh]
&lt;code&gt;&lt;pre&gt;##76行目辺り
export JAXER_LOGFILE=file://$JAXERBASE/logs/jaxer.log
↓
export JAXER_LOGFILE=$JAXERBASE/logs/jaxer.log
&lt;/pre&gt;&lt;/code&gt;
&lt;br /&gt;
[stop.sh]
&lt;code&gt;&lt;pre&gt;##3行目辺り
export JAXERBASE=/opt/AptanaJaxer
↓
export JAXERBASE=[JAXER_PATH]

##6行目辺りをコメントアウト
$JAXERBASE/scripts/stopApache.sh
↓
#$JAXERBASE/scripts/stopApache.sh
&lt;/pre&gt;&lt;/code&gt;
&lt;br /&gt;

&lt;h3&gt;Jaxer の起動と停止&lt;/h3&gt;
Jaxerの起動:
&lt;code&gt;&lt;pre&gt;[JAXER_PATH]/scripts/start.sh&lt;/pre&gt;&lt;/code&gt;
Jaxerの停止:
&lt;code&gt;&lt;pre&gt;[JAXER_PATH]/scripts/stop.sh&lt;/pre&gt;&lt;/code&gt;
上記のコマンドで、Jaxerの起動と停止が行える。&lt;br /&gt;
&lt;br /&gt;
Jaxerを起動したらApacheの再起動が必要なようなので、忘れずにApacheを再起動させる。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;Jaxer の動作確認&lt;/h3&gt;
Jaxerを起動し、Apacheを再起動したら、
&lt;code&gt;&lt;pre&gt;http://[YOURDOMAIN]/aptana&lt;/pre&gt;&lt;/code&gt;
にアクセスしてみよう。&lt;br /&gt;
&lt;a href="http://labs.xlune.com/aptana"&gt;こんなページが表示されます&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
うまくページが表示されましたか？&lt;br /&gt;
ページ左側に "Build: 0.9.3.2156" とBuild番号が表示されたらスクリプトも正常に動作していると思います。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;サンプルの実行&lt;/h3&gt;
Jaxer の動作確認がうまくいったら、サンプルページを表示させてみよう。&lt;br /&gt;
ドキュメントルート直下に用意した"jaxer"ディレクトリの中に下記を記述した index.html を作成する。
&lt;code class="html"&gt;&lt;pre&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;
&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" lang="ja-JP" xml:lang="ja-JP"&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta http-equiv="content-type" content="text/html; charset=UTF-8" /&amp;gt;
&amp;lt;meta http-equiv="Content-Language" content="ja" /&amp;gt;
&amp;lt;title&amp;gt;Jaxer Sample&amp;lt;/title&amp;gt;
&amp;lt;script runat="server"&amp;gt;
  function init(){
    document.getElementById('build').innerHTML = "Build:" + Jaxer.buildNumber;
  }
&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body onserverload="init()"&amp;gt;
&amp;lt;div id="build"&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;&lt;/code&gt;
準備が出来たら、
&lt;code&gt;&lt;pre&gt;http://[YOURDOMAIN]/jaxer/&lt;/pre&gt;&lt;/code&gt;
にアクセスしてみる。&lt;br /&gt;
&lt;br /&gt;
うまく動作すれば"Build:0.9.3.2156"のようにBuild番号が表示されるはず。&lt;br /&gt;
→&lt;a href="http://labs.xlune.com/jaxer/"&gt;サンプル&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
表示されたら、ブラウザからソースを表示してみよう。&lt;br /&gt;
ちゃんと指示通りにDIVタグの中に文字列が挿入されているのが見てわかると思います。&lt;br /&gt;
ただ、htmlヘッダがグチャグチャにされて、xhtmlがValidじゃなくなってるのが残念。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;


&lt;h3&gt;まとめ&lt;/h3&gt;
勢いで書いたので解りづらい説明になってしまいましたが、実際はほとんどサーバ設定をせずに動作させるようなパッケージになっています。&lt;br /&gt;
なので気軽に試せるのは間違いありません。&lt;br /&gt;
自分はあまりさわってませんが、サンプルソースとかAPIを見るとちょっとワクワクしますよ。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
楽しそうなことはたくさんあるんだけど、気力がついていかねぇー。
&lt;p&gt;&lt;a href="http://feeds.feedburner.jp/~a/xlune?a=JtYouy"&gt;&lt;img src="http://feeds.feedburner.jp/~a/xlune?i=JtYouy" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.jp/~f/xlune?a=CHTpK7k8"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=CHTpK7k8" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=EH0A29yw"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=EH0A29yw" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=C23BQluU"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=C23BQluU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=wiRM1Rqm"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=wiRM1Rqm" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=wc9mxqwp"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=wc9mxqwp" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item><item><title>XRDSを設置して自分のドメインをOpenID(2.0対応)として使う</title><link>http://blog.xlune.com/2008/02/xrdsopenid20.html</link><category>OpenID</category><pubDate>Thu, 21 Feb 2008 22:03:55 +0900</pubDate><guid isPermaLink="false">http://blog.xlune.com/2008/02/xrdsopenid20.html</guid><description>&lt;h3&gt;XRDSって何？&lt;/h3&gt;
ぶっちゃけ、よく知りません。&lt;br /&gt;
OpenID Provider の情報を記述したXML形式のファイルだと思います。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;XRDSってどう使うの？&lt;/h3&gt;
&lt;a href="http://www.atmarkit.co.jp/fsecurity/rensai/openid05/openid03.html"&gt;＠ITに記事があるよ&lt;/a&gt;。&lt;br /&gt;
・・・まぁ、説明はこれで済んでしまうんですが。。。&lt;br /&gt;
&lt;br /&gt;
一応、導入ログ書きます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;XRDSファイルを作る&lt;/h3&gt;
とりあえず、Yahoo!、はてな、openid.ne.jp の OpenID Provider を記述したXRDSファイルを作る。
&lt;code&gt;&lt;pre&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;xrds:XRDS
  xmlns:xrds="xri://$xrds"
  xmlns:openid="http://openid.net/xmlns/1.0"
  xmlns="xri://$xrd*($v*2.0)"&amp;gt;
  &amp;lt;XRD&amp;gt;
    &amp;lt;Service priority="0"&amp;gt;
      &amp;lt;Type&amp;gt;http://specs.openid.net/auth/2.0/signon&amp;lt;/Type&amp;gt;
      &amp;lt;URI&amp;gt;https://open.login.yahooapis.jp/openid/op/auth&amp;lt;/URI&amp;gt;
      &amp;lt;LocalID&amp;gt;##Yahoo!から発行されたOpenID##&amp;lt;/LocalID&amp;gt;
    &amp;lt;/Service&amp;gt;
    &amp;lt;Service priority="1"&amp;gt;
      &amp;lt;Type&amp;gt;http://openid.net/signon/1.0&amp;lt;/Type&amp;gt;
      &amp;lt;Type&amp;gt;http://openid.net/signon/1.1&amp;lt;/Type&amp;gt;
      &amp;lt;Type&amp;gt;http://openid.net/sreg/1.0&amp;lt;/Type&amp;gt;
      &amp;lt;URI&amp;gt;https://www.hatena.ne.jp/openid/server&amp;lt;/URI&amp;gt;
      &amp;lt;openid:Delegate&amp;gt;##はてなから発行されたOpenID##&amp;lt;/openid:Delegate&amp;gt;
    &amp;lt;/Service&amp;gt;
    &amp;lt;Service priority="2"&amp;gt;
      &amp;lt;Type&amp;gt;http://openid.net/signon/1.0&amp;lt;/Type&amp;gt;
      &amp;lt;Type&amp;gt;http://openid.net/signon/1.1&amp;lt;/Type&amp;gt;
      &amp;lt;Type&amp;gt;http://openid.net/sreg/1.0&amp;lt;/Type&amp;gt;
      &amp;lt;URI&amp;gt;http://www.openid.ne.jp/user/auth&amp;lt;/URI&amp;gt;
      &amp;lt;openid:Delegate&amp;gt;##openid.ne.jpから発行されたOpenID##&amp;lt;/openid:Delegate&amp;gt;
    &amp;lt;/Service&amp;gt;
  &amp;lt;/XRD&amp;gt;
&amp;lt;/xrds:XRDS&amp;gt;
&lt;/pre&gt;&lt;/code&gt;
こんな感じ。&lt;br /&gt;
##～##の部分は自分で取得したOpenIDに置き換えてください。&lt;br /&gt;
あと、はてなのXRDSが見つからなかったので、はてなの設定はopenid.ne.jpのをコピった。&lt;br /&gt;
一応、priority 順に認証チャレンジするみたい。&lt;br /&gt;
でもたまに、ランダムじゃねーか？と思うことはよくある。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;XRDSファイルの設置&lt;/h3&gt;
設置方法は複数考えられます。&lt;br /&gt;
XRDSは出力の際 Content-Type: application/xrds+xml をHTTPレスポンスヘッダに付与する必要があるので、
&lt;ol&gt;
	&lt;li&gt;HTTPヘッダーを書きかえれるスクリプト言語を利用して出力&lt;/li&gt;
	&lt;li&gt;MIMEタイプに application/xrds+xml を登録&lt;/li&gt;
&lt;/ol&gt;
とりあえず、このどちらかの対応が必要になると思います。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;スクリプト言語を利用して出力するパターン&lt;/h3&gt;
これはサーバサイドのスクリプト言語であれば、ほとんどの場合いけるはず。&lt;br /&gt;
ここでは PHP でのサンプルです。
&lt;code class="php"&gt;&lt;pre&gt;&amp;lt;?php
header('Content-Type: application/xrds+xml');
echo "&amp;lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&amp;gt;\n";
?&amp;gt;
&amp;lt;xrds:XRDS
  xmlns:xrds="xri://$xrds"
  xmlns:openid="http://openid.net/xmlns/1.0"
  xmlns="xri://$xrd*($v*2.0)"&amp;gt;
  &amp;lt;XRD&amp;gt;
    &amp;lt;Service priority="0"&amp;gt;
      &amp;lt;Type&amp;gt;http://specs.openid.net/auth/2.0/signon&amp;lt;/Type&amp;gt;
      &amp;lt;URI&amp;gt;https://open.login.yahooapis.jp/openid/op/auth&amp;lt;/URI&amp;gt;
      &amp;lt;LocalID&amp;gt;##Yahoo!から発行されたOpenID##&amp;lt;/LocalID&amp;gt;
    &amp;lt;/Service&amp;gt;
    &amp;lt;Service priority="1"&amp;gt;
      &amp;lt;Type&amp;gt;http://openid.net/signon/1.0&amp;lt;/Type&amp;gt;
      &amp;lt;Type&amp;gt;http://openid.net/signon/1.1&amp;lt;/Type&amp;gt;
      &amp;lt;Type&amp;gt;http://openid.net/sreg/1.0&amp;lt;/Type&amp;gt;
      &amp;lt;URI&amp;gt;https://www.hatena.ne.jp/openid/server&amp;lt;/URI&amp;gt;
      &amp;lt;openid:Delegate&amp;gt;##はてなから発行されたOpenID##&amp;lt;/openid:Delegate&amp;gt;
    &amp;lt;/Service&amp;gt;
    &amp;lt;Service priority="2"&amp;gt;
      &amp;lt;Type&amp;gt;http://openid.net/signon/1.0&amp;lt;/Type&amp;gt;
      &amp;lt;Type&amp;gt;http://openid.net/signon/1.1&amp;lt;/Type&amp;gt;
      &amp;lt;Type&amp;gt;http://openid.net/sreg/1.0&amp;lt;/Type&amp;gt;
      &amp;lt;URI&amp;gt;http://www.openid.ne.jp/user/auth&amp;lt;/URI&amp;gt;
      &amp;lt;openid:Delegate&amp;gt;##openid.ne.jpから発行されたOpenID##&amp;lt;/openid:Delegate&amp;gt;
    &amp;lt;/Service&amp;gt;
  &amp;lt;/XRD&amp;gt;
&amp;lt;/xrds:XRDS&amp;gt;
&lt;/pre&gt;&lt;/code&gt;
これを xrds.php とかの名前で保存して、Webの公開領域に設置します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;MIMEタイプを登録するパターン&lt;/h3&gt;
&lt;code&gt;&lt;pre&gt;AddType application/xrds+xml xrds&lt;/pre&gt;&lt;/code&gt;
上記の記述を Apache の設定ファイルに書くか、XRDSを設置するディレクトリまたは、さらに上位の公開ディレクトリに .htaccess を作ってそこに記述する。&lt;br /&gt;
この操作は、環境、権限によっては許可されないので、自分の環境を良く確認しましょう。&lt;br /&gt;
&lt;br /&gt;
XRDSファイルは index.xrds などの名前にして公開領域に設置します。&lt;br /&gt;
ちなみに、XRDSファイルの拡張子が xrds で正しいかどうかは解りません。＞＜&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;公開確認&lt;/h3&gt;
スクリプト版、MIME登録版ともにURLを叩いてアクセスできることを確認します。&lt;br /&gt;
環境によると思いますが、ブラウザでアクセスするとXRDSファイルをダウンロードしようとするはずです。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;XRDSファイルのURLを通知する&lt;/h3&gt;
自分のドメイン(例:hoge.com)を使って認証する場合、OpenIDクライアントはドメイン直下のインデックスファイル(例:http://hoge.com/index.html)を見に行きます。&lt;br /&gt;
なので、この段階でXRDSファイルのURLをOpenIDクライアントに対して明示すれば、OpenIDクライアントはXRDSファイルを見つけ出し、その中に指定してある OpenID Provider に認証を要求することが可能となります。&lt;br /&gt;
&lt;br /&gt;
XRDSファイルの通知方法としては、
&lt;ol&gt;
	&lt;li&gt;インデックスファイルのHTTPレスポンスヘッダに "x-xrds-location: ##XRDSファイルのURL##" を設定する。&lt;/li&gt;
	&lt;li&gt;インデックスファイルのページヘッダに meta 要素で指定する。&lt;/li&gt;
	&lt;li&gt;そもそも、インデックスファイル自体がXRDSファイルだ。&lt;/li&gt;
&lt;/ol&gt;
がある。&lt;br /&gt;
１番目のやり方は、"スクリプト言語を利用して出力するパターン"でのやり方と同じく、スクリプトでヘッダを出力する。&lt;br /&gt;
３番目のは、そもそも中継をしない。まぁ、こんな状況はまず無いと思うけど、mod_rewrite でリクエスト環境ごとに応答ファイルを切り替えるというのがスマートかもしれない。&lt;br /&gt;
&lt;br /&gt;
だが、おそらく最もシンプルな方法は２番目の meta 要素で指定する方法だと思う。&lt;br /&gt;
単純にインデックスファイルのHTMLヘッダに下記を追加すればいい。
&lt;code&gt;&lt;pre&gt;&amp;lt;meta http-equiv="X-XRDS-Location" content="##XRDSファイルのURL##" /&amp;gt;&lt;/pre&gt;&lt;/code&gt;
これだけ。&lt;br /&gt;
&lt;br /&gt;
たとえば、XRDSファイルのURLが http://hoge.com/index.xrds の場合、
&lt;code class="html"&gt;&lt;pre&gt;&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;title&amp;gt;hoge.com&amp;lt;/title&amp;gt;
&amp;lt;meta http-equiv="X-XRDS-Location" content="http://hoge.com/index.xrds" /&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
fuga
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;&lt;/code&gt;
こんな感じで書けばいい。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;OpenID認証を試してみよう&lt;/h3&gt;
&lt;a href="http://labs.xlune.com/openid2/"&gt;OpenIDクライアントのサンプルを用意しました。&lt;/a&gt;&lt;br /&gt;
上記の設定がうまく行っていれば、このクライアントで認証に成功するはずです。&lt;br /&gt;
ちなみに、「認証に成功しました」の右に表示されるIDが自分のドメインになっていることも確認しましょう。&lt;br /&gt;
&lt;br /&gt;
OpenID 2.0 では、とってもシンプルなURL(あるいはXRI)での認証が可能になっています。&lt;br /&gt;
もし自分でドメインを持っていなくても、&lt;a href="http://openid.yahoo.co.jp/"&gt;Yahoo!でOpenIDを取得&lt;/a&gt;すれば "yahoo.co.jp" と入力するだけで認証確認することが出来ますよ。&lt;br /&gt;
&lt;a href="http://openid.yahoo.co.jp/"&gt;Yahoo! OpenID&lt;/a&gt; 持っている人は&lt;a href="http://labs.xlune.com/openid2/"&gt;OpenIDクライアントのサンプル&lt;/a&gt;で試してみてください。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;まとめ&lt;/h3&gt;
OpenIDはとっても便利なので、早く広まってほしいなぁ。&lt;br /&gt;
Webサービスごとに、会員登録したり、そのIDとPASSを覚えなきゃいけないなんて、面倒だよね。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
Yahoo!カテゴリに登録されてるOpenID対応サイトのOpenIDクライアントは、半分ぐらいまともに動かない。&lt;br /&gt;
・・・どういうこと？
&lt;p&gt;&lt;a href="http://feeds.feedburner.jp/~a/xlune?a=Jhhgly"&gt;&lt;img src="http://feeds.feedburner.jp/~a/xlune?i=Jhhgly" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.jp/~f/xlune?a=iNn11CAo"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=iNn11CAo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=X5konZGq"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=X5konZGq" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=YeKc5zj1"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=YeKc5zj1" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=R6vYJ0Z6"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=R6vYJ0Z6" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.jp/~f/xlune?a=VMukUeU0"&gt;&lt;img src="http://feeds.feedburner.jp/~f/xlune?i=VMukUeU0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description></item></channel></rss>
