From Paris With Love(13/40)

on 2010/10/31 - 0 Comments -

まぁまぁですかね。

どうでもいいところで、
エッフェル塔の柵なし展望台にびびった。

トラボルタはいっちゃってる系の役が合うね。

大井埠頭(10km)

軽くジョグ。

もうちょっと寒いですね。

10月:53km

This is it(12/40)

若干今さらだけど見てみた。

最初「マイコーりょう」にしか見えなかったことはさておき..w

生前、色々と言われていたけど、
すごい人であることは疑いようがないですね。

アーティストとして必要と思われる資質をどれもすばらしく高いレベルで持っていて、
彼を見るだけでなんかわくわくするこの感じ。

フォー!

彼を失ったことの大きさを知った。

Google App Engine - Datasource の使い方

Python の場合の Datastore の使い方。

例えばサイトの情報を格納しておきたかったとすると、以下の流れのはず。

■1:Model を定義

 db.Model を継承した Site というクラスを定義する。
 インスタンス変数にはおまじない的に Property のサブクラスを入れておく。


from google.appengine.ext import db

class Site(db.Model):
name = db.StringProperty(required=True)
url = db.StringProperty(required=True)



■2:データの追加

 追加の場合は、以下のように new した後に put() するだけ。


site = Site(name="hogehoge.com",url="http://hogehoge.com")
site.put()


 データをユニークにしたい場合は、get_or_insert() を使うとよさげ。
 ※ 第1引数がキーとなって、データが存在すれば取得、なければ追加して取得


site = Site.get_or_insert(key,name="hogehoge.com",url="http://hogehoge.com")



■3:データの取得

 取得したい Site のキーを知っているなら、以下で取得できる。


site = Site.get(key)


 以下は name でソートして、すべて取得の場合。


sites = Site.all()
sites.order("name")


 昇順でソートする場合はプロパティ名に - をつけます。


sites = Site.all()
sites.order("-name")


 条件を指定する場合は、filter() を使う。


sites = Site.all()
sites.filter("name = ", name)



■3:更新

 get() や get_or_insert() や all() で取得し、プロパティを変更し、put() を呼ぶだけ。


sites = Site.get(key)
site.name = "new hogehoge.com"
site.put()


最後に、追加や更新の時に Transaction とか気をつけたい場合は、
以下にちゃんとしたやり方があります。
http://code.google.com/intl/en/appengine/docs/python/datastore/transactions.html
 
SQL を書かなくていいし、データの操作をオブジェクトの操作として実装できるので楽ですね。
 

Google App Engine - Python

Java より Python で実装したほうが楽でした。

■1:Python のインストール

 2.5.4 あたりをインストール

 ※ 自分の環境では cygwin と一緒にすでにインストールされていたけど、
   sqlite3 用のライブラリが含まれておらず、再コンパイルが必要でした。

■2:Google App Engine をインストール

 以下から「Google App Engine SDK for Python」ダウンロードしてインストール

 http://code.google.com/intl/en/appengine/downloads.html

 ※ 自分は Windows 環境で C\// にインストールしました

■3:Hello world

 以下のとおり、Hello world を書いて、起動、アクセス。

 http://code.google.com/intl/en/appengine/docs/python/gettingstarted/helloworld.html

Java と違ってソース編集後にいちいちビルドし直さなくていいのがよいですね。
 

代々木公園(17km)

on 2010/10/24 - 0 Comments -

GとTと代々木公園にて。

Tのペースメーカーをしたけど、
実はこっちもわりと本気だったりした。

2周(=約2.4km)毎のラップ。

アップ:11'41(4'52/km)

休憩

1回目:10'10(4'14/km)

休憩

2回目:10'13(4'15/km)

休憩

3回目:10'10(4'14/km)

休憩

4回目:10'09(4'13/km)

休憩

5回目:10'05(4'12/km)

休憩

ダウン2周、たぶん6'30ぐらい

10月:43km

掲示板作ってみました

on 2010/10/19 - 0 Comments -

