Saturday, May 12, 2007

springframework勉強会 第3回 5/11「ワークショップで共有しましょう」

http://springframework.jp/index.php?%CA%D9%B6%AF%B2%F1

参加者の皆様ご苦労様でした。
長谷川さん、スタッフの方々、楽しい時間をありがとうございました。

ワークショップにより参加者の共有する問題の最適解を見つけていく作業は楽しい。
以下は自分のためのメモ。

1.問題点の提起
・知らない人にどうやって教える?
・MyEclipse気になるね
・iBATIS最強(?)
・AutoWire最強(?)

2.AutoWireに関する議論
・AutoWire最強!ワイルドカードでBeanをごっそり取ってくる。
・Bean定義の分割方法大事だね。共通は個別に、業務はワイルドカードでごっそり。すっきり!
・ただし、共通のテンプレートクラスにセッターがある場合は効かない。
・layz_initを使うとシングルトンのオブジェクトを起動時に生成しない。
(アプリケーションサーバーの起動が早いよ)
・iBATISは学習コストが低い。Hibernateは覚えるまでが緩やかな双曲線。(しかも下がることもある)

3.ほか
GWT(Google Web Toolkit)はAjaxのウェブアプリケーション作成フレームワーク
AOPで例外処理のハンドリング

4.成果
・インターフェースを使ったパターン抽出
・AutoWireを使用した場合の定義ァイル分割パターン抽出
(詳細はユーザ会Wikiで・・・)

5.飲み会
・Lisp最強!とんがった人はどこかでLispに触れている。
・JavaOneは、かにパーティと化しているらしい。
・JRubyはやりすぎだろ?スクリプト言語はなぁ・・・
・JavaがC++に近づいている。C++にガベージコレクション機能をつけたほうが早いのでは?
・BinaryHack最高!
・Springにより、Javaのプログラミングを知る人が少なくなっている。(なぜ、ニューしなくて動くんですか?)
・人口低下に伴いプログラマも少なくなる。
・将来、プログラミングの仕事はオフショアにほとんどもってかれている。
・でもフレームワーク部分は日本人で押さえたいよね。

Sunday, May 06, 2007

springframeworkとlog4j

簡単ですがlog4jライブラリによるログのとり方の覚書

1.log4jライブラリをWEB-INF/lib/に入れる。

2.アプリケーションのweb.xmlに次のように記述する。


log4jConfigLocation
/WEB-INF/log4j.properties


org.springframework.web.util.Log4jConfigListener



3./WEB-INF/log4j.propertiesに記述する。(下記はjpetstoreにspringframeworkのログを追加したもの)
# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!
# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
log4j.rootLogger=INFO, stdout, logfile

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${petstore.root}/WEB-INF/petstore.log
log4j.appender.logfile.MaxFileSize=512KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.logger.org.springframework=INFO

こんな感じです。

以下は失敗談

Eclipseのコンソールには次のようなメッセージが出力されていた。
一行目に気をとられ、二行目に気がつかなかった。

致命的: クラス org.springframework.web.util.Log4jConfigListener のリスナインスタンスにコンテキスト初期化イベントを送信中の例外です
java.lang.NoClassDefFoundError: org/apache/log4j/PropertyConfigurator

二行目はlog4jライブラリが入っていないか、あるいはCLASSPATHに通っていない場合に出力されるメッセージ。

Saturday, May 05, 2007

springmodules

springframeworkを使ったWebアプリケーションの
キャッシュ機能について調査してみた。
というのも、自分で作るほど技術力ないし、作ったとしてもメンテナンスコストが高くつく。

どうやら、springmodulesを使って、
キャッシュプロバイダOSCache、EHCacheなどと組み合わせると
幸せになれそうだ。試してないけど。

http://dev2dev.bea.com/pub/a/2006/05/declarative-caching.html
http://www.gigaspaces.com/JForum/posts/list/139.page

しかしspringmodulesについての記述が少ないのには驚いた。
実績がないのだろうか。
https://springmodules.dev.java.net/

Friday, May 04, 2007

Acme::Louのインストールができない

やりたいのは、ローカルな環境でも「ルー変換」ができるようすること。

つまづいているのは、Acme::Lou-0.03のインストールでのmake testに失敗。

ログを見ると、lou変換かけても「美しい国、日本」が「美しい国、日本」のままのようだ。
メモリ上に展開したルー語辞書のハッシュからルー語が取得できていないようだ。

