2009年08月23日

ルーター RV-S340NE で IP マスカレード

今まで KDDI メタルプラス の ADSL を使っていたが、転居を機にフレッツ光に変更した (転居先が、メタルプラスを使用できなかったため)。

ひかり電話ルータ RV-S340NE でポートマッピング (IP マスカレード) を設定して、外から自宅 Web サーバーに接続できるようにしたのだが、このルーターの設定画面にはちょっと癖があるのでご紹介しておきたい。

設定はブラウザから行える。
ルーターの初期設定の IP アドレスは 192.168.1.1。
ルーターを DHCP サーバーとして IP アドレスを決定した場合は、http://ntt.setup/ で Web 設定画面にアクセスできる。

さて、IP マスカレードの設定は、左メニューの[詳細設定]→[静的IPマスカレード設定]から行える。
RV-S340NE 設定画面 #1
設定一覧の右側にある[編集]リンクをクリックすると、「静的IPマスカレード設定 エントリ編集」画面が開く。
たとえば、80 番ポートへの接続をローカル IP 192.168.1.2 のマシンに振りたければ、以下のように入力し、[設定]ボタンをクリックする。
RV-S340NE 設定画面 #2
[前のページへ戻る]ボタンをクリックすると、設定したエントリがNATエントリ一覧に追加されている。
RV-S340NE 設定画面 #3
ところが、この状態ではこの設定は有効になっていないので注意が必要だ。
エントリ番号の左側のチェックボックスにチェックマークを入れ、下の[設定]ボタンをクリックするとはじめて有効になる。
RV-S340NE 設定画面 #4

なお、左上でオレンジ色の[保存]ボタンが点滅して自己主張しているが、これをクリックしなくても設定は反映される。
ちょっと紛らわしいが、この[保存]ボタンはルーターの電源を OFF したり、再起動したりしても設定が消えないように "保存" するためのものと思われる。
RV-S340NE 設定画面 #5
posted by K/I at 17:46 | 東京 ☀ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2009年08月19日

Net_UserAgent_Mobile の STABLE 版 (PHP PEARパッケージ)

PHP の携帯端末用の PEAR パッケージ Net_UserAgent_Mobile の 1.0.0 が2009年6月にリリースされていた。

そんなわけで、遅ればせながら upgrade してみた。

# pear upgrade Net_UserAgent_Mobile
downloading Net_UserAgent_Mobile-1.0.0.tgz ...
Starting to download Net_UserAgent_Mobile-1.0.0.tgz (43,849 bytes)
............done: 43,849 bytes
upgrade ok: channel://pear.php.net/Net_UserAgent_Mobile-1.0.0

(一部省略)
# pear list
Installed packages, channel pear.php.net:
=========================================
Package Version State
:
Net_UserAgent_Mobile 1.0.0 stable
:


対応機種が増えている以外は、機能面での大きな変更はないようだ。

EMOBILE や iPhone はどのように扱われるのだろう?
後ほど検証したい。
posted by K/I at 16:21 | 東京 ☁ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2009年07月20日

PC 上で Android を起動

Android の Live CD がリリースされていたので試してみた。

http://code.google.com/p/live-android/

Download のページから、liveandroidv0.2.iso.001liveandroidv0.2.iso.002 の2ファイルをダウンロードして1ファイルにくっつける。
たとえば、
$ cat liveandroidv0.2.iso.001 liveandroidv0.2.iso.002 > liveandroidv0.2.iso
など。

あとはこれを CD-ROM に焼いて起動すれば、Android が PC 上で立ち上がるわけだ。

今回は VMware Player で起動させることにした。
※VMware Player に関しては、以前の記事「VMware Player + Qemu でフリーのバーチャルOS環境構築」などを参照。

できるだけ手順を省いて起動だけ試したかったので、HD なしで CD-ROM のみの設定で試した。
たとえば、.vmx ファイルは以下のような設定になる。
config.version = "8"
virtualHW.version = "3"
scsi0.present = "TRUE"
scsi0.virtualDev = "lsilogic"
memsize = "256"
MemAllowAutoScaleDown = "FALSE"
ide0:0.present = "TRUE"
ide0:0.fileName = 用意した ISO イメージのパス
ide0:0.deviceType = "cdrom-image"
floppy0.present = "FALSE"
ethernet0.present = "TRUE"
ethernet0.connectionType = "bridged"
usb.present = "TRUE"
sound.present = "TRUE"
sound.virtualDev = "es1371"
sound.fileName = "-1"
sound.autodetect = "TRUE"
displayName = "Android"
guestOS = "other26xlinux"
nvram = "Android.nvram"
これをたとえば Android.vmx というファイル名で保存し、VMware で実行すると、Android OS が起動する。
表示されるメッセージを見ると、Linux をベースにしているらしいことがわかる。
Android を Live CD で起動 #1
Android を Live CD で起動 #2

いったん、Live Android のロゴが表示される。
ここでしばらく待つ。
Android を Live CD で起動 #3

続いて、Android のロゴが表示され、起動する。
Android を Live CD で起動 #4
Android を Live CD で起動 #5
バッテリーのデバイスが存在しないためだと思うが、警告が表示されている。

表示言語のデフォルトは英語である。
Android を Live CD で起動 #6
ちなみに、グレーの三角矢印はマウスポインタ。

表示言語は、設定画面で変更できる。
Android を Live CD で起動 #7
Android を Live CD で起動 #8
Android を Live CD で起動 #9
Android を Live CD で起動 #10
Android を Live CD で起動 #11

設定画面、デスクトップなどが、すべて日本語に変更される。
Android を Live CD で起動 #12
Android を Live CD で起動 #13

日本語の入力方法がわからないが、時間に余裕ができたら調べてみたい。
また、HDD をつけて起動を試してみたい。

