windowsでrails使ってみる

windows用のrailsインストールパックがあります。

http://railsinstaller.org/

IDEはAptana3を選択。

http://aptana.com/

まずは両方のインストラーを起動してセットアップ。
終わったらプロジェクト用の領域作ります。
適当なパスにワークスペース用のフォルダ作成。

ワークスペースディレクトリに移動してrailsインストール。

$ gem install rails

上記だと最新バージョンを自動的にひっぱってきます。他のバージョンを使いたい場合は以下のように指定する。

$ gem install rails --version 3.1.0

複数ヴァージョンインストールしている場合は以下でデフォルト指定できる。

$ rails _3.1.0_ --version

rails起動すると依存gemのインストールが始まります。

$ rails server

足りないものは個別で追加。

(例)

$ gem install bundler
$ gem install rake
$ gem install mysql2

#なんかrails serverだけだと基本ライブラリがないからやっぱbundler入れて、bundle install走らせた方がよさそう。
(gem installでrails入れて、bundler入れてって、rails installer意味ない気がするんだが・・・。)

新規プロジェクトを起こす。

$ rails new demo

これで使えるようになりますた。(どうしてこうなった)→4/25追記 列車本に合わせてrailsのバージョン落としたからですね。。w

ゲームに魂奪われちゃった人たち

ジェーン・マゴニガル 「ゲームで築くより良い世界」

「ブラウザ三国志 回」

「ゲーム産業の業態変化 from SQUERENIX」

「稲船敬二氏は,何を思い,何を考え,何を目指してカプコンを辞めていくのか。渦中の氏に直撃インタビュー」

[GDC 2012]あの時ほど嬉しくて,すべてに感謝したいと思ったことはありません――和田康宏氏が語る「牧場物語」ができるまで

真・googleカレンダーとスプレッドシートを連携させる

すったもんだのあげくようやく表題ができるようになりました。
参考にしたものは以下。

Google Apps Script = GoogleDocs版javascript

Google Apps Scriptガイド
http://code.google.com/intl/ja/googleapps/appsscript/guide.html

Google Apps ScriptでスプレッドシートからGoogleドキュメント以外のサービスにアクセスする
http://codezine.jp/article/detail/5064

〜一通り作ってみての追記〜

スクリプト自体は簡単にできるんだけど、処理にコストがかかるとgoogleサーバにタイムアウトで蹴られてしまいます。
今回書いたスクリプトでは、スプレッドシートオブジェクト(ライブオブジェクトではないけど異様に重い)の配列切り出しと書き込み処理をチューニングすることで対処しました。

取得部分でスプレッドシートオブジェクトから必要な値だけを配列に切りだす。

  var doc = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = doc.getSheetByName(sheetName);
  var cellValues = sheet.getRange(targetRange).getValues();

書き込みは1行1行書き出してると目視できるくらいもっさりした処理になります(スローモーションを見ているようでワロタ^^;)
二元配列を生成して一回で終わらせるとスマート。

  for(var i=0 ; i<cellValues.length ; i++){
    var tmpvalue = new Array(1);
    tmpvalue[0] = cellValues[i];
    values[i] = tmpvalue;
  }

  var doc = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = doc.getSheetByName(sheetName);
  var all = sheet.getRange(targetrange);
 
  all.setValues(values);

googleカレンダー改めgoogleタスクとスプレッドシートを連携させる

カレンダーはなかったわけだが、タスクAPIは用意されていたので再びチャレンジ始める。

Google Tasks APIガイド
http://code.google.com/intl/ja/apis/tasks/v1/getting_started.html

残念ながらjavascriptのクライアントライブラリは用意されてない。
なんでrestをjavascriptで直接使う。

tasksAPIリファレンスガイド
http://code.google.com/intl/ja/apis/tasks/v1/reference.html

RESTを直で扱ったことないので他のサンプルを参考にする
http://blog.livedoor.jp/minoaw/archives/1452381.html
http://japan.internet.com/developer/20091225/26.html


1/17 ついに大きな勘違いに気が付く。スプレッドシートスクリプトXMLHttpRequestメソッドが使えない→もしかして(ブラウザベースの)javascriptじゃねくね?→見るべきガイドはgdata APIではなくgoogle APP scriptであることに気が付く!!

googleカレンダーとスプレッドシートを連携させる

スケジュール管理に使えないかと思って、googleカレンダーに入力したらgoogleスプレッドシートで集計するようなAPを思いつく。

とりあえず調査から。

まずGoogle Data ProtocolのOverView
http://code.google.com/intl/ja/apis/gdata/docs/developers-guide.html

この辺はさらっと。気になったのは以下。
・バージョンに1.0と2.0があって今は2.0を推奨しているけど、HTTPでやるならデフォルトは1.0だから2.0を指定せよ
・サービスによっては部分参照、部分更新が可能(逆に言うと一括取得、一括更新しかできないサービスもある)
・Etags使って並列処理するならもっと他のドキュメント読んでくれ

次にカレンダーAPIのdevelopers_guide。
googleドキュメントのスクリプトに記述するのでjavaScriptを選択します。
http://code.google.com/intl/ja/apis/calendar/data/1.0/developers_guide_js.html

日本語訳がありました。素晴らしい!と思ったら旧バージョンのAPIらしい。。

ただ、JavaScriptはこのバージョンしかないので使うしかない。
3.0だとJSONフォーマットらしいが残念。
(なお、1.0、2.0の廃止は2014年11月17日)

http://onlineconsultant.jp/pukiwiki/?Google%20Data%20API%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%80%80%E3%82%AB%E3%83%AC%E3%83%B3%E3%83%80%E3%83%BC%E3%81%AE%E6%83%85%E5%A0%B1%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8BJavascript

ざっとチェックしてsample動かしてみたところ、カレンダーはqueryが多彩で特定のイベントだけ取得するような部分取得が可能なようでほっとした。

1/16 スプレッドシートにはcarenderAPIが用意されていないことが判明。
お蔵入りになりました。

チャンチャン