Mimori's Algorithms Diary

Last Modified : 01/20 20:10
Access :
tds mode : [static,site,cache:on]

2002/03/10 (Sun)

#1 [映画] ロードオブザリング

近所の映画館で最終上映21:30開始0:38終了といういかにも人が少なそうな回があったので行ってみる。夕飯を食べた後の若者集団が数グループとがらがら。 やはりエンディングテロップが始まった時の「え、うそ!?」「まじかよー」の声を聞くのが楽しい(笑)ハリポタじゃないんだからさー第一部に終わりっぽい終わりがあるわけなかろう。

字幕については、韋駄天があまりに強烈で他には記憶なし。僕にとっては馳夫さんだけど、原書で育った井辻朱美さんなんかは馳夫に違和感感じるという話もあるし、 ことファンタジーについては原作と翻訳で別の世界が広がるというのもアリではないかと。

ストーリーとしては「旅の仲間」という副題がすっとんだのもうなずける。ホビット達が馳夫さんと最初会った時はかなり疑心暗鬼に接していたのが、旅を続けるにつれ強い信頼で結ばれるようになったり、 ロバのビルとサムの話も全然ない。ビルとモリアの入り口で別れを惜しむ場面、いきなり「こんな優秀なロバ」になっていたのは唐突すぎ。 ゴラスとギムリが民族の対立を超えて無二の親友になる流れもなし。ロリエンでギムリ側は若干喧嘩腰だったけど…この場面目隠ししないし。

「指輪物語」としては一つの指輪に対する表現がものすごくよくできていて文句なし。いきなりサルマンとガンダルフの戦いに持ち込んだところもうまかったんではないかと。 やはり映画は画面は派手じゃないとねという意思が伝わってくる。おそらく残りの2作もフロド・サム・ゴクリ3人旅はそこそこに、ゴンドール王英雄物語が大半を占めると予想。 3人旅の方さすがにシェロブとの対決は絶対あると思うが(エレンディルの星もらった話だけ不自然に残ってたし ^^;)、イシリエンでファラミアと会うかどうかは怪しいかな。

#2 [OpenBlocks] FreeBSD上でのOpenBlockSのクロスコンパイル環境

OpenBlocksユーザメーリングリストにも流したが、素にかなり近いFreeBSD-4.5Rで戦った時のメモ。

@ GNU sed, awk

ホスト FreeBSD に GNU sed, awk がインストールされている必要がある。 せっかくなので日本語処理付の ja-sed-3.02_1, ja-gawk-3.0.6 をインストールした。 PATHは /usr/local/bin を最優先に。

@ GNU gettext

現在ports の devel/gettext は 0.10.35 だが、glibc-2.2.4 は 0.10.36 以上を要求している。 そのため、 devel/gettext-devel をインストール。 また、configure がこの msgfmt を見つけられるよう以下のリンクを作成しておく

# cd /usr/local/bin; ln -s  msgfmt-new gmsgfmt

こいつがないとCPU/OSのアーキテクチャを誤認識して、sysdeps/generic/uname.c をコンパイルしようとして config-name.h が無いと言ってみたり、 i386用の sysdeps/unix/fork.S をコンパイルしようとして失敗してみたりするようだ。

config-name.h については、config-name.in を読むとにてきとーに作っても通るみたいな雰囲気があったので、手で config-name.h を書いたりしてかなり時間を食った。

@ GNU autoconf, GNU make

うちのFreeBSDには半自動的に入っているので確認してないがたぶん必要

@ glibc-linuxthreadライブラリ

glibc-linuxthread-2.2.4 の展開は glibc-2.2.4 の下へ行う

@ クロスコンパイル環境上で kernel の make dep

まずぷらっとホーム提供のカーネルソースを linux/ に展開する。 (このソースはクロスコンパイルできるような変更が行われている) また、bashが /usr/local/bin/bash にインストールされているとして linux/ に移動した後、以下のスクリプトを起動