Google App Engine で何か作ってみようとこの前書きましたが、
とりあえず簡易版の掲示板を作ってみました。

以下でこっそりと動いています。

http://masayuki0812.appspot.com/

# デザイン・機能は OB 掲示板 ( phpBB ) を参考にさせてもらいました

作ってて思ったけど、Google のアカウントと簡単に連携できるのがおもしろい。

OB 掲示板をこっちに引っ越せばシングルサインオン的になるし、楽かも。
あとメールアドレスを取得して送れるらしいので、それも何かに使えそう。

せっかくだしもう少し充実させて一応形にしたいところ。

マイレージ、マイライフ(11/40)

こんな人生もあるよね。

新人ががんばっている姿に心打たれた。
笑えるところも結構あって楽しめました。

あと、荷物のつめ方は是非一度教わってみたい。

皇居練(15km)

on 2010/10/16 - 0 Comments -

28'00, 28'00, 27'00

三周目がんばったら途中で足がつった。
しかし三周も走れたので満足ではある。

大手町方面の夜景が好きです。

10月:26km

大森(6km)

on 2010/10/11 - 0 Comments -

大森を1周。
涼しくなりましたね。

10月:11km

Google App Engine にて MVC 的な実装

Struts とか Spring MVC とか使いたいけど、XML とかめんどすぎ。
ということでとりあえず自前で実装。

1.Servlet の doPost(),doGet() 内で処理を振り分け

2.振り分けた処理の中で、Bean を完成させてリクエストにセットし、
  それぞれの適当な JSP にディスパッチ

3.JSP の中で Bean を取り出して、表示

たぶんこんな感じ。

Google App Engine 固有の問題ではないけど、JSP の中で Bean を取り出すところではまった。

・Servlet 内で以下のようにすると、単に Redirect するだけなので、Request が引き継がれない。(Google App Engine の Tutorial はこっちなので注意ですね)


request.setAttribute("attrName", attr);

response.sendRedirect("/forward.jsp"); // 単にリダイレクトするだけ


・正しくは以下。


request.setAttribute("attrName", attr);

DequestDispatcher dispatch = req.getRequestDispatcher("/forward.jsp");
dispatch.forward(request, response);


これでちゃんと JSP で Bean を取り出せました。

JSP のエラーが消えない件について

on 2010/10/10 - 0 Comments -

プロジェクトが参照する JRE を適当にインストールした JDK に変えたら解決しました。

<参考サイト>
・Your project must be configured to use a JDK in order to use JSPs

Google App Engine - Getting Started

Google App Engine で遊んでみることにしました。

とりあえず Hello World 的なものを作ってみる。

1:Eclipse(Galileo) をダウンロード

 Eclipse を使うと以下が簡単にできます。

 ・SDK のダウンロード
 ・プロジェクトの作成
 ・ローカル環境でのテスト実行
 ・Google 環境へのデプロイ

2:SDK のインストール

 以下を「Install New Software...」に追加。
 
 → http://dl.google.com/eclipse/plugin/3.5

 適当に進めるとインストールできます。

3:プロジェクトの作成

 Eclipse のをクリックしてプロジェクトを作成。
 プロジェクト名、package 名は適当で。

4:テスト実行

 Run でプロジェクトを実行し、http://localhost:8888 にアクセス。


無事に Hello, world が表示されました。

ここまでの所要時間は数分です。
何ができるかも大事だけど、このサクッと感は同じくらい大事。

ということで準備もできたことだし、何か作ってみようと思います。

・Google App Engine - Getting Started

大井埠頭方面(5km)

on 2010/10/04 - 2 Comments -

涼しくなってきたので走り始めました。

公園の近くを走るので緑があっていいコース。
夜走るとちょっと怖いけども。

誰か皇居練しましょう。

10月:5km

Shutter Island(10/40)

on 2010/10/03 - 0 Comments -

前提が覆り過ぎて何がなんだかよく分からん。
よく分かろうとするならば何回か見る必要があるね。

個人的には INCEPTION のほうが好き。