ツール説明

今度開発が始まる案件にて、

の説明会を開く事になりました。
なんでもプロジェクトメンバの殆どがJava未経験らしく、経験者も秀丸マンセーだとか。
そんなこんなで底上げするために「Eclipseの基本操作」と「バージョン管理とはなんぞや」を
説明したいと思います。
しかもこの案件、Flexを適用しますのよ。
社内的には最先端を突っ走っております。
(過去社内で最先端技術を使って燃えなかったプロジェクトは無い気がしますが)

はてさてどうなる事やら。

グラフうんぬん

Fedora Core2
Tomcat5.0.28
Tuigwaa0.8
J2SDK 1.4.2_07

の環境上で集計表からグラフを表示させようとするとグラフが表示されない
で、ログみるとこんな感じ。
MLに投げるかどうかは後で検討。
とりあえずメモ的に。
パーミッションが適当だからかしら・・・

2006-05-26 13:30:05 StandardWrapperValve[action]: サーブレット action のServlet.service()が例外を投げました
java.lang.NoClassDefFoundError
at org.jfree.chart.ChartFactory.createLineChart(ChartFactory.java:995)
at com.isenshi.tuigwaa.database.chart.TCharFactory.createLineChart(TCharFactory.java:56)
at com.isenshi.tuigwaa.view.wiki.plugin.GraphPlugin.doAction(GraphPlugin.java:129)
at com.isenshi.tuigwaa.controller.PluginProxyAction.execute(PluginProxyAction.java:21)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.seasar.struts.processor.S2TilesRequestProcessor.processActionPerform(S2TilesRequestProcessor.java:94)
at org.seasar.struts.processor.AcceptorImpl.process(AcceptorImpl.java:91)
at org.seasar.struts.processor.S2TilesRequestProcessor.process(S2TilesRequestProcessor.java:27)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at com.isenshi.tuigwaa.util.filter.TgwFilter.doFilter(TgwFilter.java:66)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at com.isenshi.tuigwaa.util.filter.EncodingFilter.doFilter(EncodingFilter.java:50)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at com.isenshi.tuigwaa.util.filter.ForwardFilter.doFilter(ForwardFilter.java:44)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:45)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)

グラフ表示

うちの部署で運用しているBlogとWikiのアクセス数の推移をデータとして保持する業務が発生。

「そーいう時のTuigwaaですよ!!」

というわけでTuigwaa上にアクセス数と日付の入力フォームを作成。
ついでにグラフも表示させちゃおうぜっ!!
という事でグラフも同じページに表示させる事に。

集計表機能を使った事がなかったのでちょっとだけ四苦八苦。
とりあえず気付いた点をメモっておきます。
グラフの表示に関しては全体的に利用方法がわからない部分が多いのでそこらへんの質問はMLに投げるとして。

  1. ページ編集画面で集計関連タブ(タブという表現でいいのだろうか)を選択

グラフの挿入」部分でフィルタの選択になってるけど、ここに表示されてるのってフィルじゃなくて集計表じゃね?単純な表示ラベルの記述ミスですよね?

最新版

こっそりプロキシを使ってTortoiseSVNリポジトリブラウザからbranches/RB-0.9をダウンロードできました。
さてデプロイしてみっか・・・

と、思いきや
しまった!!!
ソースをローカルマシンで展開してEclipse上で動かす方法がわからない・・・
かと言ってMLにこんな事投げるのは気が引けるのでちょいと調べてみようかしら。

最近の色々

尊敬する大主任id:vestige先輩が他の部署へ異動になってしまわれたので、
抱えてた仕事の一部に関して主導権を握る事になりました。

そもそも今のところ、部署名の冠である生産技術に関してなんもアクションを起こせてない感じはしますが、そこらへんは頑張ってなんとかしていきたいです(って言っておきますw)

とりあえず、まずは某A社さんの開発環境パッケージを導入したのでそれに関して調査と構築、試験運用を行わねばなりませぬ。
 この開発環境パッケージ、平たく言うとプロジェクト管理に関するOSSツール&ノウハウのパッケージ
なので基本的にパッケージに内包されているOSSの動作環境さえクリアしていれば動くのですが・・・

今のところ、開発環境パッケージを構築する候補のハードウェアが2つあり、
片方は

Windows2000Server
Pentium3 1.3GHz
メモリ2GB
RAID付(多分ハードウェアRAIDRAIDいくつかは不明・・・汁)

という微妙なスペックのものと

Windows Server 2003
Itanium2×2(クロック周波数失念)
メモリ1GB(だったはず)
(その他情報失念&手元に資料なし)

