いっしきまさひこBLOG

AI・機械学習関連、Web制作関連、プログラミング関連、旅行記録などなど。一色政彦。

返信時の引用符を無くすThunderbirdアドオン「ReFwdFormatter」

refwdformatterメール クライアント ソフト Thunderbird でメールを返信しようとすると、引用された内容の前に「>」という引用符が付きます。また、転送しようとすると、件名が [ ] で囲まれてしまいます。

この現象は設定では解決できません。世の中にある Thunderbird アドオンである程度対処できるのですが、すべての「>」が消されたりと、使い勝手がよいものがありませんでした。

そこで、これらの問題を解決するアドオン「ReFwdFormatter」を開発しました。

続きを読む

Microsoft が提供する PaaS“Red Dog”

cloudcomp.jpgスティーブ・バルマー氏が秘密にしている Microsoft のクラウド プラットフォーム戦略 “Red Dog”(コード名)が、PDC 2008 で明らかとされる予定らしいです。“Red Dog”は Windows 向けのクラウド プラットフォームを提供するプロジェクトです。

“Red Dog”を加え、今後、クラウド ベースのプラットフォームを提供するサービス(いわゆるPaaS:Platform as a Service)は、主に以下の3つになると考えられます。

 ・Google App Engine

 ・Amazon EC2

 ・Microsoft “Red Dog”(→Windows Azureという名称になりました)

これらはいずれもユーティリティ コンピューティング、つまり使用容量やトラフィックに応じて利用料を払う、従量課金のコンピューティング環境です。“Red Dog”は、Microsoft のインフラ上のストレージやホスティング環境を従量課金で使えるようにし、開発者が(Microsoft のクラウドが持つパワーを生かして)柔軟にクラウド サービスやアプリケーションを開発できるようにします。

