3/31(Sun)
/** 柏最悪(-_-; */ 久々に実家帰ったんですが、 柏駅までは、特に問題無かったのに、 着いた途端、ストリートミュージシャンっぽいのが、 やたらにうるさくて、もう〜最悪(-_-; ドラムまで使うか? 普通。 で、バス乗ろうとするも、全然こないし。 結局20分待たされてやっときたのですが、 その間、ずっとショボい音楽聞かされたので、 ムカムカしてしょうがなかったです(>_<; そして、バス乗ったら乗ったで、 柏駅周辺が混み過ぎて、なかなか駅周辺から脱出できず(T_T) ありゃあ、都市再開発した方がいいね。きっと。 /** 常磐線もだめだめ(T_T) */ 15:05ごろ駅に着いて、次の電車は何分にくるのかな〜? と思ってみてみると、 15:09 通過 15:15 通過 15:18 快速 つーかー。2本連続通過っていうのは意味分からないんですが(T_T) ほんと使えねえ(>_<; /** 西友行ってみた */ ついにオープンした模様です。 日曜日の夕方で、結構品切れ起こした形跡もあったので、 それなりにお客さん入ったようです(^^; 場所が場所だけに、大したことないと思ったんだけどなぁ。 で、僕にとって大問題の、「野菜ジュースの値段」ですが、 野菜生活 → 258円 = 標準価格 充実野菜 → 188円 = 安い!(^^) という結果になりました。 というわけで、「充実野菜」に乗り換えってことで(^^; で、さっき一口飲んでみたんですが、 ちょっと味が淡白っぽいです。 う〜ん。やっぱ慣れた野菜生活の方がおいしいよなぁ。 まあ、そのうち慣れるでしょう(^^; ちなみに、ざっと見た感じ、野菜とか肉とかはともかく、 牛乳とかヨーグルトは高いです(T_T) 結局、スーパーは使い分けないと、どうにもならないんですねぇ。 とりあえず、自転車で10分のオリンピックよりも、 自転車で5分の西友の方が良いので、 こっちに乗り換えるでしょう。 充実野菜に慣れればね(^^; /** 鶏肉と野菜の煮物 */ を作ってみました。 野菜が良い感じだったんですが、 鶏肉にむね肉使ったせいで、いまいちパサパサ感がいなめず(>_<; 今週は、親子丼もやろうと思ってたんで、むね肉でいいやあ〜とか思ったんですが、 やっぱり、もも肉を買うべきだったなぁと反省(T_T) ただ、 1) (ごぼうの)乱切り 2) こんにゃくひきちぎり (誰でもできる(^^;) の技をマスター!(^^; ますます料理の腕が上がってる、今日この頃です(^^)3/29(Fri)
/** 雨に降られて、風に吹かれて */ ズボンはびしょぬれ、傘は折れるし...(>_<; こういう時は、自転車通勤辛いねぇ(T_T) /** パフォーマンステスト */ 遅いのは、単にインデックス張ってないからでした... なさけなや〜(>_<; ちなみに、てきとーに計算すると、 順アクセス) 平均アクセス回数 = 80000 / 2 = 40000回 B-Treeインデックス使用) 最大アクセス回数 = log280000の切り上げ = 17回 つーわけで、2000倍も違うという(^^; どーりで遅いわけだ! つーか、やっぱりデータベースハッタリストなわけだ(T_T) /** Dualで半分!? */ なんかDualマシンだと、NTのパフォーマンスモニタ(だっけ?)で、 CPUの使用率が50%って出るみたいです。 CPU1個しか使ってないのかなぁ。 でも、SQLServerの設定では、両方とも使うみたいになってるんだけどなぁ。 1GB積んでるメモリは、全然余裕ぽかったので、 表結合っつーのは、やっぱりパワーのいる作業なのねえ。 と、改めて認識。 もしかしたら、80000レコードぐらいあるテーブルを 3つくっつけてたかも(^^; 80000^3 = 512000000000000行! つーわけで、そりゃあ時間かかるでしょう(^^; あー。やっぱり反省だなこりゃ。3/28(Thu)
/** 2ヶ月も前だってのに */ 新人がくるのが楽しみでしょうがないんですが(^^; だって、今のもうすぐ新人卒業君が、どういうリアクションするのか、 すっごい見てみたいし(^^;; あ〜早く6月にならないかなぁ(^^) /** パフォーマンステスト */ 今日初めて、実践レベルのデータがきたので、そいつを使ってテスト環境で動かしてみたんですが、 話にならないぐらい遅かったです(T_T) これが1GHz(しかも無駄にDual)のサーバマシンなの!? って感じ(>_<; ボトルネックは、比較的すぐに想定できたんですが、 なにぶん、本当にその改善策で合ってるの? ってのを確かめてからじゃないと、また同じ目に合う可能性もあるわけで、 開発環境でパフォーマンステストすることにしました。 テスト環境で8万件のデータがあったので、 それよりも少ない件数でテストしてみるわけですが、 それでも1万件程度のデータを作成しなければならず、 人工的にデータを作成するにしても、非常にめんどうな作業です(T_T) (テスト環境のデータを1万件だけ引っ張ってくる手もあるんですが、 今回は事情により、その手は禁じ手でした。) そこで出てくるのが、こないだExcel VBAで作ったテストデータ作成支援ツールだったりします(^^) コピペ(Copy and Pasteの略ね(^^;)したり、Excelのオートフィル機能とかを駆使すれば、 ほーらあっという間にデータができちゃったって感じ(→ほんとか?(^^;) ADOを使って、Excelから直にデータをテーブルに取り込めるので、らくらくです(^^) んでもって、想定ボトルネックを修正したモジュールで、 パフォーマンステスト開始! いくつかデータを取るうちに、想定が正しかったことが証明されました(^^) さて、あなたなら、どうやって大量のテストデータを作成しますか? /** 肉豆腐を食す */ 1g1円の牛肉♪を使って、肉豆腐を作ってみました。 やっぱ、安い牛肉のせいか、あんまり肉はおいしくないっぽい(T_T) ですが、たまねぎとか、なかなか良い感じでおいしかったです(^o^)3/27(Wed)
/** 最近 */ 雨降るし、寒いし、最悪だねぇ...(T_T) /** じゃばじゃば */ こんなところもたまにはチェック! Java Server Faces面白そうだねぇ(^^) Strutsがサポートしようとしてるのも、うなづける感じです(^^) でもこれって、ECSとは違うのかなぁ... /** 体裁上はリーダーなのに... */ 作る(コーディングする)のに必死で、後付けの設計書とテストは、 自分の下に付いた人にやらせるっていう、リーダー(つってもサブレベルだけど)がいるらしいです(-_-; 2〜3年目だったら分かるんだけど、三十路前っていうから、やばやばです(T_T) こんな状態なので、管理能力は当然無いんですが、 事情通な人に、「でも、コーディングはできるんでしょ?」 と、半ば希望観測気味に聞いてみるも、答えはNo。 いわゆる、ひとりよがりなプログラムを作ってるらしいです。 ダメな人は、何やってもダメなんだろうけど、 プライドだけは高いんだろうなぁ... もしかすると、こういう反面教師を多く見ることで(もちろん、判別できないとダメだけど)、 自分が正しい方向(というか、間違ってない方向)に行けるのかもね。 既に、「仕事のプログラミング」はしてなくて、 「仕事の役に立つプログラミング」しかしてないんだけどね(^^; /** 脱プログラマの兆候 */ 昔も同じようなこと書いた気がするんだけど、 こないだVBAでツール作ってたんですが、もう気持ち悪くてしょうがないです(T_T) 作りたいものが明確でも、言語に慣れてない&ヘルプが不親切だと、 なかなか作れないもんですねぇ(>_<; こんな時、 意地でも自分で調べて作る → プログラマ 仕様書 or 設計書を書いて、言語が得意な人に作ってもらう → 脱プログラマ(あえてSEなどとは言いません(T_T)) という違いが出るでしょう。 でも、結局仕事のプログラムじゃないので、 自分で作るしか無いんですけどねー(T_T) やっぱり、脱プログラマとか言いつつも、 自分で作れないと将来において非常に困りそうなので、 新しいプログラミング言語は、勉強しとかないといけないのかもねー(T_T)3/26(Tue)
/** ODBCもオープンなはずなのに。 */ VBAで、データベース中にある全テーブル名を取得するっていう処理を書いてたんですが、 Accessのヘルプに付属の、ADO APIリファレンスを見ると、 なんと、java.sql.DatabaseMetaDataと非常に似ているではないですか(^^) DatabaseMetaData#getTablesメソッドの引数リストまで同じだったんですが、 Accessのヘルプみても分からない部分を、JavaのAPIリファレンスで埋められてしまうという(^^; こないだ、iSQLを紹介したわけですが、 ODBCでも、似たようなことできるのに、そういうツールは無いんだろうか? っていう疑問が湧きました。 やっぱ、色々なデータベースを使いこなす必要が無かったからなのかなぁ。 でも、SQLServerとOracleの両方を使う可能性は高そうだし、(っていうか僕はそうだし) DB2とかPostgresもきそうな感じがするから、DB Independentなツールは、 今後役に立つと思うけどなぁ。 /** 集中力無さすぎ(T_T) */ 朝はすっごい集中力あっていいんですが、 昼間は、しゃべったり休んだりばっかり(T_T) ぼちぼちは仕事が進むのですが、午前中に比べると全然。 そして、定時が過ぎると集中力復活で、 また仕事がはかどったりします(^^; 最近、早起きするようになって、一番早く会社に行くようになったのはいいんだけど、 残業するようになって、一番最後に帰るようになったのはいただけないぞー(T_T)3/25(Mon)
/** プログラマは自主トレに励むべし! */ 自主トレしないプログラマは、単なるサラリーマンでしかないな。 /** Let's Excel VBA */ 一応、平均的なVBAプログラマ並にはなったつもり(^^; あとは、ヘルプさえあれば、どうにでもなるでしょう。 っていうか、VBな人を使ってどうにかしようと思ってたのに、 自分がVBな人になっちゃったよ(T_T) なんか、「Excel VBA使いです!」なんて言おうものなら、 すっげえバカにされそうでヤだね(>_<; つーか、VB使いでJava知ってる人って、存在しなそうだねー。 VBの命も、そんなに長くないのに。 まあ、Javaもいつまで持つか分からんけど(^^;3/24(Sun)
/** Jakarta Struts */ そろそろやっとこうかと思った時に、JavaWorldの特集に出てきました。 う〜ん。なかなかナイスタイミングですね(^^) Jakarta Struts /** 高い魚は高い */ って、あたりまえのことなんですが(^^; カレイの煮付けをやろうと思って、近所のスーパーに行ってみたんですが、 さんまが1匹100円で買えるのに、その5倍もの値段がするんですねー(>_<; その扱いも違ってて、さんまはむき出しで、 発砲スチロールの箱っぽいやつに、乱雑に入れられて、 買いたきゃ適当にビニール袋に詰めてくんな! みたいな感じなのに、カレイはちゃんとパック詰めされてて、 いかにも高級感をただよわせてました(T_T) つーか、さばとか、さんまとか、いわしとか、 安い魚でも満足なのさー(T_T) /** ある時とない時と */ こないだ、冷凍ギョーザが20コで128円つーのがあったので、 それを目当てに同じスーパーに行ってみたら、これが無いのねー(T_T) あれって、特売品だったのかなぁ... やっぱ、ちゃんと広告見てから買い物行かないとダメなのかしらん(T_T)3/22(Fri)
/** 残業リハビリ中 */ そんなのするなって感じですが(^^; でも、慣れとかないと、今後もたなそうなんだもん(T_T) /** QA? */ 最近気になってるんですが、 現場では、QA(きゅーえー)っていう言葉を、Q&Aの略として使っているようです。 例えば、 「う〜ん。ここの部分はあいまいだから、QAに出すかぁ。」 みたいな感じ。 てっきり、Quality Assurance(品質保証)の略が一般的だと思ってたから、 なんか、違和感ありありです(T_T) 良くも悪くも業界用語なんでしょうが、QAをQ&Aの略として平気で使える人は、 きっと、あんまり品質とかには関心が無い人なのでしょう。 悲しいことです(;_;3/21(Thu)
/** C# */ インタフェースを実装したクラスを継承して、 継承クラスの実装メソッドをオーバライドできなかったんですが、 どうやら、monoのC# Compiler(mcsっていう名前だったりします)のバグっぽいです(T_T) C#の言語仕様見てみたら、そういう例題が載ってて、 ちゃあんと動いてるっぽいのです(T_T) 上記ページにも書いてありますが、 インタフェースを実装したメソッドをvirtual宣言して、 その実装メソッドをオーバライドするメソッドには、overrideキーワードを付けると。 が、mcsでコンパイルすると、 「sealed」(Javaで言うfinalみたいなものか?) とかエラーが出て、コンパイル通りません(T_T) やっぱり、しょせんフリーだから? 明日には、Visual Studio .NETの日本語版も出ることだし、 ちゃんとやりたかったらVisual C# .NET買うべき?? う〜ん。でも金もったいねぇしなぁ(>_<; っていうか、Javaだったら、virtualだの、overrideだの付ける必要なくてラクだし、 実験するのにお金かからないし、やっぱりC#よりもJavaじゃないの〜(^^; /** POI続報 */ Javaから、WordとかExcelファイルを読めるAPIらしいので、ちょっと試してみました。 もしかしたら、Excel VBAじゃなくて、Javaでテスト支援ツールを作れるかも!? と期待を抱きつつ... とりあえず、以下のようなコーディングで、Excelシートの中身を読めました。 (ただし、何も入ってないシートはNullPointerで落ちるので、何らかの回避策が必要です。) ちなみに、実行にはPOIのライブラリだけじゃなくて、Log4jも要求されます。 import java.io.*; import net.sourceforge.poi.hssf.usermodel.*; public class test { public static void main(String[] args) throws Exception { HSSFWorkbook workBook = new HSSFWorkbook(new FileInputStream("日本語.xls")); for(int i=0; i<workBook.getNumberOfSheets(); i++) { HSSFSheet workSheet = workBook.getSheetAt(i); System.out.println("-- " + workBook.getSheetName(i) + " --"); for(int j=0; j<=workSheet.getLastRowNum(); j++) { HSSFRow row = workSheet.getRow(j); for(int k=0; k<=row.getLastCellNum(); k++) { short index = (short)k; System.out.println(row.getCell(index).getStringCellValue()); } } } } } 日本語のファイル名と、日本語のセルデータはOKだったんですが、 日本語のシート名はだめでした(T_T) う〜ん。。。そこが使えないとなぁ。 つーわけで、今後に期待といったところでしょうか。 POIがまともになるまでは、こっちを使いましょう。