事の発端は、徹夜でGroovyの調査をしていて、気がついたら3時頃になっていたわけです。明日は何もないし徹夜しちゃうじぇー(・ε・)と、ふと気がつきました。今から寝ても遅刻するし、その時点で諦めましたよ・・・。お金もったいなかった・・・。ウェ―ンGroovyの開発MLにでも入ろうとしたけど、英語が無理なので諦めました。Groovyはしばらく放置して、Strutsを拡張する方向で行きます。StrutsにGroovyの便利なクラスを盛り込む事に。クロージャーそのものを組み込むことは無理でも、似たような事はできると思います。一部のクロージャーは、ある時点での処理を噛ますことができると考えられます。よって、メソッドの引数にインターフェースを渡してあげて、メソッド中から特定のタイミングでインターフェースに定義されたメソッドをコールしてあげれば良いだけ。呼び出すときは、匿名クラスで処理を書いて渡す。00:35開発GroovyRowResultクラスにて、値がNULLのプロパティを取得しようとすると、MissingPropertyExceptionが発生する。23:20日記2006前期開発Groovyのスクリプト分割の方法について。Groovyでスクリプトを分割するには、どーすればいいのか・・・。本家のMLに流れている情報によると、クラスパスを通していれば、きちんと使えるらしい。Groovletでスクリプト分割はできないっぽい・・・。́)GroovyのSQLクラスについて。SQLクラスにfirstRowメソッドがありますが、結果が0件の場合にRangeExceptionが発生します。推測するに、内部的にsql.rows(SQL).get(0)と同じ事をしているのだと思います。get(0)を使用するから例外が発生するので、sql.rows(SQL)[0]で代用。これだと、戻り値が0件の場合はnullが返却されます。23:22日記2006前期開発テスト用にドメインを取得しました。今や1000円も出せば1年間ドメインが使えるので、良い時代になりましたね(ぇ。今回設定したのは、ValueDomainのDDNS設定。WEBは自宅サーバへサクセスさせ、メールはXREAの有料サーバを利用するという設定です。最終的に設定した内容は以下のとおり。XREA鯖IPここで、自宅鯖IPはDDNSを使って更新するため、ValueDomainのネームサーバを使用するように設定します。DICE等のツールを使って更新します。私はWGETを使って更新をかけています。公式ページにはh=*を指定するようになっていますが、この指定は当然ながらAレコードに*の設定がなければ動きません。自宅鯖IP」という設定がなければ更新されません。h=@とh=wwwでそれぞれ更新をかける必要があります。これが無ければ、Aレコードを*で指定してしまっても良いような気が・・・。家庭のLANをGigabitネットワーク化しました。ファイルサーバのNICが100Mでボトルネックになっているので、ファイルサーバのNICをGigabit対応のものに。PLANEXのGN-1200-TWという製品を使いました。Readyとなっており、サポート対象外。kudzuで一発認識するし、ethtoolで見ると1000Mでリンクしてたので、まぁ・・結果オーライということで。Gigabit対応のHUBも購入し、P2P兼テレビパソコンとファイルサーバ間をGigabit化。GigabitからTEPCO回線へ。ジャンボフレーム対応との事ですが、MTUをいじると、ファイル転送が遅くなるorz。12:05日記2006前期開発Windowsで開発したGroovyのモジュールを、そのままLinuxのサーバ環境にデプロイすると、エラーが発生します。́・ω・`)TemplateServletの方はFileReader(file)、GroovyServletの方はGroovyScriptEngineクラスのInputStreamReader(System.in)としているので、それぞれにエンコーディングの指定をかけてあげないと、OSのデフォルトの文字コードで読み込まれるくさい。そんなわけでWindows(SJIS)からFedoraCore5(UTF-8)に持って行くと、文字化けどころか、コンパイルすらできないって事に・・・。́)ノGSPの方はencoding指定ができるっぽいなぁ・・。́・ω・`)開発者とコミュニケーション取りたくても英語わからないよヾ(。今日は新宿で適当にまったりして、買い物でもしてました。帰りに商店街にて、同じ袋を持った団体さんがぞろぞろと・・・。HOSHIという名前が書いてあったので、そんな店あったかなーと思いましたが、近くにそんな感じの薬科の大学があったような気がします。いう季節なんですねー。うちの会社にも新人さんが入ってきてると思うけど、有給消化中なんで、知りません。仕事してないときは、やる気がない時か、余裕があるときです。開発をWindowsで行っていると、Linuxで運用するときにちょっと戸惑う・・・。今日はTomcatとApacheを連携させるために、コネクタを入れようとしたら、apxsが入ってません。yumでインストールを試みるも、IOエラーが発生・・・。ネットワークがおかしいのだろうと思い、しばらく放置した後に再度試みる。何回もやりなおして、やっとこインストールできましたよ。いうわけで、こんな時間になっているわけですが。́・ω・`)ションボリです。́ー`)┌とりあえず、JDK5は前にインストールしてたみたいなので、Tomcatをインストール。HSQLDBがなぜかサービスに登録されているのですが・・・。やった記憶はないし、標準なのかな・・。サービスから削除して開発環境から必要なJarをTomcatのCommon/libに配置。GroovyのJarはアプリケーションに含めているのでWarにしてしまえば問題なし。(゚-゚;)ウーンめんどくさい。最近、Groovyが流行っている(?)ようなのでGroovlet、GSP、HSQLDBを使って簡単なプログラムを作ってみました。自作したフレームワークの移植ということで、コントローラをGroovlet、ビューをGSPという感じで。フレームワークと言っても、非永続化エリアのレイヤー化とディスパッチャーを作ったくらいですが・・・。流行っていないのか、情報が少ない・・・。Tomcat上に環境を構築してみました。気になった点をいくつか・・・。GSPでTaglibsは使えない?GSPでJSPディレクティブが使えない?Groovletでdefを使って宣言をするとローカル領域へ、def無しだとグローバル領域へ。́∀`)引数の数が同じメソッドがオーバーロードされている場合の適用手順が不明。SimpleDateFormatのformatメソッドにはlongまたはdoubleを受け取るように定義されているが、明示的にlongの変数を渡しても、doubleの方がコールされる。Switch構文のCase節でbreakを書かないと、コンパイルエラーが発生する。複数の値を同様に評価したい場合、わざとbreakを書かないという方法が使えません・・・。́∀`)Groovletでout.printlnとすると、HTMLの方に出力されるが、クロージャー内でout.printlnをすると、コンソールに出力される。私のクロージャーの理解不足かな?Rubyとは違う動作なのでちょっと戸惑う。・∀・)イイ!!です。DBの発行がかなり良い感じ。データソースさえ定義してしまえば、発行が超楽ちんです。ListenerにHSQLDBの起動、シャットダウンをするクラスを登録すれば、さらに楽ちん。これがメジャー言語のオルタナティブになるとは思いませんが、Java開発者がちょっとしたツールを作るにはなかなかいい言語だと思います。́・ω・`)そうそう・・・傘をぱくられました。́)ノプンプンTSUBAKIとアジエンスのどっちにしようか迷っている間に・・。23:18開発こんにちは、アーキテクトを目指しているタムタムです。最近のStrutsは機能が付きすぎて重量級フレームワークになってしまいました。した小さいアプリケーションを作る場合、Strutsは確かに便利ですが設定やら環境面やらで、イニシャルコストがかかります。殆どの機能は眠ったままになります。(業務アプリを作る場合は別ですが。)そこで、土日の休みを利用して軽量フレームワークを作ってみました。思想としては、コンパクトかつ高速でイニシャルコストがかからないこと。※ここで言っているイニシャルコストは、「さぁ作ろうかな!」から「実際にビジネスロジックを組む」までの時間です。前に仕事で作った.NETのフレームワークの思想を元に、IBMが作った非公開のフレームワークの思想をぱくりました。́・ω・`)久しぶりにソースを読んで知恵熱が出そうでした。職場ではWSADを使用しているのですが、Eclipseで同じ事を実現してみようと思いました。前にもこれやってるような・・・。Eclipse3.02だと何回やっても上手くいかない箇所が出てくるので、諦めてEclipse3.1系をベースにやりました。これだと日本語化できないんだよね(・・;)EclipseのWebToolsを入れました。一部ejbdocletの設定ページが開けません。̄;)もう、ここに書いてある通りに設定しました。あとは、ここの設定も。開発チームの人が発見したIEのバグです。チェックボックスにフォーカスを当ててスペースを押しながらTABキーを押します。すると、チェックボックスの背景の色が白からグレーっぽく変わります。その状態でいろいろな場所をクリックしてみましょう。関係ない場所をクリックしても、チェックがON/OFFされます。ま、致命的じゃないからいいんだけどさ・・・。18:15開発WindowsXPが入っていたパソコンを真っ新にして、こいつを入れてみました。このパソコンに入った居たのは、WebsphereとWebLOGICとOracle9iしか入ってなかったし。今のLinuxのインストールってすごい簡単ですね。それにデスクトップ環境もかなり綺麗になってる。いっても、サーバ用途のためのインストールなのでGUIはいらにゃい。それにSSH使ってメインのパソコンから操作するし。いうJavaで実装されたBLOGシステムがあるようです。MTをJavaに移植する必要はなさそうですね(*゚▽゚)ソースコードはまだ見てないのですが、綺麗なソースだったら、仕事中にちょっといじくって遊んでみよう。(だって、手持ちの作業が完了しちゃっててヒマなんだもん(^▽^;))さらっと見た感じ、Blojsomがよさげなんですが、どういうライセンス形態なんだろう。ファイル見るとApacheライセンスVer1.1っぽいけど、Apacheライセンス自体どういうものか知らないし・・・。́▽`*)プレゼン層はJSPとVelocityっぽいですね。MTみたく、オンラインでテンプレートを編集できたりするのかな・・・ストレージはDBじゃないっぽいんですが・・・。ストレージの部分のインターフェース作ってファイルかDBか切り替えられるようにすればいいのに・・。詳しく見てないから、そう言う作りになっていたらごめんなさい。今の職場、かなりコンプライアンスが厳しいのです。ネットに繋げないのは別に構いません。それが普通だと思いますし。(某森ビルの中にある某企業みたくギガビットの回線を使い放題という職場もありましたが・・・)そんなのは些細な事です。工数管理とかがめちゃくちゃすぎます。作業時間に関しては4重管理になってます。多重管理もたいがいにして欲しいです。出退勤の時間をパソコンに打ち込んで、納品書に作業内容と作業時間を書いて、工数表に作業時間を書いて、週報に作業時間と作業内容を書く。アホらしくてやってられません。この週報ってやつがくせ者で、管理する人の立場で作ってあるから書きづらい。作業の内容が50種類以上あって、この作業をしたときはXXXを書いてください。みたいな説明がずらずらと・・・。今は納品作業をしているのですが、この納品作業ってやつが作業リストにないんですよ。これ書くために、何十分かかると思ってるんだ・・・。毎日、定例MTして作業の内容等を報告しているんだから、その報告からマネージャやPLが作れば良いじゃないか・・。現場からは不平不満の声が。作業リストと実際の作業の内容が一致してないし。仕事が一番忙しい時期に、定時で出向先を出て本社へ向かう。́ー`)ノもっと割にあったお金が欲しいですね。時間外の作業が15,6時間取られて、おまけに移動時間も含めるともっと超える。当日8時間として24時間。これを1万円でってのがおかしい。時給に換算すると、最低賃金を下回って労働基準法違反してるじゃん。いつも忙しい時期とぶつかるから私生活を圧迫されるんですよね。次の講習会で3回以上講師が割り当てられていたら会社ヤメヨウっと・・・。作成する画面の数と工数を減らすために、DBトリガーを使用することになったのですが、PLSQLに慣れてないから今日一日くらいかかっちゃったよ・・・。70行くらいの関数だったんですが、トリガーのデバッグって難しいですね。何か良い方法あったら教えて欲しいデス。数値上は進捗前倒しになってるけど、実は結構間に合わなそう・・・。23:59開発あのですね・・・。ソースコード管理にはCVSとかSubVersionとかVSSとかが有名どころだと思いますが、今の開発ではPVCSというものを使ってます。PVCSには最低限動くモノをUPしてくださいよ・・・。正常ケースすら通らないソースコードUPすんな!!自分一人で担当している新機能ならともかく、既存の主要な機能のところをいじられると、作業が止まるんです!それと、入力チェックもかけなさい!不正な入力したら落ちるとかまぢであり得ないんですけど。これパッケージソフトでしょ。あと、ライブラリ使わないで独自の処理を実装するのもやめてください。ライブラリのソースコードをそのままコピペして自分のソースに貼り付けるとかまぢアリエナイ。ライブラリの意味ねーじゃん。そのライブラリにバグがあった場合、修正箇所増えるんだよ。私が修正するわけじゃないから別にいいけど(-ω-#)y-~~~~あと、お前が書いたコメントだけ綺麗に文字化けしてるんだよ。なんのエディタ使ってるんだ。2chとかでアリエナイ話を良く聞くけど、実際に目の前で起こるとぐったりします。まぢで開発に遅延が生じる原因です。href=/exec/xxx?file=xxxx/xxxx/xxx.cssとかAPサーバにスタイルシート処理させるなよ。それやると毎回DBにアクセスして役割によるアクセス権調べる仕組みになってるんだから・・・。いう思考してるんだ・・・。システムで用意してるスタイルシート使え・・・。独自のセンスなきデザインなんかするからレビューでボロボロに言われるんだ。́ー`)ノ本当にパッケージソフトの開発なのかな・・・これは。23:59開発<(゚ロ゚;)>ノォオオオオオ!!お客さんからバグっぽいものが報告されました(ノ_・、)シクシク計算結果の小数点以下を切り捨てたつもりが、おもいっきり四捨五入してました・・・。́▽`*)アハハ・・・・ごめんなさい。それよりも、新しい案件が2人月でスケジューリングされてるけど、正月挟むから正直2人月もないじゃん・・・しかも画面数多すぎて普通に終わらないから。難易度で見積もるんじゃなくて、作業量も考慮して人月計算を!ヾ(。自分が作成した機能はある程度デバッグをしなければいけませんが、私たちのチームでは開発者が製品評価に渡す前に単体テストしてます。16:14開発いま、お仕事で使用しているバージョン管理ソフトがPVCSっていうやつなんです。PVCS自体の機能としては結構良いと思うんだけど、クライアントがタコすぎて使いものになりません。1Mのファイルのリビジョンが100超えたあたりから、チェックイン/チェックアウトに5分くらいかかるように・・・。更新して履歴を取っておきたい場合、プロジェクト全体で使用しているPVCSにUPするのはとても危険なので、自分のPCにバージョン管理ソフトを入れてることにしました。いうわけで、開発用のPCにCVSとSubVersionを入れてみました。SubVersionはApache2と連携できなかったので終了・・・。参考サイトの通りにやったのに(ノ_・。)そういうわけでCVSをインストール。ついでにエクスプローラ(シェル)と連携するCVSのツールを入れてみる。使い勝手がよかったけど、ファイルを登録したら、APサーバがそのファイルを読み込まないようになってしまった・・・。