2011-01-01から1年間の記事一覧

スレッドダンプ解析を行うツールを作るか迷う

私が直接関わっているわけではないけど、うちのチームで基盤を構築したシステムにて、非常に危ないトラブルが発生している。APが大分イケてなくて、基盤を巻き添えにした上で縮退運転まで持ち込まれるという非常に悲惨なトラブルだ。ちなみに、APは、ま…

groovyの勉強:ACM/ICPCの問題を解く

本日の題材は、2010年国内予選の問題B。きっと二番目に簡単な奴。 http://icpc2010.honiden.nii.ac.jp/domestic-contest/problems#section_B問題Aのときと同じように、eclipse開発だから、ファイルへの入出力へと変更した。 まあ、工夫したところはあまり…

初めての営業活動、そして失注。良い経験でした。この3カ月、他の仕事があったとはいえ、お客様と真剣に向き合い、真摯に仕事をしてきた。現場レベルでは評価は高かったとは言え、残念なことは残念である。

groovyの勉強:swingを使ってみた

テキストファイルを読み込んで、指定された行にマッチした行だけを表示するプログラム。とりあえず、次のことを試してみた。 JFileChooserのmetaclassを使って、ファイルオープンと保存の処理内容をクロージャで定義して、簡易に読みだすことができるように…

就職して初めて

仕事を放棄して帰宅した。 と言っても、午前2時。 忙しくて放棄したわけではなく、どう頑張っても自社の不利益にしかならないExcel上の数字弄りに、意味が分からなくなって作業を止めた。とりあえず、飲んで寝て、明日の朝、上司に泣きつくしかない。

groovyでのメソッドとクロージャって記法的に可換じゃなくね?

メソッドとクロージャの違いについて、直観的に同じようにに扱えないことにストレスを感じつつ、備忘録。 関数とクロージャでの乗算の定義 // メソッドでの定義 def mulm( numa, numb ){ numa * numb } // クロージャでの定義 mulc = { numa, numb -> numa *…

groovyの勉強:メソッドとクロージャの使い方の違い

仕事だりー ということで、groovyに逃避。

仕事をするとき気を付けていること

新人たちを指導する機会があり、飲み会の時に突然質問された。どうやったら仕事が出来る人になれますか。そんな質問が出てくるとは思わず、酒の勢いも手伝って、自分を棚に上げつつ、つらつらとでも熱く語ってしまった。 なので、ちょっと考えてみた。ここ数…

ちょっとだけ改良した

package acm.jp2011p new File(args[1]).withPrintWriter { out -> def xs = [] def ys = [] new File(args[0]).splitEachLine(/\s+/){ items -> items = items.collect { it.toInteger() } if( items.size() == 1 ){ if( xs.size() > 0 && ys.size() > 0 ) …

groovyの勉強を始めてみた

本日の題材はACM-ICPCの問題。2010年国内予選の問題A。一番簡単な奴。 http://icpc2010.honiden.nii.ac.jp/domestic-contest/problems#section_Aeclipse開発だから、ファイルへの入出力へと変更した。 あとは、愚直に書いてみた。 package acm.jp2011p def …

職場が暑い

職場が暑いです。暑すぎて、仕事になりません。空調の設定温度を下げさせてください。 というか、まず、座席の配置がおかしい。窓際から、部長→課長/課長代理→社員→協力会社の方々→空き席→共用キャビネット→打合せ卓→プリンタ/FAX/フロアサーバ等の順…

失敗したこと その5 「Springに頼りすぎたこと」

機能拡張を容易に行えるという要件があった。さまざまなサーバ間連携を実現する通信ミドルなので、各種通信方式をプラガブルにサポートすることが求められた。要件定義・基本設計の段階で、各連携先と通信方式を確定できずにいた。正確には決定はしていたが…

失敗したこと その4 「単体テストの観点が足りなかった」

このプロジェクトでは、単体テストを二つの工程に分け、定義した。ひとつは、クラスのメソッド単位で行う単体テスト。もう一つは、詳細設計書通りに動作するか。私の期待としては、前者がクラスに対するホワイトボックス試験となり、後者があるクラス群に対…

今のプロジェクトで失敗したなと思うこと(2)

続きです。

失敗したこと その3 「shellスクリプトに手を抜いたこと」

Javaはソースコードレビューとかして、色々品質高めるための努力はしてた。shellスクリプトはしなかった。結果、一部のパラメータが違うだけのコピースクリプトが大量に発生した。特に、JMXによるAP制御のshellスクリプトが、大変なことになってた。結果、1…

失敗したこと その2 「インスタンス図(オブジェクト図)を書かなかったこと」

クラス図はがんばって描いたけど、インスタンス図は時間がなかったから描かなかった。そしたら、SpringのXMLを書くときに、いろいろあった。本当に、いろいろあった。通信相手ごとにインスタンスを分けるとか分けないとか、チームメンバ間で意識共有できなか…

失敗したこと その1 「詳細設計書を社内のテンプレートで書いたこと」

処理の内部仕様(処理の動きのこと)をフローチャートベースで書いたせいで、プログラムの処理順序が変わったら、処理設計書も書き直し。せめて、処理の外部仕様に留めておけば良かった。それに、異常系(準正常系。プログラミング時に想定した異常処理)を…

今のプロジェクトで失敗したなと思うこと

今のプロジェクトにかかわって、もう2年半。いろいろと成果は出したけど、失敗もした。作ったものは、通信系アプリ。ミドルに近い存在。一般的な、画面ありの、DBありのな業務アプリではない。

そろそろOracleやめて。。。

だいぶどうでも良い話だけど、そろそろOracleやめて、全面的にPostgreSQLに移行したい。 PostgreSQLだって、DBのサイズが1TBぐらいなら、ちゃんと使えば普通にパフォーマンスも出て、安定して動くし。(それ以上は経験がないので。。。) あと、どうせJ…

ソースコードレビューで色々あったので

10以上、20未満の場合に、何か処理をするというコードの書き方。パターン1。 if( x >= 10 && x < 20 ){ hoge(); } パターン2. if( 10 <= x && x < 20 ){ hoge(); } 俺は、後者のほうが好き。

いろいろあって、AspectJを利用して開発を行っている。 で、いろいろコードを書いてみてはいるものの、どうも、AspectJ側にGenericsの処理に問題があるため、AJDTを利用したときに、不要なエラーが発生したり、必要なエラーが発生しなかったりする。 それで…

仙台より帰ってきました。

明日から行ってきます。

1年ぶりに書く日記がこれかよ

来週末より、被災地支援ということで、仙台に行くことになりました。 メールで募集が流れていたので、我慢できずに思わず手を挙げちゃいました。