特徴をまとめると以下のようになります(参考「LiveSide.net: Red Dog: Ray Ozzie's answer to the Google App Engine?」)。

 ・効率的な仮想化環境

 ・完全自動化されたサービス管理システム(※Google App Engineのように運用面は気にしなくてよい)

 ・高いスケーラビリティを持つストレージ サービス(必要な容量だけを利用する形態)

 ・サービスは Microsoft のデータセンターにある何百万台のマシンにスケールアウト可能

 ・インターネット サービスとアプリケーションの迅速な開発、展開、メンテナンスのための最高のプラットフォームとして、今後の市場をリードしていく

 ・来年にはバージョン1が提供される(かも)

ここで気になるのは「ソフトウェア+サービス」(software-plus-services)との関係でしょうが、当然“Red Dog”も、「ソフトウェア+サービス」アプローチの一環として進められています。今後の情報システムのあり方は以下のような3種類に分類できると思いますが、一極集中は行き過ぎた考え方であり、バランスのとれたハイブリッド型が浸透していく可能性が高いのではないでしょうか。

 ・企業ベースの(アプリケーション)ソフトウェア

 ・ソフトウェア+サービスのハイブリッド

 ・完全なクラウド サービス

現実的には、Googleは比重をクラウドに置いたハイブリッドを進めており、Microsoft は比重をソフトウェアに置いたハイブリッドを推進しているととらえた方がよいと思います。

「おや、Googleはクラウド一点なんじゃないの?」という意見が多数あると思いますが、Google 自身も Web アプリケーションをデスクトップで使えるようにする Google Gears(と Google Chrome )などを提供することで、Web アプリケーションの限界を超えようとしています(Google Gearsにより、Webアプリはデスクトップ アプリになります)。Adobe については AIR で、というように、いまはWebテクノロジの方からデスクトップに歩み寄るようになっているのが現実。それらを見ると、結局はWebとデスクトップの長所をうまく利用しようとするのが今後の情報システムの方向性で、それにクラウド寄りか (Google の立場)、ソフトウェア寄りか (Microsoft の立場) という違いがあるだけだと思います。

【参考資料】

LiveSide.net: Red Dog: Ray Ozzie's answer to the Google App Engine?

InformationWeek: Microsoft Mum On 'Red Dog' Cloud Computing

VentureBeat: Steve Ballmer dishes out the charm in Silicon Valley, hints at Red Dog, pledges to spend billions on search business

未来のIT業界とクラウド コンピューティングに対する考察

cloudcomp.jpg商用コンピュータの過去の時代の流れと、これからの時代の流れの予測をシンプルにまとめてみました。

1. 【1950~1990年】メインフレーム(汎用機)時代

 → 利用者:一部の大企業(少ない)。

 → 価格:大企業なら買えるレベル

 → 用途:大企業の基幹業務。

2. 【1980~2020年】パーソナル コンピュータ時代

 → 利用者:一般の人から大企業まで(多い)。1人1台程度

 → 価格:中小企業や個人でも買えるレベル

 → 用途:一般業務、日常の連絡手段や作業、ゲームなどなど。

3. 【2010~2050年】クラウド コンピューティング時代

 → 利用者:一般の人から大企業まで(多い)。1人5台程度

 → 価格:安い。個人がいくつでも買えるレベル。薄利多売の世界。

 → 用途:一般業務、日常の連絡手段や作業、ゲームなどなど。そのほか生活を便利にするサービス(詳しくは下記)。

2010年から始まると予測しているクラウド コンピューティング時代ですが(まぁ、すでに始まっていると見てもいいかもしれませんが)、このころになるとソフトウェアやサービスの価格がぐっと安くなってきます。結局、経済市場の世界では、ものがあふれてくると、どうしても安くならざるを得ないと思います。

ここでもし「絶対にうちは安くしない」と言い張ったところで、機能は少し劣っても圧倒的に安いものを他社が出してきたら、それに負ける可能性が高くなります。成功した企業は機能改善して顧客満足度を追求するのが普通ですが、そうするとそれよりも機能の劣る顧客満足度の低い製品が出せなくなります。そうこうしているうちに機能は劣るが価格が安い他社の製品に負けてしまうのです。いわゆる「イノベーションのジレンマ」。

それぞれの製品が安くなっていくとすれば、企業の利益は少なくなるので、結果的に現在の(IT業界の)パーソナル コンピュータ市場の規模は小さくなっていってしまうはずです。そう考えると、IT業界に関わっている人の未来は暗いのでしょうか? その答えは僕には分からないし、誰にも分からないでしょうが、クラウド コンピューティングに可能性を見ることができると僕は考えています。

すでにコンピュータは1人1台程度は普及していると思います。だから、メインフレーム時代からパソコン時代に起こった「パソコンを持っていない人にもっと普及させる」という手法による市場拡大は、もうさすがに期待できません。ではクラウド コンピューティングでは、どうするか? それは、製品を安くしても1人3台も4台も持たせて、トータルでのIT業界の収益を高めることです。

とはいっても「そんなに何台も要らないよ……」という反応ばかりでしょうが、確かにそのとおりです。しかしクラウド コンピューティング時代では、ノート パソコンとか、デスクトップ パソコンとかだけをITの対象としてはいけないと僕は考えています。そうではなく、コンピュータが動くデバイスの種類を増やしていかなければならない。それ以外にIT業界がいまよりも飛躍的に発展していく道はあり得ない。僕はそう思います。

例えば、ネットワーク サービスとつなげてリアルタイムに番組視聴者のコメントを表示させる「テレビ」や「ラジオ」を作ったり、ネットワーク サービスに接続して最新ニュースのアラートが表示される「時計」を作ったり、冷蔵庫の中身をネットワーク上に情報を送信して買い物に時に携帯でチェックできるようにする「冷蔵庫」を作ったり、そういうふうにコンピュータが載る領域を広げる以外に、IT業界が今後めざましい発展を遂げる可能性はないと思います。

もしクラウド コンピューティングが単にシステム形態においてパーソナル コンピュータに取って代わるだけで、それ以外の広がりや革新がないのであれば、IT業界の未来はそれほど明るくないかもしれないと僕は危惧しています。だってIT業界で働いてもお金が儲からなくなるわけだから、この業界に入りたいという人もより少なくなるし、この業界に今居る人も居続けたいと思わないですよね?! クラウド コンピューティング時代の幕開けは、上に書いたような対象デバイスの拡大がセットでなければならない。そうしないと、IT業界の人は上記の理由でジリ貧になってくる可能性があります。クラウド コンピューティング時代の到来が、IT業界も消費者も幸せにならずに、双方にとって悲劇になってしまう可能性もあるということです。だからこそ、時代の過渡期にいる(と思われる)今が、非常に重要な時間なのかもしれない。ふとそう思いました。未来からいまを振り返ってみると、「あのころは激動の時代だった!」とか言っているのかもしれませんね。

Google ChromeとIE8の類似性

Google ChromeGoogle Chromeに搭載されている機能で、IE8の新機能と同じようなものがあります。

例えば以下。

●ブラウザ全体がクラッシュしない!(タブごとにプロセス化)

●ドメイン・ハイライト(アドレス入力部分で嘘のアドレスを見つけやすい)

●ブラウザに履歴などを残さないモード

Google Chrome:シークレット・ウィンドウ

IE8(ベータ):InPrivateブラウズ

後出しはグーグルの方だから、グーグルが「真似た」ということでしょうか。

表示の速さは同じくらいか、IE8の方が早いんじゃないかという印象を受けています(ちゃんと計測しないと分からないですが)。

やっぱり便利さではIE8と思うんですけど、Google Chromeのシンプルさはいいですね。

しかしGoogle Chromeはまだ実用レベルじゃないですね……。ブログが書き込めない……。

プラットフォームとしての「Google Chrome」

Google Chrome9月2日(米国時間)にグーグルが新しいWebブラウザ「Google Chrome」を提供開始しました。確かにGoogle Chromeはブラウザですが、オフラインでWebアプリケーションを実行できる機能(Google Gears)が標準で組み込まれているという意味で、長く噂されてきた「The Google OS」プラットフォームとして見る方が適切かもしれません。

グーグルによると「ウェブは、シンプルなテキストのみのページばかりが提供されていた時代から、リッチでインタラクティブなアプリケーションへと進化を遂げています。特に、今本当に必要とされているのは、単なる「ブラウザ」ではなく、ウェブページやアプリケーションに対応した最新の「プラットフォーム」なのだ」そうです。つまり、Google ChromeはWebアプリケーションのためのプラットフォームとして作られ、今後、Windows OS プラットフォームに対抗することを目指しているように見えます。

Google Chromeは、Mac OSよりも、Windows Vista/Windows 7よりも、安価なプラットフォームとしての地位を目指すための第1歩なのかもしれません。Windows XP Home EditionにGoogle Chromeを乗せた超安価なPCが販売され、「それだけで普段の業務(SaaSアプリケーション)や、メール、ブラウジングといった日常の操作は十分でしょ」というユーザーが増え、それがデファクト・スタンダードになることもあり得ます。これは、マイクロソフトにとって最悪のシナリオだと思います。

もちろん、マイクロソフトもIE8でブラウザを改善してくるし、こういったシナリオは現実のものには、なかなかならないとは思います。ですが、ブラウザ、インターネット、クラウド、これらの分野の競争がますます熾烈になってくるのは確実なんじゃないでしょうか。

「関連記事」を自動生成するサービス

relatedarticlesicon.gifWebサイトの価値を計る指標として「直帰率」(=1ページ見ただけでサイトを離れる閲覧者の確率)がありますが、実際にWebサイトの訪問者に次々とページを読んでもらうには、自サイト内のほかのページへの誘導が欠かせません。そこで使われるのが「関連記事」の一覧です。

関連記事の一覧とは、現在のページに関連性の高いページへのリンクが一覧表示されるものです。検索エンジンなどから「この情報を知りたい」という明確な目的を持ってやって来た閲覧者に、まさにその目的に関連する記事の一覧が提示されることになり、閲覧者にとっても有益で、サイトで情報を公開する人にとっても(PV面で)良い手法だと思います。

このような関連記事は手動で作成することも可能ですが、労力を省くために機械で自動生成するサービスがいくつかあります。

そこで、現在、世に出ている「関連記事生成サービス」をいくつか紹介します。

続きを読む

メソッドのシグネチャ(signature)とメソッドの構文(syntax)の違い

signature syntaxメソッドの「シグネチャ」(signature)という用語は、メソッドの定義を示す際によく使われる用語ですが、厳密な意味を考えると、この用語を使用する際には注意を要します。シグネチャは、プログラミング言語設計の用語で、言語ごとに明確な意味が定義されているからです。その意味を正しく把握したうえで「シグネチャ」という用語を使う必要があるのです。

一方の「構文」(syntax)という用語は、より汎用的な意味で使われます。単に「ソース コード上にどのように文字が配列されているか」という表記方法を表しているだけなので、プログラミング言語ごとに意味合いが異なるわけではありません。

従って、無難にメソッドの定義について言及したい場合は、「メソッド構文」という用語を使った方がよいと思います。

以下ではメソッドの「シグネチャ」についてもう少し詳しく解説しましょう。

続きを読む