2010-01-13
■[Java][WebAP] TomcatのJNDI設定は5.0と5.5で変わってる 
The Apache Tomcat 5.5 Servlet/JSP Container - JNDI Datasource HOW-TO
Please note that JNDI resource configuration has changed somewhat between Tomcat 5.0.x and Tomcat 5.5.x.
ということで、JNDI使用時はバージョンに注意。
2009-12-03 
RFP完全マニュアル 実践編 - RFP完全マニュアル 実践編(目次):ITpro
Amazon.co.jp: RFP入門―はじめての提案依頼書
[指南役の提言]コスト削減を目的としたERP導入は成功しない:ITpro
” 業務プロセスの標準化は、業務の担当者が主導して進めるべきだ。その作業には2年はかかると考えた方がよい。ERPパッケージと一緒に提供される BPM(ビジネス・プロセス・マネジメント)ソフトがある。これを利用する場合も、ERPの導入と業務プロセスの標準化は明確に分けて考えるべきだ。 ”
IBM Rational AppScan Source Edition (Ounce Labs), AppScan and Policy Tester の発表
RationalがOunce LabsをM&Aですかww
2009-09-14
■[Rails][Rubricks] 組織選択ウィンドウのレンダリングを遅延させて表示速度改善 
組織選択ウィンドウやグループ選択ウィンドウは、組織選択ボタンとかを押したらすぐに使えるように、
一番最初(mainとか)でレンダリングしておく必要があるが普通にやろうとすると、
組織選択ウィンドウをレンダリングするまで全体も描画されず非常に表示が遅かった。
そこで、組織選択ウィンドウのレンダリングをAjaxUpdaterで非同期に実施するようにしたところ
初期画面表示に約5秒かかっていたところ、1秒程度に改善された。
(修正前) main.rhtmlにそのまま記述
c<div id="search_result_area"></div> <script type="text/javascript"> <%# 初期表示用検索実行 %> <%= remote_function( :url => {:controller => '/sample/hoge', :action => 'search'}, :update => 'search_result_area') %> </script> <%# 組織選択ウィンドウ %> <%= render_organization_select_window({ :element_id => 'hoge_organization_select_window', :options => { :prefix => 'hoge_org_select_', }, :title => '組織選択', :variable => 'rubricks.sample.hoge_org_select_window', }) %> ・・(以下略)・・
(修正後) main.rhtmlから別rhtmlに切り出して、Ajaxで読み込み
=== main.rhtml === <div id="search_result_area"></div> <script type="text/javascript"> <%# 初期表示用検索実行 %> <%= remote_function( :url => {:controller => '/sample/hoge', :action => 'search'}, :update => 'search_result_area') %> </script> <%# 組織選択ウィンドウ用 %> <div id="hoge_window_org_select_area"></div> <script type="text/javascript"> new Ajax.Updater($("hoge_window_org_select_area"), "<%= url_for(:controller => "/sample/hoge", :action => "main_window_org_select") %>", {evalScripts: true} ); </script> === main_window_org_select.rhtml === <%# 組織選択ウィンドウ %> <%= render_organization_select_window({ :element_id => 'hoge_organization_select_window', :options => { :prefix => 'hoge_org_select_', }, :title => '組織選択', :variable => 'rubricks.sample.hoge_org_select_window', }) %> ・・(以下略)・・
初期画面での検索処理が終わるとすぐその画面は表示されて、
組織選択ウィンドウのレンダリングは非同期で裏で実行される。
勿論、非同期でレンダリングしている最中は組織選択ウィンドウは使えないが
初期画面表示直後に組織選択ボタンを使わせるようなケースでなければ有効と思う。
ちなみに、非同期レンダリング中に組織選択ボタンを押した場合、モーダル状態+ウィンドウなしになるが、レンダリングが終わるとモーダルが解けるので、もう一度組織選択ボタンを押せばOKであった。
2009-09-09
■[Ruby][Rails] RubyWorld Conference 2009 メモ(1) 
特に印象に残った話
GWebLink-Neo CMS : 富士通四国システムズ
2001年からやってて2009年4月現在318システム稼働中とのこと。
CMS(ブラウザUI)だけじゃなくて、デジタルサイネージ(データ配信)でイオンモールとかみずほ銀行の金利ボードなんかもやっているとのこと。
直近の50案件(商談)の内容を見てみると、言語やプラットフォーム指定は減少傾向・OSS利用できる機会は増加傾向ということで、特にASPやSaaSの案件では機能のみに注目しているとのこと。
課題
Rails用の高機能帳票PDFプラグイン作れば商売になるかも?w
楽天
楽天でRubyを推している理由=「日本発世界へ」という理念が共通。Rubyの信念に楽天の経営層が共感したそうな。
トップダウンで適用指示してもらえるといいよね^^;
Ruby適用範囲広がってるとのこと。
楽天では、どのページにどの言語を使っているとか基本的には公表できないそう。(複数の言語で開発しているということですね)
画面編集のツールをRailsで作成。
ROMA=分散データストア
Fairly=分散処理システム
楽天=ユーザ数4600万人、商品数3千万、日商30億 →分散のシステムは必須。
→分散システムがここでできると他のエンタープライズ分野にも広がるかも?
楽天技術研究所では、1/3がRuby、2/3は他の技術の研究。
どうでもいいけど、Ruby "World Conference"じゃなくて、"RubyWorld" Conferenceなのよねww (多分)
2009-07-27
■[Rails][Rubricks] component_initでActiveRecord関連のエラー(load_missing_constant) 
以下のようなエラーが発生してた。
C:\work\NetBeans65\bizca>ruby script\component_init hoge
C:/work/NetBeans65/bizca/vendor/rails/activerecord/lib/../../activesupport/lib/active_support/dependencies.rb:263:in
`load_missing_constant': uninitialized constant Hoge::HogeReviewBugCount (NameError)
from C:/work/NetBeans65/bizca/vendor/rails/activerecord/lib/../../activesupport/lib/active_support/dependenc
ies.rb:452:in `const_missing'
from ./script/../config/../install/hoge/_install/db/101_hoge_schema_101.rb:312:in `real_up'
(以下略)
該当ソースは、モデルをcreateするところ。
Hoge::HogeReviewBugCount.create( :dts_pjdata_project_id => pj.id, :dts_pjdata_review_bug_category_id => tmp_id, :count => rbc_count[i] )
間違っているように見えないけど。。。 モデルの関連とかも間違ってないようだし。。
結論:modelのファイル名が間違ってた。
(正)hoge_review_bug_count
(誤)hoge_reviewe_bug_count
......orz
2009-07-23
■[Rails][DB] Rails+MySQLで日付指定 
こんな感じのフォームがあったとして、年月とか日付を指定してDBから値を取ると。
画面側からわたってくるパラメータはこんなかんじ
"conditions"=>{"trails_select"=>"month", "select_year"=>"2009", "select_month"=>"7"}
"conditions"=>{"trails_select"=>"term", "to_date"=>"2009/07/31", "from_date"=>"2009/07/01"}
方法は大きく分けて、DBの型をDateでやるか文字列にするか2通りあるっぽい。
(1)Date型
select * from hoge where created_at >= '2009-07-23';
ちなみにnewするときの日に-1を指定すると、その月の最終日が取れる。
Date型そのままでもOKだけど、conditionsを(デバッグとかで出力して)
見やすいようにstrftime掛けている。
(これならDate型にしないでStringで連結の方がいいかも)
current_year = params[:conditions][:select_year].to_i
current_month = params[:conditions][:select_month].to_i
from_date = Date.new(current_year, current_month,1).strftime("%Y-%m-%d")
#日付指定だと00:00:00扱いになるので、翌月1日(00:00)未満という指定にする
to_date = Date.new(current_year, current_month + 1,1).strftime("%Y-%m-%d")
#最終日を指定すると含まれなくなってしまう
#to_date = Date.new(current_year, current_month, -1).strftime("%Y-%m-%d")
conditions = [""]
conditions[0] += " created_at >= ? AND created_at < ?"
conditions << from_date
conditions << to_date
(2)文字列型
MySQLのdate_format関数を使って、DB側を文字列にする方法。
select * from hoge where date_format(created_at,'%Y-%m-%d') >= '2009-07-23';
今回の場合は、パラメータが「2009/07/23」という形式で渡ってくるので、date_formatの方も
/区切りにしてあげる。
to_date = params[:conditions][:to_date]
conditions = [""]
conditions[0] += " date_format(created_at,'%Y/%m/%d') <= ? "
conditions << to_date
参考リンク
