ログ日記

作業ログと日記とメモ

2011-01-01から1年間の記事一覧

LiftでWebアプリ(1): プロジェクト環境の初期設定

エディタでコードを書き始められるようにするまで。 maven + sbt + JRebel と IntelliJ を使う。 IDEの初期設定は http://d.hatena.ne.jp/n314/20110810/1312942732 この辺。やってることはだいたい同じ。sbt、JRebelはダウンロード済みとしてまとめ直し。 m…

LiftでWebアプリ(2): Lift を更にデザイナーフレンドリーにする

HTMLを分離するところまで。 LiftはHTMLにロジックが入らないからデザイナーでも分かりやすいかと言うと、そんなわけない。 ヘッダをXHTMLで宣言しておいて中身はHTMLだというソースも見たことがある。 プログラマーが更新するHTMLとデザイナーが更新するHTM…

ポート80番でGlassFishを動かす

GlassFishに限らずポート1024未満でサーバーを動かす場合に authbind が使えるようだ。http://jars.de/english/how-to-set-up-glassfish-2-on-debian-or-ubuntu http://linuxchef.blogspot.com/2008/11/tomcat-glassfish-auf-port-80.html apt-get install a…

LiftでビューのHTMLを動的に更新するためのメモ

http://www.slideshare.net/fungoing/webscalaliftui-first ここの20ページ目に ※Viewの更新は再コンパイル不要 LiftはViewからロジックが完全に切り離されて いるので、Viewの更新はサーバを起動したま ま行うことができます。 UIは文言やレイアウトなど細…

Emacs で Scala + Lift の環境を作る

ファイルを保存したらsbtが自動でコンパイルしてJRebelがclassファイルの自動リロードするなら、もうIDEである必要は無いんじゃね?ってことで。 mvn でプロジェクトを作って sbt updateするところまでは前回 *1と同じ。 scala-modeのためにソースをダウンロ…

IntellijでScala + Lift を書く環境を整える

http://d.hatena.ne.jp/j5ik2o/20110121/1295586620 これを読んでhttp://d.hatena.ne.jp/ishibashits/20110416/1302974848 ここの設定通りに。 まだ全然仕組みが分かってないが手順通りにやってみる。 Intellijのプラグインの設定はたぶん迷わない。 バージ…

モデルの状態とInputの状態と表示

この前書いた内容 http://d.hatena.ne.jp/n314/20110804/1312430270 あとあと考えてみると、フォームが一つの場合は起きない。 submit時にコンポーネントをPageクラスなどからコードで操作しようとすると起きる。ときがある。詳しくはまだ分からない。 フォ…

setModelObjectとmodelChanging / modelChanged

メモ。PropertyModelなどを使ってフィールドをモデルの値に設定している場合、その値を直接書き換えてもモデルに値が反映しない。 この場合はsetModelObjectを使う。 ただしsetModelObjectを使っていても値が反映しない場合がある。 それはエラー後に前の値…

VMware Player 使いやすい

何年か前にVMware Player 使ったときもこれはいい!って思ってて、いつの間にかVMware Serverが無料で出てたからそっちに乗り換えて、VMware Server 2になって使いにくく感じて、結局利用しなくなってた。 VMware ServerとVMware Playerを同時に入れられない…

会計、簿記の仕組みメモ

家計簿を作りたくて会計/簿記の仕組みを調べていたのでメモ。 以下は家計簿のための独断と偏見解釈。 勘定科目の種類 カテゴリとかグループとか。木構造の種類分け。 BS勘定科目とPL勘定科目の二種類に大別される。 資産、負債、資本 がBS勘定科目、収益、費…

Slim3のModelRefをGWTで使えるかどうかのユニットテスト

GWT上でModelRefが利用出来ることが分かったが、サーバー側で一度もgetModel()を実行せずにGWTで初めてgetModel()するともnullが返る。 気を付けていても忘れることがあって思わぬところでエラーが出る。 そんなときはテスト。 ModelRefは内部にModelインス…

Slim3 + GWT のユニットテストで mockito を使ってみる

