2008年11月27日木曜日

「ITエンジニアは職人気質を取り戻すべき」 − @IT自分戦略研究所の感想

[理解したこと]
・ユースケース図と業務フローとを関連付けるとユーザに分かりやすい
・ユースケース記述は詳細にしすぎない
・ロバストネス分析を使って分析モデルを作成すべきではない
ビジネスシナリオや業務フローから作成できる

[分からなかったこと]
・ロバストネス分析
ユースケース記述を基に、B(Boundary)、C(Control)、E(Entity)に分類する手法
ユースケースから分析モデル(分析レベルのクラス図)につなげていくために使用


2008年11月15日土曜日

Postfixのセキュリティ強化

友人のメールサーバのセキュリティ強化を行ったときのメモです。

SMTP の VRFY コマンドを使用不可にする

[設定内容]
disable_vrfy_command = yes

[解説]
EXPN コマンドによってシステムアカウントの有無を確認することができます。また、VRFYはメールアカウントが存在するかどうかを確認するもので存在していればそのユーザー名を表示します。EXPN、VRFYを使うとアカウントの情報が外部から容易に確認することができてしまうので、このような情報はできるなら表示させないようにします。

設定後のログは以下の通り。

220 mail.hoge.co.jp ESMTP unknown
EHLO localhost
250-mail.hoge.co.jp
250-PIPELINING
250-SIZE 104857600
250-ETRN
250-AUTH LOGIN PLAIN CRAM-MD5 DIGEST-MD5
250 8BITMIME
VRFY hoge
502 VRFY command is disabled <- VRFYコマンドは無効

[参考サイト]
Postfixによるメールサーバーの構築

2008年11月14日金曜日

Postfixで添付ファイルの上限サイズを設定する

先日、友人のメールサーバを構築したときの不具合です。

メールの添付ファイルサイズを増やして欲しいとの要望で、
/var/postfix/main.cfに

message_size_limit = 102400000


と記述したが、メールの受信ができなくなってしまっていた。
ネットで情報を収集しているとどうやら合わせて
mailbox_size_limitパラメータの設定が必要とのこと。
設定を行ったら問題なく受信ができるようになりました。

# 送信メールの最大サイズを100MBに設定
message_size_limit = 102400000
# メールスプールの最大サイズを100MBに設定
mailbox_size_limit = 102400000

2008年11月10日月曜日

babylonなんていらない

今朝会社のPCでbabylonを起動するとライセンス切れと表示されるようになっていた。。。
正規の永久ライセンスを購入していたのに???という訳で少しフリーの代替品を探してみたところ「Lingoes」というツールを発見!!
babylonにあったwikipediaの辞書が使えないのが残念ですが、標準の日英、英日辞書に加え、「英辞郎」、「知恵蔵」、「明鏡」などかなり使える辞書があって、しかもbabylonと遜色ない機能というから実にすばらしい!!
これで高~いライセンス料を払っていたbabylonともおさらばできる(笑)

#CNETを見ていたらこんな記事を発見
#不況だと節約志向になって、色々な分野でフリーウェアが活性化するかもしれません

Lingoesフォトレポート:フリーウェアで有料アプリを代替--節約上手なソフト選び

2008年11月7日金曜日

JTableで任意の行を選択する方法

JTable#setRowSelectionInterval(int, int)メソッドを使う。
例)テーブルの5行目から8行目を選択する

JTable table = new JTable();
table.setRowSelectionInterval(5, 8);

2008年11月6日木曜日

JavaでCUIアプリケーションを作成する場合

私は仕事上、JavaでCUIアプリケーションを作成する機会が多々ある。
Javaではパラメータの解析処理を一から実装する必要があり、
独自にCUIアプリケーション作成用のライブラリを作成していたのだが、
apache commonsにこんな便利なライブラリが存在していた!!
今度使ってみよっと

[参考サイト]
apache-commons-cli
Jakarta Commons CLIでJavaコマンドラインも楽々

2008年11月5日水曜日

SwingでWindowの終了を制御する

SwingでWindowの終了時に確認メッセージを表示してから終了させたい場合、以下のように実装する。

DefaultCloseOperationをDO_NOTHING_ON_CLOSEに設定すると、Windowの閉じるボタンを押下したときに何も処理を行わない。
※GUIクラスはJFrameの実装とする
JFrame gui = new GUI();
gui.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
gui.setVisible(true);
GUIクラスの初期化処理などで以下のようにWindowListenerを追加し、windowClosing(WindowEvent)メソッドを実装する。


addWindowListener(new java.awt.event.WindowAdapter() {
 public void windowClosing(WindowEvent e) {
  if (JOptionPane.showConfirmDialog(this, "Confirmation") == OptionPane.OK_OPTION) {
   dispose();
  }
 }
});

Swingで任意のコンポーネントにフォーカスを設定する

JComponent#requestFocus()は非推奨のため、JComponent#requestFocusInWindow()を使用する。

[例] テキストボックスが未入力の場合にそのテキストボックスにフォーカスを設定する

if (txtBudRoot.getText().isEmpty()) {
txtBudRoot.requestFocusInWindow();
}

[参考サイト]
How to Use the Focus Subsystem
JComponent (Java Platform SE 6)