Previous month:
December 2005
Next month:
February 2006

はてなの人気エントリーは、ラーメン屋の行列

Ramen  昨日のエントリー、「ブログ用ミニアプリ:ラーメン大好き」を書いているときに、ふと「はてなの人気エントリーは、ラーメン屋の行列に似ている」と思ったので、今日はそれに関するエントリー。

 ラーメン好きのあなたが、たまたま訪れた街(まち)で昼食を一人で食べることになったと仮定しよう。駅前の商店街を歩いていると、二軒のラーメン屋が並んでいる。どちらからも似たような店構えだが、片方には二人しか客が入っておらず、もう一方は満員で三人ほど外に並んでいる。あなたならどちらの店に入るだろうか。

 よほど時間がないときなら別だが、ほとんどの人が客が沢山入っている方の店を選ぶはずだ。これは多くの人が経験則として、「混んでいる店の方が大抵の場合おいしい」ことを知っているからである。自分が住むことになった街であれば、近所のラーメン屋をすべて試した上でどの店が一番うまいかを自分の舌で判断することもできるが、たまたま訪れた街で一回だけ食べるのであれば、その場で得られる情報(=店の混み具合)から判断して、「おいしいと予想できる」店を選ぶのが最善の策である。

 心理学の学者ならば、こういった人間の行動を、「人間は他の人と同じ行動をした方が失敗をしない確率が高いことを本能的に知っている」ゆえの行動であるとでも解説するのであろう。

 私が「はてなの人気エントリー」を使うときの心理状態は、とてもこれに似ている。ネットで流れている情報をチェックしたいが、時間をかけてゆっくりとネットサーフィンをする時間もない。そんな時に「はてなの人気エントリー」にリストされている記事のタイトルだけをスキャンし、面白そうな記事を2~3個拾い読みするのである。そうしている時の私は、見知らぬ街の商店街を歩きながらラーメン屋の混み具合をチェックしている私ととても似ているような気がする。

【追記】現在このブログでは、右のサイドバー上部に貼り付けたミニアプリを使って、皆さんの「お気に入りのラーメン屋さん」情報を集めています。『追加』リンクをクリックし、店の名前、もよりの駅、あなたのコメント(オプション)を入力して『登録』ボタンを押すだけで、誰でも簡単に自分のお気に入りのラーメン屋さんを登録できます。既に投稿済みの店に関する重複投稿も大歓迎なので(それだけ人気があるという証拠)、ぜひとも気楽に投稿してみてください。


ブログ用ミニアプリ: 「ラーメン大好き」

 前回のブログ用ミニアプリ、「コミュニティ型『今日のひとこと』」、とても好評である。色々な方のブログに採用されているので、今月の11日に公開したばかりなのに、既に累積ページビューは60万を超える。やはり「誰でもコンテンツを追加できる」コミュニティ型であることと、「誰でも自分のブログに貼り付けることができる」タイプであることが良いのだろう。

 そこで、第四弾はその応用編。コミュニティ型の力で全国のおいしいラーメン屋さんを見つけようという企画、「ラーメン大好き」である。

 この企画への参加の方法は二つある。

(1)自分のお気に入りのラーメン屋さんを『追加』する
(2)このブログパーツを自分のブログのサイドバーなどに貼り付ける

 (1)はとても簡単で、このアプリの『追加』リンクをクリックし、お店の名前、もよりの駅、そして自分なりのコメント(オプション)を入力して、『登録』ボタンを押していただくだけで良い。複数登録しても、既に入力されているお店をダブって登録しても、ぜんぜんかまわないので、どんどん追加していただきたい。

 (2)はブログを持っている方にしかお願いできないのだが、下記の HTML をブログ・エントリー、もしくは、ブログのサイドバーに貼り付けていただくだけで良い。

    <iframe marginwidth="0" marginheight="0"
      src="http://www.uicentric.com/guide/ramen/myramen.php"
      frameborder="0" width="160" scrolling="no"
      height="148">
    </iframe>

 先の「今日のひとこと」と同じく、これも、皆さんに沢山のラーメン屋さんを登録していただいてこそ価値の出るアプリなので、ぜひとも積極的な登録をお願いしたい。


