<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:admin="http://webns.net/mvcb/"
	xmlns:cc="http://web.resource.org/cc/"
	xmlns="http://purl.org/rss/1.0/">
	<channel rdf:about="http://www.rcdtokyo.com/pc2m/note/">
		<title>PCサイト-&gt;携帯変換スクリプト</title>
		<link>http://www.rcdtokyo.com/pc2m/note/</link>
		<description>パソコン向けホームページのHTMLや画像などを、iモードなどの携帯電話端末向けに変換する、フリーのPHPスクリプト</description>
		<dc:language>ja</dc:language>
		<dc:creator></dc:creator>
		<dc:date>2008-03-28T20:42:40+09:00</dc:date>
		
		<items>
			<rdf:Seq><rdf:li rdf:resource="http://www.rcdtokyo.com/pc2m/note/archives/i000855.php" /><rdf:li rdf:resource="http://www.rcdtokyo.com/pc2m/note/archives/i000854.php" /><rdf:li rdf:resource="http://www.rcdtokyo.com/pc2m/note/archives/i000850.php" /><rdf:li rdf:resource="http://www.rcdtokyo.com/pc2m/note/archives/i000823.php" /><rdf:li rdf:resource="http://www.rcdtokyo.com/pc2m/note/archives/i000817.php" /><rdf:li rdf:resource="http://www.rcdtokyo.com/pc2m/note/archives/i000814.php" /><rdf:li rdf:resource="http://www.rcdtokyo.com/pc2m/note/archives/i000813.php" /><rdf:li rdf:resource="http://www.rcdtokyo.com/pc2m/note/archives/i000808.php" /><rdf:li rdf:resource="http://www.rcdtokyo.com/pc2m/note/archives/i000807.php" /><rdf:li rdf:resource="http://www.rcdtokyo.com/pc2m/note/archives/i000806.php" /><rdf:li rdf:resource="http://www.rcdtokyo.com/pc2m/note/archives/i000803.php" /><rdf:li rdf:resource="http://www.rcdtokyo.com/pc2m/note/archives/i000800.php" /><rdf:li rdf:resource="http://www.rcdtokyo.com/pc2m/note/archives/i000797.php" /><rdf:li rdf:resource="http://www.rcdtokyo.com/pc2m/note/archives/i000796.php" /><rdf:li rdf:resource="http://www.rcdtokyo.com/pc2m/note/archives/i000795.php" /></rdf:Seq>
		</items>
	</channel>
	<item rdf:about="http://www.rcdtokyo.com/pc2m/note/archives/i000855.php">
		<title>PC2M.NET？</title>
		<link>http://www.rcdtokyo.com/pc2m/note/archives/i000855.php</link>
		<description><![CDATA[<p>PC2M.NETというドメイン名で、うちの子を改造して使っていただいてるっぽい、というか確実に使ってる、だってパラメータにucbとか入ってるしー（笑）、なサイトができてますね。<br />
whois見るとドメイン登録が今年の1月18日で、鯖は桜。</p>

<p>ドメイン名が紛らわしいんで念のため。<br />
これ、おいらじゃないですよん。</p>

<p>ちなみになんで気づいたかというと、某検索サイトのモバイル版使っててたまたま目についたから。<br />
で、蛇足なんですけど。うちの子をご利用の皆さまにおかれましては、他人様のサイトの変換結果が検索サイトにインデックスされないように、robots.txtなりMETAタグなり仕込んどいてくださるよう、切にお願い申し上げる次第でございます。</p>]]></description>
		<dc:subject>日記</dc:subject>
		<dc:creator>ucb</dc:creator>
		<dc:date>2008-03-28T20:42:40+09:00</dc:date>
	</item>
	<item rdf:about="http://www.rcdtokyo.com/pc2m/note/archives/i000854.php">
		<title>バージョン0.9.22.4及びそれ以前のPC2Mにおけるクロスサイトスクリプティング脆弱性について</title>
		<link>http://www.rcdtokyo.com/pc2m/note/archives/i000854.php</link>
		<description><![CDATA[<p>バージョン0.9.22.4及びそれ以前のPC2Mに、クロスサイトスクリプティングの脆弱性を引き起こす恐れのある、ユーザ入力のエスケープ漏れが発見されました。</p>

<h4>対象バージョン</h4>

<ul>
<li>PC2M バージョン0.9.22.4、及びそれ以前</li>
</ul>

<h4>想定される影響</h4>

<p>ユーザが、クライアントサイドのスクリプト実行をサポートするウェブブラウザを利用している場合に、任意のクライアントサイドが実行される可能性があります。</p>

<h4>対策</h4>

<p><a href="http://sourceforge.jp/projects/pc2m/">SourceForge.jp内プロジェクトページ</a>の「最新リリース情報」から、バージョン0.9.22.5（あるいはそれ以降のバージョン）をダウンロードいただき、バージョンアップを行ってください。</p>

<h4>謝辞</h4>

<p>本件脆弱性を発見いただいた方、ならびにご協力いただいた方々に感謝申し上げます。</p>

<h4>追記</h4>

<p>本件について、JVN（Japan Vulnerability Notes）ウェブサイトの以下のページに情報が掲載されました。</p>

<ul>
<li><a href="http://jvn.jp/jp/JVN%2338893575/index.html">http://jvn.jp/jp/JVN%2338893575/index.html</a></li>
</ul>]]></description>
		<dc:subject>日記</dc:subject>
		<dc:creator>ucb</dc:creator>
		<dc:date>2008-02-07T12:00:00+09:00</dc:date>
	</item>
	<item rdf:about="http://www.rcdtokyo.com/pc2m/note/archives/i000850.php">
		<title>Joomla!のログインについて</title>
		<link>http://www.rcdtokyo.com/pc2m/note/archives/i000850.php</link>
		<description><![CDATA[<p>ちょっと興味深い現象を発見したので報告。</p>

<p>PC2Mを介して<a href="http://www.joomla.jp/">Joomla!</a>を利用したサイトを表示し、トップページなどにあるJoomla!のログインフォームから（正しい）ユーザ名とパスワードを送信すると、漏れなく「サーバが見つからないかDNSエラー」メッセージが拝めます（Joomla! 1.0.12と1.5 Beta 2で確認。なおユーザ名やパスワードが不正な場合、Joomla! 1.0.xはJavaScriptでエラーメッセージを表示しているため、PC2Mを介すと「内容が無いよう」になります）。</p>

<p>先に解決方法を書いときます。PEARのHTTP_Clientの本体ファイル（HTTP/Client.php）をテキストエディタで開いて、冒頭にある以下の行を探し、その先頭のコメント記号（ふたつのスラッシュ）を削除してください。</p>

<pre>// define('HTTP_CLIENT_QUIRK_MODE', true);</pre>

<p>この変更は、Joomla!サイトを利用しないひとでもやっといたほうがいい鴨。</p>

<h4>詳しい説明</h4>

<p>Joomla!のこのログインフォームは、自分自身（index.php）にフォームデータをPOSTします。index.phpは、ログインフォームからのポストデータがあれば認証処理を行い、認証が成功すると自分自身（index.php）にリダイレクトします。この現象は、このリダイレクト時のHTTPステータスコードに<a href="http://www.studyinghttp.net/status_code#Code301">301 Moved Permanently</a>が使用されていることで発生します。</p>

<p>本来のRFC定義では、301や302でリダイレクトする場合、クライアントは元々のリクエストメソッドを変更してはいけないことになってたりします。つまり元々のリクエストメソッドがPOSTなら、それを勝手に変更してGETでリダイレクトしてはいけないということですね（そして、GETとHEAD以外のメソッドでは、ユーザの確認なしに勝手にリダイレクトしてはいけないということにもなってます）。しかし実際は、殆どのユーザエージェントは兎に角GETでリダイレクトしてるわけで。<a href="http://www.ietf.org/rfc/rfc2616.txt">RFC2616</a>では、それ以前の版では<q>POSTのりダイレクトを誤って（erroneously）GETに変更するユーザエージェントもある</q>と書かれていた302の注釈は、斯様な現状の説明に変更されていたりするわけですが。</p>

<p>それでは我らがHTTP_Clientﾀﾝがどういう動作をするかというと、301の場合は、元々のリクエストメソッドがPOSTならそのままPOSTで（ユーザの確認なしに）リダイレクトするのであります。一応RFC準拠風。しかし厳密には規約違反（笑）。</p>

<p>てなことで、こいつにJoomla!のログインフォームを処理させるとどうなるかと言うと、認証成功後のindex.phpへのリダイレクトは（RFCの本来の定義通り）POSTで行われるわけで。つまりログインフォームのポストデータを再度送信しちゃうわけです。勝手にな（笑）。で、リダイレクト先のindex.phpは、ログインフォームのポストデータがあるので再びこれを処理し、認証が成功すると自分自身にリダイレクトするのだけど、それはPOSTなので…。以下繰り返し。リダイレクトが無限ループに陥るという寸法デスネー。</p>

<p>そして、上で出てきたHTTP_CLIENT_QUIRK_MODEという定数を定義しておくと、HTTP_Clientﾀﾝも世間一般のユーザエージェントと同じように、兎に角GETでリダイレクトしてくれるようになるというわけです。定数名にある「QUIRK」は、まあそういう意味らしい。なおHTTP_Clientﾀﾝは、302の場合は現状では、この定数定義とは無関係に兎に角GETです。中途半端なRFC準拠だな、おい。</p>

<p>なお、HTTP_ClientはHTTP_Requestのラッパーですがリダイレクトのロジックは独自のもので、ちなみにHTTP_Requestは、300番台のレスポンスは兎に角GETになってます。</p>

<h4>なぜ301？</h4>

<p>さて一方、Joomla!のこのリダイレクトはなぜ301なのでしょう。ここで意図されている動作は、HTTP/1.1であれば<a href="http://www.studyinghttp.net/status_code#Code303">303 See Other</a>を使用するべきである典型的な例ですが、HTTP/1.0を考慮しても妥当なのは302で、301はステータスコードの意味合いからして適切ではありません。これは、Joomla!におけるリダイレクト処理が一箇所に集約されており（Joomla! 1.0.xではincludes/joomla.phpに書かれたmosRedirect()、1.5 Beta 2ではlibraries/joomla/application/application.phpに書かれたJApplication::redirect()）、このログインフォームのリダイレクトもここで処理されているためです。</p>

<p>多くのCMSと同様、Joomla!にも外部リンクの管理機能が備わっています。ここで管理される外部リンクへの遷移は、このリダイレクト処理を経て行われ、このような場合には301が、ステータスコードの意味合い的にも適切ですが、一方302はこのような場合には適切ではないどころか、「302 Google Jacking」とか「Googleハイジャック」と呼ばれる、302についてのGoogleの解釈を悪用してリンク先サイトのトラフィックを盗む手法が知られるようになって以降は、外部リンクに302でリダイレクトしてるヤツは盗っ人に違いないという風潮が出来上がってしまったのでした。</p>

<p>Joomla! 1.0.xと同じコードベースのMambo 4.5.xでも、まったく同様にリダイレクト処理が一元化されていますが、こちらにはステータスコードの明示はありません（302になります）。しかし、Mambo関連のウェブサイトを検索すれば、301に変更すべきという議論やその改変方法が見つかります。Joomla!のこの箇所の改変は、こうした意見を反映したものなのだろうと推測されます。</p>

<p>しかし、前述のように301は、外部リンクへの遷移には適切ですが、ここで見てきたログインフォームの例のように、すべてのりダイレクトについて適切であるというわけではありません。願わくば将来のJoomla!では、外部リンクの場合とそれ以外を分離し、個々のケースで適切なステータスコード（ログインフォームの場合は303、あるいは302）が振られるといいなあ、と外野で勝手に呟いてみるﾃｽﾄ。</p>]]></description>
		<dc:subject>日記</dc:subject>
		<dc:creator>ucb</dc:creator>
		<dc:date>2007-05-07T22:16:41+09:00</dc:date>
	</item>
	<item rdf:about="http://www.rcdtokyo.com/pc2m/note/archives/i000823.php">
		<title>DNSBLの設定について</title>
		<link>http://www.rcdtokyo.com/pc2m/note/archives/i000823.php</link>
		<description><![CDATA[<p><a href="http://www.ordb.org/news/?id=38">ORDBが閉鎖</a>というハナシを聞いて今さら思い出し。</p>

<p>DNSBL（DNSブラックリスト）によるアクセス規制機能を使用している場合、バージョン0.9.20とそれ以前のConfig.inc.phpにデフォルトで書かれているDNSBLのうち、<a href="http://lists.blitzed.org/pipermail/opm-announce/2006q2/000015.html">opm.blitzed.orgは既に閉鎖</a>されています。<br />
参照するDNSBLの一覧（配列$dnsbls）にこれがある場合は削除しといてください。これを放置して、DNSBLによるアクセス規制機能をONにしてると、余計なDNS参照があるので微妙に遅い鴨。<br />
なお、0.9.21以降のConfig.inc.phpには、DNSBLの一覧にopm.blitzed.orgは含まれていません。</p>

<p>DNSBLのアクセス規制は、デフォルトではOFFです。「携帯以外」からのアクセスを許可している場合、DNSBL規制はONで使ってください。詳しくは、Config.inc.phpのコメント、及び<a href="http://www.rcdtokyo.com/pc2m/note/archives/i000161.php">スクリプトのカスタマイズ</a>の「アクセス制限設定」の項をご覧ください。</p>]]></description>
		<dc:subject>日記</dc:subject>
		<dc:creator>ucb</dc:creator>
		<dc:date>2006-12-19T16:00:52+09:00</dc:date>
	</item>
	<item rdf:about="http://www.rcdtokyo.com/pc2m/note/archives/i000817.php">
		<title>Googleカレンダーを携帯で</title>
		<link>http://www.rcdtokyo.com/pc2m/note/archives/i000817.php</link>
		<description><![CDATA[<p>GoogleカレンダーはAjaxバリバリなので、PC2Mを介して利用することはできません。てなことで、<a href="http://www.rcdtokyo.com/ucb/contents/i000816.php">Google Calendar Data APIを利用した携帯向けのウェブアプリ</a>を作ってみました。とはいえ、リンク先でも言い訳してるように、携帯でGoogleカレンダーを利用する理想形はJavaアプリとかだと思うので、たぶんに場つなぎ的な代物ではありますが。<br />
PC2Mから多くを転用してるので、PC2Mを自鯖でご利用の皆さまにおかれましては、労せず設置いただけるかと存じます（ただしPC2Mと異なりOpenSSLとXMLは必須）。</p>

<p>これ、ちょっと前に原型を晒してたので既にお気付きのかたもいらっしゃるかもしれませんが、その後に改修を重ねてるので、既にダウンロードされてるかたや「使えねえ」と見捨てられてたかたは、お手数ですが再度入手し直していただければ幸いです。<br />
当初のものは「できません」だらけでしたが、現在は、ひと通りのことはできるようになってるつもりで、予定の追加、編集、削除はもちろん、Googleカレンダーの特徴である、公開カレンダーを含む複数カレンダーの利用や、予定の共有などに関する機能についても概ね対応できてるかなと。あそことかあそことかのポータルサイトが用意してるカレンダー/スケジューラサービスの携帯版と比べてもいい感じなのではなかろうかと思ってたりしますが、いかがでせう。</p>]]></description>
		<dc:subject>日記</dc:subject>
		<dc:creator>ucb</dc:creator>
		<dc:date>2006-10-31T22:29:09+09:00</dc:date>
	</item>
	<item rdf:about="http://www.rcdtokyo.com/pc2m/note/archives/i000814.php">
		<title>Skweezer</title>
		<link>http://www.rcdtokyo.com/pc2m/note/archives/i000814.php</link>
		<description><![CDATA[<p>RSS/Atomフィードの更新チェックと表示を行う、いわゆるRSSリーダーに、自分は今のところウェブサービス型の<a href="http://www.bloglines.com/?Lang=japanese">Bloglines</a>を使ってます。Bloglinesには通常の「PC版」の他に、PDAなどでの利用を想定した、表示内容が簡略化された「携帯版」があり、これはiモードなどからは直接利用できませんが、このスクリプトを介せば、この「携帯版」自体はもちろん、外部へのリンクもそのまま利用できるわけで。PCと携帯で同じRSSリーダーを利用できるという寸法でした。</p>

<p>で、ところが先週末から「携帯版」の外部リンクが、Skweezerという変換プロキシ経由のものに変わっちまいやがって。</p>

<ul>
<li><a href="http://www.skweezer.net/">Skweezer</a></li>
<li><a href="http://www.skweezer.net/bloglines/">Bloglinesのブランドを冠したSkweezer</a></li>
<li><a href="http://www.greenlightwireless.net/">Greenlight Wireless Corporation</a></li>
<li><a href="http://www.greenlightwireless.net/press/articles/060922_pr.aspx">&ldquo;Skweezer Selected by Bloglines to Improve Mobile Experience&rdquo;</a></li>
</ul>

<p>Skweezerは、Greenlight Wireless Corporationが運営する、PC向けのウェブページをモバイル機器での表示に適するように変換するウェブサービスです。<br />
変換表示の見た目はGoogleのWebsite Transocerにそっくりですが、Googleのものにはない（やる予定もないだろう）、登録ユーザ向けのブックマークなどのツールや、リモートサイトのセッションの代行処理機能などを備えてたりはします（ただし、クライアントとSkweezerのセッションもCookie管理なので、iモードのようなCookie未対応のクライアントでは利用できない）。また、RSSの自動検出とその変換表示だとか、URL入力欄を利用したウェブ検索だとか、どこぞの同類のPHPスクリプトがやらかしてるような機能も備えてたりします（少なくともおいらのほうがパクったわけじゃありませんよ）。<br />
しかし、ダメなところはGoogleのものよりダメなわけで。悪いことに、Bloglines経由のSkweezerでは、少なくともオリジナル版にはある、リモートサイトに直接移動するリンクさえ省かれちゃってるので困っちゃうわけです。<br />
まあ、別のRSSリーダーに乗り換えるか、あるいはSkweezerのURLをトラップする仕掛けを用意しちゃえばいんだけど。でも、Bloglinesには、「せめてON/OFFを選択できるオプションは用意してくれ」と苦情を垂れるつもりではあります。</p>

<p>さて、戯言はさておき。</p>

<p>Greenlight Wireless Corporationのウェブサイトに掲載されている、<a href="http://www.greenlightwireless.net/press/articles/030505_pr.aspx">Skweezerという名称のサービス開始を告知するプレスリリース</a>の日付は、2003年5月となってます。このリリースに添えられたスクリーンショットを見れば明らかなように、当時のSkweezerの主要ターゲットはPDAだったようです。<br />
興味深いのは、サービス開始当初は有償だったSkweezerは、やがて無償版と有償の「Pro」版とに分けられ、現在ではコンシューマ向けには、有償版は廃され無償でのみ提供されているという点です。この変遷は、それぞれの時期におけるビジネスモデルの転換を意味している筈で、PDAが主要ターゲットだったサービス開始当初は、PDA向けの殆どのソフトウェアやサービスと同様に、利用者から直接収益を得ていたわけですが、スマートフォンの性能向上に伴い、必然的に主要ターゲットがそちらに移行していくと、PDAとは桁違いのインストールベースによって、広告ビジネスが成立するようになり、広告表示を対価とする無償版が登場します。そして、コンシューマ向けの有償版を完全に廃した現在の主要なビジネスモデルは、従来の広告に加えて、今回のBloglinesの例に見られるような、<a href="http://www.greenlightwireless.net/business_solutions/default.aspx">Private Labelという名称を冠したASPサービス</a>となっているようです。<br />
もちろん、こうした変遷は、Googleという巨人を含む、商売敵の動向にも大いに影響を受けていることでしょうから、ここのプレスリリースをこまめにあたってみれば、彼の国におけるこの類の市場動向がなんとなくわかって面白いかもしれません。そして、Skweezerのビジネスは、国内の同種のサービスにとっても参考になる点があるかもしれませんね。</p>

<h4>おまけ</h4>

<p>以下は、ついでになんとなく、日米の、この類のウェブサービス/アプリケーションの登場時期を調べてみたもの。<br />
テキトーな調査なので間違ってたらごめんな。テキトーな調査なので漏れてるところはごめんな。</p>

<table summary="日米のウェブページ変換サービス/ウェブアプリケーションの登場時期">
<thead>
<tr><th>時期</th><th>サービス</th></tr>
</thead>
<tbody>
<tr><td>1999年頃？</td><td>通勤ブラウザ<br />ひゅぅてっち</td></tr>
<tr><td>2000年6月</td><td>nogate ver 0.01 正式公開版</td></tr>
<tr><td>2000年末頃？</td><td>Google Mobile Proxy（初代）</td></tr>
<tr><td>2003年5月</td><td>Skweezer</td></tr>
<tr><td>2003年以降？</td><td>ファイルシーク PCサイト閲覧Proxy<br />
（ファイルシーク自体は2001年8月）</td></tr>
<tr><td>2005年8月</td><td>ぐるっぽ</td></tr>
<tr><td>2005年末頃？</td><td>Google Website Transcoder（現行）</td></tr>
</tbody>
</table>]]></description>
		<dc:subject>日記</dc:subject>
		<dc:creator>ucb</dc:creator>
		<dc:date>2006-09-28T22:23:52+09:00</dc:date>
	</item>
	<item rdf:about="http://www.rcdtokyo.com/pc2m/note/archives/i000813.php">
		<title>これが最後のRC…だったらいいな</title>
		<link>http://www.rcdtokyo.com/pc2m/note/archives/i000813.php</link>
		<description><![CDATA[<p>デモサイトのものを置き換えて、より多くの皆さまにご検証いただいた結果を踏まえての、<a href="http://www.rcdtokyo.com/pc2m/note/archives/i000800.php">新バージョンのリリース候補</a>、第5弾。「あれRC4は？」という細かいことにお気付きのかたは、まあ細かいことは気にすんな。</p>

<p>&raquo; <a href="http://www.rcdtokyo.com/pc2m/pc2m-0.9.20rc-060915.zip">pc2m-0.9.20rc-060915.zip</a> 0.9.20RC5 (beta) released 2006/09/15</p>

<h4>RC2及びそれ以前から更新する場合の注意</h4>

<ul>
<li>HTML出力テンプレート（Template.inc.php）の文字エンコーディングは、これまでは出力エンコーディング（既定はShift_JIS）でしたが、スクリプトの内部エンコーディング（既定はEUC-JP）に変更になりました。<strong>Template.inc.phpをカスタマイズしている場合は、文字エンコーディングを変更してください</strong>（内容の変更はありません）。<br />
内部エンコーディングは、設定ファイル（Config.inc.php）の定数INT_ENCで指定しているものです。ちなみに、Fedora方面のひとはUTF-8に変更するのが吉。<br />
なおこれで、単独で動作する「r.php」や「_check_auth.php」などを除く、インクルード対象のファイルはすべて同じ文字エンコーディングということになります。</li>
<li>端末判別クラス（ClientDetect.class.php）が全面的に変更になっています。もし、これをこのスクリプトとは別途に利用している場合、このスクリプトで利用していなかったプロパティやメソッドは削除されているので注意してください。なお、以前のバージョンのものは、「ソフトバンク」ブランドで新たに発売される端末について、端末ID（シリアル番号）が取得できません。</li>
</ul>

<h4>変更ファイル</h4>

<dl>
<dt>RC4からは以下のファイルが変更されています。</dt>
<dd>
<ul>
<li>FormatRule_Text.inc.php（新規）</li>
<li>pc2m.php</li>
</ul>
</dd>
</dl>

<dl>
<dt>RC3からは、上記のものに加えて以下のファイルが変更されています。</dt>
<dd>
<ul>
<li>Config.inc.php（代替HTTPヘッダ設定の追加）</li>
<li>HTMLParser.class.php</li>
<li>Option.inc.php</li>
<li>Setup.inc.php（代替HTTPヘッダ設定の追加）</li>
</ul>
</dd>
</dl>

<dl>
<dt>RC2からは、上記のものに加えて以下のファイルが変更されています。</dt>
<dd>
<ul>
<li>ClientDetect.class.php</li>
<li>DevInfo_DoCoMo.inc.php</li>
<li>FormatRule.inc.php</li>
<li>Template.inc.php（文字エンコーディングを変更）</li>
</ul>
</dd>
</dl>

<dl>
<dt>RC1からは、上記のものに加えて以下のファイルが変更されています。</dt>
<dd>
<ul>
<li>_create_dbtable.php（新規）</li>
</ul>
</dd>
</dl>

<p>0.9.18及びそれ以前からは、まあ一回全部置き換えてやってくださいな。</p>]]></description>
		<dc:subject>日記</dc:subject>
		<dc:creator>ucb</dc:creator>
		<dc:date>2006-09-15T22:00:18+09:00</dc:date>
	</item>
	<item rdf:about="http://www.rcdtokyo.com/pc2m/note/archives/i000808.php">
		<title>はいはいバージョンアップですよ</title>
		<link>http://www.rcdtokyo.com/pc2m/note/archives/i000808.php</link>
		<description><![CDATA[<p>以下に記載のものは<a href="http://www.rcdtokyo.com/pc2m/note/archives/i000813.php">こちら</a>に更新版が用意されました。</p>

<hr />

<p>引き続き<a href="http://www.rcdtokyo.com/pc2m/note/archives/i000800.php">新バージョンのリリース候補</a>の修正版。意外や苦情が少ないので、このまま正式版に昇格させて、従来の方式のものは、今のヤツ（SourceForgeにあるバージョン0.9.18）で糸冬了にしてしまおうかと思ってますが、おまいら、止めるならマジで今のうちですよ。</p>

<p>&raquo; <del>pc2m-0.9.20rc-060908.zip</a> 0.9.20RC3 (beta) released 2006/09/08</del></p>

<h4>重要な注意！</h4>

<ul>
<li>HTML出力テンプレート（Template.inc.php）の文字エンコーディングは、これまでは出力エンコーディング（既定はShift_JIS）でしたが、スクリプトの内部エンコーディング（既定はEUC-JP）に変更になりました。<strong>Template.inc.phpをカスタマイズしている場合は、文字エンコーディングを変更してください</strong>（内容の変更はありません）。<br />
内部エンコーディングは、設定ファイル（Config.inc.php）の定数INT_ENCで指定しているものです。ちなみに、Fedora方面のひとはUTF-8に変更するのが吉。<br />
なおこれで、単独で動作する「r.php」や「_check_auth.php」などを除く、インクルード対象のファイルはすべて同じ文字エンコーディングということになります。</li>
<li>端末判別クラス（ClientDetect.class.php）が全面的に変更になっています。もし、これをこのスクリプトとは別途に利用している場合、このスクリプトで利用していなかったプロパティやメソッドは削除されているので注意してください。なお、以前のバージョンのものは、「ソフトバンク」ブランドで新たに発売される端末について、端末ID（シリアル番号）が取得できません。</li>
</ul>

<h4>変更ファイル</h4>

<p>RC2からは以下のファイルが変更されています。</p>

<ul>
<li>ClientDetect.class.php</li>
<li>DevInfo_DoCoMo.inc.php</li>
<li>FormatRule.inc.php</li>
<li>HTMLParser.class.php</li>
<li>pc2m.php</li>
<li>Template.inc.php（文字エンコーディングを変更）</li>
</ul>

<p>RC1からは、上のRC2からのものに加えて以下のファイルが変更されています。</p>

<ul>
<li>_create_dbtable.php（新規）</li>
<li>Config.inc.php</li>
</ul>]]></description>
		<dc:subject>日記</dc:subject>
		<dc:creator>ucb</dc:creator>
		<dc:date>2006-09-08T23:15:35+09:00</dc:date>
	</item>
	<item rdf:about="http://www.rcdtokyo.com/pc2m/note/archives/i000807.php">
		<title>クイックサーチ機能をより便利にするTIPS</title>
		<link>http://www.rcdtokyo.com/pc2m/note/archives/i000807.php</link>
		<description><![CDATA[<p><a href="http://www.rcdtokyo.com/bbs/pc2m/">掲示板</a>で、名無しさんが素敵な改造を披露してくれているのですが、掲示板だと埋もれちゃってもったいないので勝手にサルベージ。一部改変してますが原則原文のママ。</p>

<p><a href="http://www.rcdtokyo.com/pc2m/note/archives/i000020.php">クイックサーチ</a>をいざ使おうと思ったら、キーワードを忘れちゃってたというのはよくあるハナシで。ここのデモサイトでは、「?」記号のリンクをクリックして表示されるヘルプページにキーワードを書いてあったりしますが、新しいキーワードを追加する都度ヘルプページを書き直すのも意外とメンドーなわけで。<br />
てなことで、ヘルプページを、クイックサーチの設定を読み込んで自動生成し、さらに同様の方法で、以前に紹介した<a href="http://www.rcdtokyo.com/pc2m/note/archives/i000791.php">クイックサーチを転用した検索フォーム</a>も自動生成してしまおうというものです。かなり便利なのでお勧め。名無しさんに感謝汁！</p>

<p>なお、以下の499レスので作る検索フォームの、送信先のスクリプト「s.php」は、<a href="http://www.rcdtokyo.com/pc2m/note/archives/i000791.php">こちらのページ</a>にあるものを使ってください。</p>

<h4>497 ：名無しさん：2006/08/22(火) 02:08:50</h4>
<p>--- Help.inc.php (新規作成)---</p>
<pre>
&lt;?php
define('HELP_TITLE', 'ヘルプ');
$content = '&lt;p&gt;URL入力欄には、URLの他に検索語を入力してGoogle検索などが行なえます。URLは「http://」は省略できます。&lt;/p&gt;';
if (defined('QUICK_SEARCH')) {
  $content .= '&lt;p&gt;■ 検索キーワード&lt;br /&gt;';
  foreach ($quick_search as $key =&gt; $value) {
    $content .= &quot;$key … &quot;.(isset($value[2])? $value[2]: '説明なし').
      ((QUICK_SEARCH == $key)? '(デフォルト)&lt;br /&gt;': '&lt;br /&gt;');
  }
  $content .= '&lt;/p&gt;';
}
$content .= &lt;&lt;&lt;HTML
&lt;p&gt;検索語の前のキーワードは大小文字を区別しません。&lt;br&gt;
URL入力欄の上にもうひとつ(数字の入った)入力欄が表示されてる場合、新しいURLや検索語を入力するときは、あらかじめ上の欄の内容は消してください。&lt;/p&gt;
&lt;p&gt;■ ショートカット&lt;br /&gt;
1=始 2=上 3=×&lt;br /&gt;
4=× 5=写 6=TOP&lt;br /&gt;
7=× 8=下 9=次&lt;/p&gt;
HTML;
return $content;
?&gt;
</pre>
<h4>498 ：名無しさん：2006/08/22(火) 02:09:51</h4>
<p>--- Config.inc.php ---<br />
連想配列 $quick_search の値の配列に、3番目の要素として説明文を追加<br />
(例)</p>
<pre>
/* google */
'g' =&gt; array(
  'http://www.google.co.jp/search?lr=lang_ja&q=',
  'UTF-8',
  <strong>'Google Japan'</strong>
),
</pre>
<p>--- pc2m.php ---<br />
394行目に以下を挿入（追記：これはこのレス当時の最新暫定版だった0.9.20RC1の場合で、同RC2では406行目が、ひと世代前の0.9.18では352行目がこれに該当します）</p>
<pre>
} elseif ($local_args['a'] == 'qs') {
  $content = require_once 'Help.inc.php';
  $content = mb_convert_kana($content, $_kana_convopt);
  $title = defined('HELP_TITLE')? HELP_TITLE: null;
</pre>
<p>--- Template.inc.php ---<br>
適当なところに以下を追加</p>
<pre>
echo '&lt;a href=&quot;'.$script_self.KEY_PREFIX.'a=qs&quot;&gt;?&lt;/a&gt;';
</pre>
<h4>499 ：名無しさん：2006/08/22(火) 02:25:37</h4>
<p>連投失礼しましたー。バグがないことを祈ります。</p>
<p>ヘルプ画面の文面はデモサイトそのままにしてます。<br />
インデントに全角スペースを使ってるのでコピペは注意。（追記：転載にあたって半角スペースに変更してるので、そのままコピペできる筈）</p>
<p>ついでに FrontPage.inc.php に以下を追加したら<br><a href="http://www.rcdtokyo.com/bbs/test/read.cgi/pc2m/1133526993/490">&gt;&gt;490</a>の作者さんのアドバイスも実現♪</p>
<pre>
$content .= &quot;&lt;form action=\&quot;s.php\&quot;&gt;
  &lt;input type=\&quot;hidden\&quot; name=\&quot;script\&quot; value=\&quot;$script_self\&quot;&gt;
  &lt;select name=\&quot;key\&quot;&gt;&quot;;
foreach ($quick_search as $key =&gt; $value) {
  $content .= &quot;&lt;option value=\&quot;$key\&quot;&quot;.
    (QUICK_SEARCH == $key? ' selected=&quot;selected&quot;': null).
    &quot;&gt;$value[2]&lt;/option&gt;&quot;;
}
$content .= '&lt;/select&gt;&lt;br /&gt;
  &lt;input type=&quot;text&quot; size=&quot;10&quot; name=&quot;query&quot;&gt;&lt;input type=&quot;submit&quot; value=&quot;検索&quot;&gt;
  &lt;/form&gt;';
return $content;
</pre>
<p>あ、45行目の return を $content = にしないといけないです。</p>]]></description>
		<dc:subject>日記</dc:subject>
		<dc:creator>ucb</dc:creator>
		<dc:date>2006-09-08T23:13:31+09:00</dc:date>
	</item>
	<item rdf:about="http://www.rcdtokyo.com/pc2m/note/archives/i000806.php">
		<title><![CDATA[アクセルマークのmobazilla ver.&beta;]]></title>
		<link>http://www.rcdtokyo.com/pc2m/note/archives/i000806.php</link>
		<description><![CDATA[<p>なんとなく黙ってると要らぬ誤解（色んな意味で）を受ける気がしないでもないので一応。<br />
あくまで客観的な分析であって、決してなにかを訴えかけようとかいうものではありませんよ。</p>

<p>このスクリプトは、<a href="http://www.fsf.org/">Free Software Foundation</a>（というかリチャード・ストールマン）が言うところの<a href="http://ja.wikipedia.org/wiki/%E3%83%95%E3%83%AA%E3%83%BC%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2">フリーソフトウェア</a>であり、ライセンスの定めに反しない限り、商用利用でもアダルトサイトでの利用でも、なんでもどこでも自由に利用いただけます（ただし、あくまで個人利用向けの仕様なので、それなりの利用者が見込まれる場合は、改変しないと実用的ではない可能性がありますけど）。利用に際して連絡などは一切不要ですし、（配布の場合など、ライセンスが定める場合を除いて）著作者などを明示する必要も、このサイトやSourceForge.jpのプロジェクトページなどにリンクする必要もありません。<br />
実際これまでにも、このスクリプトをそのままサービスとして提供されている例もあり、あるいは、同種のサービスを提供しているところが、ここで実現している機能やアイデアを参考に、同等のものを用意されたような例もあります。もう、ご自由にどーぞ。</p>

<p>さて、インターネット広告代理業の大手のひとつとして知られるセプテーニのグループ会社であり、ケータイ向けの多彩なコンテンツサービスを手掛けるアクセルマーク（旧社名のハイジのほうがまだ馴染みかな？）が先日公開した<a href="http://ax-m.jp/">アクセルマークラボ</a>というサイトで提供されている、「mobazilla ver.&beta;」という名称のサービスも、このスクリプトを利用したものです。</p>

<p>アクセルマークはこのサイトの公開に際してプレス向けの発表会を開催し、また同社がこれまでにも様々な実績を残してきたからでしょうか、このサイトは主要なIT系プレスに一斉に報じられ、特に、ITmediaの記事がその提携先であるYahoo！ニュースにも掲載されたことから、それなりの注目を集めたようで、<a href="http://b.hatena.ne.jp/hotentry?mode=daily&date=20060825">発表会の翌日の、はてなブックマークの人気エントリー</a>には、これを報じたITmediaの記事のうちのふたつが登録されており、2ちゃんねるの携帯コンテンツ板には専用スレが立ちました。また、<a href="http://pokelog.jp/index_pc.php?id=stg1156330535">mobazilla ver.&beta;の公式ブログ</a>の記事には、公開早々にmobazilla ver.&beta;の1日あたりのページビューが97万件に達したとあります。しばらく前に、既存の同種の中でも人気の高いサービスが、その提供開始から1年経った頃に発表したプレスリリースで公表しているのが「60万PV/日を超えるアクセス」なので、mobazilla ver.&beta;は早々にこれを上回ったことになります（もっとも、ニュースサイトからリンクを辿っただけのアクセスも、まだ多分に含まれる可能性のある時期ですから、この数字がイコール実際のサービスの利用数とは限りませんが）。<br />
こうして注目を集めたためでしょう、このサイトにも幾つかコメントが寄せられ、私自身、初めてこのmobazilla ver.&beta;のことを知ることになるのですが、ところが、寄せられたコメントは必ずしも肯定的なものばかりではありませんでした。</p>

<p><a href="http://www.itmedia.co.jp/enterprise/mobile/articles/0608/25/news054.html">ITmediaが報じた記事のひとつ</a>には以下のような一文があります。</p>

<blockquote cite="http://www.itmedia.co.jp/enterprise/mobile/articles/0608/25/news054.html">
アクセルマークラボは、同社のスタッフが、携帯電話を利用する1ユーザーの視点で“携帯であったらいいな”と思うサービスを自社開発して一般ユーザーに公開し、ユーザーの意見を反映させながら実用化を目指すプロジェクト。
</blockquote>

<p>この文章は、解釈次第では、mobazilla ver.&beta;もアクセルマークラボが自社開発したものであるというように読めます。他方で、オープンソースソフトウェアを利用したものであることについての言及は、ITmediaのものに限らず、これを報じたすべての記事で見られず、また、実際のmobazilla ver.&beta;のサイト上でも、これは人目に触れ難いであろうところでしかなされていなかったことから、否定的なコメントは、アクセルマークの姿勢を疑うものでした。</p>

<p>しかし、この文章は「アクセルマークラボの各サービスは、mobazilla ver.&beta;は別として、原則的に自社開発」というようにも解釈できますし、実際、mobazilla ver.&beta;以外の各サービスは自社開発なのであろうと思われます。あるいは、些細な箇所ですから、ITmediaの記者が誤解した、あるいは文章が十全ではなかった可能性も考えられないわけではありません。そもそも、このスクリプトを利用していると言っても、なんらかの改変を行っているのであれば、改変した箇所に関しては「自社開発」であるわけですから、最初の解釈にしたところで、事実ではないと断言できるものではありません（少なくとも現状のmobazilla ver.&beta;は、表面的にはこのスクリプトのままであるように思えますが、改変箇所が表面的にわかるものであるとは限りません）。<br />
また、フリーソフトウェアの利用に関する言及がない、あるいはわかり難いということについては、冒頭で述べているように、私自身はわざわざ明示する必要はないと思っているので、個人的にはまったく気になるものではありません。</p>

<p>一方、<a href="http://ascii24.com/news/i/serv/article/2006/08/24/664152-000.html">ASCII24の記事</a>には以下のような一文があります。</p>

<blockquote cite="http://ascii24.com/news/i/serv/article/2006/08/24/664152-000.html">
mobazillaやmogleは、既存のウェブブラウザーや検索サービスとは関係なく同社が独自に開発したサービスで、「勝手に名前を付けたもの」(取締役で事業担当の田島 満氏)だという。
</blockquote>

<p>ここでは明快に、mobazilla ver.&beta;はアクセルマークが「独自に開発した」ものであるとされています。もちろん、上のITmediaの場合にも可能であった好意的な解釈の幾つかは、ここでもまだ可能です。<br />
しかし、この記事にはさらに以下のような一文が登場します。</p>

<blockquote cite="http://ascii24.com/news/i/serv/article/2006/08/24/664152-000.html">
また、昨日招待制から自由に登録が可能になったグーグル(株)の無料ウェブメールサービス“Gmail”の閲覧にも対応している。これは「当初は今後の進化予定としていたが、昨日日本でも招待制の撤廃が発表されたので、朝までかかって対応させました。(アカウントをお持ちなら)すぐにお試しいただけます」(田島氏)という。
</blockquote>

<p>以前から利用いただいているかたはご存知の通り、このスクリプトは随分以前からGmailの利用は可能でした。少なくとも現在のバージョンに関して、Gmailを利用するためにわざわざ改変する必要はないと認識していますし、mobazilla ver.&beta;は、Gmailがきちんと利用できなかった古いバージョンを利用したものであるようにも見えません。<br />
朝までかかったという「対応」の内容を想像してみても、例えば直前までトップページのリンク集にGmailがなかったのであれば追加すればいいだけですし、あるいは（このスクリプトでGmailを利用するために必要な）セッション機能を無効に設定していたのであれば、設定を変更すればいいだけです。もしmod_layoutを利用しているのであれば多少手間が嵩んだかもしれませんが、それにしても、朝までかかって、つまり普通に解釈すれば数時間もかかるような作業ではありません。</p>

<p>もうひとつ。これは発表直後のものではなく、しばらく経ってからEnterprise Watchに連載された、上のASCII24の記事にも登場する<a href="http://enterprise.watch.impress.co.jp/cda/web2/2006/09/05/8573.html">アクセルマークの田島満さんへのインタビュー</a>（<a href="http://feedpath.jp/">feedpath</a>の小川浩さんによる「Web 2.0的キーマンに聞く」という連載記事）。</p>

<blockquote>
田島氏<br />
　はい。実は僕はWikipediaが大好きでして、これをケータイで見たくてmobazillaというケータイ用のPC Webビューワーを作ったんですよ、ラボで。いままではW-ZERO3やPCを持ち歩いていたんですけど、面倒ですからね。Gmailのケータイ版って日本ではうまく使えないんですけど、mobazillaならちゃんと読めますよ。
</blockquote>

<p>いや、それ作ったのオレだから（笑）。Wikipediaなら一番最初の公開版からきっちり利用できてるし。</p>

<p>今回否定的なコメントを寄せていただいたかたの多くは、以前からこのスクリプトを利用いただいてきたかたがたです。今のところコーディングは私ひとりで担当しているとはいえ、このスクリプトは実際にはこうしたかたがたの意見に多くを負っており、一般的にオープンソースソフトウェアは、こうした開発者と利用者の形成するコミュニティの共有の財産でもあります。<br />
今回のアクセルマークの姿勢について、コミュニティから批判の声が上がったことは、どうやら致し方のないことであり、その批判は決して的外れなものではなかったようです。</p>

<p>このスクリプトと同様のものを新たに開発するのはまったく難しいことではありませんし、自前の環境での動作が前提なら、もっと効率のよいものが作り得ることでしょう（このスクリプトは多様な環境で動作することを前提にしており、多くのレンタルサーバで利用可能なPHPを採用しているのもそのひとつですが、そのために非効率的な箇所が多々あります）。<br />
アクセルマークラボは、サービス名称における「ver.&beta;」や、前掲のITmediaの記事に登場する「mobile 2.0」というフレーズなど、Web 2.0という流行を意識したものであることが明瞭に見て取れるわけですが、mobazilla ver.&beta;について、独自に同様のものを開発するのではなく、オープンソースソフトウェアを採用したのは、Web 2.0と称されるものにおいては、オープンソースソフトウェアに対するコミットはビジネスモデルのひとつであるという考えがあるので、こうしたWeb 2.0という流行を追従する一環なのかとも思っていました（なので、逆にオープンソースソフトウェアを利用していることが喧伝されていれば、それはそれで違和感を覚えることになったのでしょうが）。しかし、これもどうやら思い過ごしだったようです。</p>

<p>もっとも、これらの記事によると、アクセルマークは独自に様々な機能を追加していく予定だということです。もしも、こうした追加機能がオープンソースソフトウェアとして提供されるようなことになれば、それは非常に素晴らしいことなのですが…（当たり前ですが、ビジネスモデルにおけるオープンソースソフトウェアとは、ソフトウェア自体が直接利益を生み出すわけではありませんから、例えばそのサポートビジネスなどの事業や、あるいは、例えばコミュニティの協力を得ることによる開発コストの削減といったメリットなどが見込まれない限り、営利事業体が自社開発のソフトウェアをオープンソース化することは、一般的には考えられません）。</p>

<p>閑話休題。</p>

<p>ところで、アクセルマークラボが、様々なサービスをそれぞれ独立したサイトにせずに、ひとつにまとめているのは、需要がニッチであると思われるサービスを幅広く取り揃えることによるロングテイル効果がその狙いのひとつなのかなと思われます（もちろん、需要の高いサービスは独立させていくでしょうが）。<br />
PC向けのウェブページを携帯端末向けに変換するサービスは、携帯端末でのウェブアクセスが、機能面及びコスト面で充分ではない、まさに隙間の時期の需要であり、今後、機能とサービスの進化に伴い、いずれは消え去っていく筈のものです。実際、この類は随分古くから存在してはいるものの、Googleとはてなという例外を除いては、いずれも個人または小規模の事業体によるもので、知る人ぞ知るマニア向けの代物だと思われてきました。<br />
ところが、前述のように、mobazilla ver.&beta;は、既存の同種の中でも人気の高いサービスのアクセスを、その開始早々に上回ってしまいました。その要因はもちろん、これまでの既存のサービスにはみられなかった、プレスへの大量露出であるわけですが、これは、しょせんニッチだ、マニア向けだと思われてきたこのサービスの市場が、まだ少なくとも現時点では、マーケティング次第でさらなる拡がりの余地のあるものであったことを示しており、アクセルマークにとってはこれは嬉しい誤算だったかもしれません。</p>

<p>今回の報道記事をひと通り眺めれば明らかな通り、アクセルマークが今回の発表に際して重点を置いたキーワードは「Gmail」でした。<br />
これが極めて効果的であったことは、ITmediaが通常の報道記事に加えて、<a href="http://www.itmedia.co.jp/bizid/articles/0608/24/news091.html">mobazilla ver.&beta;でのGmailの利用に特化した特集記事</a>を掲載し、さらにその記事が、はてなブックマークの人気エントリーに登録された、アクセルマークラボに関するふたつの記事のひとつになっているという点からも伺えます。そしてもうひとつの記事は、見出しに「mobile 2.0」という刺激的なフレーズが冠されたものだったのですが、こうした適切な言葉を選び出すことによって、予想通りの（もしかしたら予想以上の）効果をあげることに成功した、アクセルマークの今回のマーケティングは賞賛されるべきものだと思います。<br />
そして、なによりこれは、あるのかないのかよくわからないと思われてきたこの類のサービス市場が、実際はさらなる可能性を秘めていることを示した点で、市場全体に少なからぬ影響を及ぼすことになるものであったのかもしれません。</p>

<h4>追記（06/09/14）</h4>

<p>以下に<a href="http://www.rcdtokyo.com/pc2m/note/archives/i000806.php#comments">コメント</a>も頂戴してますが、mobazilla ver.&beta;の公式ブログに、<!--pc2m_remain--><a href="r.php?<?php echo urlencode('http://pokelog.jp/usera/diary_s.php?id=&cm=3&cid=348900911774&bgd_num=47833') ?>"><!--/pc2m_remain-->誤解を恐れず、mobazillaについて説明します。</a>と題された記事が掲載されました。Gmailについての、「朝までかかって対応」の内容もそちらに詳しく書かれています。</p>

<p>ちょっとフォロー。<br />
皆さんに誤解してほしくないのは、おいら個人は相変わらず、「オープンソースを使ってることを明らかにしろ」とか「作者を表示しろ」とか、まるっきり、さっぱり思ってなくて、逆にホントにそんな必要はないのだということです。<br />
「フリーソフトウェア」なるものは、字義通り、あくまで自由であるべきものであり、GPLなどのライセンスは、その自由を（法的に）保障するためのものであって、決してそれを制約するためのものではありません（こうしたライセンスにおける制約は、そのソフトウェアを自由なものではなくする行為に対してのものです）。そして、作者がその権利を留保しているのは、ライセンス契約の一方の当事者となって契約を成立させるために必要であるからであって、決して作者であることを誇示するためではありません（諸権利の放棄された、いわゆるパブリックドメインであるソフトウェアは、決して「自由なソフトウェア」ではありません）。<br />
いや、今回の件が、このスクリプトの利用に対して、あるいはフリーソフトウェアというものに対して、妙な誤解を与えることになっちゃうとヤだなあと思うので、一応。</p>]]></description>
		<dc:subject>日記</dc:subject>
		<dc:creator>ucb</dc:creator>
		<dc:date>2006-09-08T23:10:48+09:00</dc:date>
	</item>
	<item rdf:about="http://www.rcdtokyo.com/pc2m/note/archives/i000803.php">
		<title>引き続き人柱募集中</title>
		<link>http://www.rcdtokyo.com/pc2m/note/archives/i000803.php</link>
		<description><![CDATA[<p>以下に記載のものは<a href="http://www.rcdtokyo.com/pc2m/note/archives/i000808.php">こちら</a>に更新版が用意されました。</p>

<hr />

<p>先日の新バージョン候補というヤツの更新でございます。決して現在の公開リリースの修正版というわけじゃあございませんので、<a href="http://www.rcdtokyo.com/pc2m/note/archives/i000800.php">使用上の注意</a>をよくお読みの上、スキモノのかたに限りご利用ください。</p>

<p>&raquo; <del>pc2m-0.9.20rc_060825.zip 0.9.20RC2 (beta) released 2006/08/25</del></p>

<p>主な変更は、幾つかの不具合修正とパフォーマンスを5％ほど向上（少なｗ）ですが、それだけだと寂しいので、リアルスキモノのかたには、さらなる人柱となっていただくべく新機能もご用意いたしております。興趣をそそられるかたは、アーカイブ中の「README_DBOPT.TXT」をご覧ください。</p>

<p>下表は自分用のメモなんで気にしないでね。</p>

<table summary="Behavior matrix of the character encoding conversion by mbstring">
<caption>Behavior matrix of the character encoding conversion by mbstring</caption>
<thead>
<tr><th>Convert the string of</th><th colspan="2">SJIS-win</th><th colspan="2">eucJP-win</th><th>UTF-8</th></tr>
<tr><th>as</th><th>SJIS</th><th>SJIS-win</th><th>EUC-JP</th><th>eucJP-win</th><th>UTF-8</th></tr>
</thead>
<tbody>
<tr><th>to SJIS</th><td>-</td><td>NG</td><td>OK</td><td>NG</td><td>NG</td></tr>
<tr><th>to SJIS-win</th><td>OK</td><td>-</td><td>OK</td><td>OK</td><td>OK</td></tr>
<tr><th>to EUC-JP</th><td>OK</td><td>NG</td><td>-</td><td>NG</td><td>NG</td></tr>
<tr><th>to eucJP-win</th><td>OK</td><td>OK</td><td>OK</td><td>-</td><td>OK</td></tr>
<tr><th>to UTF-8</th><td>NG</td><td>OK</td><td>NG</td><td>OK</td><td>-</td></tr>
</tbody>
</table>]]></description>
		<dc:subject>日記</dc:subject>
		<dc:creator>ucb</dc:creator>
		<dc:date>2006-08-25T22:28:50+09:00</dc:date>
	</item>
	<item rdf:about="http://www.rcdtokyo.com/pc2m/note/archives/i000800.php">
		<title>そろそろ新しいバージョンを試してみないかブラザー</title>
		<link>http://www.rcdtokyo.com/pc2m/note/archives/i000800.php</link>
		<description><![CDATA[<p>以下に記載のものは<a href="http://www.rcdtokyo.com/pc2m/note/archives/i000803.php">こちら</a>に更新版が用意されました。</p>

<hr />

<p>以前からコソコソと公開し散らかしていた新バージョンのプロトタイプですが、それなりな感じになってきた気がするので。<br />
というか、さすがに2ヶ月もここのエントリーを書いてないと死んだのかと勘違いされる気がするので。</p>

<p>これはPC2Mの新バージョン候補であり、現在の公開リリースに対する修正や改善もなされてはいますが、なによりこのバージョンでは、HTMLの処理部分が抜本的に改められており、これにより現在の公開リリースでは支障のないウェブページが、このバージョンでは利用できないかもしれないという困ったちゃんです。そういうわけで、スキモノのかたに試してもらって、支障のあるウェブページを発見したらばビシバシ教えて欲しいなと。なお、<a href="http://www.rcdtokyo.com/test/">こちら</a>でサクっとお試しいただけます。</p>

<p>&raquo; <del>pc2m-0.9.20rc_060818.zip 0.9.20RC1 (beta) released 2006/08/18</del></p>

<p>※このバージョンでは新たにPEARの<a href="http://pear.php.net/package/XML_HTMLSax3">XML_HTMLSax3</a>が必要です（<a href="http://www.rcdtokyo.com/pc2m/pearpack.zip">pearpack.zip</a>を更新してあります）。</p>

<h4>なにこれ？</h4>

<p>HTMLの処理は、これまでは正規表現によるパターンマッチングで済ませてきたわけですが、ワールドワイドウェッブの悪しき伝統により、インターネット上には相変わらずズサンなマークアップが蔓延っており、未だに止む気配がないどころか、著名なIT関連企業のウェブサイトですら、「旧世代のウェブブラウザへの配慮」を口実に、しばしばどーしようもないマークアップが見られる今日この頃。パターンマッチングでこうしたズサンなマークアップと格闘するにはどーしても限度があり、一方iモードやPC用の主なウェブブラウザとは異なり、auやVodafoneに搭載されているUP.BrowserのようなWML/XHTML用のブラウザは、キャリアのゲートウェイがある程度変換してくれるとは言え、ズサンなマークアップに対して本来はあまり寛大ではありません。<br />
てなことで、受信したHTMLをいったん整形式のXML文書に再構築できないかと思ったわけです。そうすりゃ、パターンマッチングによる後処理が必要だとしても随分楽チンだし、コードもスッキリするじゃないかな松木さん。<br />
マークアップの補正処理には、PHPではPECL版<a href="http://www.php.net/tidy">Tidy</a>とかの拡張モジュール（追加インストールが必要なバイナリ）が利用できるわけですが、残念ながらこれらは一般的なレンタルサーバのPHP環境で用意されているものではなく。てゆうか、ここの鯖にもなく。<br />
しょうがなくあれこれ試行錯誤を繰り返した結果、マークアップの補正処理を行うクラスライブラリを作ってみたので、それを組み込んだのがこのバージョンというわけでござります。</p>

<blockquote>
このクラスライブラリの詳細は、<a href="http://www.rcdtokyo.com/ucb/contents/i000799.php">HTMLを整形式のXML文書に修正するPHPクラス</a>をご覧ください。単独でのご利用も想定して、リンク先にはこのクラス単独の配布パッケージを用意しており、これにはシンプルなサンプルアプリケーションと、HTMLに対して汎用的に利用可能な、XHTML 1.0 TransitionalのDTDに基づいた構成ファイルが含まれています。
</blockquote>

<p>てなことでどーなったかというと、整形式のXML文書を吐くようになってます。多分なってるんじゃないかな。疑うならテキトーなXMLパーサに出力を喰わしてみやがれ。わかりやすく見た目で言うと、色の再現性が以前よりきちんとしてたり、下部メニューにまで装飾が及んでなかったり。まあ、そういうことです（ただし、文書型（DOCTYPE）はXHTML Mobile Profileとなっていますが、「整形式のXML文書」と断ってるように、DTDに照らしてvalidかというと、そこまでの補正は致しかねております）。</p>

<h4>HTML処理に関する主な仕様変更</h4>

<ul>
<li>従来はOBJECT|EMBEDをリンクで表示してましたが全く除去してしまうことにしてみました。</li>
<li>従来はH1～6をPに置き換えていましたが、これをそのまま残すようにしてみました。</li>
<li>CENTERなど、従来は除去していた幾つかのタグを残すようにしてみました。</li>
<li>従来は2chのｶｷｺフォームのみ直アクセスでしたが、UTN属性があればなんでもかんでも直アクセスにしてみました。</li>
</ul>

<h4>HTML処理に関する既知の不具合</h4>

<p>細かい説明は端折りますが、以下の例のようにオーバーハングしてやがる入力フォームは機能しなくなります（他のタグでも、オーバーハングについては同様の問題が生じますが、特にこのパターンはFORM要素にありがちで実害もあからさま）。「ここのフォーム動かなくなったよ」という場合はこのパターンを疑ってください。</p>

<pre>
&lt;table&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;form action=&quot;search&quot;&gt;
      &lt;p&gt;&lt;input name=&quot;query&quot;&gt;&lt;/p&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;input type=&quot;submit&quot;&gt;&lt;/p&gt;
&lt;/form&gt;
</pre>

<h4>DISCLAIMER</h4>

<p>XML準拠も結構だが、めぼしいメリットがあるわけでもないのに「メモリ喰います、遅くなってます、利用できてたものができなくなります」じゃあ、ユーザ無視のW3Cオタのオナニーじゃねえか、さっさと元に戻しやがれこの厨房、などのご意見ご要望は、ログを採ってないので管理人すらｶｷｺ者を特定不能の、<a href="http://www.rcdtokyo.com/bbs/pc2m/">完全無欠の匿名掲示板</a>へどーぞ。</p>]]></description>
		<dc:subject>日記</dc:subject>
		<dc:creator>ucb</dc:creator>
		<dc:date>2006-08-18T23:09:51+09:00</dc:date>
	</item>
	<item rdf:about="http://www.rcdtokyo.com/pc2m/note/archives/i000797.php">
		<title>Mobilicio.usのパチモンを10分で作ってみる</title>
		<link>http://www.rcdtokyo.com/pc2m/note/archives/i000797.php</link>
		<description><![CDATA[<p>こういうネタに脊髄反射するのは止めようと思いつつ（笑）。</p>

<p>CNET Japanに、<a href="http://japan.cnet.com/column/ehub/story/0,2000065901,20146148,00.htm">Web 2.0の挑戦者：モバイルインターネット活用のためのマッシュアップMobilicio.us</a>と題した翻訳記事が掲載されてますた。</p>

<blockquote>
Mobilicio.usは、del.icio.usオンラインブックマークサービスとGoogleのモバイル検索ツールを組み合わせたマッシュアップです。Mobilicio.usを使用すれば、携帯端末やその他の表示領域が制限されたデバイスからdel.icio.usブックマークのモバイル版をブラウズできます。また、モバイル機器からお目当てのサイトにアクセスするとき、Googleのモバイル検索に長いURLを入力する必要もなくなります。携帯のキーパッドを使用した入力は、苦痛ですよね。
</blockquote>

<p>要は、<a href="http://del.icio.us/help/api/">del.icio.usのAPI</a>を使ってモバイルデバイス向けのページを用意し、ブックマークの各URLへの遷移は、<a href="http://www.google.com/gwt/n">GoogleのWebsite Transcoder</a>（モバイルデバイス向けHTML変換プロキシ）経由のものに置き換えるという、シンプルで他力本願なもので（Mashupとは他力本願なものだが）。「Web 2.0」だあ「マッシュアップ」だあといった、ナウでヤングなフレーズが連想させる複雑怪奇なものではありません（しかしMashup＝Web 2.0という安直な図式はどうにかならんのか）。<br />
いや、キャッチーなフレーズを並べることができれば注目を集め得るというのは、マーケティングの絶対真理だなと。</p>

<p>というか、これって自分のdel.icio.usのページをGoogleのトランスコーダで表示しておけばいいだけじゃん。というか、自分のブックマークしか見れないわけで（「Mobilicio.us Recommended」は除く。なおリコメンドの1は、CNET記事のインタビュアーのサイトｗ）、それじゃあソーシャルブックマークの意味ないじゃん。というか、それってWeb 2.0じゃないじゃん。というか、ブックマークの登録はできないじゃん。というか、「携帯のキーパッドを使用した入力は苦痛」なのに、タグでフィルターしようと思うとタグ名を入力しなけいといけないじゃん（URLほど長くはない筈だからいいのか）。</p>

<p>てなことで、フリーの和製トランスコーダ（笑）で、10分間の歳月をかけて似たようなモンを用意してみますた。</p>

<p>&raquo; <a href="http://www.rcdtokyo.com/uso/">Mobilicio.usのパチモン</a><br>
&raquo; <a href="http://mobilicio.us/">ちなみにホンマモンはこっち</a></p>

<!--pc2m_void-->
<a href="http://www.rcdtokyo.com/uso/" title="Mobilicio.usのパチモン"><img src="http://www.rcdtokyo.com/pc2m/note/archives/images/uso.png" width="126" height="193" alt="Mobilicio.usのパチモン" /></a>
<a href="http://mobilicio.us/" title="ちなみにホンマモンはこっち"><img src="http://www.rcdtokyo.com/pc2m/note/archives/images/mobilicio_us.png" width="126" height="193" alt="ちなみにホンマモンはこっち" /></a>
<!--/pc2m_void-->

<p>自分のだけではなく、「popular」や「recent」も含めて他者のブックマークを確認することもできます。タグのフィルターはリンクからどうぞ。ワード検索もできます。新規のブックマーク登録も可（表示中のページを登録したければ画面上部の「ツール」へ）。<br />
CNETの記事には「RSSフィードを読む機能を追加したい」とありましたが、こちらはRSSを直接表示することもできれば、はてなRSSやBloglinesなどのウェブ型RSSリーダーを利用することもできます（JavaScript/Ajaxマンセーなものを除く）。</p>

<p>まあ、<a href="http://www.rcdtokyo.com/pc2m/">PC2Mのフロントページ</a>を並べ替えただけなんだけど（笑）。</p>

<p>ちなみにdel.icio.usではなく、はてなブックマークに替えとこうかと思ったのだけど、さすがにそれは、はてなの携帯版でいんじゃん？ということになっちゃうので。また、タイトルは「モ」で始まりゃなんでもいいやということで、サカオタなのでこうなりましたが、決してモウリーニョ様を嘘つき呼ばわりしてるわけではありません。でも金満クラブはキライです。ご尊影は<a href="http://www.geocities.jp/observateurdetoile/camino/d04080301.html">ここ</a>から流用。</p>

<p>追伸。久しぶりにフィードが更新されたと思ったら駄文かよとお怒りの皆さま。今煮詰まってるんで新版のリリースはしばらくないと思うよ。</p>]]></description>
		<dc:subject>日記</dc:subject>
		<dc:creator>ucb</dc:creator>
		<dc:date>2006-06-22T21:10:52+09:00</dc:date>
	</item>
	<item rdf:about="http://www.rcdtokyo.com/pc2m/note/archives/i000796.php">
		<title>バージョン0.9.18をリリースしました</title>
		<link>http://www.rcdtokyo.com/pc2m/note/archives/i000796.php</link>
		<description><![CDATA[<p>前回に引き続きマヌケな不具合修正。今回のはボーダフォンの端末情報がちゃんと取得できてなかったというものですが、これはそもそも当初からずっとこの状態だったわけで、今まで誰も指摘してくれなかったわけだ。orz</p>

<p>新規インストールの場合は、以下は無視して<a href="http://www.rcdtokyo.com/pc2m/note/archives/i000010.php">設置手順</a>へどうぞ。<br />
バージョン0.9.9及びそれ以前から更新される場合は、全面的な変更が為されていますので、まずは<a href="http://www.rcdtokyo.com/pc2m/note/archives/i000771.php">こちら</a>あたりをご覧いただくことをお勧めします。</p>

<p>前バージョン（0.9.17）をご利用の場合は、pc2m.php、ClientDetect.class.php、DevInfo_DoCoMo.inc.phpの3ヶを入れ替えてください。そのひとつ前（0.9.16）をご利用の場合は、これに加えてIPRange.inc.phpも入れ替えてください。</p>

<p>なお、PEARのHTTP_Requestについても、不具合の修正と追加の改造がありますので、<a href="http://www.rcdtokyo.com/pc2m/pearpack.zip">pearpack.zip</a>にあるものと入れ替えてください。<br />
追加の改造は、HTTPヘッダでContent-Typeが「text/plain」となっている場合に、データにNULLが含まれる場合は処理を中止するというものです（ただし、データがGZIP圧縮で転送されている場合を除く）。Content-Typeは強制的に「application/octet-stream」に変更します。これは、特にマルチメディアデータについて、適切なContent-Type（MIME Type）の設定がなされていないことがしばしばありますが、そうした場合に、不用意に巨大なバイナリデータの読み込みを進めてしまわないようにするための措置です。</p>

<h4>主な不具合修正と変更</h4>

<ul>
<li>ボーダフォンの端末情報が取得できない不具合を修正。</li>
<li>SELECT要素とTEXTAREA要素について、name属性値にピリオドが含まれる場合の処理が漏れていた不具合を修正。</li>
<li>A要素のhref属性値で、mailtoスキームのURIが数値文字参照形式で記述されている場合は正常に処理されなかったため、これを実体化するよう変更（以前に、SPAM対策になるとして、メールアドレスをこの形式で記述するのが流行っていた）。</li>
</ul>]]></description>
		<dc:subject>日記</dc:subject>
		<dc:creator>ucb</dc:creator>
		<dc:date>2006-06-09T20:49:57+09:00</dc:date>
	</item>
	<item rdf:about="http://www.rcdtokyo.com/pc2m/note/archives/i000795.php">
		<title>バージョン0.9.17をリリースしました</title>
		<link>http://www.rcdtokyo.com/pc2m/note/archives/i000795.php</link>
		<description><![CDATA[<p>ごめんなさい。前バージョンにマヌケな不具合があったのでそそくさとバージョンアップします。<br />
なお、ついでにボーダフォンのIP範囲とドコモの機種情報を追加しときました。</p>

<p>既に前バージョンをご利用の場合は、pc2m.phpと、DevInfo_DoCoMo.inc.php、IPRange.inc.phpの3ヶを入れ替えていただければ結構です。</p>

<p>新規インストールの場合は、以下は無視して<a href="http://www.rcdtokyo.com/pc2m/note/archives/i000010.php">設置手順</a>へどうぞ。<br />
バージョン0.9.9及びそれ以前から更新される場合は、まずは<a href="http://www.rcdtokyo.com/pc2m/note/archives/i000771.php">こちら</a>をご覧ください。また、バージョン0.9.12及びそれ以前から更新される場合は、<a href="http://www.rcdtokyo.com/pc2m/note/archives/i000782.php">こちら</a>の注意事項もあわせてご確認ください。<br />
前バージョンで追加した「踏み台」対策の説明は<a href="http://www.rcdtokyo.com/pc2m/note/archives/i000794.php">こちら</a>。</p>

<h4>主な不具合修正と変更</h4>

<ul>
<li>Googleの検索フォームをはじめとして、フォーム送信が正常に行われてない場合がありました。</li>
<li>Internet Explorerに固有の<a href="http://msdn.microsoft.com/workshop/author/dhtml/overview/ccomment_ovw.asp">Conditional Comments</a>（条件付コメント）のうち、「downlevel-revealed」形式のものの除去ができておらず、EZweb端末などでは、これを不正なタグとみなして処理を中止してしまうため、search.yahoo.co.jp（Yahoo検索）以下のページなど、これを採用しているページが正常に表示されていませんでした。</li>
<li>mixiのメッセージ送信など、いわゆる「確認画面」を経由するフォーム送信では、改行などが削除されてしまっていましたが、これが反映されるように変更しました。</li>
</ul>]]></description>
		<dc:subject>日記</dc:subject>
		<dc:creator>ucb</dc:creator>
		<dc:date>2006-06-05T20:38:27+09:00</dc:date>
	</item>
	
</rdf:RDF>