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

Tripwire を運用するのは難しいね

Tripewire ( http://www.tripwire.org/ )を自分が管理しているサーバに仕掛けている方も少なくないと思いますが、ポリシーを設定するのは骨が折れますね。 チェック時にエラーがいっぱいでるので、/proc をチェック対象から外している方も少なくないと思う…

UI 設計で痛感したこと

最近、ユーザインタフェースを設計していて痛感したことがあります。個人的に「こりゃ、やってしまったな」と自責の念でいっぱいです。 それは何かと言うと、同じ画面にいくならば原則的に入り口(またはリンクの文言やボタンのラベル)は1つにすべきだとい…

Javadoc の書き方

みなさん、Javadoc 書いてますか? Javadoc は「API ドキュメント」と言われることが多いように、主にライブラリ的なプログラムで書いてこそのものだと思っている方もいるかもしれません。しかしながら、仕様書を Word や Excel(笑)で別途作ると、プログラ…

Wicket + Databinder + ActiveObjects が熱い

すごくいい。とってもいい。何がいいって、まず ActiveObjects から褒めてみますね。 使えるようになるまでがあっというま(設定やコード量的に)。DI コンテナとかいらない。設定ファイルももちろんいらない。 エンティティに合わせて CREATE TABLE を発行…

ActiveObjects にログを吐かせる

XML と完全にお別れしたい諸氏にとって(dicon だって XML だ)、Wicket + Guice + ActiveObjects という組み合わせは魅力的です。 しかしながら、そのままでは懇切丁寧なログを吐く S2Dao や S2JDBC に比べて ActiveObjects は物静かで中で何をやっているの…

Javadoc が書きづらい

Cubby で書いた Web アプリケーションの Javadoc 用のコメントを整備してるんですが、DI を使うと必然的に Setter が増えると思うんですよ。public フィールドでもいいんですけど。 それで、public と protected のメソッドとフィールドには必ず Javadoc コ…

Wicket を褒めてみる

ちょっと前から気になっていたもののなかなか試せず、最近になってようやく試し始めている Wicket について書いてみたいと思います。 最近は Cubby を多く使っていた私にとって、どのへんが良いと感じたかというと。 複雑な画面制御をしてもプログラムが追い…

「やりたいこと」ではなく「やれること」をやれ

最近、このブログに「やりたいことがわからない」というキーワードで検索をしてくる人が多いようです。 進路に悩んでのことでしょうか? でも、はっきりいって、その考え方自体違うような気がします。 「やりたいことがわからない」のではなく「やりたいこと…

Seasar と Cobertura の組み合わせに注意

この方と同じ現象にあってます。 [Seasar-user:16661] [S2JDBC]Maven2 surefireレポート作成時にArrayIndexOutOfBoundsException この一連の流れを見ると「そんなの仕様上ありえない」と言われただけで、Seasar 側でどうこうするという話はなし。対応しな…

KeePass のススメ

皆さん、パスワードはどのように管理していますか? 悪意ある Web サイトにそうとは知らずに登録してしまったときのことを考えると、特に Web サイトなどの登録に使うパスワードはすべて別々にしたいものです。 そこでおすすめしたいのは、「KeePass Passwor…

よくある RDB の姿が私の理想の OOP に近いかもしれない

このところ OOP のことについて考えつづけいるわけですが、はたと気がついたのです。RDB のテーブルとそのレコードの定義は、たとえば Java ではできないんじゃないかということにです。 たとえば、employee_name というカラムが VARCHAR(30) で定義されてい…

Ubuntu で TIFF を PDF に変換する

直で PDF にできないうちの複合機ちゃんのためにメモ。 $ sudo apt-get install libtiff-tools $ tiff2pdf hoge.tif -z -o fuga.pdf -z は圧縮するというオプション。

Ubuntu 9.04 ベータ版ファーストインプレッション

来月リリース予定の Ubuntu 9.04 のベータ版を早速使ってみたのでその感想です。 起動が速くなったという噂だったが、特に変わった様子なし。なんか設定が必要? 指紋認証の用パッケージ thinkfinger が標準のリポジトリに追加されたみたいだけど、Launchpad…

さらに調子に乗る

前回のエントリのさらに続き。前回の setValue を使うやり方だと、想定外によそで値を変えられてしまうかもしれないので、以下のようにしたらどうかと思いました。 public class EmployeeName { private String value; public EmployeeName(String value) { …

オブジェクト指向のあるべき姿?

前回の続き。ちょっと釣りっぽいエントリです。 たとえば、従業員クラスを作るとしましょう。名前とその読み仮名、住所、性別を持つとすると大抵は以下のようなクラスになります。 public class Employee { /** 名前 */ private String name; /** かな */ pr…

バリデータを書くことに違和感を感じた

Cubby にしろ、JSF にしろ Struts にしろ、バリデータにはたと違和感を感じました。 オブジェクト指向なんだから、どんな値が OK な値なのかはオブジェクト自身が知っていなきゃいけないんじゃないのかな? 車オブジェクト自身が、搭乗定員を知らないのはお…

Cubby で Cool Deploy と Hot Deploy の違いに泣いた

下のような Cubby の Action クラスがあったとします。AbstractListAction は Action を継承した抽象クラスです。 @Path("hoge") public class HogeListAction extends AbstractListAction { // 中略 } それで、View の JSP が違うだけで Action が同じ画面…

COBOL ってすべてスレッドセーフじゃないのか?!

OpenCOBOL で C ソースへの変換結果を見てみたら、WORKING-STORAGE が static 変数になってたんですよ。私の少ない他の COBOL 経験から考えても、たしかに WORKING-STORAGE は static 変数だったような……。 と、いうことはです! こいつらを何も考えずに Jav…

Cubby のリンクサポートでハマる

あるじゃないですか、Cubby に。これ使っちゃうと、Hot deploy 効かなくなりますよね。なんというか、諸刃の剣ですね。

さらにブリッジプログラムをマシにする

昨日のエントリのブリッジプログラムは、異常系の処理があまりにもやっつけだったので少し改良したいと思います。具体的には、COBOL モジュールが見つからなかった場合に例外をスローするようにします。 まず、スローする例外は以下のようにします。 package…

もうちょっとマシなブリッジプログラムを作る

つつましい COBOLer 、いや、COBOList の方々に COBOL プログラム作ったらブリッジの C プログラムも作っておいてなんて言ってもたぶん作りたがらないでしょう。なので、動的に COBOL 製モジュールを呼び出すブリッジプログラムを作りましょう。 Java 側の仕…

Java 側から COBOL 側にパラメータを渡す。

ほとんど COBOL とは関係ない世界になってきていますが、オープン系技術者の活躍どころです。 前回までの内容でできることといったら Java をトリガとして COBOL プログラムを走らせるぐらいで、面白みというか有用性がほとんどありません。今回は、Java か…

JNI と C を使って Java から COBOL プログラムを呼び出す

さて、今度は、COBOL に Hello, world! を言わせましょう。 まずは、COBOL プログラムを以下のようにつくります。ファイル名は hello.cob とします。 IDENTIFICATION DIVISION. PROGRAM-ID. hello. PROCEDURE DIVISION. DISPLAY "Hello, world!". EXIT PROGR…

JNI に挑戦

COBOL(COBOLer)の延命治療に粉骨砕身するオープン系技術者としては、なんとか「自分=お釈迦様」、「COBOL(COBOLer)=孫悟空」にしたいものです。つまり、自分の手のひらの中で動いてほしいわけですね。 ということで、昨日 OpenCOBOL のインストール方…

Ubuntu で OpenCOBOL

COBOL(COBOLer)の延命治療のため粉骨砕身しているオープン系技術者のみなさんこんにちは。 私も30を過ぎたころから少しずつ人が丸くなり、COBOL に対する憎悪を燃やしてばかりでもなくなりました。ということで、今日は私のようにやむを得ず COBOL と付き…

フレームワークのあるべき姿はメタフレームワークであることではないか

昨日のエントリの続きっぽい話です。 おそらく、SIerさんの内作フレームワークで、プロジェクトがハッピーになったケースってとても少ないと思います。私の経験と、見聞きした範囲で言わせてもらえば1件もありません(!)。 それでなぜ上手くいかないかと言…

内作フレームワークが持つリスクを考慮すべきですよ>某大手 SIer さん

大手(ばかりではないでしょうが)SIer さんがたまにやる、どこにも公開していない内作フレームワーク(今回は、Java の Web アプリケーション用のものを念頭におきます)でプロジェクトをすすめるのはこういうリスクがあるんですけど、考慮してますか? っ…

CentOS 5.x の Tomcat には癖がある

CentOS 5 から Tomcat 5.5 が標準パッケージに含まれるようになったんですが、これがどうも癖があるように思われます。 思われるというのは、ちゃんと調べてないだけなんですが、重いんですよ。妙に。 JRE は Sun のものを使ったんですが、重いですね。ため…

Linux を使いつづけるための5ヶ条

なんか Windows から Linux に乗り換えたいなと思って Linux にしてみたけどしばらくしたらやっぱり Windows に戻っちゃったという人も少なくないと思います。そんな人に送る、Linux を使いつづけるためのコツを挙げてみたいと思います。もちろん、はじめて …

重厚なフレームワークを使うとプログラムを均質化できると思うのは妄想

特に大規模プロジェクトの場合、プログラマのレベルの違いによるプログラムの質の差をなくそうとして重厚なフレームワークが用いられることがあります。 ほんとうにそう思ってるならソースコードレビューのひとつもしてみなさいって、お偉いさん。 そんなん…