Life is beautiful の楽しみ方

Portal  FPNによる企画、「アルファブロガーを(もっと)探せ2005」で私が新たな10名のアルファブロガーとして選ばれたらしい。「選ばれる」というのは何歳(いくつ)になっても嬉しいもので、私の好き勝手なうんちくに付き合っていただいている読者の皆さんのおかげである、感謝、感謝。

 ということで、今日は初めてこのブログを訪れる方が多いと予想できるので、そんな方々のための「life is beautiful の楽しみ方」。

 とにかく、私が丸二年以上にわたって書きつづけて来たブログなので、エントリーの数が多く(350以上)、順番に読んでいくとものすごく時間がかかる。まずは、左上にリストアップしたこのブログの「人気エントリー」から読んで行くことをお勧めする。「日本語とオブジェクト指向」、「恋はブックマーク」などの手軽な読み物から、「Ajax の本質」、「Google OS を妄想する」のようなテクノロジーに関する記事、「世界初!3Dブログエントリー」のようなお遊びまで幅広く揃っているので、初めて入ったレストランで「サンプラー」でも注文する気軽さで拾い読みをしていただきたい。

 ちなみに、このブログを訪れていただいたのも、何かの縁なので、一つお願いしたいことがある。このページの右上に張ってある、「本日のひとこと」に、あなたの気に入っている名言、ことわざ、川柳、などを一つ追加していただきたいのだ。そこにある『追加』というリンクをクリックするだけで、どなたでも無記名で『お気に入りのひとこと』を残せるので、ぜひともご協力をお願いしたい(このミニアプリに関して興味のある方、自分のブログにも張ってみたいと思う方は、こちらを参照)。


DNA マーカー『M122』を持つ人は、お米が大好き!?

Geographic 2ヶ月ほど前に妻が大好きな Good Morning America で Genographic Project の存在を知り、さっそくキットを取り寄せて DNA サンプルを送っておいたのだが、テストの結果をチェックするのをすっかり忘れていたことに今日気が付いた。

 そこで Genographic のサイトに行き、私の DNA サンプルの識別番号を入力すると、結果が表示される(左の図)。私の祖先は、アフリカから中近東を経て、大陸を渡ってきたらしい。

 結果を見たときには、「どうせ日本人は皆同じような結果が出ているのではないか」と思ったのだが、他にもこのテストの結果を公開している日本人のものと比べてみると(参照1参照2参照3)、かなり異なった結果である。

 このプロジェクトは99ドルの手数料(+DNAサンプルを送る時の送料)を払えば誰でも参加できるオープンなプロジェクトである。自分の先祖がどんなルートで日本に来たのか興味がある人にはお勧めである(日本語の説明はこちら)。

 ちなみに、私のDNAに残された祖先の足跡、DNAマーカーは、5つほど見つかったのであるが、特に納得できたのが M122。このサイトの説明によると「M122 は稲作文化とともに広がった」とある。私が「白いご飯」があれほど好きなのは私の持つ M122 のなせる技だったのだ。これからは、皆が「まずビール!」と言うタイミングで、遠慮せずに「まず白いご飯!」と言ってしまおう^^。


prototype.js で遊んでみた

 先日このブログで公開したばかりの、「ライブドア事件」専用トラックバック・ステーションであるが、毎回ページが開かれるたびにデータベースにアクセスする仕組みで作ったのだが、そんな作りのままではトラフィック増には耐えられない。そこで、良く出来たブログ・サービス(例えばMT)の様に、変更があったときに(つまり、トラックバックが送られてきた時に)、データベース上のデータからHTMLページを生成しておき、閲覧時にはそれを返すように変更することにした。

 その作業を進めているときに、この手法の一つの欠点に気が付いた。MovableType がしているように、ヘッダーも含めた全HTMLページを生成するようにしておくと、その中にスタイルシート(CSS)へのリンクを埋め込むことになるので、スタイル(見た目)が固定化されてしまうのである。これでは面白くない。そこで、複数のスタイルシートを用意しておき、閲覧時に動的に結び付きを決められるようにする方法を幾つか考えてみた。

