インターネットにつながずに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 を動かして実行してみましょう。
 
以上です。
うまくできたらぜひ本家プラグインの提供元にコミット&ネット公開してくださいね。

Google サービスのヘルプページを一括ダウンロードするには

Gmail や Google ドキュメント, Google デスクトップのヘルプをオフラインで読みたい、そう思った方は必見です。
 
Google のヘルプセンターのあるサービスではどれも &fulldump=1 をつけると保存しやすいように1ページにまとまった形でヘルプを表示できます。
 
Gmail ヘルプ – http://mail.google.com/support/?hl=ja&fulldump=1
Google カレンダーヘルプ – http://www.google.com/support/calendar/?hl=ja&fulldump=1
Google ドキュメントヘルプ(翻訳中のようで2008年11月現在は英語が混ざっています)
  文書 – http://docs.google.com/support/?hl=ja&fulldump=1
  スプレッドシート – http://docs.google.com/support/spreadsheets/?hl=ja&fulldump=1
  プレゼンテーション – http://docs.google.com/support/presentations/?hl=ja&fulldump=1
Google リーダーヘルプ – http://www.google.com/support/reader/?hl=ja&fulldump=1
Google AdSense ヘルプ – https://www.google.com/adsense/support/?hl=ja&fulldump=1
Google Analytics ヘルプ – http://www.google.com/support/googleanalytics?hl=ja&fulldump=1
Google デスクトップヘルプ – http://desktop.google.com/support/?hl=ja&fulldump=1
Google Picasa ヘルプ(2008年11月現在,一部英語) – http://picasa.google.com/support/?hl=ja&fulldump=1
Google ツールバーヘルプ
  IE – http://www.google.com/support/toolbar/?hl=ja&fulldump=1
  firefox – http://www.google.com/support/firefox/?hl=ja&fulldump=1

Sandboxie – Windows 用サンドボックス実行環境

Sandboxie – http://www.sandboxie.com/
 
プログラムのハードディスクへの書き込みを仮想化してくれる簡易サンドボックス。
Windows XP/2003/Vista 対応。
 
使い方は公式サイトや参考サイトを参照してください。
 
Sandoboxie を使ってサンドボックス化して実行したプログラムはファイル/レジストリの読み込みは仮想領域内参照+なければ実際の情報参照で行い、書き込みは仮想領域内にしかできなくなります。追加書き込みにしても実環境からコピー後に仮想環境に追加になるのでファイルの改ざん対策として抜群の効果があります。また、実行したプログラムがどのファイルを作成/変更するかを調べるのにも便利です。
 
