Apache httpd でリクエストにかかった時間をログ出力する

Apache モジュール mod_log_config

カスタムログ書式(抜粋):
%D リクエストを処理するのにかかった時間、マイクロ秒単位
%X 応答が完了したときの接続ステータス:
        X = 応答が完了する前に接続が異常終了
        + = 応答が送られた後に接続を持続することが可能
        – = 応答が送られた後に接続が切られる

自前でプロセスの所要時間を計算してログ出力したりしていました。
httpd 1.3 から 秒単位出力(%T オプション)は存在したのですね…。
灯台下暗しとはまさにこのこと。

[Linux] sar の結果からグラフレポートを作成する

kSar(http://ksar.atomique.net/) が便利。
sar のテキスト出力を GUI インターフェイスでレポート形式に変換し、PDF や画像ファイルで保存できます。
 
– sysstat で性能管理
– kSar 公式(English)
kSarでsarデータをグラフにする
kSarによるsarのグラフ化について

Linuxで間違って削除したファイルを復元する

Sleuth kit というフォレンジックツールを使うとよさそうです。Autopsy という別ツールを組み合わせれば web ベース GUI が利用できます。
 
対象ファイルシステムは: NTFS, FAT, UFS1, UFS2, EXT2FS, EXT3FS, ISO9660 です。
 
Windows 系ファイルシステムや CD などメディアのデータ復旧にも使えるのがいいですね。
 
なお, FreeBSD ports は sysutils/sleuthkit, sysutils/autopsy にあります。
参考:
http://www.gentoo.org/news/ja/gmn/20080728-newsletter.xml

ブラウザの検索バーを好きなサイト向けにカスタマイズする

Firefox 2 以降(Firefox3 含む)とInternet Explorer 7 以降は検索バーのプラグイン仕様が同じ OpenSearch という記述フォーマットの XML を採用しています。
 
自分で XML を書けば好きなサイトを追加できるのですが、いちいち最初から書くのはちょっと面倒、という人のためのオンラインサービスを紹介します。
 
Ready2Search
 
このサイトを利用すると検索キーワードを入れるための GET URL を入力するだけで簡単にプラグインが作成・インストールできます。
 
詳しい使い方はReady2Searchでの検索プラグイン作成を参照してください。
 
参考:
Creating OpenSearch plugins for Firefox

Launch4j – Java から実行可能プログラムを作成する

Launch4j
 
Windows XP/Vista の .exe をはじめ、Linux, Mac OS X, Soralis などさまざまな環境用のインストーラや実行可能ファイルを生成してくれる Jar のラッパープログラム。
 
マイコミジャーナルでの紹介記事はこちら。

Processing – 絵をプログラムする言語

Processing(本家 Java 版. ライセンスは LGPL)
 
Processing.js(jQuery作者による JavaScript 実装版。IEでは要 ExCanvas.js. MIT ライセンス)
 
Java 言語に似た平易なプログラミング言語で、画像処理に優れている。
ユーザの入力を受け付けたり動的な処理もできるので、ゲームなどインタラクティブなプログラムも制作可能です。
 
参考:
– 絵をプログラムする言語「Processing 1.0」が正式リリース(マイコミジャーナル)
ブラウザでお絵描きプログラミング! Processing.js 登場!(IT戦記)

インターネットにつながずに2台のマシンを無線通信する

無線LANでピアツーピア接続(アドホックモード)する方法(東芝 dynabook サポート)
XP/Vista なら標準でアドホック(P2P)接続できるのですね。
 
参考:
無線 LAN を使いこなしてトクする Windows XP – パソコン同士でつなぐ(Microsoft At Home マガジン)
 
WiPeer
XP/Vista 用のP2Pメッセンジャー。ファイル共有機能つきで、通信の暗号化アルゴリズムはWEPのみ。
 
– アドホックで無線通信を可能にする『WiPeer』

他人の Eclipse プラグインを翻訳するには

便利なのに日本語化されていない、そんな海外のプラグインを見つけた時の翻訳方法をざっとまとめてみました。
 
1. 翻訳対象のプラグインを Eclipse にインポートする。
プラグインのソースコードまたはリリースされたアーカイブファイル(.jar)をEclipse プロジェクトとしてインポートします。
前者の場合は「インポート→一般→既存プロジェクトをワークスペースへ」。
後者の場合は「インポート→プラグイン開発→プラグインおよびフラグメント」です。
 
2. 翻訳対象プラグインのパッケージディレクトリ内から *.properties ファイルを検索する。
まずは置き換え対象の外部化文字列の設定ファイルを探します。org/example/foo/messages.properties などです。ファイル名は異なっている可能性がありますが、実行時のメッセージなどがそのまま(ASCII)テキストで入っているため、開いてみれば一目瞭然のはずです。
 
3. Eclipse でフラグメントプラグイン(プラグイン開発->フラグメント・プロジェクト)としてプロジェクトを新規作成する
日本語化プラグインを作成します。
 
プロジェクト名は、慣習として翻訳対象のプラグイン名に .nl_ja (“.nl_” + 言語をあらわす2文字)をつけたものにします。

例:
翻訳対象のプラグインの名: org.junit4.source
日本語化プラグインのプロジェクト名: org.junit4.source.nl_ja

 
次のページでホスト・プラグインのプラグインIDを求められるので、プラグインIDに翻訳対象のプラグイン名を指定し、終了ボタンを押します(先の例なら org.junit4.source)。
 
5. 文字列を外部化したファイルを翻訳対象プラグインからコピーする
 (2)で探し出したファイルを日本語化プラグインプロジェクトにコピーします。
ここでコピー先パッケージ構成は元と同じ場所で、ファイル名に _ja をつけます。

例:
コピー元:
  org.example プロジェクト内パッケージディレクトリの org/example/foo/messages.properties
コピー先:
  org.example.nl_ja プロジェクト内パッケージディレクトリの org/example/foo/messages_ja.properties

 
6. *_ja.properties を編集してメッセージを日本語化します。
プロパティエディタプラグインなどを利用していない場合は編集後に native2ascii で ASCII 文字に変換する必要があります。
 
7.プロジェクトをフラグメントとしてリリースする。
ワークスペースでプロジェクトを右クリック→エクスポートを選び、エクスポート画面から「プラグイン開発→デプロイ可能なプラグインおよびフラグメント」を選びます。
 
あて先には eclipse のルートディレクトリ、または適当な保存先ディレクトリを選び次へ、を押すと、あて先に選んだディレクトリの plugins 以下に、プラグイン(フラグメント)として利用可能な .jar ファイルが作成されます。
 
8. 使ってみる
作成した日本語化プラグイン(org.example.nl_ja_1.0.0.jar など) を翻訳元のプラグインと一緒に plugins ディレクトリに入れて、Eclipse を動かして実行してみましょう。
 
以上です。
うまくできたらぜひ本家プラグインの提供元にコミット&ネット公開してくださいね。