案1.ページ全体ではなく、HTMLの一部だけを生成しておき、PHPを使って動的にスタイルシートとの結び付けをする。
案2.HTMLではなく、PHPを生成しておき、それを使って動的にスタイルシートとの結び付けをする。
案3.HTMLの一部だけを生成しておき、prototype.js を使ってスタイルシートと結びついた親ページにそれを読み込んでくる。

案1と案2は既にやり方を知っているので、あえて案3の方法でやってみることにした。prototype.js では一度遊んでみたかったので、丁度良い。すると、親ページ(最初にブラウザーがロードするページ)はこんな感じになる。

<html>
  <HEAD>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <link rel ="stylesheet" href ="listview1.css" type="text/css" />
   <script src="prototype-1.4.0.js"></script>
   <script>
     function load() {
       var myAjax = new Ajax.Updater('main', 'cache/livedoor1.html',
         {method: 'get',
         requestHeaders: ['If-Modified-Since','Wed, 15 Nov 1995 00:00:00 GMT'] });
    }
   </script>
  </HEAD>
  <BODY onload="load()">
    <div id="main">
      <div style="width: 100%; text-align: center">Loading...</div>
    </div>
  </BODY>
</HTML> 

 こんな形で作った親ページを、スタイルシートごとに複数用意しておけば(listview1.css の部分だけを変更すれば良い)、ブラウズ時にはサーバー側のスクリプトを走らせることなく、同じHTMLテキスト(このサンプル場合は cache/livedoor1.html)を異なったスタイルで見せることができるのである。サンプルとして、二つの異なるスタイルシート(listview1.css、listview2.css)と結びつけたサンプルを下に貼り付けたので参照していただきたい。

listview1.css を使って表示したもの

listview2.css を使って表示したもの

 「何で同じHTMLなのにこんなに異なる表示が出来るんだ?」と疑問に思う方は、それぞれのCSSファイルを参照してみると良い。XSL/XMLによる view/data の分離と違って、分離が完璧ではないので view の自由度は限られるが、CSS/HTML を分離するだけでもかなり面白いことが出来ることがこの例を見ても良く分かると思う。

 昨晩はこれが IE と Firefox 上でうまく動いたので、「クライアント側でのHTMLとCSSの動的結びつきに成功。これで色々と面白いことができる!」と喜んで寝たのだが、朝、Mac上のSafari からアクセスしてみて、がっくり。漢字が文字化けしてしまうのだ。サーバー上で生成しているHTMLファイルも親ページもどちらもUTF-8でセーブしてあるので、本来ならうまく行くはずなのだが、なぜか文字化けしてしまうのだ。

 少し調べたところ、Safari は親ページが UTF-8 であることを認識しておきながら、Ajax.Update() で取得した文字列を UTF-8 と正しく認識してくれないようである(原因は不明…もし心当たりのある方がいたら、コメントをいただけるとありがたい)。そこで、少し乱暴な手段だが、サーバー側で生成する HTML ファイルの先頭に UTF-8 であることを示すBOM(EF、BB、BF)を付けてみたところやっとちゃんと動いてくれた。BOMを利用しているのは Windows ばっかりだと思っていたが、Safari に BOM を認識するコードが入っているとは少し驚きだ。

 ということで、「ライブドア事件」専用トラックバック・ステーションも無事にアップデート終了。いたって簡単なプロトタイプだが、色々と勉強になった。


ライブドア事件の怒涛の中心で愛をさけぶ

