2009年10月14日水曜日

Online strage

最近、さまざまなOnline strageサービスがあるみたいだ。
DropboxやSugarSyncといったサービスがその代表のようだ。個人的には、Skydriveを利用しているのだが、文章や表計算などはGoogle Documentsを利用している。
最近は何時でもどこでも仕事をしたり、外出先での知識をまとめたりといったことが多いのでこのようなサービスが流行るのだろう。
機能については詳しく見ていないのでどうとも言えないが、今後の検討材料として調査してみようと思う。

in reference to: シゴタノ! —    Dropbox であんなアプリも、こんなアプリも同期できる! (view on Google Sidewiki)

2009年10月11日日曜日

継続は力なり

脳には新しいものに対して警戒するという防御機能があるそうです
しかし、私たちのようなIT分野で働く人たちは、日々新しい知識や技術などを習得していかなければいけません。この記事によると、最初は脳の拒否反応が邪魔してしまいますが、それを繰り返すことで、新しいことに対して理解を深めたり、今までの知識との関連がわかったり、だんだんドーパミンが出て楽しいと感じるようになるのだそうです
「継続は力なり」という言葉は脳科学的にも当てはまるんですね。ちなみにこの言葉は私の格言に入っています。

in reference to: 数字嫌いの原因は脳の防衛機能 | 達人のテクニック (view on Google Sidewiki)

朝時間を有効に!!

最近、夜は0時までには床に就き、朝5時に起床するよう心がけている。
先日、池谷裕二さんという脳科学者が書いた書籍を読んでから実行しているのだが、人間は夜の寝ている間にその日の出来事や記憶したことを整理しているとのこと。そして朝目が覚めたときには記憶が整理された状態になっており、朝が一番知的活動に向いているのだそうだ。
また、朝日を浴びることで体内時計がリセットされ、一日頑張って行きましょう!!モードになるらしい。確かに朝日を浴びると、体内から元気が沸いてきて昨日まで悩んでいたことも何とかなりそうな気持ちになってくる。
極端に低血圧で朝が弱い人にはお勧めできないが、相でない人は一度、朝早起きする生活リズムを実践してみてもらいたい。

in reference to: 1日の優先順位、朝時間の使い方は? | 達人のテクニック (view on Google Sidewiki)

2009年10月2日金曜日

2009年4月9日木曜日

SWTで別スレッドを扱う

SWTで別スレッドで何か並列処理を行いたい場合は用途に応じて以下のように呼び出す必要がある。

同期呼び出し


Display.getCurrent().syncExec(new Runnable() {
@Override
public void run() {
// ここに処理を記述
}
});

非同期呼び出し


Display.getCurrent().asyncExec(new Runnable() {
@Override
public void run() {
// ここに処理を記述
}
});

一定時間繰り返して呼び出し


Display display = Display.getCurrent();
if (!display.isDispose()) {
display.asyncExec(new Runnable() {
@Override
public void run() {
// ここに処理を記述
Display display = Display.getCurrent();
if (!display.isDispose()) {
display.timerExec(1000, this);
}
}
});
}


[参考サイト]


UIスレッドでのタイマー実行

2008年12月10日水曜日

ArrayListに順アクセスする場合

ArrayListに順アクセスする場合、iteratorを使用するよりもgetを使用する方が速い

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)