2006.01.01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

MHI 5.0

この「にっき」には暴力シーンやグロテスクな表現が含まれています。

(2006.01.27)

  • やはり、このまま朽ちるわけにはいかない。
  • いつまでも俺が貴様等のオダテに乗って、 言いなりになっていると思ったら、大正解だ。

$ ミッションクリティカルはLinux?、Windows?

ミッションクリティカルで、そもそも PC Server を使ってはいけません!

デバイスドライバ・カーネル・BIOS・ファームウェア、 提供元バラバラで、満足ゆくサポートが得られると思ったら、大間違い。 (メーカーが満足ゆくトータルサポートを提供してくれるという考えは、 練乳のように甘い)

PC Server も、hatena とか google みたいな、 一台一台は壊れてもいいようなクラスタ構成ならいいと思うんですけどね。 お宝サーバに使うもんじゃありませんよ、ほんとに…(泣)。

$ 噂のFOLDERSHARE.COM

を試しに使ってみた。

Firewall の向こう側にあるオフィスの自分 PC の内蔵ディスクの中身を 自宅から覗けてしまうのには驚いた。これはすごいツールだ。 Microsoft が買収するのも頷ける。

でも、1日でアンインストールした。 痛い腹、もとい、痛くもない腹を探られたくないからね。

原理的には、PC は定期的に foldershare.com に対し、 https リクエストを発行しているに違いない。 そんな目立つパケットをインフラまわりを管理している部署が 見逃さないわけがない。

うちは USB メモリの持ち込み/持ち出しさえ禁止しているくらいだから、 一応、ファイル共有ソフトであるところの同ソフトを使っていることが知れたら、 えらいことになるだろう。

しかし、世の中、どんどん不便になってゆくな…。 そのうち、退職時にはバールのようなもので殴られて、 記憶の返却を要求されるようになるに違いない。

$ [wifky] フレーム転送してはどうだろう

infoseek のサイトは、外部からいきなり CGI を呼ぶことができない。 どうも、infoseek 内の html ファイルからのリファラーがついていない CGI 向けリクエストは拒否されてしまうようだ。 そのため、infoseek 内の wifky 利用者は転送用の html を一つ置いて、 そこへリンクを張って誘導されていることが多い。

ふと思ったが、こんな html (http://○○.infoseek.co.jp/index.html) を用意してフレーム転送してはどうだろうか。 ( @nifty でもドメインURL転送方法として使われているようだ)

<html>
<head>
    <title>タイトル</title>
</head>
<frameset cols="*">
    <frame src="http://○○.infoseek.co.jp/cgi-bin/wifky.cgi" />
</frameset>
</html>

infoseek のアカウントが無いので、実環境での検証はできないが、 手元の anhttpd で実験してみたところ、 元htmlファイルの URL のリファラー情報が CGI へのリクエストに付くので、おそらく問題ないだろう。

これで「(infoseek の制限上)リンクは http://○○.infoseek.co.jp/index.html に 張ってください(でないとエラーになってしまう)」 と明記せずとも URL欄が http://○○.infoseek.co.jp/index.html になってくれるので、 面倒が無いはずだ。

なお、このままだと、外部リンクをたどっても、 URL 欄が変わってくれなかったりするが、こんなこともあろうかと Tools ページに「target value for external link.」 という設定を用意しておいた。 ここに「_top」と書いておけば、回避できる。

さて、誰か、infoseek で実際に検証してくれないかな…(← 自分でやれ)

$ Oracle の Pro*C 言語の酷さについて語る人がいないのは何故か?

Pro*C というのは、C言語中に SQL をインラインで記述するために、 拡張された C 言語だ。 具体的には「プリコンパイラ」というプリプロセッサをコンパイルの前に かますことにより、 SQL 処理を具体的なコール処理に展開する。

この言語の酷いのは文字列変数の持ち方だ。 SQL で直接扱う文字列を保持するのに varchar という拡張型使うのだが、 これの宣言は次のようなものである。

    EXEC SQL BEGIN DECLARE SECTION;
	varchar foo[10];
    EXEC SQL END DECLARE SECTION;

これをプリコンパイラにかけると

    struct {
	unsigned short len;
	unsigned char  arr[10];
    } foo;

と展開される。arr の末尾は '\0' がついていない、Pascal 型の文字列である。

ここで、カンのよい人なら想像つくかもしれないが、 構造体にタグがついていない。 つまり、この構造体は関数のパラメータにすることができないも同然なのだ。 (正確に言えば可能なのだが、Warning まみれになってしまう)

これではコンテナライブラリに放り込むこともできない。 仕方なしに、基本は char型配列にもって、必要な時だけ、

int hoge(char *foo)
{
    EXEC SQL BEGIN DECLARE SECTION;
	varchar v_foo[100];
    EXEC SQL END DECLARE SECTION;

    strcpy( v_foo.arr , foo );
    v_foo.len = strlen(foo);

    ; /* 以下省略 */
}

みたいなことをいちいちしている。馬鹿馬鹿しい (実際は #define マクロ使って、ちょっと楽してるけども)。 ただでさえ

  • 文字列型(クラス)がねぇ
  • コンテナライブラリも使えない
  • 例外処理も使えない。

という三重苦環境に置かれているのに、 文字列の操作だけでこれだけステップ数をとっていては、 ビジネスロジックが文字列操作のコードの中に埋没してしまう。

こんなもん使ってるのはウチだけじゃないかと思う。 実際、巷に Pro*C の情報はあまり転がっていない。 本当に使ってるとこあるのだろうか。

使ってたら手を挙げてほしい

ところで、Pro*C の SQL パーサは Oracle 9i においても 8i 相当のものしか装備していないらしい (サポートが言ってたんだから、間違いない)。 Oracle 自身すら、Pro*C に見切りを付けている気配がするぞ。

QWERTY infoseekでフレーム転送上手くいくようです。http://qwerty777.s57.xrea.com/sblog/eid219.htmlからリンクしています。 (2006/01/29 01:52:54)

はやま どうもありがとうございます。さっそく公式ページにも記載いたします! (2006/01/29 03:22:32)

amano Safari でうまく表示されなくなったのは、version up のせいでつか? Firefox では多分意図通り・・・ (Sarari) , (Firefox) (2006/01/30 13:15:07)

(2006.01.21) | (2006.01.28)

.net(3) C++(3) Cygwin(12) GAME(3) Groovy(1) Linux(2) Lua(39) Mercurial(13) NYAOS(92) OS/2(7) Oracle(3) Perl(4) Python(22) SKK(4) Windows8(1) album(68) ckw(10) coLinux(1) vim(6) wifky(27) 書評(21) (9)

zetamattaのたいじゅー