051211_021509  「ライブドア株に売り殺到 他のネット関連企業にも波及(朝日新聞)」などという記事の見出しを見るたびに、「『ネット関連企業』という十把ひとからげ的なくくり方で、投資家のパニックを煽っているのはマスコミだろう」とツッコミを入れたくなるのは私だけではないはずだ。

 冷静な投資家であれば、ライブドアを単純に Google、Yahoo、Amazon、などの企業などと比べるのは全くの間違いであることは十分承知なはずだ。Google などの「ウェブ・サービス」を本業にする企業は、技術力・企画力の強さで大きくなった企業であり、彼らの目的は「世の中のために役に立つウェブ・サービスを作り、その結果として株価を上げて株主・社員に恩恵をもたらす」ことにある。その意味では、「ソフトウェア」を本業とするマイクロソフト、「半導体」を本業とするインテルも、「世の中のために役に立つ○○を作り、その結果として株価を上げて株主・社員に恩恵をもたらす」の○○の部分に「ソフトウェア」、「半導体」を入れて読み替えれば良いだけのことだ。

 しかし、ライブドアの今までの成長の経緯を見れば、そういった技術・サービス指向の会社とはかなり異なったビジョンのもとに運営されてきたことが分かる。一年ほど前に、ライブドアの名前を初めて耳にし、業界の知人の何人かに「ライブドアってどんな会社」と尋ねると、誰もが口を揃えたように「M&Aで大きくなった会社」と言うではないか。その時はどうも腑に落ちなかったのだが、今になって考えてみると、良く理解できる。一口で言えば、ライブドアのビジョンとは、「M&Aにより会社の規模・株価総額を大きくし、そこで集まった資金を活用してネット業界・メディア業界の覇者になること」だったのである。

 注目していただきたいのは、アンダーラインを引いた部分である。Google や Microsoft などの企業が、「役に立つウェブ・サービス」や「役に立つソフトウェア」を提供することを会社のビジョンの中心に置き、それの実現のために優秀な技術者を雇い、それにより高めた技術力・企画力をテコにして市場で勝負し、その成果として会社の価値(株価総額)を上げたのに対して、ライブドアは、まず先にM&Aなので株価総額を上げ、高くなった株価総額をテコにして市場で勝負する戦略を採ったのである。

 「まず株価総額を上げて、それ(だけ)をテコにしてビジネスをする」という戦略がどのくらい危険なものかは、過去の光通信などの事例を見れば明らかだとは思うのだが、一度上がり始めた株を見ると「乗り遅れまい」と飛びつく投資家がいるかぎり、この手の事件は繰り返すのだろう。

 ものを作る立場にいる人間としては、「やはりウェブ・サービス・ビジネスは技術力・企画力で勝負すべき」と声を高くして言いたい。そんな意味で、私ははてなという会社が好きだし、今度立ち上げる UIE Japan もぜひともそんな会社にしたいと考えている。

