Code Archive Skip to content Google About Google Privacy Terms
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 メッセージと共に送信する添付ファイル。{“ファイル名” => “データ”} というハッシュか、 [[“ファイル名
以下の組み合わせで動作を確認しています jruby-1.4.0 rails 2.3.2 appengine-java-sdk-1.3.0.zip appengine-apis-0.0.11.jar (0.0.12 でもメール受信部分の機能は入っていないっぽい) GAE/J でのメールの受信の流れは以下のようになっています。 (string)@(appid).appspotmail.com 宛へメールを送る 次のURLが呼び出される http://(appid).appspot.com/_ah/mail/(string)@(appid).appspotmail.com ↑ の URL に関連付けられた method が呼び出される TomCat(?) の HttpServletRequest req の req.getInputStream() から受信したメールを読み込む ※ (strin
こんにちは。typesterの陰謀によりVimmerはモテないというデマが流れておりますが、残念ながらそれがデマだということを身をもって証明できないでいるVimmerの外村です。 先日、お悩み相談の記事がホットエントリーに入ったら彼女ができるという噂が立ち、何を間違えたかホットエントリーに入ってしまったのでどうしようかと思ったのですが、プログラマたるもの問題があればプログラムで解決すべきだろうと考えました。 というわけで彼女を作ってみました。どういうものかというと、 僕だけに定期的につぶやく 僕のリプライだけに反応してリプライを返してくれる まさに僕だけのボット彼女です。今回はこれをGoogleAppEngine+JRubyで実装したので、環境をつくるところか実際に動かすところまで説明します。 1. 環境をつくる まずはGoogleAppEngineのアカウントがないと始まらないので以下か
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
http://code.google.com/appengine/docs/memcache/ はじめに Memcacheサービスは君のアプリケーションに複数のアプリケーションからアクセス可能でハイパフォーマンスなオンメモリkey-valueキャッシュを提供してくれる。Memcacheは一時データのようにデータストアのような永続性やトランザクションが不要なデータや、高速アクセスのためにデータストアからコピーしておくようなデータに向いている。Memcache APIはDanga Interactiveのmemcachedと同様の機能を備え、互換性も保っている。 Memcache APIを利用すると次の理由からアプリケーションのパフォーマンスがあがり、データストアの負荷が軽減される: データストアへのクエリが劇的に減少する とても人気のあるページでもデータストア割り当ての使用量を削減する 高負
織田信長 ぼちぼち、元気にやっています。少し薬にも慣れた...んかなぁ。相変わらず食べられないけど。朝、指がこわばって文字なんて入力できなかったけど、それはほぼなくなった。関節もどこも痛くない。薬効いてきたんやろな。 で、ブログを書こうと言う気がまた起きてきた。 …
はじめに Twitterは140文字以下の短いメッセージをつぶやきあうシンプルなサービスです。新しいコミニュケーションの形として利用している人も増えてきました。 Google App Engine(以下 GAE)についてはご存知の方が多いと思います、Googleが提供するクラウド環境で、ある規模までのアプリなら無料で使えます。また、GAEは単なるサーバ環境の提供ではなくスケーラビリティと信頼性が得られるアプリケーションの実行環境です。しかし使える機能やデータ管理の方式はGoogleの提供するSDKに従う必要があります。 GAEは2009年4月からは、Pythonに加えJavaがサポートされるようになりました。本連載の第1回目でふれたように、Rubyの処理系にはまつもと氏の作った処理系(MRIと呼ばれます)以外にも、Javaで作られた JRuby という処理系があります。JRuby はJav
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く