たごもりすメモ

コードとかその他の話とか。

GAE

flex_remote_apiあらためremote_driverとなりました

GAE

前のエントリ appengine ja night #13 に行ってきたよ&しゃべってきたよ - tagomorisのメモ置き場 で書いたとおり flex_remote_api という名前をやめて remote_driver としました。 githubのリポジトリ名も変えたのでURLが変わってます。こちら。 tagomoris…

appengine ja night #13 に行ってきたよ&しゃべってきたよ

GAE

まあしゃべったのはBeerTalk最後の10分だけだけど。そして参加は2セッションめの途中(開始数分)からだった。あああ。 とりあえず主催の @kazunori_279 さん、および参加者のみなさま、楽しいイベントでした。また会場提供のニフティの皆様、ありがとうござい…

REPLでありつつ指定のコードをappspotで動作させる flex_remote_api_shell を作った

remote_api_shell は手元で書いたコードをすぐ動作させることができて、しかも本番環境に対してデータをすぐにput()できたりするので大変便利だと思うんだけど、いかんせん遅いのが問題。複雑なデータのメンテナンスをするときに便利なんだけど、対象のエン…

BPStudy 40 に行ってきたよ&しゃべってきたよ

GAE

最近勉強会だのハッカソンだのにいくつか行ったけど、書いてないなあ。反省。あちこちですごく面白い話を聞きまくってます。社内のTechMeetingでも一度しゃべったけど、それはプロダクトを公開できる状況になったらスライドもいっしょに公開できる……はず。で…

appengine の人気が現状微妙だという話。で?

GAE

発端は Google AppEngineについて思うところ - Togetterまとめ で、あんまり関わるまいと思っていたのについつい夜中になって口を出してしまった。それを機にぐちゃぐちゃと脳内に溢れてきたので、とりあえず整理のために書く。明日は寝不足だよチクショウ。…

AppEngine ja night #11 に行ってきたよ

GAE

いま見てみたら ajn10 のときはblogエントリ書き忘れてた……。まあいいや。YAPC二日目のあと、そのまま AppEngine ja night #11 に移動して参加してきました。感想などをつらつらと。ひとセッションで自分もしゃべりました。 なお遅刻したため最初のセッショ…

AppEngine ja night #9 に行ってきたよ

GAE

LL Tigerを出てお台場で行われたAppEngine ja night #9に行ってきた。行ってみたら会場入口で黒いスーツのおねーさんが受付をやってる。あれ、これajn#9だよね……!? 戦慄とともに入場。参加者は100%男性でした。あー、ajnだなー、みたいな。とりあえずビー…

appengine hack-a-thon #4でやること

GAE

忘れないうちに書いておこう。 dbモジュールのwrapper作成 db.put()などに機能を追加するwrapper 具体的にどんな機能かというとSlim3 Datastoreのputを読む - bufferingsを読んで「妬ましい!」と思うモノw 名刺の作りかた Kinko'sを利用してiPadユーザがい…

appengine ja night #8にいってきたよ

GAE

去る6月4日にappengine ja night #8 : ATNDにいってきました。Beer Talkに参加し、その後の二次会にも参加。飲みまくりの夜だった。ていうか最近銀座づいてます。週に3回くらい銀座周辺(有楽町、日比谷)行って飲んでるぞ。大丈夫か。大丈夫じゃないぞ。 内容…

simpleoauth-gae直しながらTwitter APIと戯れる

simpleoauth-gaeを前の記事の時点以降で実用するのにちょっとずつ直してるんだけど、あれこれあったのでメモ程度に書いておく。要約するとTwitter APIに対するapi.twitter.comの挙動ヒドいっす。ゆるふわAPIとか言い得て妙すぎる。 23日前後の状況 前に書い…

GAE用のOAuthライブラリ simpleoauth-gae を作ってる

ある人の発言から時事ネタサービスを作ろうと思いたったわけだが、TwitterとのOAuthまわりでハマりにハマって、結局有りモノに手を入れてしまったのでその話。結論からいくと、使いやすい(と自分では思っている)ライブラリに修正して公開しましたよ、という…

