#ajnk3(#appengine ja night in kansai 3) に参加してきた。

京都のリサーチパークというところで開催された #appengine ja night in kansai 3 に参加してきました。

会場は満員。100人近くいたんじゃないかな。

セッション1 Google App EngineはTDDに向いているんだぜ(@higayasuo)

#ajn7 で @shin1ogawa さんのセッションのデモしたUSTをみたが、デモの内容はそれとほぼ同じ。ちょうどここ数週間 slim3 を触っていたからすんなり理解できた。

まとめると、

  • GAEはリフレクションは重いので、APTを使ってソースの自動生成をしている。
  • RDBMSと違ってDataStoreはソフトスキーマなのでテストがしやすいんだ!
  • Kotori Web JUnit Runner(ktrwjr) を使えば本番環境を使ったテストもできるよ!

というところだろうか。

所感
  • Kotori Web JUnit Runner(ktrwjr)は是非使いたいと思った。
  • ControllerTester#param, ControllerTester#count はそんなメソッドがあるのを知らなかった。ControllerのbasePathも知らなかった。これも是非使っていきたい。
  • meta.propertyName で propertyName の文字列が取得できるなんて
  • Javaはもともと生産性の高い言語ではないが、Eclipseが生産性を高めてくれる

セッション2 pos2wit - メールを使ってTwitterを利用できる無料サービス(@takawitter)

http://www.pos2wit.com/ で、Twitterをメール連携するサービスを作っている@takawitterさんのセッション。趣味で作ってるにしては高機能すぎだろw

WicketとTwitter4jなどをつかって作られている。

所感
  • Twitter4jはちょうどつかっていたので理解しやすかった。
  • twitter4j.properties をかけばConsumerKeyなどをソースに書かなくてもいいというのは収穫(ちゃんとマニュアルをよめっつーの)
  • TaskQueue、BlobStoreなどもつかっていて、GAEの機能を使いこなしてるように感じた。

セッション3 TeamSteam - 小さなチームのためのプロジェクト管理ツール(@pirosuke)

http://team-steam.appspot.com/ 今まではJavaの話だったけど、こちらはPython製。見た目がシンプルでかっこいいサイトだ。

企画からできあがるまでの苦労を話されていた。

所感
  • やっぱり企画は大事。スモールスタートも大事です。
  • あのデザインは気になっていたが、jQueryUI Theme を使っているとのこと。これはいい情報だ。
  • あとから知ったが、ktrwjrもjQueryUIつかってるのね。

懇親会

いろんな人がいますねえ。ひがさんをはじめとして、幹事でありktrwjrの作者の@bufferingsさん。Googleの山下さん、松尾さん。他にもぼくの知らない有名人はいたんだろう。

いろいろ刺激になりました。次回からはちゃんと名刺をたくさん持って行こう。

GAEでTwitterアプリつくってみた2

なかなかいい感じに仕上がってきた。
ぼくがTwitterを使う分には、こっちで十分という感じ。

開発上の課題とかTODO

  • jQuery の alert プラグインIE ではちゃんと表示されない
  • Ajax化してもいいかな
  • ちゃんとテストコード書こうかな(順番逆)
  • 自分的には booklog とも連携したいな
  • やり方わかってないけど、エラーページ作らないとな
  • やり方わかってないけど、設定の外部ファイル化をしたいな
  • やり方はなんとなくしかわかってないけど、メッセージプロパティつくろうかな

てな感じ。これらが解決したらGoogleSVNに登録しようかな。とりあえずは自前のSVNに登録しよ。

ゆくゆくは自分がいろいろなページを見なくていいように、自分用のいろんな情報を取得するページをつくろうかなっと。

ナイトアンドデイ[32]

10/9 に封切りされたトム・クルーズキャメロン・ディアス主演の「ナイトアンドデイ」を早速見に行った。

いやあ上出来です。

ややこしくもなく、わかりやすく、それでいて驚きもあり、見応えもある。
トムクルーズは失敗ないなぁ。

残念なのはキャメロン・ディアス。時にかわいく見えるときもあるのだけど、時におばさんに見えてしまう。あとビキニになるシーンがあるのだが、胸が(略)

ちょうど「Mr. and Mrs.」くらいのレベルかなと。

GAEでTwitterアプリつくってみた

Slim3の勉強がてら、GAEでTwitterアプリつくってみた。

仕様

  • OAuthで認証する
  • OAuthで取得したTokenはDataStoreに保存して再利用する
  • 保存するときのキーはGoogleアカウントとする(つまりGoogle認証済みが前提)
  • 自分のタイムラインを表示する

というだけである。案外まとまった情報がなくて苦労した。一つ例にとると、OAuthのリダイレクト先はtwitter4jでは、

  // こっちじゃなくて
  return redirect(requestToken.getAuthenticationURL());

というように解説しているページが多いのだが、

  // こっちが正しい
  return redirect(requestToken.getAuthorizationURL());

こっちが正解である。確かに間違いやすい。getAuthorizationURL()である。

などといいつつも、つくりながら、いろんなAPIが気になって、

  • ハッシュタグから検索
  • 自由入力検索
  • ツイート
  • ユーザのツイート一覧表示

なんかも作ってしまった。

なぜ作ったか?

そう、それならば「普通にTwitter使えばいいじゃん」という話である。
なぜ作ったか。

  1. Slim3の勉強
  2. Twitterサイトがブロックされている環境でも使える(あらかじめTokenを保存しておく必要あり)
  3. 見た目がシンプルなのであまりTwitterを見てるっぽくない

会社で使うわけじゃないからね!

問題

  • OAuthでTwitterの認証画面にリダイレクトする処理があるのだが、その認証画面がでたり、でなかったりする。でないときは、普通のがTwitter画面になってしまう。

思ったこと

Twitter4jめっちゃ便利。よくできてる。
SAStrutsからみるとSlim3はとてもシンプルで、ある意味物足りない。もちろんそういう思想であることは理解してるけど。
DataStoreはTokenの保存にしか使ってないので、まだ使いこなせてない。

さて、次は何するか。

プリンスオブペルシャ/時間の砂[31]

なんかこう、あまり考えずに観ることができて、CGとか映像に凝ってる感じでさらっと観れるような、そうだな、X-MENとかパーシージャクソンとオリンポスの神々のような、そんな映画がみたいなと思った。

が、ないんだよな。
これもそうなのかなと思ってみたのがこれ。

全然そういうのじゃなかった。化け物でもでてくるのかと期待したが、人対人の戦い。いや、戦いというのでもないか。アメリカのブッシュ政権を風刺したというところだけが一風変わった、まぁよくある感じの映画でした。

ゲームが関係あるのかな?
ぼくはよく知りません(><)

アンダーワールド:ビギンズ[30]

2009年の映画なんだけど、2006年のエボリューションのほうが映像がよかったと思うなぁ。CGが弱いというか。もっと派手なのを期待していたのだけど。