2009年09月27日 Google App Engine の管理画面にログを出力する GAEでは基本的にローカルファイルへの書き込みはサポートされていないようだ。ではログへの記録はどうするのかというと、管理画面の Main > logs にログの表示画面がある。 では、ここへ情報を出力するにはどうすればよいのか?というと、appengine-jrubyを使ってGAEのログの仕組みを利用することができる。 GAEでWebアプリを動かすための設定に加えてメール用に追加が必要な宣言は require 'appengine-apis/logger' だけ。 あとはアプリの最初の方で初期化して使う。Sinatra用にメソッドを書いてみた。logger = AppEngine::Logger.new get '/who' logger.info('誰か来ました。') end 管理画面に表示された内容
GAE on jRuby with Sinatra でやってみるよ 元ネタは Users Java API の概要 - Google App Engine — Google Developers で、こいつを jRuby 上で sinatra を使った場合どうやるのか? という話。 ポイントは 2点 Java のスタティッククラスを使う場合は import 文を使う Java の HttpServletRequest オブジェクトを取得する場合は、 sinatra の request オブジェクトの Hash に格納されている この二つを踏まえればあとはそのまま移植すれば良い。 Java のスタティッククラスを使うためには import する。そして、import の前に java を include する。あまり詳しく読んでいないので、おまじないとして考えておくw include Jav
2009年09月27日 Google App Engine からメールを送る appengine-jrubyを利用してのメールの送信は拍子抜けするくらい簡単だった。 GAEでWebアプリを動かすための設定に加えてメール用に追加が必要な宣言は require 'appengine-apis/mail' だけ。あとはメソッド一発で送信できてしまう。 AppEngine::Mail.send( 'FROMアドレス文字列', 'TOアドレスの文字列かTOアドレスの配列', 'タイトル文字列', '本文文字列(HTMLメールの場合はnil)', {送信オプション} ) appengine-apisのリファレンスによると送信オプションで使用できるのは下記の通り。 :atttachments メッセージと共に送信する添付ファイル。{“ファイル名” => “データ”} というハッシュか、 [[“ファイル名
appengine-jrubyを使うと、GAE/JでJRubyが簡単に使えるらしいので、Twitter botを書き直してみたが、はまりどころ満載だったので、メモしておく。 appengine-jrubyで簡単GAE/JRuby開発 - しばそんノートがまとまっているので、その通りにやると、 hpricotが動かない。 appengine-jrubyはgemをWEB-INF/lib/gems.jarにまとめてしまう。hpricotは自分でjruby版パッケージをビルドしないといけないのだが、 git clone git://github.com/whymirror/hpricot.git cd hpricot jruby -S rake package_jruby appcfg.rb gem install pkg/hpricot-0.8.257-jruby.gemしただけでは、gemに含
少し前のエントリで、GAE/JRuby上でRackアプリを動かす手順を書きました。 Google App Engine上でRubyアプリを動かす手順 - しばそんノート このときの手順は、Java SDKをインストールして、GAE SDKをダウンロードして、jruby-complete.jarをコンパイルして…と、やや煩雑なものでした。この当時はおそらくこれが一般的な手法だったのではないかと思います。 しかし、今や時代は変わりました。今GAE/JRubyでRackアプリを作るのに必要な作業は、たったひとつのgemのインストールだけです。 GettingStarted - appengine-jruby - Getting Started with JRuby on Google App Engine - Project Hosting on Google Code 有志によってGAE/JR
先日、Amazonの価格をチェックしてメールでお知らせするWebサービス「マケプレ・フラグ」を公開してみた。 このWebサービスは、sinatra on GAE/JRuby という構成で作ってあるのだけど、実は4、5日程度でひととおりの機能が動作するくらいになっていた。 別にGAEバンザイと言いたい訳ではなくて、本題はここから。 GAEって制限が多くあるので、これを回避するのが結構大変。さらに「マケプレ・フラグ」は価格情報を得るためにAmazonのProduct Advertising APIを使っていて、実はこちらにも制限がある。 GAEは30秒以内にレスポンスを返さなくてはいけない 利用者が商品検索して30秒も待ってくれる訳はないので、それは問題にならない(というより30秒も待たせるならGAEに関係なく設計を見直すでしょ)。 問題は、cronで実行するようなバッチ処理も同様の制限がある
手元の端末からGAE production環境のデータストアに接続する GAE/pythonのSDKについているDatastoreモドキ(datastore_file_stub)は実に機能が貧弱で、トランザクションの衝突を手元でシミュレートしたりできない。これは本物のDatastoreの理解には割と困る。 で、本番環境のDatastoreに手元のコンソール(Pythonの対話実行環境)から繋ぎたいよね、と誰しも思うはずだ。思うよね。 この方法はGAE Python SDKに用意されている。自分で作ってみようと思うと色々面白いけどけっこう大変だし完璧に車輪の再生産なのであまりやらない方がいい。(と思う。自分は後悔した。) ただしWebのドキュメントには使い方がないし、SDK内にもない。該当のスクリプトのコメントを見ればわかるがそれもアレなので、ここに一応書いておく。ていうか「remote_a
織田信長 ぼちぼち、元気にやっています。少し薬にも慣れた...んかなぁ。相変わらず食べられないけど。朝、指がこわばって文字なんて入力できなかったけど、それはほぼなくなった。関節もどこも痛くない。薬効いてきたんやろな。 で、ブログを書こうと言う気がまた起きてきた。 …
Google Code Archive - Long-term storage for Google Code Project Hosting. なんかレビューを待ってる人がいるとか、いないとか。あんまり使い込んでみてはないけどとりあえず紹介。 これを使うことで何が嬉しいか GAEのDjangoで使えなかった以下のものが使えます。(他にもあると思う contenttypes(GenericRelationはまだ使えない) auth admin flatpages generic view(ragendja) manage.py 一番大きな点は、authとadminが使えることだと思います。 adminはDjangoの中でも重要な機能なので、これが使えることで開発や運用はかなり楽になります。 contenttypesではまだGenericForeignKeyは使えないそうですが、これも汎用の
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く