2009年6月22日月曜日

Submissionポート(587)対応

お客様から、ご利用頂いているサーバーの SMTP に接続できなくなったと問い合わせが入りました。

telnet 出すら繋がらないとのことなので、早速試してみると特に問題なく繋がります。「う~ん、こりゃプロバイダーが Port 25 をブロックしたな!」と調べてみると案の定…

で、どうしたものかとひと思案… SSL/TSL を使えばいいんだけど XMail をバージョンアップすると docomo の RFC 違反に引っかかる><;かといって、拾ってきたパッチ宛バージョンを使うのもなんか不安…

ほんじゃ、ファイアウォールの NAT を使って Port 587 を Port 25 に変換するかとネットスクリーンの設定をいじりはじめたのですが、ちょっと気になってググって見ると、XMail 複数ポートに対応してるじゃないか!

1. XMailCFG を開く
2. 環境設定をクリック
3. XMailCFG環境設定をクリック
4. SMTP ポート(変更注意!!)に「0.0.0.0:25 0.0.0.0:587」と入れる
5. 環境を保存をクリック
6. 完了

いやはや、SMTPポート変更機能が XMail環境ではなく XMailCFG環境設定にあるとは思いもしませんでした^^;

2009年5月15日金曜日

Oracleの文字列比較

Oracleの固定長文字列比較でちょっとはまったのでメモ書き。

通常、固定長の文字列(CHAR型やリテラル)を比較する場合には、長い方に長さを合わせて不足分にスペースを埋めてから比較します。

一方、左辺、右辺のどちらかが可変長の場合には補完は行わずにそのまま比較します。

CREATE TABLE HOGE ( C_CLASS CHAR(4) );

INSERT INTO HOGE(C_CLASS) VALUES ('PC');

SELECT * FROM HOGE C_CLASS = 'PC';

上記のSQLですがそのまま流すとちゃんとレコードを見つけてきます。ところが、これをプリペアードすると途端に見つけてくれなくなる!

最初は PDO のバグか?と思っていたのですがよくよく調べてみるとなんとOracleはプリぺーアドステートメントのパラメーターに与えたリテラルは固定長文字列(CHAR)ではなく可変長文字列(VARCHAR2)として扱うのだそうです@@

右辺が可変長になってしまったので補完が行われず = が偽を返してしまったわけです><;

まったく、Oracleってやつは…

2009年4月23日木曜日

UltimateDefrag

Norton Speed Disk はあまり使われていないファイルをHDDの内側に配置してくれたりしてかなりお気に入りのデフラグツールだったのですが、2003バージョンは古すぎて Vista では使えないらしいです><;

Norton System Works の最新版を購入しようかな?と思っていたのですがググっていたら UltimateDefrag というフリーソフトが見つかりました。ちょっと怪しげですが 日本語化パッチ もありました。

早速 Vista にて使ってみたのですが C: ドライブに対するデフラグは問題あるようでなんか変な名前のファイルを移動しようとしたところで延々とアクセスを繰り返します。一晩放置したところ処理は終わっていましたが半分くらいのファイルが元の位置に残ってしまっていました…

今朝、仕事に出る前にXPが入っているノートPC上で動かして来たのでどうなっているか楽しみです。

2009年4月18日土曜日

ステートメントといっても一気に処理できるわけではない

最近のプログラマーは高級言語から入るのでCPUがどういう手順で動いているのかわからないみたいです。

while ( fscanf( fp, "%d", &x[i ++]) != EOF );

このプログラムでは i には読み込んだ値数 +1 が格納されて終わりますが、この説明の際に 「i は fscanf が値を返した後にインクリメントされる」と主張する方が複数いました@@

fsanf( … ) を1つの処理としてとらえているんですね・・・でも、実際には引数を評価する処理は、順次行われてゆくわけなんですが、それを切り離して考えられないようです。

こういうプログラマーが下記のような構文に出合った時にどう解釈するのかが楽しみではあります。

while ( fscanf( fp, "%d %d", &x[i ++], &x[i ++] ) != EOF );

2009年4月11日土曜日

Optiplex 760