実際の携帯電話での表示イメージはこんな感じなのか↓
docomo PRO series HT-03A (2009年7月発売)
http://www.nttdocomo.co.jp/product/foma/pro/ht03a/index.html
posted by K/I at 15:51 | 東京 ☁ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2009年06月11日

Vista で印刷できない

昨年末にプリンタを買い換えたら、Windows Vista から印刷ができなくなってしまった。
使用しているプリンタは brother の MFC-490CN。FAX複合機だ。
PCからはUSBではなく、LAN経由で使用している。

以前にもブラザーサポートに問い合わせてみたが解決せず。
今回、ようやく解決した。

症状は以下のとおり。

  • プリンタが「オフライン」になっている。
  • 文書を印刷すると、1枚目だけ印刷されるが、2枚目以降が印刷されない。
  • 一度印刷を試みて印刷できなくなると、再起動しないとまったく印刷できなくなる。
  • その他の通信 (FAX受信や、スキャン) はできる。

先ほどブラザーサポートで以下の手順を教えてくれた。

  1. コントロールパネルで「プリンタ」を開き、プリンタを右クリック。[管理者として実行] から [プロパティ] を選択。
  2. [ポート] タブでチェックの入っている項目を選び、[ポートの構成] ボタンをクリック。「標準 TCP/IP ポート モニタの構成」ダイアログが開く。
  3. 「プロトコル」を [LPR] から [Raw] に変更。これで完了。

しばらくするとプリンタの「オフライン」状態が解消され、正常に印刷できるようになる。

これはどうやら、Vista 側の問題らしい。
posted by K/I at 12:19 | 東京 ☔ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2009年05月30日

Google - こんな機能がいつの間に。。。

くりらじの「週刊netreport」で取り上げられていた情報。

Google に「サーチウィキ メモ」という機能が追加されたそうだ。

http://web-tan.forum.impressrd.jp/e/2009/05/11/5577
http://www.sem-r.com/google09/20090507111307.html

検索結果の順序を入れ替えたり、検索結果から除外したり、メモを書いたりできる。
メモは全ユーザーに公開される。
使ってみるとけっこう面白い。
利用にはログインが必要。

実際に検索をした人が、どのサイトを上位にもっていくかを調べれば、どのサイトが評価されているかわかるわけか。
Google にとってはいろいろ使い道がありそうな機能だ。

もう1つ、同じく週刊 netreport から。
Google で Ad Planner というサービスも公開されている。
http://www.google.com/adplanner/
ネット視聴率調査のようなものか。
ただし、ドメイン単位でのカウントのようだ。
タグ:google
posted by K/I at 23:20 | 東京 ☁ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2009年04月30日

RedHat用のrcファイルを書いてみる

Red Hat 系 Linux で rc ファイル (起動スクリプト) を作成する方法について。

/etc/rc.d/init.d/(サービス名) というファイルを作成しておき、

chkconfig --add (サービス名)

を実行すると、自動的に rc ファイルを追加してくれる。
上記 /etc/rc.d/init.d/(サービス名) はシェルスクリプトで、以下のようなもの。

#!/bin/sh
# chkconfig: 2345 91 0
# description: Start/Stop Test Script.
start () {
echo "Starting Test Script..."
echo "#### ここで、開始処理を行う。 ####"
}
stop () {
echo "Stopping Test Script..."
echo "#### ここで、終了処理を行う。 ####"
}
case "$1" in
start)
stop
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit 0

# chkconfig: 2345 91 0
# description: Start/Stop Test Script.

のところは、
# chkconfig: (起動レベル) (起動の優先順位) (終了の優先順位)
# description: (スクリプトの説明)

である。
たとえば、上のファイルを /etc/rc.d/init.d/test というファイル名で保存し、
# service --add test
を実行すると、
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d

S91test という名前で /etc/rc.d/init.d/test へのシンボリックリンクが作られ、
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc6.d

K00test という名前で /etc/rc.d/init.d/test へのシンボリックリンクが作られる。
ちなみに、ディレクトリの名前は /etc/rc.d/rc(ランレベル).d となっていて、ランレベルの意味は、
0シャットダウン
1シングルユーザーモード
2ネットワークなしのマルチユーザーモード
3マルチユーザーモード (テキストログイン)
4未使用
5マルチユーザーモード (X11ログイン)
6再起動
である。
posted by K/I at 16:36 | 東京 ☀ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2009年03月23日

PHP のセッション寿命の設定

PHP のセッションの寿命 (有効期限) に関する仕組みはややわかりにくく、いつもすぐに忘れてしまうのでメモしておく。

以下、PHP がセッションデータをどのように格納し、ブラウザからのリクエストによってどのようにデータを返すか、仕組みを理解していることが前提。

(1) セッションの保持方法の選択

ブラウザ側でのセッションIDの保持のしかたによってやや事情が異なる。
ブラウザがセッションを維持する方法は、セッションIDをパラメータ渡しする方法と、ブラウザの Cookie に持つ方法の2つがある。

セッションIDをブラウザの Cookie として持つには、たとえば以下のように設定する。

ini_set('session.use_cookies', 1);
ini_set('session.use_only_cookies', 1);
ini_set('session.use_trans_sid', 0);


1つめはもちろん必須、2つめはセキュリティ強化のために推奨。
3つめの設定は、session.use_cookies を 1 に設定した時点で意味をなさなくなるが、とりあえず設定してみた。

携帯電話などは、Cookie を利用できないことがほとんどだと思うので、セッションIDをパラメータ渡しすることになる。
そのためには、たとえば以下のように設定する。

ini_set('session.use_cookies', 0);
ini_set('session.use_only_cookies', 0);
ini_set('session.use_trans_sid', 1);


