kay-1.0.0 をリリースしました


もう一週間ほど前の事になりますが kay-1.0.0 をリリースしました。初めのバージョンからもう一年も経ったんだなぁと思います。


このバージョンではかなり便利な機能をいくつか足す事ができましたし、日本だけではなく海外でもユーザーが多少は増えて来ています。一年間続けて来て良かったなと思います。

Happy birthday Kay!

ここらへんで、大きな機能追加は少しお休みして、自身でもある程度以上の規模がある Web アプリケーションを作ってみようと思っています。実は太古の昔に「やるやる」と言って全く進まなかった MeetAt というプロジェクトをひっそりと再開していますよ。プロジェクトに興味がある方は連絡ください。一緒に開発しましょう。

つくづく思うんですが「続ける」って大事ですよねとしみじみ。

Kay でメールを受信する

irc://irc.freenode.net/#kay-ja で質問があったので Kay でメール受信する方法を書きます。
Kay にはメール受信用のハンドラークラスがあります(webapp のと殆ど同じです)。

まずは app.yaml でメール受信を有効にします。

inbound_services:
- mail

次に views.py あたりにメール受信用のハンドラークラスを定義します。
myapp/views.py

from kay.handlers.mail import MailBaseHandler

# ..

class MyMailHandler(MailBaseHandler):
  def receive(self, mail_message, address):
    logging.debug("address: %s" % address)
    bodies = mail_message.bodies(content_type='text/plain')
    for body in bodies:
      logging.debug("charset: %s" % body[1].charset)
      logging.debug("encoding: %s" % body[1].encoding)
      logging.debug("payload: %s" % body[1].payload)

プロジェクトのトップにある urls.py で(アプリの urls.py ではない)このハンドラーを使います。
urls.py

def make_url():
  return Map([
    Rule('/_ah/queue/deferred', endpoint='deferred'),
    Rule('/maintenance_page', endpoint='_internal/maintenance_page'),
    Rule('/_ah/mail/<address>', endpoint='receive_mail'),
  ])

all_views = {
  'deferred': 'kay.handlers.task.task_handler',
  '_internal/maintenance_page': 'kay._internal.views.maintenance_page',
  'receive_mail': ('myapp.views.MyMailHandler', (), {}),
}

これで宛先のアドレスに関わらずメールを受信する事になります。宛先を制限する場合は app.yaml に書けば良いかなと思っています。
簡単な説明ですがこれでおしまいです。

Ubuntu 10.04 で appengine 環境構築メモ

たまたま機会があったのでメモしておきます。Ubuntu 10.04 には python2.5 が無いのですね。

面倒くさいので python2.6 で動かす事にします。入れたパッケージはこんな感じです。

mercurial ipython css-mode js2-mode yaml-mode emacs23-nox

appengine SDK は zip 版を入れますが logging のエラーで止まるので google_appengine/google/appengine/dev_appserver.py の _WHITE_LIST_C_MODULES に _multiprocessing を追加します。

それから ipython で日本語使えるように下記のパッチをあてます。
--- /usr/share/pyshared/IPython/iplib.py.org	2010-04-26 12:51:03.448359291 +0900
+++ /usr/share/pyshared/IPython/iplib.py	2010-04-26 12:48:38.064413651 +0900
@@ -2203,9 +2203,13 @@
         # this allows execution of indented pasted code. It is tempting
         # to add '\n' at the end of source to run commands like ' a=1'
         # directly, but this fails for more complicated scenarios
-        source=source.encode(self.stdin_encoding)
-        if source[:1] in [' ', '\t']:
-            source = 'if 1:\n%s' % source
+        # Original 3 lines bellow
+        #source=source.encode(self.stdin_encoding)
+        #if source[:1] in [' ', '\t']:
+        #    source = 'if 1:\n%s' % source
+        # rewrited as bellow
+        if source[:1] in [u' ', u'\t']:
+            source = u'if 1:\n%s' % source
 
         try:
             code = self.compile(source,filename,symbol)

証明書のチェック用に下記のようにして ssl package も入れておきます。
ssl は必要ありませんでした。python2.6 には付いてるんでした。同時に行っていた Snow Leopard での環境構築とごっちゃになっていました。

Android コードラボを開催しました


2010年 4/17(土) Tokyo GTUG で初心者向けの Android コードラボを開催しました。教材にしたのは公式の NotePad tutorial です。@t_egg が一部日本語訳を作ってくれましたし、 @yanzm が UI カスタマイズのおまけも付けてくれました。

こちらが当日の資料です。

会場のリミット40名に対して、実際の応募は60名を超えていたのですが、Atnd を使用したからか、駆け込みキャンセルが多く、実際に来た方は27名でした。実は会場がちょっと狭かったので広さ的にちょうど良い感じだったので、結果的にはよかったです。

メインの講師役は @t_egg にお願いしました。教え方がとても上手で、やはり彼に頼んで良かったです。@yanzm も UI のカスタマイズネタの講師をしてくれました。こっちもとても参考になる講義でした。また @adamrocker も来てくれてチューターとして活躍してくれました。その場で出た質問に即興で Android プロジェクトで答えるあたりはさすがだなと。@Tennetiss と @esmasui も駆けつけてくれました。

裏で Android 系のイベントがあったりと、お忙しい中参加していただいたチューターのみなさま・参加者のみなさま、ありがとうございました。

この資料は一部しか日本語になっていないので、そのうちこれを全部日本語訳していきたいと思っています。できたら Android の会にでも投げようかな。

GAE/Java コードラボ第三回開催のお知らせ


下記の要領で Google App Engine for Java コードラボを開催します。
このイベントでは、Google App Engine for Java 初心者の方を対象にした教材で、ステップバイステップに GAE/Java でのアプリケーション開発を学べます。

【Google App Engine for Java コードラボ】
主催: Tokyo GTUG
協力: Google
日時: 2010年2月20日(土) 10:00-17:00 (09:30 受付開始)
場所: Google 東京オフィス
対象: Google App Engine for Java 初心者の方(Servlet や jsp の経験があった方が望ましい)
当日必要なもの: 無線LAN使用可能なラップトップ
参加費用: 1000円 (講師を担当していただく山下さんの京都、東京間交通費などです。)
定員: 40名程度

コードラボの後に会場近辺のお店で懇親会を行います。予算は3000円程度を予定しています。

当日の準備:
ラップトップに Eclipse と Google Plugin for Eclipse、Google App Engine Java SDK をインストールしてきてください。
Eclipse はどれをインストールすれば良いか分からなければ Eclipse IDE for Java EE Developers を選ぶと良いと思います。
またセットアップに関しては下記の記事が分かりやすいので参考にすると良いでしょう。

Javaは、JDKの1.6系をインストールしてきて下さい。
(MacOSX の方は既にインストールされているはずです)

すでにEclipseをご利用の方は、既存のEclipseの他に新しいEclipseを用意して頂き、Google Plugin for Eclipseだけを導入した環境をご準備下さい。他のプラグインとの相性問題によるトラブルが発生すると全体の進行の妨げになるため、トラブルを回避するために、みなさまご協力よろしくお願い致します。


お申し込みは下記のフォームからどうぞ。定員になり次第締め切ります。

今回、Google API Expert である山下さんとわたくし松尾の他にも、豪華な講師陣を揃えております。
これを機会に GAE/Java に触れてみませんか?