先日 Dell の営業マンが来まして VMware をさんざん勧めてゆきました。Dell が正式サポートしたのかぁ。それならテストサーバー用に VMware ESXi を使おうと思い発注、届いていたのですが忙しくて放置してありました。

オーダーした時に頼んだのは「VMware ESXi 上で CentOS を動かしたい。CPU Core 2 Quad Q9650, Memory 8GB, HDD 1TBx2」でした。

やっと時間ができたので開梱、まずは起動してBIOS画面を確認。お!BIOS設定画面がXVGA表示だ!しかもマウスが使える!で、RAIDの設定はと・・・あれ?RAIDの設定がない!速攻 Dell に問い合わせたところ Optioplex 760 はハードウェアRAIDはサポートしていないとのこと。ってことは Dell のマシンは SATA でも ESXi が動くんだ~なんて思いながら ESXi を DVD からブート、すると、例画面でストップ!

いろいろ調べたけどやっぱし SATA じゃ無理、RAID があれば動くケースが多いらしい。

おいおい、営業マンがきて VMware 勧めるからそれ用のマシン頼んだのに動かないってどういうこと?

仕方なく CentOS を入れて、その上で VMware を動かすことに・・・

CentOS5.3 x64
先日出たばかりの CentOS5.3 をインストールしようと DVD から起動、なんと X が起動するところでブラックアウト><;

CentOS5.2 x64
5.3 はあきらめて 5.2 をインストール、こちらはすんなりインストール完了。(何か足りない気はしていたのだが・・・)

#vi /etc/sysconfig/network-script/ifc[TAB] といつもの如く入れるが ifcfg-eth0 がない!

ぎゃ~~~!NICを認識できないんだ~。ソースインストールすればよいらしいがそれは嫌!
ということで、とりあえず中断・・・

2009年3月31日火曜日

samba NTドメイン参加

しばらく Linux から離れていたので浦島状態でして、samba を NTドメインに参加させることが出来ず不便な思いをしていましたが、ようやく今日成功しました。

sambapasswd じゃなくて net rcp join コマンドを使うんですね…

■ コンピューター名の作成
NT ドメインコントローラーにてコンピューター名を作成

■ セキュリティの変更
SWAT にて DOMAIN 認証を設定(Wizard が便利)

サーバータイプ: ドメインメンバー
WINS: 別の… NACPDC2

※ smb.conf の設定(SWAT を使わないとき)
dos charset = CP932
unix charset = EUCJP-MS
display charset = EUCJP-MS
netbios name = NetBIOS名
workgroup = ドメイン名
security = DOMAIN

■ ドメインへ参加
※ samba のサービスを止めないとエラーになる

[root@CentOS ~]# service smb stop
SMB サービスを停止中: [ OK ]
NMB サービスを停止中: [ OK ]
[root@CentOS ~]# net rpc join member -S ドメインコントローラーのNetBIOS名 -w ドメイン名 -U Administrator%パスワード
Joined domain NAC.
[root@CentOS ~]# service smb start
SMB サービスを起動中: [ OK ]
NMB サービスを起動中: [ OK ]

※ net rpc … にて1回目がエラーになることがあるが再度実行すると成功する

2009年3月19日木曜日

VMware + CentOS

今週は VMware + CentOS のインストールに翻弄されてしまいました><;

1回目:普通にインストール完了、ただ、php_oci, zip.so をインストールする際に開発キットを入れたのですが、それを最後のアンインストールしたらネットが不安定に…繋がるときもあれば繋がらないときもある??

2回目:1回目の時にコンパイルした .so を保存、開発キット無しでインストール完了。しか~し、またまたネットが不安定orz

3回目:ネットワークカードがオンボード(Intel PRO/1000 PM)を使っているので、これが壊れたのかも知れないと思い、RealTek RTL8139/810X を追加、今度は yum update の最後で止る。アップデート中にネットが切れるようだ><;

4回目:VMware Server 1.0.8 はちょっと古いのでアンインストールし 2.0 を入れる。この上で再インストールするも症状変わらず…

5回目:ネットワークカードを Intel に戻して、再インストール。yum update も正常に終了、起動時からちゃんとネットに繋がる!

いやはや、苦労しました。結局原因はわからずってところです。