1つめは必須。
3つめを設定しておくとリンクやフォームに自動的にセッションIDを追加してくれて楽ちんである。
2つめの設定はおまけ。


以下、それぞれの場合についてセッション寿命の設定方法を説明する。
設定はもちろん、session_start() を実行する前に済ませておく必要がある。

(2) セッション寿命の設定 (セッションIDをパラメータ渡しする場合)

サーバーで保持しているセッションデータは、古くなると「ガベージコレクタ」(Garbage Collector) に削除される。

ガベージコレクタに関わる設定値は3つある。

session.gc_probability (デフォルト値: 1)
session.gc_divisor (デフォルト値: 100)
session.gc_maxlifetime (デフォルト値: 1440)


PHP は、ガベージコレクション用のプロセスを別に実行させているわけではなく、セッションの開始時に実行するようになっている。
しかも、セッションが開始されるたびに必ず実行されるわけではなく、
session.gc_probability / session.gc_divisor の確率で実行される。
つまり、session.gc_probability を大きく (session.gc_divisor を小さく) するほど、ガベージコレクションの実行頻度は高くなる。

また、ガベージコレクタが実行された場合「ゴミ」とみなされるのは、session.gc_maxlifetime 秒以上経過したセッションデータである。

以上のことから言えるのは、セッション寿命は session.gc_maxlifetime で指定できるが、session.gc_probability / session.gc_divisor の値が小さく、セッションの開始頻度が低ければ延命される可能性も高くなる、ということ。

もし、古いセッションデータの息の根を確実に止めたければ、session.gc_probability / session.gc_divisor が 1 になるように設定する。

つまりたとえば、

ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 1);
ini_set('session.gc_maxlifetime', 2 * 60 * 60);


とすれば、セッションデータは2時間経過後にきっちり片付けられる。

ただし、セッションの開始頻度が高く、セッション寿命が長いシステムの場合はパフォーマンスに影響するかもしれない。

(3) セッション寿命の設定 (セッションIDをクッキーに保持する場合)

ガベージコレクタを用いたセッション寿命の設定は (2) と同じだが、それに加えてブラウザのクッキー寿命によってもセッション寿命を調整できる。

セッションのクッキーの設定は session_set_cookie_params() 関数で行える。
タグ:PHP
posted by K/I at 00:32 | 東京 ☔ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2009年01月29日

Mew で検索

毎日、Mew でメールを読み書きしながら、検索は grep -r していた。
Mew の検索機能をまったく活用してこなかった怠慢を反省。。。

summary 画面で k? と実行してみたら、No search method というエラーメッセージが表示された。
この機能を使用するには、設定が必要なようだ。