引き続き作業・・・

つぎのタスクは作業終了済み
・MeCabインストール(0.95)
・MeCab辞書インストール(0.95)
・Text::MeCabインストール(0.16)

日本の祝日

今日は国民の休日みどりの日だそうだ。
wikipediaによれば
http://ja.wikipedia.org/wiki/%E3%81%BF%E3%81%A9%E3%82%8A%E3%81%AE%E6%97%A5

「自然にしたしむとともにその恩恵に感謝し、豊かな心をはぐくむ」ことを趣旨としている。


自分がはじめて覚えた祝祭日は次のとおり。ずいぶん変わったものだ。
今では日にちにはあまり意味がないらしい。
1/1元旦
1/15成人の日
2/11建国記念日
3/22-24春分の日
4/29昭和天皇誕生日
5/3憲法制定日
5/5こどもの日
9/15敬老の日
9/22-24秋分の日
10/10体育の日
11/3文化の日
11/23勤労感謝の日

Monday, April 30, 2007

自分のノートPCで流行のルー語変換を試そうとした。
http://e8y.net/repos/mecab-htmltagcloud/trunk/index.cgi
http://e8y.net/repos/lou_trans/lou.cgi

colinuxのファイルシステムの使用量を確認したところ、
90%をオーバーしていることに気がついた。
ファイルシステムをusr,var,rootに分割し、再度立ち上げたら夕方六時。
なんだかなぁ。

tarの実行時にpadding size zerosとかメッセージが出たので調べてみたけど、
あまり同様の事象はあげられていなかった。
tar でファイルコピーする際、/sysはコピーしなくてもいいようだ。
(確証なし・・・)

debian 4.0では出なかったんだよな。

Sunday, April 15, 2007

Seleniumの実行結果を取得する

Results URLのテキストボックスに次のスクリプト名を指定する。

#!C:/Perl/bin/perl.exe
# postResults.cgi
use strict;
use warnings;
use CGI qw/:standard/;

my $date = localtime;
print header(), start_html(), h1("Selenium results");
print h2("Environment infomation");
foreach my $p (sort keys %ENV) {
print div("$p: $ENV{$p}");
}
print h2("Selenium information");
foreach my $p (param()) {
print h3($p), param($p), "\n" unless ($p =~ /^testTable/);
}
print h2("Test Cases");
foreach my $p (param()) {
print h3($p), param($p), "\n" if ($p =~ /^testTable/);
}

print end_html();

Friday, April 06, 2007

YAPC::Asia 2007 Day2

仕事休んでいったかいあった。
いろいろ刺激を受けました。
DBIx::Classとか、LiveJournalのスケールの話とか、MJDのリファクタリングの話とか。
うー、おなかいっぱい。
消化できるか心配だ。

普通
・普通->最大公約数or最小公倍数?
・perl6は文字列もオブジェクト->Rubyのまね

DBIx::Class
・SQL::Abstract
・Data::pagaer(?),DBIx::Pager(?)
・DBIx::Class::Relataionalship

Asynapse
・REST
・Jiftyのプラグイン
・JavaScriptでファイルの読み書き?
・XUL(ゾールと発音)
・YUI
・my ($a, $b) = (my $c = func(x,y,z));

Pattern in perl
・singleton why use a singleton?
・Class::Singletons
・it is global
・for stateless
・File::Locker
・Is facade design pattern?
・memento
・iterator
・decorator
・Class::Trait
・C/Java クラスを生成することによってPerlの動的な部分を補っている
・CPANの利用によりサポートされる機能

LiveJournalのスケーラビリティ
http://www.danga.com/words/
memcached
perlbal
1->100
RAID->全部書き込みはもったいない、冗長
特効薬はないがやり方はたくさんある
Apacheが生きているか?->OPTIONリクエストを投げて確認
big-ip->mod_proxy->mod_perl->global db->user db
MogileFS->oMgFileS
ジョブ管理?
Gearman::Worker
Gearman::Client
ただし、No Guarantee
TheSchwarz for mail distribute millions of emails per day
djabberd
->デバッグ方法(イベント系のものはデバッグしにくいよね。ケースバイケース)

DBIx::Class
モバイルファクトリーの方
DBIC::from Sledge
_on、_at->日付系のカラム名
http://code.mobfactory.jp/ (?)
Class::C3

