Engine上で動くアクセスカウンターを、Javaで作り直してみた。@dwango会場提供のドワンゴ様に感謝。ローカル環境用のDashboardを見ることができて便利なんだけど、どうやらJava版にはそれがないらしい(むしろあるのなら教えて下さい)。親子関係の扱いができるのでTransactionを使用してみた。あとEntityを生で使うのがちょっとアレだと思ったので簡単なラップクラスを作ってみた。Javaドキュメントを読みつつ、すごく簡単なサンプルを書いてみた。Java版でcommons-fileuploadを使ってファイルアップロードをする場合はgetItemIteratorから取り出すのが良いようだ。すればFileItemFactoryは必要ない。Engine(Java版)でファイルをアップロードするためにはどうすればいいのか?を色々試しながら勉強してみる。シンプルにこんなHTMLとサーブレットを書いてみる。Counterでは、CounterとAccessRecordで親子関係を作っていて*1、あるCounterの子として作られたAccessRecordを取得するのに、ancestorによるフィルタリングを使ったQueryを用いている。JavaencodeしたStringをキーにしたデータモデルを作って、そのキーで引き当てて取得したデータを参照しようとしたらUserが何故かnullになっていた。Javacom.google.appengin.api.users.Userをプロパティに持つデータモデルから、それがログイン中のユーザーと一致するものだけを取得しようとする場合。MacEclipseの機能でJavadocを生成した場合、@authorには自動的にシステムのログインユーザーが使われるらしい。これを変更する場合はeclipse.iniに以下の行を追加する。実力をおまえらにみせてやんよ(仮)に行ってきたので、メモ。間違っていることなんかも多々あるかもしれないけどメモ書きを敢えてそのまま載せる。ぎゃーんメモについて、id:todogzmさんコメントありがとうございました。Base64のエンコーディングをするときに使う。ISO-8601の形式で日付・時刻を表したいときに使う。静的初期化子Javaこんなものがあることを初めて知った。確かにstaticメンバ変数の初期化したいときはこうするものか。コレを使ってみたくて。分からないことだらけ。WSSE認証という言葉すら初めて聞いた。Java前回までは「評者」に対し「アイテム」と、その「評価点」を元に「評者同士の類似度」の計算と、それを用いた「未評価のアイテムの推薦」をやってきた。これに対し、評者とアイテムを逆にすることで違う視点からの計算ができる。似ている製品2008-10-09命名に悩むJavaあまりにも変数名がイケてなさすぎる気がしたので、変更を検討してみる。Iteratorとかってどういう名前を付けるもんなんだろうか。いうときこそオープンソースの世界を覗くべきだな。Java評価の類似度という尺度ができれば、それを元に評者を相対的にランキングしたり、自分が未評価なものを推薦してもらうこともできる。ランキングはただ全員との類似度を調べてソートするだけなので省略。Javaユークリッド距離の他に類似度を決定する手法としてピアソン相関係数が紹介されている。これはデータが正規化されていない場合にその偏りをある程度補正してくれることになるようだ。ピアソン相関係数は以下の式から求められる。SQLJDKのバージョンによって使い分けるらしい。Java継承も参照も分かっていない自分に、がっくり。イメージを作って、頭の中に描くんだ。引数なしコンストラクタはprivateではなく、例外にしてみる。(そもそも"sta...finalとかstaticとか2008-06-08コンストラクタの引数指定Javaコンストラクタに必ずある引数を入れるようにさせようと、デフォルトのコンストラクタをprivateにして、引数つきのコンストラクタを定義。