ちなみに仮想領域は c:\Sandbox\(Windowsユーザアカウント名)\(DefaultBoxなどサンドボックス名\ 内に作られます。drive が C: ドライブ、 D: ドライブなどハードディスク構成を仮想化した領域で、user が Application Data や Local Settings, デスクトップなどユーザーのホームディレクトリ内の情報として利用されます。
 
なお、 Sandboxie ではネットワーク通信はそのまま流れるため情報流出は防げませんので、サンドボックスだからといって Winny など P2P を実行しても大丈夫なんだ、とは決して思わないように。
サンドボックスフォルダを削除するだけで確実に駆除できるため、事後対応は楽ですが…。
 
参考:
ヤバげなファイルは「Sandboxie」の仮想領域で実行せよ(教えて君.net)

MJL – Web 制作会社が汎用 JavaScript ライブラリを公開

MJL
 
JavaScript の知識なしで使える汎用JavaScriptライブラリ。

    * 画像のロールオーバー
    * Adobe Flashオブジェクト埋め込みの機能拡張
    * 新規ウインドウの作成
    * スタイルスイッチャの実装
    * タブインターフェイスの実装
    * 要素の高さ揃え

のような機能があります。
JavaScript ライブラリといっても利用にあたって JavaScript を触る必要が一切ありません。

<script src=”mjl.js”>
<script src=”run.js”>

の二つを参照するだけで, あとは既存の HTML タグに class=”〜” を追加指定すれば、クラス名に応じて上記のようなさまざまな動作をしてくれるようになります。
 
ライセンスは GPL3 なので商用利用も可能です。
jQuery や Prototype.js などの既存のライブラリと衝突しないように作られているため、既存の環境への組み込みがしやすいのもいいですね。
 
参考:
Web制作会社が作った!超使えるJavaScriptライブラリ(ASCII.jp)

ダウンロードしたファイルのチェックサムを確認できるエクスプローラ拡張 HashTab

hashtab SS
開発者ならおなじみのファイルチェックサム。Apache や Linux 関係などで本体ダウンロードと一緒に時々ちょこんと併記されている CRC32 や MD5、SHA1などハッシュ値のことで、ダウンロードしたファイルが壊れていないか検証するためのものです。
 
Windows でチェックサムを計算するには、以下のようなエクスプローラ拡張を入れるのが便利です。
 
HashTab(窓の杜)
 
インストールするとファイルのプロパティに「ハッシュ値」タブが追加されます(冒頭の画像参照)。海外のフリーソフトですが、日本語表示にも対応しています。
 
参考:
開発元サイト

tput – 端末入力で遊ぶ

wget のプログレスバーや, lynx, w3m などの CUI ブラウザ、NetHack などの CUI ゲームなどのように、CUI 画面内の一部だけを動的に書き換える、という処理を実装する方法をメモしておきます。
 
基本として、CUI の描画方法を制御するには特定のキーコードに割り当てられている画面描画の処理命令を利用します。
標準出力に出力された時点で命令が実行されるので、制御コードを知ってさえいれば echo だけで画面描画が実現できてしまいます。次のように入力すると画面をクリアします。

$ echo \

capname については man terminfo の Cap-Name を参照。
例:

% zmodload zsh/terminfo
% echoti setaf 2
% echo Hello,world
Hello,world

参考: http://d.hatena.ne.jp/lurker/20061121
 
・tput
zsh 以外のシェルからでも使える汎用プログラム。Curses や NCurses に含まれています。なお、FreeBSD に最初から含まれている /usr/bin/tput は Curses 版です。
Curses 版の書式 (FreeBSDなど):

$ tput <TCapCode> [ 引数… ]

TCapCode については man termcap の TCapCode を参照。
 
NCurses 版の書式 (FreeBSD ports や Linux など):

$ tput <CapName>

CapName については man terminfo の Cap-Name を参照。
curses よりこちらのほうが一般的です。

curses tput の例:
15 行 20 文字目に文字列 OK を書き込む。

$ tput sc; tput cm 20 15; tput al;echo OK; tput rc

文字に下線を入れる

$ tput us ; echo hello; tput ue

Ncurses tput の例:
文字の色を赤に。

$ tput setaf 1

白に戻す。

$ tput setaf 9

参考: http://www.ibm.com/developerworks/jp/linux/aix/library/au-learningtput/index.html

pkgdb – Segmentation fault

portupgrade をやろうとしたら

# portversion -vl”<"
—> Checking the package registry database
[Updating the pkgdb <format:dbm_hash> in /var/db/pkg … ** Database file locked. Waiting.
** Stale lock file was found. Removed.
– 635 packages found (-2 +1) (…)/usr/local/lib/ruby/site_ruby/1.8/pkgdb.rb:431: [BUG] Segmentation fault
ruby 1.8.6 (2008-08-11) [i386-freebsd7]

といわれてしまったので

# mv /var/db/pkg/pkgdb.db /tmp/pkgdb.db.bak
# pkgdb -F

で pkgdb.db を再構築して対応した。

Ubiquity – 任意のテキストの QR コードを表示する

Firefox アドオンの Ubiquity が便利!ということで、Ubiquity で使える QR コード表示コマンドを作ってみました(Ubiquity 0.1.1 で動作確認)。

// text to QR code
const QRCODE_WIDTH = 150;
const QRCODE_HEIGHT = 150;
const QRCODE_URI = ‘http://chart.apis.google.com/chart?chs=’+QRCODE_WIDTH+’x’+QRCODE_HEIGHT+’&cht=qr&choe=Shift_JIS&chl=’;
CmdUtils.CreateCommand({
name: “qrcode”,
takes: {“Any text(URL, email..)”: noun_arb_text},
preview: function(pblock, arg){
    pblock.innerHTML = ‘Inserts qrcode: <i>’+arg.text+
‘<br><img width=”‘+QRCODE_WIDTH+'” height=”‘+QRCODE_HEIGHT+'” src=”‘ + QRCODE_URI + encodeURIComponent(arg.text) + ‘”>’;
},
execute: function(arg) {
  if(arg.text != “”){
    CmdUtils.setSelection(‘<img src=”‘ + QRCODE_URI + encodeURIComponent(arg.text) + ‘”>’);
  }
}
});

導入方法:
1. Ctrl+Space キーを押して command-editor と入力して改行キーで実行。
2.上のスクリプトをテキスト領域にコピー&ペースト。
 
これで qrcode コマンドが使えるようになります。
 
利用方法:
ページ内の適当な文字列を選択したあと Ctrl+Space を押して qrcode と入力。
または、qrcode コマンドの引数として適当な文字列を入力。
 
例:

qrcode http://google.co.jp/

Ubiquity qrcode command screenshot

 
参考:
Labs/Ubiquity(mozilla.org)
 
Google Chart API(google.com)

Microsoft から Windows 版 GUI フォルダ同期ツールが出た

http://journal.mycom.co.jp/news/2008/08/19/044/index.html

SyncToyは、フォルダの内容を同期するWindows用フリーウェア。同期する1対のフォルダ (フォルダペア) を登録しておくと、サブフォルダを含めるかどうか、コピーは片方向か双方向かなど、あらかじめ設定した条件に従い同期処理が実行される。ローカル / ネットワークを問わず利用できるため、ノートPCとデスクトップPCを同期させる目的などに使用できる。

 
だそうで。
フォルダの同期は Linux 同様 rsync (Cygwin 版) を使うスクリプトを書いて自動化していましたが、SyncToy は GUI ということで手軽に利用できそうです。
 
参考:
米MS、Windows用フォルダ同期ツール「SyncToy 2.0」を無償公開
SyncToy v2.0(Microsoft)