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
来年も作りたい!ふきのとう料理を満喫した 2024年春の記録 春は自炊が楽しい季節 1年の中で最も自炊が楽しい季節は春だと思う。スーパーの棚にやわらかな色合いの野菜が並ぶと自然とこころが弾む。 中でもときめくのは山菜だ。早いと2月下旬ごろから並び始めるそれは、タラの芽、ふきのとうと続き、桜の頃にはうるい、ウド、こ…
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く