【追記】一昨日オープンしたばかりの「ライブドア専用、トラックバックステーション」、実際にトラックバックをいただいたものも、私が手作業で追加したものもあるが、すでに58件集まった。ぜひとも活発なトラックバックのご協力をお願いする(ちなみに、トラックバック先は、http://www.uicentric.com/app/tb/tbreceiver.php?livedoor1)。


Web2.0実験室: Trackback Station を作ってみた

060109_064414  今年に入ってから、PHP だとか Perl だとかで色々なウェブ・サービスを作って遊んでいるのだが、はっきり言って思いっきり楽しい。初めてのパソコン(TK-80)を手に入れた時のワクワク感と同じだ。「やはり私はプログラムを書くために生まれて来たんだな」とつくづく思う。会社の経営なんて誰かに任せて、もう一度、一プログラマーに戻りたいぐらいだ(関係者の方々へ:冗談ですよ、冗談^^;)。

 「PHP+MySQLでウェブサイトを作るのは簡単だ」とは聞いていたのだが、これほど簡単だとは驚きだ。こんなに手軽にできるものなら、もっと早く始めておくべきだった。と、少し後悔しているが、今からでも遅くないのでどんどん面白いものを作って行こうと決意した。

 そこで今日、ミーティングの合間に作ったてみたのが、ブログからのトラックバックを受け付けて表示するTrackback Station。Six Apart のサイトに書いてある Trackback の Technical Specification を見て以来、一度ゼロから作ってみたかったのだ。まだ順番に表示する機能しかないが、トラックバックで送られてきた情報は、データベースに取り込む仕組みなので、後から色々と遊べそうだ。

 ちなみに、この手のプロトタイプを作ったらすぐにブログを通じて公開できてしまうところがまたまた楽しい。ただし、単に「Trackback Stationが出来ました、テストにご協力ください」と言っても誰もしてくれるとは思えないので、今話題のある事件に特化した Trackback Station を作ってみた。題して、

「ライブドア事件」専用トラックバック・ステーション

 詳しくは、そちらに書いてあるので、ぜひともご協力願いたい。少しぐらい古いエントリーでも良いので、「ライブドア事件」に少しでも関係のあるものから、トラックバックを送っていただければ良いのでお願いする。トラックバックURLは、 http://www.uicentric.com/app/tb/tbreceiver.php?livedoor1 である。

 ちなみに、この程度の小規模なプログラムを、人材募集の際に課題として出題して、履歴書とともにサイトのアドレスとソースコードを送ってもらうのも悪くないと思った。これから、UIE Japan に応募してくるエンジニアの方(参照)は、腕試しに作ってみると良いかも知れない。


シアトル住宅事情、今はやりの「メディア・ルーム」

 今月の初めにラスベガスで開かれたCES(Consumer Electronics Show)での主役は、「HDTV」だったのことは各メディアが既に報じたところだが、プラズマ対液晶(そしてSED)の戦いばかりが目に付く日本と違い、米国で意外に重要な役割を果たすのが実は家庭用プロジェクターである。

 アメリカの昨今の住宅事情を理解していない日本人からしてみれば、「プロジェクターなんて部屋を暗くしなければ見れないし、プラズマTVや液晶TVで十分じゃん。アメリカの家はでかいから、50インチとか60インチのTVが売れるに違いない」と思っても仕方がないところだ。

 しかし、今アメリカの富裕層に売れているのプラズマTVのサイズは、実は42インチぐらいなのである。富裕層向けに「良いものを安く売る」ので定評のあるCostcoに行くと2000~3000ドル程度(20万円から30万円ぐらい)のTVが飛ぶように売れている。日本よりはるかに住宅事情が良く、広い家に住んでいるはずのアメリカ人が、なぜ42インチのプラズマTVで満足してしまうのだろう。

 それには二つの理由がある。一つは、日本の住宅で言う「茶の間」もしくは「LDK」に相当する、ファミリー・ルームの構造である。そこにはアメリカ人にとっての「暖かい家庭」の象徴、暖炉がかならずと言って良いほどあるのである。私の家でもそうなのだが、ファミリールームの一番TVを置きたい壁の真ん中に暖炉がデンと構えているため、意外とTVを置けるスペースが狭いのだ。私の家の場合、しかたがないので暖炉の上にプラズマTVを取り付けることにしたのだが、そこにはちょうど42インチのプラズマTVしか収まらなかったのだ。

 もう一つの理由が、映画・TV鑑賞専用の部屋、メディア・ルーム(media room)の普及である。普及とは言っても、まだまだ1ミリオンダラー(一億円強)を越すような大きな家にしか付いては来ないのだが、景気のけん引役である富裕層にはものすごい勢いで広まっている。そうなると、逆に50インチや60インチではぜんぜん不足で、80インチとか100インチのスクリーンが欲しくなり、結果としてプロジェクターを使うことになるのだ。CESでは、InFocus という会社が家庭用のHDTVプロジェクターに力を入れているのがとても印象に残った。

 ちなみに、下の写真はシアトルの不動産広告(参照)で見つけた今販売中の家のメディア・ルームの写真。オーナーの遊び心で、あたかも映画館のような入り口を作ってあるが、あくまで個人用の住宅のメディア・ルームである。

Media_room1Media_room2


ブログ用投票システム (2)

Create polls and vote for free. dPolls.com

 昨日のエントリー、「ブログ用投票システム」の動作テストには、1000人以上の方にご協力いただき、感謝、感謝である。データベースの設計をするのは生まれて初めての経験だったが(私はマイクロソフトでは C++ でユーザーインターフェイスの設計・開発ばかりしてきた)、結構安定して動いてくれている。SQL は奥が深くて楽しい。

 投票結果は、エントリーそのものを見ていただければ良いのだが、簡単にまとめると。

ユニークユーザー数: 5348人
投票者数: 1113人 (投票率20.8%)
総投票数: 4402票(平均3.95票)

となる。昨日の午後5時(シアトル時間)に公開し、朝起きてみるとこれだけのデータが集まってしまうのだからありがたい。次は、もう少し意味のある質問をしてみようと思う(質問する項目に関して良いアイデアがあったら、コメント欄にいただけるとありがたい)。

 この仕組みを使って、ユーザーが誰でも自分の投票用紙のようなものを作ってブログに貼り付けられる仕組みを作ろうと考えていたのだが、ブックマーク・コメントで、既に dPolls というサービスが存在することを教わった(百式のエントリー参照)。「誰もやっていないことを人より先にやる」ことに楽しみを感じる私としては、少しがっくりである。

 ちなみに、このエントリーの右上に貼り付けてある dPolls の投票用紙は、そのサービスを使って作った投票用紙である(つまり、単なる画像ではない)。質問文がはみ出してしまっているが、「あなたは今年、どの据え置き型ゲーム端末を買うつもりですか?」という質問である(Neither = 「どれも買うつもりはない」の意味)。投票結果をその場に表示するところは私のものと同じだが、AJAX (というか Javascript - Javascript を使ったものを全て AJAX と呼ぶのは正しくない) を使ったアニメーションがなかなか心地よい。


Web2.0実験室: ブログ用投票システム

 先日公開した、コミュニティ型「今日のことわざ」アプリだが、さまざまなブログにブログ・パーツとして貼り付けていただいたおかげで、のべで33万ページビュー、ユニーク・ユーザーは一日1万5000人近くになっている。Viral Marketing の効果が少し現れてきたようだ。

 それに気を良くしてというわけでもないが、先週から作り始めたもう一つのプロトタイプが、ブログ用の投票システムである(本当は Perl で作りたかったのだが、このレンタル・サーバー上では Perl から MySQL が使えないようなので、しかたがなく PHP で作ったが、実は PHP も初体験。二つの言語を同時に学ぶのは少しきつい…)。まだ一般の方々に部品として使っていただける準備はできていないが、このブログに貼り付けて実験するには十分なものが出来たと思う。

 そこでまことに勝手ながら、読者の方々にテストのご協力をお願いしたいと思う。要領は下の「テスト手順」に従っていただければ良いので、ぜひともご協力をいただきたい。

 ちなみに、このシステムがチャンと動いていれば、最初にこのエントリーを見たときにはそれぞれの項目ごとに「Yes」「No」のボタンが表示され、それを押すとその場所にその時点までの投票結果が表示されるはずである。一度投票すると、ページをリフレッシュしてももうボタンは表示されず、投票結果だけが表示される様に作ってある。ちなみに、投票結果は常に最新のものを表示するように作ってあるので、一日ぐらいたってここを見ていただければ、他の人がどんな投票をしたのか見ることができる。

テスト手順

【テスト1】 "Yes" のボタンを押してください。

【テスト2】 "No" のボタンを押してください。

【テスト3】 "Yes"、"No" どちらかのボタンを押してください。

【テスト4】 こんなパーツ、自分のブログでも使ってみたいですか?

ご協力、ありがとうございました。