Mew で k? または k/ を使用するには、mew-search-method という変数を設定する必要がある。
この変数には、以下のいずれかが設定できる。
'est
Hyper Estraier
'spotlight
Spotlight (Mac OS X用?)
'wds
Windows Desktop Search (Windows 用?)
'google
Google Desktop (Windows 用?)
Fedora Core を使っているが、その場合、選択肢は Hyper Estraier のみのようだ。
.mew.el に、以下の設定を追加する。
(setq mew-search-method 'est)
また、Hyper Estraier のインストールが必要だ。
# yum install hyperestraier
インデックスを作るには、km (そのディレクトリのみ) または kM (全体のインデックスを作成) を実行する。
このコマンドは、定期的に実行する必要がある。
コマンドラインで mewest を実行しても同じなので、cron で定期実行すればよさそうだ。
タグ:MEW メール
posted by K/I at 15:30 | 東京 ☁ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2009年01月19日

スクロールしてもついてくる画像

ブラウザをスクロールすると、追随して同じ位置に移動してくる画像やメニューボックスなどを見かけることがある。
あれはどうやっているのだろう?
少し試してみた。

たとえば、こんな感じ。→ 画像#1表示

これは次のようにして実現できる。

<html>
<head>
<script type="text/javascript">
<!--
function repositionObject()
{
document.getElementById('float_img').style.top
= (document.body.scrollTop || document.documentElement.scrollTop) + 'px';
}
// -->
</script>
</head>
<body onScroll="setTimeout('repositionObject()', 200);">
<img id="float_img" src="img/test.jpg" style="position: absolute; top: 0px;" />
</body>
</html>

つまり、ウィンドウがスクロールされるたびにタイマーを使って少し時間をおいて画像の位置を設定し直すことで、追いかけてくる感じにするのだ。

しかし、これだと一瞬で移動してしまい、なんとも味気ない。
なめらかな動きをさせるにはもう少し工夫が必要だ。→ 画像#2表示

これは、以下のようにしている。

<html>
<head>
<script type="text/javascript">
<!--
function repositionObject()
{
var top
= eval(document.getElementById('float_img').style.top.replace('px', ''));
var scrollTop
= (document.body.scrollTop || document.documentElement.scrollTop);
var d;
if (top > scrollTop) {
if (top - scrollTop > 1024) {
d = 512;
} else if (top - scrollTop > 512) {
d = 256;
} else if (top - scrollTop > 256) {
d = 128;
} else if (top - scrollTop > 128) {
d = 64;
} else if (top - scrollTop > 64) {
d = 32;
} else if (top - scrollTop > 32) {
d = 16;
} else if (top - scrollTop > 16) {
d = 8;
} else {
if (top - scrollTop < 4) {
d = top - scrollTop;
} else {
d = 4;
}
}
document.getElementById('float_img').style.top = (top - d) + 'px';
setTimeout('repositionObject()', 100);
} else if (top < scrollTop) {
if (scrollTop - top > 1024) {
d = 512;
} else if (scrollTop - top > 512) {
d = 256;
} else if (scrollTop - top > 256) {
d = 128;
} else if (scrollTop - top > 128) {
d = 64;
} else if (scrollTop - top > 64) {
d = 32;
} else if (scrollTop - top > 32) {
d = 16;
} else if (scrollTop - top > 16) {
d = 8;
} else {
if (scrollTop - top < 4) {
d = scrollTop - top;
} else {
d = 4;
}
}
document.getElementById('float_img').style.top = (top + d) + 'px';
setTimeout('repositionObject()', 100);
}
}
// -->
</script>
</head>
<body onScroll="setTimeout('repositionObject()', 300);">
<img id="float_img" src="img/test.jpg" style="position: absolute; top: 0px;" />
</body>
</html>

画面のスクロールをトリガとして画像の位置を再設定するのは最初の例と同じだが、今回は少しずつ移動させている。
その際、最初は大きめに移動し、だんだん移動距離を小さくさせることでソフトランディングする感じにしている。
位置補正の繰り返し実行は、イベントハンドラ関数 repositionObject の中で自分自身に対してタイマを設定し直すことにより行っている。

なお、ブラウザをスクロールさせた時の Scroll イベントはいくつも発生するので、body タグの onScroll で設定するタイマの時間間隔を大きめにとり、動きがぎこちなくなるのを防いでいる。

【2009年3月18日追記】
こういうメニューを「エレベーターメニュー」と言うらしい。
これを実現する JavaScript ファイルがいくつか提供されているらしく、以下のページで紹介されている。

『スクロールと同時にメニューがついてくる「エレベーターメニュー」』
http://imaginationdesign.jp/20080412/
タグ:javascript
posted by K/I at 06:11 | 東京 ☀ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2009年01月09日

Basic認証とDigest認証のヘッダ

Basic 認証はユーザー名とパスワードが平文で流されるのだ、と話には聞いているけれど実際にどのようなやりとりが行われるのか知らないことに気づいた。
それで、少し調べてみることにした。

試したのは Apache の 2.2.10。
ブラウザは、Mac OS X版の Firefox 3.0.5。

【Basic認証のヘッダ】

まず Apache で、Basic 認証するように設定する。

AuthType Basic
AuthName "Members Only"
AuthUserFile (htpasswd で作成したファイル)
Require user test


設定したサイトにアクセスしたときにやりとりされるヘッダを見てみると、サーバーから以下のようなレスポンスヘッダが送られていることがわかる。

WWW-Authenticate: Basic realm="Members Only"

ブラウザはこのヘッダを受け取ると、ユーザー名とパスワードを尋ねるダイアログを表示する仕組みらしい。
ユーザーがユーザー名とパスワードを入力すると、ブラウザは以下のようなヘッダをサーバーに送る。

Authorization: Basic dGVzdDpob2dlaG9nZQ==

dGVzdDpob2dlaG9nZQ== の部分は、なんとなく Base64 エンコードされた文字列のように見える。
実際、Linux などのコマンドラインで Base64 をデコードさせると

$ echo dGVzdDpob2dlaG9nZQ== | base64 -d
test:hogehoge


となり、まさにそのままのデータが送られていることがわかる。

【Digest 認証のヘッダ】

では、Digest 認証ではどうなるのだろうか。

Apache 設定を次のように変更してみる。

AuthType Digest
AuthName "Members Only"
AuthDigestDomain /members/ http://www.xxx.yyy.zzz/members/
AuthDigestProvider file
AuthUserFile (htdigest で作成したファイル)
Require user test


アクセスしてみると、次のようなヘッダが返されてくる。

WWW-Authenticate: Digest realm="Members Only", nonce="UCErxQJgBAA=adcfa99be662765c4ee565776bb72e56e9484f1a", algorithm=MD5, domain="Members Only http://www.xxx.yyy.zzz/members/", qop="auth"

認証ダイアログで、ユーザー名とパスワードを入力すると、

Authorization: Digest username="test", realm="Members Only", nonce="UCErxQJgBAA=adcfa99be662765c4ee565776bb72e56e9484f1a", uri="/members/", algorithm=MD5, response="51152682c7c236b3b19c01a68d9f5cdd", qop=auth, nc=00000001, cnonce="3e20e8e2ac01a260"

といったヘッダがサーバーに送られる。
おそらく、UCErxQJgBAA=adcfa99be662765c4ee565776bb72e56e9484f1aがチャレンジで、それに対して 51152682c7c236b3b19c01a68d9f5cdd を返す仕組みと思われる。
タグ:Apache 認証
posted by K/I at 10:55 | 東京 🌁 | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

PostgreSQL の -i オプション

PostgreSQL サーバーに他ホストからの接続を許可する設定方法が変更されている。
以前は、たとえば Fedora Core なら /etc/sysconfig/pgsql/postgresql というファイルに
PGOPTS=-i
と書くなどして postmaster に -i オプションをつけて起動させていた。
しかし、現在の PostgreSQL 8.3 ではこの方法は推奨されていないようだ。

その代わり、データベースクラスタ毎の設定ファイル (/var/lib/pgsql/data/postgresql.conf など) に、以下の設定が追加されている。

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost', '*' = all
# (change requires restart)

この行をコメントからはずして、アクセスを許可する IP アドレスのリストをカンマ (,) で区切って設定する。
posted by K/I at 00:44 | 東京 ☀ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2008年12月18日

SQL Server Express Edition を使ってみる

SQL Server Express Edition を導入してみた。

1. インストーラの入手

SQL Server Express Edition のインストーラは、以下のサイトからダウンロードできる。

Microsoft SQL Server: SQL Server 2005 Express Edition
http://www.microsoft.com/japan/sql/editions/express/default.mspx

このサイトから、「Microsoft SQL Server 2005 Express Edition with Advanced Services Service Pack 2」をダウンロード。
このインストーラには、通常の SQL Server Express Edition に加えて、
  • フルテキスト検索
  • Microsoft SQL Server Management Studio Express (SSMSE)
が含まれている。

2. インストール

ダウンロードしたインストーラを実行する。

どうせだから、全機能インストールしてしまおう。
SQL Server 2005 Express Edition インストール #1
特に、Management Studio Express (SSMSE) は必ず選んでおく。

認証モードでは、「混合モード」を選んだ (試したかったので)。
SQL Server 2005 Express Edition インストール #2

あとは、なりゆきに任せてインストール。

3. SQL Server の設定

Windows の [スタート] メニューから、"SQL Server Management Studio Express" を探し出して起動する。

起動するとサーバーへの接続ダイアログが表示される。
インストール時に混合モードの認証を選んだので、[認証] は "Windows 認証" と "SQL Server 認証" のいずれかを選べる。
SSMSE サーバーへの接続
"SQL Server 認証" を選んだ場合、[ログイン] 欄は sa、[パスワード] 欄にはインストール時に設定したパスワードを入力し、[接続] ボタンをクリックすると、サーバーに接続できる。

SSMSE の使用法の詳細は割愛。
posted by K/I at 14:01 | 東京 ☀ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2008年11月30日

KVM を使ってみる

KVM + Qemu 上に仮想マシンを作成し、OS をインストールしてみた (実際に試したのは Windows 2000 Pro)。

まずは、パッケージのインストール。
# yum install kvm qemu virt-manager
:
Package Arch Version Repository Size
=================================================================================
Installing:
kvm i386 74-6.fc10 updates 745 k
qemu i386 0.9.1-10.fc10 fedora 9.5 M
virt-manager i386 0.6.0-3.fc10 fedora 1.4 M
Installing for dependencies:
libvirt i386 0.4.6-3.fc10 fedora 1.2 M
libvirt-python i386 0.4.6-3.fc10 fedora 78 k
python-virtinst noarch 0.400.0-4.fc10 fedora 315 k
qemu-img i386 0.9.1-10.fc10 fedora 76 k
xen-libs i386 3.3.0-1.fc10 fedora 180 k

Transaction Summary
=================================================================================
Install 8 Package(s)
Update 0 Package(s)
Remove 0 Package(s)


次に、libvirtd というサービスを起動する。

# service libvirtd start

これで準備は完了である。

[アプリケーション] メニューの [システムツール] -> [仮想マシンマネージャー] を選択し、仮想マシンマネージャーを起動する。

デフォルトで localhost という「接続 (またはホスト)」が用意されている。
この「接続」の下に「仮想システム」を追加していく。

仮想化システムを追加するには、追加先の接続を選択して、画面右下の [新規] ボタンをクリックする。
「新規の仮想システムを作成」ダイアログが開くので、指示どおりに入力し、仮想システムを作成する。

CD に OS インストールディスクまたはその ISO イメージを指定しておけば、[完了] ボタンをクリックするとインストーラが起動する。
あとは通常のインストール手順を踏めばよい。
posted by K/I at 16:35 | 東京 ☀ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

Fedora Core 9 -> Fedora Core 10 アップグレード

Fedora Core 10 がリリースされた。

Fedora Core 9 では、Xen が使えなくて困っていた。
→ FC9のリリースノート『20.1. Kernel Integration Improvements』
http://docs.fedoraproject.org/release-notes/f9/en_US/sn-Virtualization.html#sn-Kernel-Integration-Imrpovements
※日本語版リリースノートは日本語が難解なのでURL割愛

さて、FC10 でどうなったかというと、
http://docs.fedoraproject.org/release-notes/f10/en_US/What_Do_System_Adminstrators_Care_About.html#sn-Unified_kernel_image
だそうである。
つまり、Xenではなく、KVM を使えということか。
おやおや。。。

少し調べてみると、ややRH社の戦略的な意図もあるようだ。
何の貢献もしていない1ユーザーとしては、親分の言い分に従うしかないか。

まぁ、この機会にKVMを試してみるのも悪くない。
KVMについては、またあとで試すことにして、バージョンアップだけしておこう。

プロセスは今までと同じ。
Fedora Core 3 -> Fedora Core 4 -> Fedora Core 5 アップグレード
Fedora Core 5 -> Fedora Core 6 アップグレード
Fedora Core 6 -> Fedora Core 7 アップグレード
# rpm -Uvh \
http://download.fedora.redhat.com/pub/fedora/linux/releases/10/Fedora/i386/os/Packages/fedora-release-10-1.noarch.rpm \
http://download.fedora.redhat.com/pub/fedora/linux/releases/10/Fedora/i386/os/Packages/fedora-release-notes-10.0.0-1.noarch.rpm
# yum clean all
# yum update

今回は、何の警告もエラーも無くアップデートが完了した。
posted by K/I at 12:40 | 東京 ☀ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2008年11月23日

Tomcatでデータベースを使う - PostgreSQL編 -

Tomcatから、PostgreSQLにアクセスする方法について。
やり方は『Tomcatでデータベースを使う - MySQL編 -』に書いた方法とおなじである。

PostgreSQLのJDBCドライバは、以下のURLからダウンロードできる。

PostgreSQL JDBC Driver
http://jdbc.postgresql.org/

また、DeriverManager の getConnection メソッドに与える接続 URL は、jdbc:mysql:... の代わりに jdbc:postgresql:... とする。
posted by K/I at 10:56 | 東京 ☁ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2008年11月14日

Tomcatでデータベースを使う - MySQL編 -

Tomcat から JDBC で MySQL データベースに接続する方法について (JNDIを利用)。

PostgreSQLについての情報は『Tomcatでデータベースを使う - PostgreSQL編 -』を参照。


以下、MySQL はすでにインストールされているものとする。
また、Tomcat は 6.0、MySQL は 5.0 を使用した。

1. JDBC ドライバ Connector/J の入手

MySQL から、JDBC ドライバ Connector/J というものが提供されている。
MySQL の Downloads ページから ZIP または tar+gz 形式のファイルをダウンロードし、解凍する。

2. リソースの設定

これは、Tomcat のバージョンによって大きく異なるようで、注意が必要。
まずは、Tomcat サイト (http://tomcat.apache.org/) の Documents の、"JNDI Resources" の章をよく読む。

特に、jar ファイルをどこに設置するか?とか、Resource 設定をどの XML に記述するか?などに注意。

たとえば、Tomcat 6.0 では、jar ファイルは $CATALINA_HOME (つまり、Windows デフォルトなら C:\Program Files\Apache Software Foundation\Tomcat 6.0) の下の lib フォルダ内に置くのが一番簡単、と書かれていたのでそこに mysql-connector-java-[version]-bin.jar を設置。
Resource は、$CATALINA_HOME/conf/context.xml の Context ノードの中に記述せよ、となっているので、Connector/J の付属マニュアルの「5.2.2. Using Connector/J with Tomcat」の設定をコピーした。

設定はこれで完了。

3. 接続のしかた
Connection db
= DriverManager.getConnection("jdbc:mysql://localhost/"
. "データベース名?"
. "useUnicode=true&"
. "characterEncoding=Shift_JIS",
"アカウント", "パスワード");
Statement objSql = db.createStatement();
ResultSet rs = objSql.executeQuery("SQLクエリ");

などとする。
posted by K/I at 08:02 | 東京 ☀ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2008年10月08日

片手で日本語入力

キーボードの片手入力というのがR25で紹介されていたので試してみた。

増田式! PCキーボードの学校
http://homepage3.nifty.com/keyboard/input%20choi%20kana.htm

参考にしたのは、上記ページの「左手チョイ入力」のところ。
これは、MS IMEの「ローマ字設定」の機能を用いてローマ字一覧をカスタマイズし、片手で日本語入力できるようにする、というものである。

左手でキー入力できれば、たとえば書籍を右手で開いたり、メモをとったり、マウスを操作したりしながらキー入力できて便利かもしれない。

ただ、上記ページで紹介されている「左手チョイ入力」は、拗音・促音の入力について書かれていない。
それに、反転して右手用にした時にローマ字以外のキーに重なってしまい、IMEでは正常にキーの割り当てができないようだ。
そこで、少々手を加えたのが以下のキー割り当てだ。

"変形" 左手チョイ入力:1打目
左 手右 手
小指薬指中指人差指伸指伸指人差指中指薬指小指
濁/半濁な行た行は行上段
さ行か行あ行ま行中段
ら行わ行下段
※"半濁音" は2回押し

"変形" 左手チョイ入力:2打目
左 手右 手
小指薬指中指人差指伸指伸指人差指中指薬指小指
オ段エ段ヤ段上段
ウ段イ段ア段ユ段中段
ヨ段下段
※"ン" はア行扱い。

右手の場合は、左右反転する。

"変形" 右手チョイ入力:1打目
左 手右 手
小指薬指中指人差指伸指伸指人差指中指薬指小指
上段は行た行な行濁/半濁
中段ま行あ行か行さ行
下段わ行ら行
※"半濁音" は2回押し
"変形" 右手チョイ入力:2打目
左 手右 手
小指薬指中指人差指伸指伸指人差指中指薬指小指
上段ヤ段エ段オ段
中段ユ段ア段イ段ウ段
下段ヨ段
※"ン" はア行扱い。

かねてから、日本語の五十音表には疑問を感じている。
日本語の母音は、「あ・い・う・え・お」に「や・ゆ・よ」を加えた8つにすべきではないかと思う。
つまり、こんな感じだ。



B


D


Z


G


P


W


R


M


H


N


T


S


K


-
 

BA

DA

ZA

GA

PA

WA

RA

MA

HA

NA

TA

SA

KA

A
ア段
A

BI

DI

ZI

GI

PI

WI

RI

MI

HI

NI

TI

SI

KI

I
イ段
I

BU

DU

ZU

GU

PU

WU

RU

MU

HU

NU

TU

SU

KU

U
ウ段
U

BE

DE

ZE

GE

PE

WE

RE

ME

HE

NE

TE

SE

KE

E
エ段
E

BO

DO

ZO

GO

PO

WO

RO

MO

HO

NO

TO

SO

KO

O
オ段
O
びゃ
BYA
ぢゃ
DYA
じゃ
ZYA
ぎゃ
GYA
ぴゃ
PYA
-りゃ
RYA
みゃ
MYA
ひゃ
HYA
にゃ
NYA
ちゃ
TYA
しゃ
SYA
きゃ
KYA

YA
ヤ段
YA
びゅ
BYU
ぢゅ
DYU
じゅ
ZYU
ぎゅ
GYU
ぴゅ
PYU
-りゅ
RYU
みゅ
MYU
ひゅ
HYU
にゅ
NYU
ちゅ
TYU
しゅ
SYU
きゅ
KYU

YU
ユ段
YU
びょ
BYO
ぢょ
DYO
じょ
ZYO
ぎょ
GYO
ぴょ
PYO
-りょ
RYO
みょ
MYO
ひょ
HYO
にょ
NYO
ちょ
TYO
しょ
SYO
きょ
KYO

YO
ヨ段
YO

こうすれば半端者のヤ行が不要になり、とても整った50音表になる。

さて、上の「"変形" 左手チョイ入力」の配列は、この50音表に従っている。
そのためヤ行はア行に組み入れられ、2打目に「や・ゆ・よ」の入力が加えられている。

実際に設定するには、以下のようにする。
※MS IME 2007 の場合。
  1. MS-IME の言語バーで、[ツール]アイコンから[プロパティ]を選択する。
  2. "Microsoft Office IME 2007 のプロパティ" ダイアログの "全般" タブの "編集操作" グループにあるキー設定で [変更...] ボタンをクリックする。
  3. "Microsoft IME 詳細プロパティ" ダイアログで、"ローマ字設定" タブをクリックする。

ローマ字一覧が表示されるので、ここで上の「"変形" 左手チョイ入力」に従ってキーを割り当て直す。

"変形" 左手/右手チョイ入力用ローマ字のキー割当


qqr
ppu


qr
pu


qe
pi


qs
pl


qd
pk


b
n


v
m


g
h


r
u


w
o


e
i


s
l


d
k


f
j
 

qqrf
ppuj

qrf
puj

qef
pij

qsf
plj

qdf
pkj

bf
nj

vf
mj

gf
hj

rf
uj

wf
oj

ef
ij

sf
lj

df
kj

ff
jj
ア段
f
j

qqrd
ppuk

qrd
puk

qed
pik

qsd
plk

qdd
pkk

bd
nk

vd
mk

gd
hk

rd
uk

wd
ok

ed
ik

sd
lk

dd
kk

fd
jk
イ段
d
k

qqrs
ppul

qrs
pul

qes
pil

qss
pll

qds
pkl

bs
nl

vs
ml

gs
hl

rs
ul

ws
ol

es
il

ss
ll

ds
kl

fs
jl
ウ段
s
l

qqre
ppui

qre
pui

qee
pii

qse
pli

qde
pki

be
ni

ve
mi

ge
hi

re
ui

we
oi

ee
ii

se
li

de
ki

fe
ji
エ段
e
i

qqrw
ppuo

qrw
puo

qew
pio

qsw
plo

qdw
pko

bw
no

vw
mo

gw
ho

rw
uo

ww
oo

ew
io

sw
lo

dw
ko

fw
jo
オ段
w
o
ぴゃ
qqrr
ppuu
びゃ
qrr
puu
ぢゃ
qer
piu
じゃ
qsr
plu
ぎゃ
qdr
pku
-りゃ
vr
mu
みゃ
gr
hu
ひゃ
rr
uu
にゃ
wr
ou
ちゃ
er
iu
しゃ
sr
lu
きゃ
dr
ku

fr
ju
ヤ段
r
u
ぴゅ
qqrg
ppuh
びゅ
qrg
puh
ぢゅ
qeg
pih
じゅ
qsg
plh
ぎゅ
qdg
pkh
-りゅ
vg
mh
みゅ
gg
hh
ひゅ
rg
uh
にゅ
wg
oh
ちゅ
eg
ih
しゅ
sg
lh
きゅ
dg
kh

fg
jh
ユ段
g
h
ぴょ
qqrv
ppum
びょ
qrv
pum
ぢょ
qev
pim
じょ
qsv
plm
ぎょ
qdv
pkm
-りょ
vv
mm
みょ
gv
hm
ひょ
rv
um
にょ
wv
om
ちょ
ev
im
しょ
sv
lm
きょ
dv
km

fv
jm
ヨ段
v
m
-------------
fb
jn

b
n

qfs
pjl

tfv
yjm

tfg
yjh

tfr
yju

tfw
yjo

tfe
yji

tfs
yjl

tfd
yjk

tff
yjj

tde
yki

tdf
ykj

tes
yil

しばらく練習すれば、ある程度の速度で入力できるだろう。
posted by K/I at 02:27 | 東京 ☔ | Comment(4) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2008年09月16日

Fedora Core 9 のインストール (PXEネットブートを利用)

以前、『FD無しCD-ROM無しPCにLinuxをインストール − Fedora Core編』で PXE のネットブートを利用して Fedora Core 4 をインストールする方法を紹介したが、今回は Fedora Core 9 で試した。
〔関連記事〕
基本的には、上記『FD無しCD-ROM無し〜』と同じ方法でインストールできる。
以下、FC4 と FC9 で異なる点を中心に書き留めておく。

(1) Fedora Core 9 用の vmlinuz と initrd.img は、たとえば以下のサイトにある。

ftp://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/9/Fedora/i386/os/images/pxeboot


(2) "Install Method" の画面が Fedora Core 4 と異なっている。
この画面では "URL" を選択して IP 設定をした後、URL には

ftp://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/9/Fedora/i386/os

など media.repo が置かれている URL を指定する。

"Retrieving stage2.img..." と表示されてダウンロードがはじまる。
状況にもよるが、ここはけっこう時間がかかる。

このメッセージが出ずに、"Unable to retrieve ..." と出た場合は URL が間違えている可能性がある。
また、"Unable to retrieve..." の表示にかなり時間がかかる場合は、接続が切断している可能性がある。

(3) 途中で何もせずに放置していると tftp 接続がタイムアウトして しまうので注意が必要である。

たとえば、URL ダウンロード元の URL や、パッケージ選定などはあらかじめ準備しておく。
どうしてもタイムアウトしてしまう場合、tftp のタイムアウト時間を延ばす方法もあるかもしれないが、よくわからないのでいずれ調べてみたい。

必要ファイルをローカルネットワーク上のサーバーにダウンロードしておき、そこにアクセスする方法もありえる。
ダウンロードしておく必要があるのは os ディレクトリ以下だが、トータルのデータサイズは3.4GB程度である。
posted by K/I at 13:27 | 東京 ☔ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2008年07月06日

Googleマップを自分のサイトに表示する

Googleマップの API を試した。
これを使うと、自分のWebページにGoogleマップを表示できる。

まず、Google Maps API のキーを取得する必要がある。
キーの取得手順は以下のとおり。
  1. Google トップ (http://www.google.co.jp/) で、[サービス一覧] リンクをクリック
  2. 「先進的なサービス」の [Code] リンクをクリック
  3. [API & デベロッパー ツール] リンクをクリック
  4. 「プロダクト」→ [API] → [Google Maps API] → [ホーム] をクリック (Google Maps API のホームページ http://code.google.com/intl/ja/apis/maps/ が表示される)
  5. 「利用方法」の [Google Maps API キーを取得] をクリック
  6. 使用するサイトの URL などを入力して登録
  7. API キーが表示されるので、それをメモする

ドキュメントは、Google Maps API のホームページから参照できる。
さしあたり、

Google マップ API の概念
http://code.google.com/intl/ja/apis/maps/documentation/
Google マップ API リファレンス
http://code.google.com/intl/ja/apis/maps/documentation/reference.html

を読めば何とかなるだろう。

少し時間の余裕ができたら、いろいろといじってみたい。
posted by K/I at 12:31 | 東京 ☀ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2008年06月25日

Eclipse に WTP をインストールする

Eclipse で JSP 開発するなら、WTP (Eclipse Web Tools Platform) が便利らしい。
試しにインストールしてみた。

Eclipse に関する情報は、こちらのサイトが充実している:
EclipseWiki
http://eclipsewiki.net/eclipse/

今回は、Windows 版の Eclipse 3.3.1.1 を使用した。
※Eclipse 自体のインストールについては割愛する。

(1) WTPのインストール

WTP は、EMF (Eclipse Modeling Framework) など、いくつかのプラグインを必要とするので、それも同時にインストールする。
  1. Eclipse の [ヘルプ] メニューから [Software Updates]->[Find and Install...] を選び、"インストール/更新" 画面で [インストールする新規フィーチャーを検索] を選択して [次へ] ボタンをクリック
  2. [新規リモート・サイト] ボタンをクリックし、WTP の更新サイトの URL を入力
    ※この記事を書いた時点での更新サイトは
    http://download.eclipse.org/webtools/updates/
    WTPの公式サイト (http://www.eclipse.org/webtools/) などで調べることができる
  3. WTP の更新サイトと、Europa Discovery Site (3.3.1.1 の場合) にチェクマークをつけて、[終了] ボタンをクリック
  4. "検索結果" 画面が表示されたら、WTP の更新サイトにチェックマークをつけ、[必須項目を選択] ボタンをクリック
    必要なプラグインが Europa Discovery Site から選ばれ、エラーが解消されるはず。解消されなければ、不足プラグインを別途インストールする。
    ※なお、[必須項目を選択] ボタンをクリックしても、最初はなぜか反応がなかった。あちこちクリックしていたら選択された。原因不明。
あとは、画面指示に従って、インストールを完了させる。

(2) Tomcat のダウンロードとインストール

WTP で JSP 開発するには、ローカルマシンに J2EE 環境が必要である。
J2EE サーバーにはいくつか選択肢があるが、ここでは Tomcat を使用する。

まず、Eclipse がサポートする Tomcat バージョンを確かめておく。
[ファイル] メニューから [新規]->[その他] を選び、"新規" ダイアログで "Server" の中の "Server" を選んで [次へ] ボタンをクリックする。
"New Server" ダイアログで "Apache" を開くと、選択可能な Tomcat バージョンがわかる。

Apache Tomcat サイトの Download メニューから、Eclipse が対応するバージョンを選び、ダウンロードする。

Apache Tomcat
http://tomcat.apache.org/

Windows であれば、Core のところにある、[Windows Service Installer] から、Windows 用のインストーラをダウンロードできる。

インストーラを起動したら、すべてデフォルトのままインストールする。
※あらかじめ、JRE または JDK をインストールしておく必要がある。

なお、Tomcat 5.5 + JRE 1.6 だと、Tomcat の起動に失敗するようだ。
※解決策は、以下のサイトで紹介されていた。
ただブログ
http://d.hatena.ne.jp/htada/20071004

(3) サーバーの追加

Eclipse を起動し、Tomcat サーバーを追加する。
  1. [ファイル] メニューから [新規]->[その他] を選び、"新規" ダイアログで "Server" の中の "Server" を選んで [次へ] ボタンをクリック
  2. "New Server" ダイアログで "Apache" を開き、インストールしたバージョンの Tomcat を選び、[次へ] ボタンをクリック
  3. もし Tomcat Server のインストールディレクトリを尋ねる画面が表示されたら、Tomcat のインストール先を指定し (たとえば、C:\Program Files\Apache Software Foundation\Tomcat 6.0 など)、[次へ] ボタンをクリック
  4. "Add and Remove Projects" 画面では特に何もせずに [終了] ボタンをクリック
ナビゲータに "Servers" が追加され、その中に Tomcat のサーバーが追加されるはずである。

(4) JSP プロジェクトの追加
  1. [ファイル] メニューから [新規]->[プロジェクト] を選択
  2. "ウィザードを選択" ダイアログで、"Web" の中の "Dynamic Web Project" を選択し、[次へ] ボタンをクリック
  3. プロジェクト名を入力して、[終了] ボタンをクリック

これで、JSP 開発環境が整った。
作成したプロジェクト内の WebContent の中に JSP ファイルを書いていく。
Eclipse から、ローカルの Tomcat での動作確認、WAR ファイルの書き出しなどが行える。
タグ:Eclipse java JSP wtp
posted by K/I at 09:17 | 東京 ☀ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする