Google Apps Script を試す

I/Oでの目玉って、ほんとはWaveなんかよりこれでしょ。Waveが流行るの待ってたら少なくとも1年以上かかるでしょ。ぼくは今すぐそこにあるものが大好きです。

案外はやくうちのApps(Standard Edition)でも有効にしてくれました。これだけのためにPremierでもいい、とおもったくらい。

Hello World的なもの

コード
function hello() {
  Browser.msgBox("Hello, World");
}
結果

入力プロンプト

次は入力プロンプトを出してみる

コード
function helloWithPrompt() {
  var name = Browser.inputBox("Enter your name");
  Browser.msgBox("Hello, "+name);
}
結果


単純なんだけど、これ、サーバサイドJavaScriptですよ。普通にWebアプリを書いていると、プロンプト出したらリクエスト処理は終わっちゃうのですが、これはつまり継続(Continuation)が実現できてるってことですよね。むかしからRhinoでContinuationがあるのは知ってましたが、実際にホスティングされてるのを触ったの初めて(Apps ScriptsがRhinoかどうかはしらないけど)。まるでクライアントアプリ書いているみたい。これはいい。

カスタム関数

単純に引数受け取って返す関数を作ればいい

コード
function shohizei(n) {
  return Math.floor(n*1.05);
}
結果


CSVでアクセス

上で作成したスプレッドシートを公開して、CSVでアクセスしてもちゃんと値がとれるかどうか確認してみる

http://spreadsheets.google.com/pub?key=rwJ9YlGPGQvLfJpk7g_G1kA&output=csv

はい、これで絶対にサーバ側で動いていることがわかった。

無限ループ

ちょっとおこられそうなことをしてみる。想定ではSandboxが監視して途中で止めてくれるはず。

コード
function infLoop() {
  var a = [];
  while(true) a.push('evil!');
}
結果

予想通り。Maximum Instruction Countってどれくらいなんだろう?どっかのFAQに書いてあるかな?



とりあえずこんなもんにしておく。やっぱすごいとおもいます。