GAETestBaseの公開について

先日のエントリーで公開したGAETestBaseだけど、とりあえずスクリプト置き場をーくらいの気持ちでGoogle Codeに置いたら速攻でKay frameworkにバンドルされてしまってひいい*1、という状況に。ライセンスはGoogle Codeの設定をする必要があって一応決めてた…

AppEngine SDK標準テスト用環境の問題

そういえばしゃべったりTwitterに垂れ流したりするだけでまとめてなかったぞ、ということでまとめてみる。よく考えたら問題点もまとめずにテスト環境の改善が!とか言ってても、何が問題なのかわからない人にはわからないよなあ。反省。 まとめたら @tmatsuo…

テストケースのベースクラス GAETestBase を作った

前に書いた記事からはやくも半月たってしまったが、やっと出してもいいかなという状態になったので公開します。ファイルそのものはこちら。GAETestBaseはPython標準のunittest.TestCase継承クラスとなってます。ユニットテストを書く際に、通常のTestCaseの…

GAE/Pythonテスト環境に欲しいもの

いまPython on GAEのテスト環境の貧弱さをなんとかするべく、あれこれやってる。とにかくテスト環境がショボいんだよね。 App Engine/Pythonはローカルのデータストアのstubの出来が良くないので、ローカルとプロダクションで動きが違うことが結構あり、ロー…

AppEngine ja night #7に行ってきた

GAE

昨夜のappengine ja night #7 : ATNDに行ってきた。AppEngineいじりはじめてからでは前回の#6は申し込みが間に合わず参加できなかったので、今回が初めて。参加者にはhackathonに参加したりそれ以降Twitterであれこれやりとりした人が大勢。 セッション1: ap…

run_in_transaction内でトランザクション外データストアアクセスを行う方法

基本的なトランザクションの話をすこし GAE/Pythonではトランザクション処理を行うのに db.run_in_transaction() を使う。典型的な使いかたは以下のような感じで、指定した関数内の処理がまるごとトランザクション内として扱われ、関数から出たところで自動…

ApiCallHandlerは本当にTransactionを処理できないのか?

前に書いたremote_apiのトランザクション処理は実はproduction環境そのものとは違った件の続き。remote_api_shell(およびRemoteStub)経由でTransactionを処理するとどうなるのか? を調査した結果。結論:できませんでした。 ApiCallHandlerにTransactionを…

production環境の実装を調べ……ちゃダメだよ!

前からTransactionの挙動について調べてるが、remote_apiのトランザクション処理は実はproduction環境そのものとは違った件で既に書いたとおり、どうもproduction環境とdev環境では実装がかなり違うっぽい。 その調査はやってる(まだ途中)んだけど、その経過…

remote_apiのトランザクション処理は実はproduction環境そのものとは違った件

前にremote_api_shell.pyの使い方 - tagomorisのメモ置き場を書いたとき、balmysundaycandy-scala betaをリリースしました! - marblejediaryにある「トランザクションが使えない問題がこっちでは起きてない」旨の話をTwitterでもらった。が、このときは「Re…

production環境のDatastoreを使って手元でUnitTestを実行する

前にremote_api_shell.pyを使って対話実行環境でproductionのDatastoreに接続する方法を書いた。 で、もちろん次は自動テストをproductionのDatastoreでやりたいよね? ということで、そのための方法を書いたのでご紹介。Javaとかだとproduction環境内で直接…

TransactionとEntity Groupについての理解

GAE

ドキュメントや各所のblog、TwitterのTLなどを眺めていると、TransactionとEntity Groupについての理解で混乱することがあったので注記しておく。production環境のDatastoreで動作を確認するまで確信できなかった。 TransactionとEntity Groupについて一般的…

remote_api_shell.pyの使い方

手元の端末からGAE production環境のデータストアに接続する GAE/pythonのSDKについているDatastoreモドキ(datastore_file_stub)は実に機能が貧弱で、トランザクションの衝突を手元でシミュレートしたりできない。これは本物のDatastoreの理解には割と困る。…