2010/08/06
appengine ja hack-a-thon #6 と appengine ja night #9 に行ってきたんだ
ahack6
appengine ja hack-a-thon 通称 ahack の6回目
http://atnd.org/events/5932
ahackは初参加!普通にお仕事…の予定がTwitterがappengineからAPI叩くのをブロックしてたと聞いて、ちょっと調べてました。
事の顛末としては…
- appengineはインスタンス起動させるサーバがいつも同じとは限らない=IP変わる
- Twitter APIのLimitにかかりにくい(APIによるけど、検索APIはIPでカウントしてたはず)
- それを利用して、大量にTwitterのAPI叩くアプリをappengine上でたくさん稼働させる人出現
- (たぶんTQとかで自動リトライしてるので制限にかかっても成功するまで叩きまくる?)
- Twitter「なんか制限にかかっても大量にアクセスしてくるのいるからブラックリストに入れるよ」
- たまたまブラックリスト入りしたサーバでインスタンス起動した他の人がとばっちり
って感じなのかなー
で、そもそもspin-upごとにIPってほんとに変わってんの?てのをちゃんと確かめたことがなかったので
- アクセスされたとき、HttpServletRequestのHeaderを取得してDatastoreにputするサーブレット
- そのサーブレットにURLフェッチでアクセスして、かつputしてあるEntityを一覧するサーブレット
を簡単にappengine上に作ってみました。
結果:
Host: application-id.appspot.com
User-Agent: AppEngine-Google; (+http://code.google.com/appengine; appid: application-id),gzip(gfe)
でもHostってとこでapplication-id.appspot.comって取れてるんだから、これ申請してホワイトリストに入れてもらったらいいんじゃね?
と思ったら、そういう風にさっきのMLに書いてありました。
はい死んだ!今ぼくの数時間死んだよ!
結論:英語めんどくさがらないで読もう。
あ、あと途中で id:ashigeru 先生のEclipseプラグイン入門講座がありました。
解説もソースもgithubのどこかにぎっとあります。
ハマりどころとしては、heliosだとxml編集するのがうまくいかないのと、メモリが破滅するところです。
ajn9
appengine ja night #9 + BeerTalk
@bufferingsさん:Datastoreのクエリを理解しよう
http://www.slideshare.net/bufferings/google-app-engine-datastore
ajnk2のときの資料は読ませていただいてたんですが、あらためて。
やっぱりわかりやすい!発表前に slim3本のインデックスのところ読んでたら「そこは今から説明するんで読まないでください」というだけのことはありますね!
(あ、でも slim3本も必需品です。Bigtableのちょっと突っ込んだ解説も入ってたりするので!)
@kazunori_279さん:Next gen queryを斬る!
http://d.hatena.ne.jp/kazunori_279/20100731/1280570388
bufferingsさんのセッションは基礎固めでしたが、それを踏まえてkazunori_279さんのセッション!
内容はあれです、Waveにあるよ!
正直あまりついていけてなかったですが、まあこれまでの制限が色々なくなるであろうと…
Waveを見てね!なくなる前に見てね!
@cht_007さん:BDレコーダー+スマホ/PC連携サービス『Chan-Toru beta』
appengine + slim3 で実装されてます!でもBDもってないです!
AWSとか従来のインフラじゃなくて何故appengineなのか、という点が興味深かったです。
バージョニングとか自動的なスケールアウトはAWSより優れているらしい。。。安いしね!
このあたりで唐揚げ争奪戦があった気がします。
@ashigeruさん:近くを探す?
空間充填曲線、Z曲線のお話。Zの形になるまでは理解できました!そのあとは唐揚げを待ってました。
@tagomorisさん:SDKを試しに読んでみるよ
python SDK の中身を読む!pythonさわってないけど十分面白さが伝わってきました!
このあたりですでに僕は唐揚げひとつ食べてた気がします。いつ食べたんだろう
まとめ
今回も楽しい場を提供してくださった @marblejenka さん(ahack6)@kazunori_279 さん(ajn9)をはじめ関係者のみなさんありがとうございました!
会場の the Canteen さんもオサレでよかった!でも本当は唐揚げじゃなくてカレーがおすすめです!
- 29 http://drillbits.jp/
- 10 http://www.reddit.com/r/AppEngineJa/comments/cyh7w/appengine_ja_hackathon_6_と_appengine_ja_night_9/
- 7 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4FTJA_jaJP391JP393&q=pcデータ以降+xp+読み取り権限
- 6 http://fieldnotes.sytes.net/slim3-dev/view/detail_mobile.html?itemId=765
- 6 http://www.google.co.jp/search?hl=ja&rls=com.microsoft:ja:IE-SearchBox&q=GWT+クラス 複数&aq=f&aqi=&aql=&oq=&gs_rfai=
- 6 http://www.google.co.jp/search?hl=ja&source=hp&q=javascript+システム時刻&aq=2&aqi=g8&aql=&oq=javascript システム&gs_rfai=
- 5 http://twitter.com/
- 5 http://www.google.co.jp/search?hl=ja&lr=lang_ja&tbs=lr:lang_1ja&q=java+フィールド名 文字列&aq=f&aqi=&aql=&oq=&gs_rfai=
- 5 http://www.google.co.jp/search?sourceid=chrome&ie=UTF-8&q=javascript+UTC+タイムゾーン 変換
- 4 http://www.google.co.jp/search?complete=1&hl=ja&source=hp&q=javascript+システム時刻&aq=3r&aqi=g-r10&aql=&oq=javascript+しす&gs_rfai=
