マッシュアップの更なる可能性(fabicon2dots、国際化)

ネット上にはさまざまなAPIが公開されて、それらを組み合わせたサービスもいろいろ出てきている。それぞれのAPIは学習が難しくない物が多いが、本格的に利用するとなるとある程度まとまった時間を確保して調査する必要があるのが現状。

それぞれのAPIは簡単にRESTやJavaScript等で利用できる物が多い。しかしドキュメントもバラバラだし利用方法もサービス毎に違うのだから、それを調べるのに時間がかかるのは当然だと思う。しかしこれらのAPIのドキュメントや利用方法がもっと統一されれば、更にマッシュアップされたサービスが構築される速度が加速されるはず。PerlのCPANやRubyのGEMの様に、Webに公開されるサービスが簡単に検索できて利用できたらいいなと思う。そうなればマッシュアップは今後もっともっと、カジュアルに利用できる様になるはず。

カジュアルなマッシュアップが加速されるために、統一的な利用方法が作られるだけではなくて、マッシュアップされるサービスの構築スピードも進化する必要があるはず。
この構築スピードという点で、secondlifeさんが最近公開したサービスが面白い。彼は2つのサービスを最近立て続けに公開した。

そのサービスの1つが、指定したURLをアクセスした時に表示されるfabicon(ブラウザのURLの左に出てくる小さいアイコン)を、dot’s風の画像に変換するサービス。

favicon を dot’s ぽく変換する – favicon2dots
http://favicon2dots.com/

このサービスはRubyの画像処理ライブラリRMagickによって作られている。

二つ目はfavicon2dots公開の少し前にリリースされたPolaroizeというサービス。これもRMagickによる物。しかも驚きなのが、RMagickに出てくるサンプルをそのまま応用した所。見つけたネタをすぐサービスにして公開してしまう姿勢は見習うべきだと思う。あのサンプルはRMagickのマニュアルに出てくるのだけど、これを使わない人は素晴らしい画像の加工ができる事すら知る事ができないのだし。fabicon2dotsの様なサービスもRMagickで作れる事を示してくれた。こういうちょっとしたサービスが短期間に続けて公開される事の意義が大きいと思う。

Polaroize – ポラロイド風に画像を加工するサービス
http://lab.rails2u.com/polaroize/

更に国際化手法も参考になる。
Rails のためのものぐさな Web アプリケーションの国際化手法

これらのサービスはSOAPやRestのAPIのドキュメントは公開されていないが、もしこういうサービスが統一的な方法で利用できたら素晴らしいと思う。そう思いませんか?もちろん、サービスがプログラムから利用された場合はAdSence等の広告収入があてにできるわけでもなし。こういう問題は解決しないといけないし難しい問題だけど。サーバの能力も通信コストもまだまだ下がって行くはずなので、今からこういう観点でサービスを準備していくのも悪くは無いはず。気がついたらこういうのが当たり前、という事自体が最近はあたりまえになっているから。というより、そのペースが最近早くなっていて、それは誰もが感じている事だと思う。

TeraMashupという、仮想のライブラリ、ライブラリの統合サイトを考えてみた。
TeraMashupにはデベロッパがAPIを登録し、各言語のライブラリを使って簡単にそれらのAPIにアクセスするための補助をする。ドキュメントもこのサイト上で検索確認、またはAPIによって取得できる。

Rubyによる上記のsecondlifeさんのライブラリを扱うにのは、こんな感じ。

require 'teramashup'
include TeraMashup# ローカルイメージを自分のサーバにアップロード。

# Rails::someeda はTeraMashupサーバに登録された自分のネームスペース。
# このネームスペースに server_a の情報を登録しておく。
#
# 下の例ではローカルファイルの /usr/someeda/mypicture.jpg を
# server_a のimagesにアップロード。
image = Upload('/usr/someeda/mypicture.jpg', 'Rails::someeda/server_a/images')
polaroize_image = Rails::secondlife::Image.polaroize(image)
image.save!

google_dots = Rails::secondlife::Image.fabicon2dots('http://www.google.com')
google_dots.save('/usr/someeda/google_dots.png')

他にも認証とかいろいろ必要だけど、とにかく簡単にカジュアルに利用できるといいなぁと思う。SOAP関連で同じ様な仕組みがありそうだけど、ちょっとドキュメント読んだだけで扱えるレベルの物はまだなさそう。Webの技術を使ったAPIだから、もちろん各種言語から利用可能。

コンピューティングパワーや転送料金はAmazon EC2で安く押さえるとか、もしくはGoogleが無料で提供してくれたら本格的になっていいかもしれない。