#!/bin/sh
PATH=$PWD:$PATH
ln -s /usr/local/bin/bash sh

gmake distclean
cp ../linux-2.4.10-plathome-011119.config .config
gmake oldconfig
gmake dep

うちではiMacで活躍していたディレクトリをrsyncで持ってきたので make distclean が必要だった。

@ FreeBSD-CURRENT ではない

fbsd5="i386-freebsd5" を fbsd5="i386-freebsd" に書き換えた。参照している側を書き換える方が変数名的には美しいが。

@ GNU hello を作ったときのスクリプト

#!/bin/sh
crossroot="/local/ppc"
linux="powerpc-linux"

export  CFLAGS="-O2 -pipe" \
        CC=${crossroot}/bin/${linux}-gcc \
        AS=${crossroot}/bin/${linux}-as \
        LD=${crossroot}/bin/${linux}-ld \
        NM=${crossroot}/bin/${linux}-nm \
        AR=${crossroot}/bin/${linux}-ar \
        RANLIB=${crossroot}/bin/${linux}-ranlib

./configure
make

@ Apache のコンパイル

include への通し方がどうもおかしく現状では通らない。今後の検討課題。

@ ReiserFS

当面の目的は ReiserFS か ext3 FS にして電源をいきなり切っても大丈夫にしたいということだったのだが、 PPC向けにパッチの当たった ReiserFS が本家kernelに取り込まれたタイミングがぷらっとカーネルより後なのでかなりやっかい。 Warning:'HOLON' is reserved. HOLON Linux で売り物として出すらしいから、この件に関しては自分でやるよりお金払ってもいいかなと思いつつあったり… 少なくとも HOLON Linux 並みたいに5000円切るような値段だったら文句なし。

2002/03/11 (Mon)

#1 [IPv6] CSocket(MFC) と winsock2

CSocketをクラスの定義(=ヘッダー)はそのままで、実装の .obj をリンクするだけでIPv6対応にしてしまおうという計画を進行させた。 なによりもまず、プリコンパイルヘッダーを外さないとなにも進まないのに気づくのにちょっと時間がかかる。

@ windowsヘッダ間の依存性

stdafx.h を先に読むと勝手に winsock.h を含まれてしまって winsock2.h とコンフリクト、 winsock2.h を先に読むと windows.h がコンフリクトと困ったものだ。 winsock.h を読まれても中身をスキップするよう無理やりこんな感じにした。

// trap winsock.h
#define _WINSOCKAPI_
#include <afxwin.h>
#define USE_WINSOCK2

#ifdef USE_WINSOCK2
#define WIN32_LEAN_AND_MEAN
#include <winsock2.h>
#include <ws2tcpip.h>
#ifndef IPPROTO_IPV6
#include <tpipv6.h> // For IPv6 Tech Preview.
#endif
#pragma comment(lib, "ws2_32.lib")
#else
#include <winsock.h>
#pragma comment(lib, "wsock32.lib")
#endif

これを適用するのは SOCKCORE.CPP のみ。

AFXSOCK.H のこの部分。一応 Socket(...) は公開関数として実装されているが、マニュアルでは公開されておらず、Create(...) 経由でソケットを作成することになっている。 *1 そして Create は nAddressFormat を指定していないというのが判明。

	BOOL Socket(int nSocketType=SOCK_STREAM, long lEvent =
		FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE,
		int nProtocolType = 0, int nAddressFormat = PF_INET);

IPv6→IPv4のフォールバック機構を Create(...) と Listen(...)/Connect(...) をからませて実装するといいのかな?

@ port引数ハック

フォールバック機構を作りたいのだが、CSocketのヘッダーはそのままでかぶせるという方針上、自分でインスタンス変数を増やすようなことができない。

IPv4のportは、ヘッダーの構成から16bitが最大。というより、TCP/UDPは IPv4/IPv6 より上のレイヤーなのでそのもののプロトコルに変更はない。 でもって、SOCKCORE.CPPのportに対する型はUINTを使っており、これはWin95以上であれば32bitであることが保障されているので、 上位16bitを使ってIPv6/IPv4の場合分けをして、関数間でなんとかすることとする。

上位16bitが0の場合は IPv4 としておけばbackward compatibility は保たれるはず。


*1:この時同時にBindも実行している。

#2 [IPv6] >GPGrelay IPv6対応版 ダウンロード<

MD5 (GPGrelay-ipv6.zip) = ecffd7d06a9a788d8b8376fe233a47e9 のバージョンはバグのため更新されています。

完成〜Releaseフォルダの中に実行ファイルがある。動作確認は現在のところWindowsXPのみ。

実行時、GPGrelayが待っているIPアドレスは 127.0.0.1 固定、すなわちIPv4固定。 *1 GPGrelay から外へのアクセスは IPv6 優先。AAAAとAレコードが両方設定されていて、IPv6がつながらないホストへの接続は現在未確認。

@ SOCKCORE.CPP

また、このソース中の SOCKCORE.CPP を CSocket を利用して作られたMFCネットワークアプリに持っていけば IPv6化 されるはず *2 上記のメモの通り、プリコンパイルヘッダーを使わないようにプロジェクトを設定する必要がある。 Listenにおいては、IPアドレスを何も指定しないとIPv6優先になってしまう仕様す。


*1:オリジナルGPGrelayではソケットそのものは INADDR_ANY で待っているのだが、つながった後 peer のアドレスが '127.' で始まるかどうかをチェックしている。事実上同じ動作となる。
*2:もちろん未確認、特にSendTo を使ったUDPパケット送信はできてないかも

2002/03/12 (Tue)

#1 [Windows] FSMO切替

社内でドメインコントロールを行っているマシンの整備をするにあたってしばらく電源断をする必要があったのだが、 FSMO(特にNT PDCエミュレーション)があまり長い時間止まっていると業務に支障をきたすので 別のドメインコントローラに移動。

はっきりいって Active Direcotry の管理でいちばんやっかいなのはFSMOだと思う。

#2 [IPv6] GPGrelay IPv6対応版 の問題点

同じホスト名でIPv4、IPv6ともにアドレスが振ってある時のフォールバック処理はうまくいってない。 Listen の時は CAsyncSocket::Create の中でフォールバックが完結しているが、 Connect の時は CAsyncSocket::Create とは別に CAsyncSocket::Connect をライブラリの外から呼ぶため。 状態を保持できないのでかなり苦しい。

…TeraTermの挙動思い出して確認。socket() の時に PF_UNSPEC を指定すればいいんじゃん。 あとは getaddrinfo で複数のエントリが返ってきた時の処理だけかな。

@ PF_UNSPECを指定した socket() 呼び出し

やっぱだめ。普通は getaddrinfo でプロトコルファミリーを得た後に socket() を呼ぶものらしいが、CAsyncSocketは逆なので…

#3 ホームページの容量

自分で管理しているとOpenBlocks のファームウェア(約6.5M)をちょっと変更する度に置いてもさっぱり減らない10GBoverなのに、 そこそこ面白い日記をつけている人がニフチーの10MB制限で写真が置けないというのを読むと悲しくなったり。

しかし自分で管理しているとこはニフチー程のサービスクオリティはないからなあ…うむぅ。IPアドレス結構頻繁に変わるし。

#4 [UNIX] 大規模なeコマースサイトを Apache と mod_perl で構築する

CGI等に Expires: ヘッダーを書かせてやれば、mod_proxy で生成したページのキャッシングができるかもしれんなー これとロードバランスを組み合わせるとかなり高度なチューニングができるかもしれん。

#5 [IPv6] >GPGrelay IPv6対応版 ダウンロード<

MD5 (GPGrelay-ipv6.zip) = 4c3e399063fc7c6c0a43754599bd70e6

Connect の時にIPv6→IPv4にフォールバックするバージョン。 内部的には

という仕様になっている。この過程で関連付けられたソケットが変わる可能性があるので、呼び出し側が直接操作するようなソースの場合問題が起きるかも。

あと、IPv6アドレスがDNSで取得できるが、接続できない(パケットが帰ってこない)場合は、二回接続を試すために待たされる時間も倍になってしまう(仕様、クリティカルじゃないので当面無視)

相変わらず SendTo については未テスト。getaddrinfo で取得できた最初の接続先にしか飛ばさないのでかなりだめっぽい。かといって全ての接続先にパケット飛ばしてしまっていいものなんだろうか… Aレコードが複数ある時はたぶん最初の1箇所だけだよなあ。UDPである以上アプリケーション依存だし。かなり悩ましい。

2002/03/13 (Wed)

#1 [セキュリティ] W32.Gibe@mm

マイクロソフトのインターネット・セキュリティ更新プログラムを装ったウィルス。 どっちかというとあまり外に公開してないメールアドレスにやたらと届く。

#2 [セキュリティ] CA-2002-06 Vulnerabilities in Various Implementations of the RADIUS Protocol

freeradius-0.3 だとダメなので、 freeradius-0.4 にアップグレード。RADIUSプロトコルは外にさらしてないので緊急性は低い。

OpenRadius つーのもあるらしい。

#3 [セキュリティ] mod_ssl and Apache_SSL Modules Contain a Buffer Overflow

SSLの中だけにかなりやばげ。だけどめんどくさいな…

いままでモジュールじゃない Apache-SSL つかっててアップグレードしずらかったので、がんばって mod_ssl に移行するか。

#4 [UNIX] Name-based virtual hosting with SSL

SSLのプロトコルの制限のため使えない。

#5 [UNIX] netpbm-9.24

にアップデートしたら pnmtops が生成したPSファイルの中に setpagedevice コマンドをはいてくれて、OKI MicroLine 2030N で印刷できない。 -nosetpageオプションを付ければOK。

PSプリンタがエラーの時に、エラーメッセージを印刷しないといけないのはなんとかならんものか? と思ったので買ってこの方数ヶ月封も開けてなかったネットワークソフトウェアCDROMから管理ツールをインストール。 でもやっぱりエラーの表示できなかった。

#6 [UNIX] BT878A-TVPCI

FreeBSD bktr ドライバで使えそうなカード。約6000円

#7 [Ruby] tDiary

rubyベースで美しそうな雰囲気だけどいまさら移るのもなあ。今だからこそという話もあるが。 いまいち日記フォーマットのトリックにはなじまないかも。自分には書いている内容からしてTDSの NEW*の楽さ加減がよい。

#8 [UNIX] クロスサイト スクリプティングのセキュリティ上の脆弱性に関する情報

ユーザーの入力データを元に動的な Web ページを生成するコードが、入力にスクリプトが含まれていないことを確実にするために、常に入力データをフィルタする必要がある。

自分の書いたスクリプトに関して、基本的に今まで見栄えの変更は 全く不許可というスタンスで<>の入力はそのままエスケープしてたので大丈夫そうな雰囲気。

#9 [Ruby] Apache2 with mod_ruby

対応したらしい。現状FreeBSD 上では prefork MPM しか使えないので十分。experimental な作業は Apache2 ベースで進めたいなーと思ってたところなので願ったり叶ったり。 とはいえしばらくは CGI 経由でいいであろう。

#10 8687歩

2002/03/14 (Thu)

#1 [Ruby] Ruby Earrings

CGIと書いてあるけど、ユーザから見るとActiveServerPageそのものだけどスクリプティングエンジンは ruby みたいな、のチュートリアル。

#2 [Ruby] 日本語プログラミング

識別子の先頭の文字に対して特別な処理をしているのはしょうがないとして、残りは日本語で書けてもいいんじゃないかと思ったけどダメだった。

def aブロック呼び出し
  yield
  yield
end
aブロック呼び出し { puts "In the block" }

#3 XP をはじめよう

細かい仕様の変更をする度に痛い目を見ては、テスト仕様書は書かないとなー(コーディングの仕様書を書く気はせんが)できれば自動化できるとハッピーと 思っていたので これだ!という開発手法。最大の問題は単独のプロジェクトに割けるメンバーが4人もいないというところだ…

#4 13535歩

2002/03/15 (Fri)

#1 [暗号] http://www1.sphere.ne.jp/k-west/SSLandTLS/

RFC2712 Kerberosをベースとした認証方式をTLSで使用するために必要な暗号スイートを追加する あたりにIEは準拠してるのかな?要調査

#2 [新感線] 天保十二年のシェイクスピア

10日経ってやはり良くなってたす。後半が15分縮まってるのに象徴されてるようにずいぶんとテンポというか間の取り方がいい感じに。 歌そのものがけだるい系が大半なのがどうしようもないんだけど…

あと初回見た時の最大の難点は、左寄りの席でバンドメンバーが見えなかったこと。効果音入れる時のドラムスティックが目に入るかどうかでかなり緊張感が違う。 普段の新感線公演だったら拍子木「カン」のところが、スネアの「スタン」というのにも慣れたし。 でもギター・ベースだけじゃなくてドラム・キーボードももっと目立つ見えるところで演奏して欲しかったなー。いんど屋敷の上段で移動するドラムセットはやはりすばらしかった。

前回かなり寝たつもりだったのに完全にすっとんでいた場面がなかったのは意外。というのも「誰だこいつ」という登場人物がいっぱいいたんで… ナレーションとともに新しい登場人物が出てきてはあまり間をおかずに殺されてしまうので、ずーっと神経を尖らせていないとすぐに分からなくなる。 新感線らしくはなくシェイクスピアを叩き込まれた古き文化人のための公演という感じか。

クレジット確認したら、プロデュースはヴィレッジ細川さんになっている。ので新感線公演と認識していいと思うんだが…下手人は鴻上尚史なんじゃ。

#3 [TV] 国盗り戦記〜七六六の陣〜

週に1ターンというまったりしたシミュレーション。これぞBSデジタルに合ったゲームと思うんだが、気づいたら最終決戦だった… 一応形ばかり参戦して終了。またやってくれないかな。

翌日の東証株価指数の上下を予想する すとっく東海道53次 も企業側の広告・情報収集としては悪くないかも。もうちっとゲーム性高くならんかな。

ちなみに今日届いた双方向通信に関連するKDDIの電話料金は39円。いつものように郵送代のが高そうである。

#4 [TV] プラットワン

NNN24有料かー。がっくし。それにしてもどーも日テレ系ばかりと思ったら、株主が日テレ・WOWOW・NTTcom・NTTドコモだった。 スカパー2は多少見ようかなーと思わなくもないけど、でもなあ。無料BSで十二分だお。

#5 12919歩

2002/03/16 (Sat)

#1 ホットスワップケース RAID Cage300

ATAでホットスワップする箱。