Pushmi

Wednesday, April 04, 2007

YAPC::Asia 2007

楽しいカンファレンスでした。
Perl worst placticesが印象的でした。

以下メモ(なんかみんな書いてるっぽいので)

・ソースの再利用->二回目以降の開発に役立つ
・依存性の排除(使いたいモジュールより依存性の解消が手間)
・仮想化Virtualization リソースの最適化
・現行:パッケージの配布->将来:環境の配布
・web service->perl service(plagger as a service)
・EC2 CGレンダリングとか
・フレーバー DBは?ストレージが仮想

VOX
・catalyst + JSON-RPC
・sixapart javascript library
・large scale case of LiveJournal by Brad
・Data::Object(cached,partionary)
・TheSchewartz
・Perlbal
・http://code.sixapart.com/
・1st, user->global DB and 2nd, user->user db(DB1/DB2/DB3)

Sunday, March 18, 2007

digg.com

diggにjoinした。
diggというサービスがいまひとつ理解していないが・・・

Saturday, February 10, 2007

Blogging: daily blog posting by feedburner

http://semanticvoid.com/blog/2005/11/27/post-delicious-links-to-blogger-now/

によればfeedburnerによりdel.icio.usの内容をBloggerにポストできるそうだ。早速設定してみた。どうなることやら。

Saturday, November 04, 2006

Sageとdel.icio.us

Firefox使っています。
アドオンにSageを使っていました。
Yahoo提供のdel.icio.usアドオンを入れたところ
Sageの上部ペインが真っ白になってしまいました。
相性がよくないようです。

Sunday, October 22, 2006

丹下段平設計事務所: YouTubeはユーザーのセキュリティを考えるべき

丹下段平設計事務所: YouTubeはユーザーのセキュリティを考えるべき: "著作権侵害のビデオを見ようとする奴がいけないんだと言う向きも多数いるだろうが、それ以前に上場企業が悪事の片棒を担いでいることの方が問題だろうし、簡単に著作権侵害のビデオ投稿できる仕組みも問題だ。"

痛い人だ。自衛してないのか?

F's Garage:高学歴の人と付き合っていく方法

F's Garage:高学歴の人と付き合っていく方法: "何故なら、それが正しいか否かというのは、クチのうまさ、頭のよさでカバーできてしまうから、だそうです。"


口下手な俺はいつも間違ったことを言っていることになる。

Saturday, October 21, 2006

Google Japan Blog: ブログ検索、始めました

Google Japan Blog: ブログ検索、始めました

technoratiはともかく
kizasi.jpはまずいかも?

On Off and Beyond: いつもながらアメリカのいい加減なハナシ2

On Off and Beyond: いつもながらアメリカのいい加減なハナシ2: "どうしても強引に採用面接に行きたかったら、友達の男に代わりに電話してもらえばよかったんだ。。。ま、別にいまさらどうでもよいことであるが、もしかしたら、この「性別謀り」、将来何か役に立つことがあるかもしれない。裏技として心にしまって置きたいと思います。"

ほほー。そういうのもありなのか。

分裂勘違い君劇場 - 分かりやすさよりも正しさよりも学習に必要なものとは何か?

分裂勘違い君劇場 - 分かりやすさよりも正しさよりも学習に必要なものとは何か?: "感情の刺激は、分かりやすさや正しさに優先するのだ。"

だから感情的になりやすい俺は馬鹿なのか・・・

指定されたデバイス、パス、またはファイルにアクセスできません。アクセス許可がない可能性があります。

指定されたデバイス、パス、またはファイルにアクセスできません。アクセス許可がない可能性があります。

このようなメッセージが出たら

http://blog.livedoor.jp/saitotetsuya/archives/20535835.html

に従い、エキスプローラーのセキュリティタブを表示させ、
適切な権限を付与させる。

Unixでいうところのchmodってやつ。

これによりObjectDock Plusを制限つきユーザで実行できなかった事象を回避した。

しかし、丸二日かかったぞ・・・
なにやってんだ、おれ。

# スクラムマスターを雇う時に聞いてみるとよい47個の質問

  # スクラムマスターを雇う時に聞いてみるとよい47個の質問 スクラムマスターへの質問というPDFがあるので、回答してみた。 定期的に自分の回答がどう変わっていくのか楽しみだ。 Scrum Master Interview Questions: Free Download of...