Hi! Welcome...

You need to add content in the "About You" field on the Mainstream Options tab in the WP backend.

09 4月 2008 ~ 0 Comments

Google App Engineを試す(1)

Google App Engineのプロジェクトページ
続くのかどうかは不安ですが。
とりあえずPythonもよくわかっていない(import文があること、インデントが重要ということくらいしか分からない)状態ではじめてみるのですが。Google App Engineのリファレンスを参考にすると、次の機能が使えるようです。

ログインシステム
データストア
テンプレートエンジン

そこでゲストブックを参考に、機能を付け加えてみました。
まずありがちなHello Worldです。
適当な場所にgoogleappsというディレクトリを作成します。
$ mkdir googleapps
その中にapp.ymlと言うファイルを作成します。
$ cat googleapps/app.yml
ファイルを編集します。内容は以下のようになります。

application: moongift-sample
version: 1
runtime: python
api_version: 1
handlers:
- url: /.*
script: helloworld.py
ここで、application: の後はGoogle App Engineで取得した名称になります。Scriptは実行するスクリプトファイル名です。後はgoogleapps/helloworld.pyを作成し、次のように記述します。
print ‘Content-Type: text/plain’
print ”
print ‘Hello, world!’
これで実行すると、Hello, World!が出るはずです。

$ dev_appserver.py googleapps
INFO 2008-04-09 08:44:23,960 appcfg.py] Checking for updates to the SDK.
INFO 2008-04-09 08:44:24,451 appcfg.py] The SDK is up to date.
INFO 2008-04-09 08:44:24,485 dev_appserver_main.py] Running application moongift-sample on port 8080: [...]

08 4月 2008 ~ 0 Comments

GoogleからAmazon EC2/S3/SimpleDB対抗プロジェクトが登場「Google App Engine」

Google App Engineロゴ
 
GoogleからAmazonのEC2/S3/SimpleDB対抗プロジェクトとでも言うべきGoogle App Engineが登場しました。これはPythonベースのWebアプリケーションを開発し、それを動作させる環境を提供してくれるWebサービスです。
利用はまずSDKをダウンロードするところから始まります。現在ベータ版のため、ユーザ登録後にメールでお知らせがくる形式になっています。SDK自体はWindows、Mac OSX、Linuxやその他の環境向けのパッケージが提供されています。Google Apps Engine自体はオープンソースのプロジェクトになっています。

SDKダウンロードページ
 
そして、SDKをインストールし、さらにユーザ登録も完了したら開発開始です。
開発はPythonを使って行います。YAMLを使って設定を定義して、ローカル環境で動作確認ができます。その結果をコマンドベースでGoogle App Engineへ投げれば、Google上で動作させられるようになります。
注目すべきはGoogleのデータ管理システムであるBigTableを利用できる点です。データベースを定義し、GQLと呼ばれるSQLに似た言語を使ってデータを取得、更新、作成できるようになります。
Pythonということで若干敷居が高い感もありますが、これを機に習得してみるのも良いかもしれません。なお、フレームワークはDjangoとのことです。
個人的にはベータサービスの内にどれだけの言語に対応してくるか、またサービスの機能が増えていくかが気になります。例えばRuby/RailsやPHP、Perlといった言語への対応や、独自ドメインの対応などが気になります。また、ImageMagickや特殊なライブラリを利用している場合にどう対応してくるかも気になるところです。これらが解決してくると、相当面白いことになりそうです。
 
Google App Engine – Google Code
 http://code.google.com/appengine/

04 4月 2008 ~ 0 Comments

デジタルスクラップブック「Tumblr API」

動画も画像もテキストも、何でもかんでも取り込めるのがTumblrだ。マイクロブログのブームに乗って登場したこのサービスは、ブログとはまた違う、手軽なスクラップサービスとしての地位を築いている。

Tumbr APIのトップページ
 
そんなTumblrのサービスを十分に活用するのが「Tumblr API」だ。

03 4月 2008 ~ 0 Comments

Amazon EC2を使ってWebサービスを公開する「準備編」

開発したWebサービスをどこで公開するか、これが意外と悩ましい。選択肢としては

共用サーバサービス
VPSサーバサービス
専用サーバサービス
自宅サーバ

などがあると思う。体感的には共用サーバは0〜5,000円/月、VPSは5,000〜20,000円/月、専用サーバは8,000〜100,000円/月くらいだろうか。自宅サーバはもちろん月額費用はかからないが、初期のサーバ代金、月々のネットワーク費用+電気代、熱対策、障害時の対応などを計算しておく必要がある。個人的には割に合わないと感じている。
外部のリソースを使うサービスでは、大抵初期費用がかかってくる。その後の費用は月額のみだが、品質や障害時の対応などで各社ばらつきがある(それが金額に反映されるのだが)。多少大きめのサービスを構築しようと思ったときには、これらでは役不足になることも多い。
特に複数台の構成(Web + App + DBなど)を考えると、専用サーバサービスであってもオプションを使う必要があったり、そもそもオプションがないこともある。そうしたことを踏まえると、価格の割に十分でない気がしている。
それではローカル開発後の公開までの道のりで断念しかねない。そこでAmazon EC2の利用を考えたい。Amazon EC2を使えば、仮想サーバでありながら十分なパワーを備え、Amazonレベルのサービス品質を誇るサーバを短時間で手に入れられる。まず今回はAmazon EC2を利用する前までの準備を説明したい。
アカウントの登録
まず最低限の準備としてAmazon EC2のアカウントを取得する必要がある。Amazon EC2はAmazon Elastic Compute Cloudの略で、仮想サーバを使ったルート権限のあるホスティングサービスだ。有料のサービスとなっており、利用にはクレジットカードが必要だ。登録はここから行う。

