目標

やりたいことがありすぎるというか、まとまりがないので、整理する。
  • 今年中にMicroblog on Django on Google App Engine(Jaikuみたいな)を完成させる
  • 毎週水曜日はTopCoderの過去問を解く
  • TopCoderには時間がつく限り参加する
  • 週に1冊本を読む(今週は「ウェブ時代5つの定理 - 梅田望夫」)
  • 毎週月曜日は1人コードリーディング(今週は「Google ジュース」)
来年やること
  • Objective Cの勉強会
  • Andoroidでアプリを1つ作る
  • OpenSocialをMicroblogに追加(Django on GAE)
  • FriendConnectを使うサイトを作る
  • pythonベースのデスクトップアプリの勉強

GAE Hackathon vol.2 & Python忘年会

だいぶ遅くなったけどまとめてBlogする。第2回Google App EngineのHackathonに行ってきました。今回は少人数のチームに分かれて、各チームにテーマが与えられました。私が参加していたチームのテーマはモデル。最近はBigTableにもなれてきましたが、やっぱりRDBMSじゃないし、クエリーが発行できるのも=<>のみ。また、日本語の検索自由度はないに等しい(どうやらGAE HackathonでSearch APIをもうすぐリリースするという情報が!)。そこで、日本の郵便番号住所の情報を検索可能なモデルを作成することにした。分かち書きして、そのリストを保有するという選択肢もあるのだが、今回は前方一致、後方一致検索ができるようなモデルを作成することにした。"東京"、"東京都"、"新宿区"、"西新宿"とかで検索可能にしたい。色々と悩んだ結果、strlistで分割し、位置も実図連結してStringListPropertyに突っ込むことにした(相当荒業)。ソースはここにおいた。Modelのputをフックし、リファレンスが張ってある別Modelに文字列のリストを保存している。時間は短かったですが、わいわい楽しいコーディングができましたよ!

それと、グルーのtmatsuoさんより、前方一致のテクニックを教わった。

db.GqlQuery('SELECT * FROM Test WHERE w >= :1 and w < :2', word, word + u'\uFFFD')

というコード。その文字以上かつ、ユニコードの最大文字である'\uFFFD'以下の文字で比較するというもの。これはありがたく使わせていただきます。special thanks tmatsuo!

あと、いつもお世話になっているid:Voluntasさんが幹事のPython忘年会に参加しました!この会、いつもメンバが濃い。ちょっとびびってたmopemopeさんがすごい優しい人で、あまりのギャップにやられました(笑)。っていうかmopemopeさんが忘年会の前に勉強会を開くという話だったので、楽しみにしていたのですが見事に(ry。