Slim3 + GWT でクライアント側のテストをするために、Gin はちょっとオーバースペックな気がしたので mockito を使ってみてる。 private ItemServiceImpl itemService = spy(new ItemServiceImpl()); @Test public void myTest() throws Exception { ClientF…

Slim3のアップグレードメモ

新しい slim3-xxx.jar を /war/WEB-INF/lib に置きます。 新しい slim3-xxx.jar を CLASSPATH に追加します。 古い slim3-xxx.jar を CLASSPATH から削除します。 古い slim3-xxx.jar を削除します。 新しい slim3-gen-xxx.jar を /lib に置きます。 新しい …

GAE/J + Slim3 で JUnitのログレベルってどうやって変えるんだろう?

war/WEB-INF/classes/logging.properties はテストのときは読んでくれない模様。 コンソールに 2011/07/24 14:24:13 com.google.appengine.api.datastore.dev.LocalDatastoreService load 情報: Time to load datastore: 25 msとか出るのが気になる。 java.u…

ktrwjr のデザインはいいね

http://ktrwjr.appspot.com/ktrwjr/smoothness.html GWTで出来ているのにデザインが綺麗。 なんで?と思ったらjQuery UIを使っているみたい。http://d.hatena.ne.jp/bufferings/20091108/1257693470 でも検索してもGWT + jQuery UI の記事がほとんどヒットし…

GAE/J で 一対多の get、query の速度

直感的にはModelにKeyのリストを保持しておいて、Datastore.get(Child.class, keys)をやった方が速いと思っていたがInverseModelListRefを使ったqueryの方が速かった。 と言っても大した量でテストしてないんだけど、一応メモを残しておく。 ツリー構造のデ…

Slim3 + GWT の ModelRef など

昨日書いた *1 ときにはModelRefはGWTで使えないと思っていたんだけど、modelRef.getKey().getName() は実行出来る。 ModelRefはタイプセーフを実現するためのクラスで、実際にはKeyを持っている。 そして普通にGWT側で modelRef.getModel() を実行してもも…

GAE/J の キーについて

ちょっと混乱したのでメモ。昨日書いた *1 ことは若干勘違いが入っていた。 keyToString、stringToKey と 文字列のキーかどうかは関係ないんだね。 文字列のキーをkeyToStringしたところで、Keyインスタンス自体のエンコード済み文字列(?)が返ってくる。…

S2Wicket利用時のテストケース

WicketとSeasar2でのテストの書き方メモ。 S2WicketのS2WicketFilterを使っている。 HTMLファイルをWEB-INFなどに入れている場合はMarkupNotFoundExceptionが発生するのでEclipseのJUnitのプロパティで作業ディレクトリをsrc/main/webappなどにしておく。 pu…

GWTで使えるクラスのメモ

twitterにも書いたんだけど、どうしてGWTでKeyクラスが使えるんだろうと思っていた。 それから、Datastore.keyToString(model.getKey())をGWTのクライアント側でやりたいよねと。 でも試しにmodel.getKey().getName()を実行してみたらちゃんと取得できた。 G…

Slim3の本の途中まで読んだ感想と代わりのチュートリアル

一昨日書いたこの本。オープンソース徹底活用Slim3によるWebアプリケーション開発作者: 山田健一出版社/メーカー: 秀和システム発売日: 2011/01/28メディア: 単行本 クリック: 20回この商品を含むブログ (10件) を見る1/3までじっくり読んであとは流しでしか…

Slim3本を読んだ

オープンソース徹底活用Slim3onGoogleAppEngineforJava作者: ひがやすを,小川信一出版社/メーカー: 秀和システム発売日: 2010/07/30メディア: 単行本購入: 12人 クリック: 462回この商品を含むブログ (36件) を見る後半はWebの資料で十分だが、7章あるうちの…

修飾子の順位

よく忘れて毎回見に行っているので自分のところにもメモ。 homma 2007/10/14 05:38 Java言語仕様によると、sunのお勧めは public protected private abstract static final transient volatile synchronized native strictfp interface の順番のようなので、…

DBの複合主キーの話

複合主キーのエントリ http://d.hatena.ne.jp/torazuka/20110713/pk を見て、今机の上にあるERDを見たら結構複合主キーがあるなぁと思ったのでメモ。 最近PHPからJavaに移って、複合主キーを使うようになった。 PHPのときはO/Rマッパーが複合主キーに対応て…

GWTとS2JDBCの連携

GWT + Seasar2 で困ったことが一つ。 S2JDBCのentityをGWTのクライアントに受け渡せない。 で、今まではDTOを作って詰め替えをしていたのだけれど…。 Slim3を少し触ってみたら、こっちはGWTに完全対応なのでDatastoreからのModel(S2JDBCでいうEntityのよう…

rel="author" 用にいじってみた

てすと。記事のフッタにあるプロフィールリンクとaboutページを若干修正してみた。 効いてるんだろうか。

S2JDBCのwhereでor検索

or検索を調べる → ComplexWhereを見つける → ソースを書き直す → SimpleWhereだけで出来るというコメントを見つける → ソースを書き直す → タイプセーフAPIを使うならSimpleWhereはよくないという記述を見つける orz 最初にここを読んだ。 http://d.hatena.n…

ataエラー調査

エラーで時々固まる。 Jun 29 18:42:18 node2 kernel: [156554.787521] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen Jun 29 18:42:18 node2 kernel: [156554.787555] ata1.00: failed command: WRITE DMA Jun 29 18:42:18 node2 kern…

Debian squeeze でmailコマンドを使えるようにする

mailコマンドがインストールされているlennyのマシンを見ると、bsd-mailxパッケージがインストールされているようなのでそれを入れる。 他にはmailutilsパッケージがある。mailutilsの方はmysql-clientなど依存が多いのでやめておく。 aptitude install bsd-…

Debian squeezeでGanetiを使ってXen + DRBD

仮想化環境管理ツールのGanetiがDebianのパッケージになってるよ!ということで。 本家は http://code.google.com/p/ganeti/ ここ。 日本語情報はほとんどないのね。 http://d.hatena.ne.jp/naruoga/20081201/1228140473 http://trac.mizzy.org/public/blog?…