という一見豪華なスペックのもの2択となっております。
ただ、64bit環境でちゃんと開発環境パッケージが動くかわからないという事と、HDD容量に関してどれぐらい見積もればいいのかすら手探りな事等、課題が山積み。
ちょっとだけ調べた結果、Itanium2は32bit互換モードがあるっぽいのでそれでいける(と信じたい)

のわぁぁぁぁぁぁぁあーーーーー

IPAX2006にTuigwaa出展してるぢゃないですか!!
ちきしょー
それならそうとはてなで告知すればいいのに(笑)
昨日せっかく会社休んだんだから行けばよかったーーー

え?何しに行くって?
早く0.9出して下さいって催促するに決まってるじゃないですかwww

最新ソース取得断念・・・

試しに現在の最新のソースでも触って見ようと思い、svnリポジトリから引っ張ってこようと決意。
まずはTuigwaaのページのソースリポジトリへのリンクをクリック。

って、ここにリンクはってあるURLってWebSVNのアドレスじゃないか!!
こんなの見れてもソースを一括で持ってこれないよママン。
という事でとりあえずsvnリポジトリのURLを探す旅へ出る事にしました。

  1. S2のTOPページ(http://www.seasar.org/)からソース閲覧(seasar.org)へ飛ぶ
  2. S2のプロジェクト一覧ページ(http://www.seasar.org/websvn/)の下部のThe Seasar Foundation Repository Listのリンクをクリック

でやっとリポジトリの生URLを発見。

https://www.seasar.org/svn/hogehoge

って感じのネーミングでした。うん。一般的。これだったらあてずっぽでも探せた気がする。
で、URLがわかったのでまずTortoiseSVN上からアクセスできるか試してみた。
TortoiseSVNリポジトリブラウザでhttps://www.seasar.org/svn/sandbox/tuigwaa/を指定してENTERキーを強打。

カモーン最新ソース!!
ログに
「yuhei's elegant refactoring and bug fix」
なんて書いてあるんだからさぞかし素敵なソースに違いないw

 なんてワクテカしてたらエラーですって。リクエスト先が見えませんですと・・・。
よくよく考えてたらTortoiseSVNでプロキシの設定してなかった。
しかし、うちの会社、プロキシの設定をスクリプトで行ってるからこれ無理じゃね・・・?
早くも断念か・・・。家で頑張ろう・・・
WebSVNって閲覧したリポジトリのtarボールでのダウンロードってできなかったっけな・・・

Linux上に構築

こないだまで頑張って構築してた環境はWindows2000Serverなんですが、いぢくりテスト用としてもう一つTuigwaaの環境が必要になったのでFedora Core2上に構築してみました。
Tuigwaaの構築方法はWindows版と基本的に同じ流れで無事動作完了(ファイルのパーミッション適当に全部755にしちゃいました*1が←ダメダメっぷり全開)

ただ、構築後にアプリケーションエラーが発生したので、いつもの
「必殺!コンテナ再起動っ」
を行ったところ、それでもエラーが直りやがらない&Tuigwaa自体がエラーで見れなくなるというえらいこっちゃ状態に陥ってしまった為、構築直後でデータも全然入れてなかった事もあり、Tuigwaaを入れなおす事に。

その際の手順は

  1. Tomcat停止
  2. rm -rf /usr/local/tomcat5.0.28/webapps/tuigwaa
  3. Tomcat起動

で、tuigwaaのURLへアクセス
表示されません。
ていうかエラー画面にも飛びません。リクエスタイムアウト
さっぱりわかんねーと半分泣きが入っていた為、Tomcatから入れ直すという暴挙に。
(今改めて考えるとほんとここらへん解決する気ゼロですな・・・問題ありすぎ)

で、Tomcatを入れなおしTuigwaaも入れ直してTuigwaaにアクセス。
やっぱダメ。症状変わらず。

試しにOS毎再起動してみた。

そしたら何事もなかったかのようにアクセスできるように(笑)
メモリ上になんか保持してたってこと?
さっぱり原因わからん上に再現も不可能だからどうしょもありません・・・。

申し訳ない>お二人

関係ないけど、最近、Tuigwaaのサイト(http://tuigwaa.sandbox.seasar.org/)がSleipnirだと見れない・・・。
FireFoxだと問題なく見れるんだけどな・・・。
会社のプロキシのキャッシュが壊れてるのかしら。

今気付いたんだけど、Tuigwaaが注目を浴びるとですね、はてなのキーワードを参照する人が増えるわけです。
そうすっと、この下らない内容の日記も色んな人に見られる可能性があがってしまうわけですよ。
やばいね、これからこの日記中ではTuigwaaを隠語で表そうかなw

*1:せめてtomcat用ユーザ作ってCATALINA_HOME配下ぐらいchownしろよ俺・・・