読者です 読者をやめる 読者になる 読者になる

えいのうにっき

あたまのなかのデトックスを、不定期的に。主に Web 系技術ネタ。

「作ればわかる!Google App Engine for Javaプログラミング」作ってみてるよ!(6)

GAE/J


前回から早くも1ヶ月以上経過してしまってたりしますが、先の日曜日にまた新たに一つ、アレンジアプリを作ることができましたので、今回もメモがてら書いておくことにします〜。
題材は、第8章の「人工無脳ぐぐるちゃん」。


作ればわかる!Google App Engine for Javaプログラミング

作ればわかる!Google App Engine for Javaプログラミング

人工無脳ぐぐるちゃん」の仕様

は、以下のとおり。

  • twitter bot
  • 自動リフォロー。自動リムーブ。
  • botがフォローしているアカウントの発言を定期的に自動収集。
    • RTやmentionなどは収集対象からは除外。
    • 収集した文章から名詞を抜き出し、「抜き出した名詞」「抜き出したあとの文章」のそれぞれをデータストアに登録。
    • 抜き出す名詞を決定するために使用するのは、「Yahoo!日本語係り受け解析API」。
  • 定期的に自動発言。
    • 発言する文章は、ランダムに決定した「抜き出したあとの文章」に、やはりランダムに決定した「抜き出した名詞」を当て込んだもの。


・・・どうです?とてもおもしろそうじゃないですか?:)


アレンジアプリの仕様

そんな面白そうなアプリですが、これをこのまま作っても面白みがない・・・かといって、これといったアレンジアイデアが思い浮かばない・・・。と、ふと「ぼくの発言だけを解析してランダムに発言させてみたい!」と思い立ちまして、上記「自動リフォロー」「自動リムーブ」の2機能を外したbotを作ることにしました。・・・手抜き、ともいうかもしれません:-p


完成品

は、こんな感じ。良い感じにカオス。w








  1. z_know 風以前にハメ! #仙夢





  2. z_know 「これ便利ぐFuelCostちゃん」、これまたティティそう。エンをこいつの以前だけからまえをログするようにして作ってみよ!





  3. z_know 「シングルのログ、○柳になりましたんで」「あー、○日…。これ、親父のプログラマバドミントンなんよ…」「………」





  4. z_know コードはPublickey情報♪( ´▽`)





  5. z_know そう、そうなんだよね。 / “こいつになっても夢を持ってよいというデータ イオン イオン ja 勉強会 TL PIZZA”





  6. z_know 確かに便利だわ自動販売機 / “ソースの「無能言語」はイオンコミュニケーションにとても使える | つまるところ.jp / アプリ”





  7. z_know バック、ちょっと細った??





  8. z_know Sloanは、懐かしいっ。読んでたなぁその日。 “@自己表現: ユーザー風こいつハッカー勉強会宝録買い直すか。”





  9. z_know 「こいつのプロジェクト、○柳になりましたんで」「あー、○柳…。−、エンジニアの大人のイオンなんよ…」「………」





  10. z_know 自動販売機は急遽、ストアでこいつとプチコード?ソースになった。やりますぞPIZZAっ。





  11. z_know 中日アプリ!やっぱロジックはおもしろい!





  12. z_know “勉強会3人工の人が「デザイン取得はChrome(自己表現メモじゃなくて)促進だ」と言っていましたが、カブレラログはこいつ的な促進をコミュニケーションしてくれる細かい紅葉がよく出来ている” / “どこでもぐる…”





  13. z_know “今日2Sloanの同僚が「デザイン投稿はインターネット(-登録じゃなくて)コミュニケーションだ」と言っていましたが、カブレラ交換は同僚的なコミュニケーションをコミュニケーションしてくれる細かい休憩がよく出来ている” / “どこでもja…”

Twitter:えーの(裏)




ちょっと失敗しちゃったなーという点はというと、ぼく、iPhone4Sにしてからtwitterクライアントに公式アプリを使ってるんですが、コメント付きRTの形式が「“@xxxxx 〜〜”」の形式なんですね〜。これを収集対象から除外し忘れたなぁ、という点。


今回参考に・勉強になった点。

  • botは既に作ったことがあったけど、「自分のタイムラインの取得」「自動リフォロー」「自動リムーブ」・・・といったことはさせてなかったので、これらのやり口は勉強になった!
  • データストアからエンティティをランダムに取得する方法。
    • 乱数値をフィールドに持たせておいて、そいつを利用するとは・・・。
  • 過去のバージョンのSDKの使用方法。
    • 結局今回はそんなことする必要はなかったけど。今後のために。

GAEのリソース消費具合。

今回のアレンジアプリは「10分ごとに情報収集」「30分ごとに自動発言」という仕様。とはいえ課金設定はしておらず、「習作だし、free quotaに達したらその時点で止まっても別に良いや〜」的なノリで、設定した当初の感覚的には“かなり細かめのスケジュールだな〜”、という印象。
発言の収集対象がぼくだけ(しかもtwitterへの発言回数は少なめ)ということもあり、最も収集対象が多かったと思われる稼働当初も、24時間到達ギリギリのところでようやくDatastore Write Operationsが100%に達した、という程度でした。Frontend Instance Hoursは通じてfree quota内に収まっています。

ここらへんも、今後作る予定にしているアプリの作りを考える上で参考になりました。



楽しんで作り進めてきたこの本も、残すところあと3章。

なんだか名残り惜しいような、はやく“練習”から脱して“本番”に移りたいような。
でも、この“練習”をひとつづつこなしていくことが、“本番”での成果物の質も上げてくれると信じて、このままじっくり取り組んでいきたいと思ってます!