運用の楽さ考えると IntelliMirror ACS-7500(http://www.accusys.com.tw/7500.htm) のがいいよなー。HDD8台でのRAID5体制なら利点も出ようというものだが、それはそれでNASにしてしまうかという気も。

#2 9111歩

2002/03/17 (Sun)

#1 HARUシティ

お台場まで車で行くと、最後に見える第二駐車場が工事中で一瞬戦慄が走るが、以前の第一駐車場が復活していてかえってよし。 そして駐車場を出て一般入場口から入ろうとすると、列が出来ているので後ろに行けとのガードマンの指示。とても列には見えない密度なんだけど… すっかり入る気分を害された、のと朝から飯を食べていなかったのでそのままサイゼリアへ直行。絶対カタログは拾って入るべしと固い決意がめばえる(笑)

が、ガードがいつにも増してかたくてふつーに入ってしまった。一般入場は多かったなあ。

#2 12152歩

2002/03/18 (Mon)

#1 [IPv6] IPv6キックオフミーティング

残り2週間でキックオフってのもどうよというタイミングだったが、ともかくギネス1パイントがタダで飲めたのでよし。それにしても謎な場所にあるブリティッシュバーである。 メーカーの人に直接会って話できるのもやはり楽しい。時間が時間だけに会社を抜けてきた人ときっと慶応な学生がほとんどな感じであった。

#2 [IPv6] v6牧場&v6農場

狂牛病以来、「素性の明らかな食品」に対する需要が増えている昨今。しかも今日のキックオフミーティングで「生体センサー」をデモしていたので 牛1頭ずつにv6アドレスをつけてリアルタイムにいろいろモニターできるってのはどうだろう。 特に牛の場合、「ん万円を投資すると肉で帰ってくる」みたいなビジネスはすでに存在するので、俺の牛は元気かな〜みたいな。そして元気に育ったら食うと^^;

野菜も然りだが、単価的にペイするのを考えるととりあえず牛が最適かなと。

#3 3ware RAIDカード

ファームをアップグレードするとBigDrive(127GBオーバー)が使えるようになった。160GBを4つ搭載してRAID5だと約500GBだ。

…で、RAID5の初期化に3時間強。ちょっと古いドライブで構成したRAID10だと8時間でバックアップ完了したものを、リストアするのに16時間。難儀やのう。 しかも1台壊れた時のリビルドはBIOS画面からじゃないと出来ないらしい。それも多分3時間コースなのでWindowsが起動してからリビルド出来ないと状況によっては困りそうだなー。 <とリストアが完了するまで思ってた。

タスクトレイに常駐していたステータスモニターのマニュアルだと何も書いてなかったのが、Web管理画面からだと出来るのが判明。emailでの障害報告機能の設定がインストーラで出来たのにステータスモニターから設定できなくておかしいと思ってたんだよ… Rebuild, Media Scan ともスケジュールで週に1回自動実行もできる。ドライブの追加、スペアドライブの追加、スペアドライブの削除も可能。なかなか。というかそうじゃないとホットスペア箱が役に立たないよな。

ただしデフォルトパスワードが不明。(password enable/disable が別途あってデフォルトはdisable) localhost でしか接続できないからいいのかな。

@ リビルド実験

いきなり抜く気はしなかったので、電源断→HDD1台抜く→電源投入→OS起動後HDD装着 の実験。以下の順で無事オンラインリビルドに成功。予想の3時間を上回って6時間コースだった。

ついでにemailでの障害報告機能、Send Test Message では全然送られてこなかったが、実際の障害ではちゃんと送られてきた。

#4 日々のバックアップ

バックアップ用途に使うのにMOとCDRどっちがいいかと聞かれて、その2択だったら問答無用でCDR。 とはいえCDRは若干面倒だし、今時日々のバックアップだったら切り離し可能なHDDだよなーと進言したら「予算的にちょっと」と言われてしまった。

しかしそれでも1394箱も1万円切る時代、HDDでありましょう(強気)

#5 10642歩

2002/03/19 (Tue)

#1 robot

日記ログの解析すると Googlebot しか来てない。世の中の検索エンジン、表はどうあれ裏はどんどん Google になってるんかな。

#2 DNS設定のよくある間違い

プライベートアドレスの問い合わせはこの前解決したが、あとは大体大丈夫そう。 「無用な再帰検索サービス」は…これの解決をまじめにやるぐらいなら djbdns に移行したいような。

#3 11461歩


ジャンプ 検索
年月日 :
カテゴリー :
Title only
Ignore case
コメント
ハンドル : 名前記録
一言 :

[Management] [TdfEditor] [LogAnalyse]
Powered by Tomsoft Diary System 1.6.2
Copyright(C) 2002 by KAMIYA Satosi [Mail] <mimoriso@anet.ne.jp>. All rights reserved. このサイトはリンク上等です。