Amazon EC2のトップページ
 
次に気になる料金体系だ。
インスタンス料
インスタンスは次の3つが用意されている。

Small 1.7GB / 1CPU / 160GB HDD / 32bit ($0.1/時間)
Large 7.5GB / 2CPU / 850GB HDD / 64bit ($0.4/時間)
Extra Large 15GB / 4CPU / 1690GB / 64bit ($0.8/時間)

CPUは1.0〜1.2GHzのXeonとなっている。
データ転送料
データ転送料は次の通り。

$0.1/GB(受信)
$0.18/GB(送信)※ 最初の10TB/月まで
$0.16/GB(送信)※ 次の40TB/月まで
$0.13/GB(送信)※ それ以上

ということで2種類の料金が発生する。データ転送料は、よほど巨大なデータ(動画など)を連続して流さない限り問題はないだろうが、画像などを多用する場合は注意しておきたい。
Smallインスタンスを一ヶ月間使用した場合、$73/月($0.1×24時間×365日÷12ヶ月)かかる計算になる。後は転送料により料金が前後する。同様にLargeインスタンスを使った場合は$292/月($73×4)かかる計算になる。これが高いとみるか、安いとみるかは人によって違うだろうが、保守や初期費用を考えると十分ペイできると思われる。
アカウント&証明書
アカウントを取得したら、重要なIDに関する情報をメモしておこう。それは右上のメニューの「AWS Account Activity」と「AWS Access Identifiers」に表示されている。

メニュー。マウスを重ねると表示される。
 

アカウントID:数字12桁
アクセスキーID:数字/英大文字20桁
アクセス秘密キー:英数字40桁

AWS Account Activityには以下の場所にアカウントIDが記載されている。

モザイク処理している箇所に数字が記載されている
 
AWS Access Identifiersには次の箇所にアクセスキーID、アクセス秘密キーが記載されている。

アクセス秘密キーはクリックして表示される。
これらは忘れないようにしよう。次に必要なものをダウンロード&インストールする。初回の場合は証明書が作成されていないと思われるので、Create Newから作成する。

X.509証明書およびX.509秘密鍵(AWS Access Identifiersのページ下部)
専用のJavaツール(ここからダウンロード可能)
Java

AWS Access Identifiersの下の方に証明書関連のリンクがある。
 
次はダウンロードしたツールを配置していく。ホームディレクトリにフォルダ(例:ec2-keys)を作成し、その中に先ほどのX.509証明書ならびにX.509秘密鍵を入れる。 そして、環境変数に各種設定を行う。Windowsであれば、

EC2_PRIVATE_KEY:X.509秘密鍵のパス
EC2_CERT:X.509公開鍵のパス
Path:Javaツールのパスを加える

になる。LinuxやMac OSXであれば、
export EC2_HOME=~/ec2-keys
export PATH=$PATH:$EC2_HOME/bin
export [...]

28 3月 2008 ~ 0 Comments

Amazon EC2がバージョンアップ。静的IPアドレス割当と物理的サーバ位置を指定可能に

Amazon EC2が新しいサービスを発表しました。静的IPアドレスに関するElastic IP Addressesと、物理的なサーバ位置に関するAvailability Zonesです。

Elastic IPはアカウントに対して紐づけられた静的なIPアドレスで、好きなインスタンスに対して割り当てることができます。これを使えばDynamicDNSを使って更新を通知することがなくなります。インスタンスの数によって、IPアドレスの数も変わるようです。
自分に割り当てられているIPアドレスを知るのは「ec2-allocate-address」というコマンドです。API Toolsもバージョンアップしているので、ダウンロード&置き換えが必要です。
次にAvailability Zonesです。これは仮想的であるために物理的な場所によらないAmazon EC2ですが、同じサーバに仮想サーバがあった場合、一台のサーバの不具合で複数のインスタンスが影響を受ける可能性があります。また、これはデータセンターレベルでも同様です。それを防ぐためにAvailability Zonesを使って物理的な場所を指定してやることで、電源やネットワークの冗長性をはかることができます。
このAvailability Zonesを知るのが「ec2-describe-availability-zones」です。現在、このコマンドを実行すると次のように返ってきます。

$ ec2-describe-availability-zones
AVAILABILITYZONE us-east-1a available
AVAILABILITYZONE us-east-1b available
AVAILABILITYZONE us-east-1c available

これを見る限り、現在は東側に1つの拠点、3つのゾーンがあると言うことでしょうか。以下は今回のバージョンアップによって追加されたコマンドです。

ec2-allocate-address
ec2-associate-address
ec2-describe-addresses
ec2-describe-availability-zones
ec2-disassociate-address
ec2-release-address

以前にあったAmazon S3の障害のようなケースを防ぐための手段になりそうです。
via [...]

27 3月 2008 ~ 0 Comments

Yahoo! Pipesをブログのサイドバーに「Badges for Yahoo! Pipes」

手軽にマッシュアップを構築できる便利ツール、Yahoo! Pipesに新たな魅力が加わった。実際、Yahoo! Pipesというと、技術向けのサービスになってしまっていた感がある。結果をRSSやJSONで出力し、それを加工してマッシュアップするようなイメージだ。

新機能の一つ、イメージ。サムネイルと拡大画像がスライドショーのように表示される。
 
だが今度の機能でYahoo! Pipesの新たな活用法が見えてくる。Badges for Yahoo! Pipesと呼ばれる機能によって、出力形式にマップ、リスト、イメージという三種類が加わったのだ。

27 3月 2008 ~ 0 Comments

Amazon S3のWebベースフロントエンド「S3Browse」

Residentof.netにて、Amazon S3をWebベースで管理するフロントエンドのWebアプリケーションを紹介しています。

S3BrowseはWebベースのAmazon S3フロントエンドだ。便利なことに、ユーザ登録なしでも利用することができる。
Amazon S3にアクセスするためのIDを入れなければならないという問題があるが、入ってしまえば便利に扱える。Bucketの一覧やその中に入っているファイルの一覧、アップロードやダウンロード、削除などの操作が可能になっている。

Amazonの有料Web APIにはフロントエンドがないものが多いので、フロントエンドを提供するマッシュアップは需要は多そうです。実際、使ってみると便利なサービスです。
 
via Amazon S3フロントエンド「S3Browse」 [ Resident of Net ]
S3Browse
 http://s3browse.com/

27 3月 2008 ~ 0 Comments

MySpaceの開発者向けサイト日本語版「MySpace Developer Platform」

Facebookの勢いに押されて最近はあまり名の聞かないMySpaceですが、OpenSocialの流れに乗って挽回につとめています。そんなMySpaceは日本語圏向けのサービスも提供しているのですが、開発者向けサイト「MySpace Developer Platform」も日本語版がローンチしました。

MySpace Developer Platformのトップページ。コミュニティなどは英語が目立つ
このサイトではMySpaceのデータを使ったウィジェット開発をするための情報を提供したり、コミュニティで質問したりすることができます。もちろん、OpenSocialを利用したアプリケーションをテストすることもできます。
日本では最大手のmixiもOpenSocialへ参加を表明しているので、将来的にそちらへも対応できるアプリケーションを開発できるという利点は大きいと思われます。自社サービスと連携するガジェットや、全く新しい価値を提供するガジェットなど、SNS向けのアプリケーションは新しい可能性を秘めていると思われます。ぜひ開発に取り組んでみてください。
MySpace Developer Platform
 http://developer.myspace.com/community/

27 3月 2008 ~ 0 Comments

Google Mapsと連携できるルート検索API「Orkney Web Routing Service API(Orkney WRS API)」

地図を使ったサービスは数多い。Google Maps、Yahoo! Mapsなどが有名だ。オンラインとオフラインを位置情報でつなぐのにも地図サービスはちょうどいい。世の中のマッシュアップの大半はGoogle Mapsを使っているのも納得できる。

そんな地図ではあるが、色分けはされているものの、ただ表示されているだけというのが殆どだ。これでは面白みが足りない、そんな地図にひと味加えてくれるのがこのWeb APIだ。
Orkney Web Routing Service API(以下Orkney WRS API)はある位置からある位置における最短ルートを教えてくれるWeb APIだ。これまでにないユニークなものになっている。

26 3月 2008 ~ 0 Comments

ソーシャルサイトを使ってつながるソーシャルサービス「FriendFeed API」

ソーシャルサイトはWeb2.0(?)の流れに乗って、一気に増えた。del.icio.usあたりからはじまって、flickr、Digg、Twitterと数多く存在する。そんなソーシャルサービスを多数使いこなしている方におすすめなのが「FriendFeed」だ。

FriendFeedのトップページ。ポップなデザインだ。
FriendFeedは各サービスのユーザIDやフィードを登録することで、自分が使っている各ソーシャルサービスのデータをFriendFeed内に集約することができる。また、友人を登録することで、友人の使っている各サービスの状態も簡単にチェックすることができるようになる。
そしてFriendFeedはWeb APIを公開している。それがFriendFeed APIだ。

MOONGIFTネットワーク。こちらもぜひご覧ください。
MOONGIFT
Open Service
Rails 2.0
Resident on Net
iPhone最適化
リーンソフトウェア
MarketPedia
Producing Web
Cool Coding