Safari 2.0で日本語自動判別失敗?

Mac OS
XをTigerにアップデートして、結果としてSafariのバージョンが2.0になってから、某所で運用している掲示板の日本語コードの判別に失敗するようになった。
その掲示板は、ApacheのDefaultCharsetも有効にせず、CGIからのCharsetも日本語コードを特に指定していない。DefaultCharsetを有効にすると、他のコードを使うCGIで問題になるし、CGIから直接返すとなぜかApacheが書き換えようとしてうまくいかない。
で、仕方なく各ブラウザの日本語コード…

Mac OS XをTigerにアップデートして、結果としてSafariのバージョンが2.0になってから、某所で運用している掲示板の日本語コードの判別に失敗するようになった。

その掲示板は、ApacheのDefaultCharsetも有効にせず、CGIからのCharsetも日本語コードを特に指定していない。DefaultCharsetを有効にすると、他のコードを使うCGIで問題になるし、CGIから直接返すとなぜかApacheが書き換えようとしてうまくいかない。

で、仕方なく各ブラウザの日本語コードの判別能力に期待していたわけだが、これまでSafariも1.3までは自動できっちりと認識していたのに、2.0のなって判別しないでDefault設定のShiftJISだと思い込むようになった。ていうか、2.0から自動判別やめてない?

仕方ないので、CGIがHEADセクションでMETAタグのHTTP-EQUIVでContent-Typeを返すようにCGIを書き換えて対処。

CoreBlogで検索を可能にする

CoreBlogで日本語の検索を可能にすることにした。
とりあえず、単語分割用のSplitterで日本語が通るものを入れないといけないのだが、無駄が多いのを承知で単純な単語分割をするejsplitterを入れることにする。
といっても、ソースを取ってきて、Productディレクトリ(/usr/local/www/Zope/Product)で展開。ZopeのコントロールパネルからZopeを再起動して終わり。
次に、既に日本語非対応のSplitterで作られている分割単語の辞書であるlexiconを…

CoreBlogで日本語の検索を可能にすることにした。

とりあえず、単語分割用のSplitterで日本語が通るものを入れないといけないのだが、無駄が多いのを承知で単純な単語分割をするejsplitterを入れることにする。

といっても、ソースを取ってきて、Productディレクトリ(/usr/local/www/Zope/Product)で展開。ZopeのコントロールパネルからZopeを再起動して終わり。

次に、既に日本語非対応のSplitterで作られている分割単語の辞書であるlexiconを入れ替える。

まずはCoreBlogのContentでlexiconを削除する。次に、ZCTextIndexをAddして、idをlexicon、titleは空にしておいて、Splitterでejsplitter UTF-8を選択する。最後に、EntryからRecatalogを押すと、単語分割がやり直される。

Contentからlexiconを選んでQueryタブを選ぶと、ちゃんと日本語が分割されたか見ることが出来る。さすがに、辞書を使わず分割してるので、非常に馬鹿っぽいが、簡易検索には十分だろう。

これをCoreBlogから利用できる用にする為には、Content/modulesのなかのindex_htmlを開いて、検索部分でコメントアウトされてる部分を有効にするだけでいい。

Moblogも出来るようにしてみる

FreeBSDのportsでpython &
zopeをインストールしただけでは日本語が化けてしまうので、JapaneseCodecとpykfをインストール。といっても、portsではJapaneseCodecはzope用にinstallされるpython2.3でなくてpython2.4を要求するし、pykf自体はそもそもない。というわけで、ソースサイトからソースを取ってくる。
どちらも、展開してからそのディレクトリに移動して以下のcommandを入れるだけでinstall完了。pythonが2…

FreeBSDのportsでpython&zopeをインストールしただけでは日本語が化けてしまうので、JapaneseCodecとpykfをインストール。といっても、portsではJapaneseCodecはzope用にinstallされるpython2.3でなくてpython2.4を要求するし、pykf自体はそもそもない。というわけで、ソースサイトからソースを取ってくる。

どちらも、展開してからそのディレクトリに移動して以下のcommandを入れるだけでinstall完了。pythonが2.3と2.4の両方入っている場合はinstallするpythonを間違えないようにしないといけないかもしれない。

/usr/local/bin/python2.3 setup.py install

後はmoblog用のpop3アカウントを用意して読み込み用のURLを叩いてあげれば読み込まれる。

Blogタイトルはメールタイトルが使われる。パスワードはメール本文一行目に書く。その次の行は無視されるので、一行あけて本文を書く。カテゴリーはおそらくmoblogセッティングで設定したデフォルトカテゴリーが使われると思われ。

ほんとのところどうなのさ?

L2TPv3がらみのVPN設計をしているついでで、IPSecによるVPNにもちょこちょこ手を出しているんだけど・・・。
FreeBSDのカーネルをIPSec対応にするためのオプションの指定が、
options IPSEC options IPSEC_ESP options IPSEC_DEBUG
となっているドキュメントが検索でわらわら出てくるんだけど、最後のIPSEC_DEBUGって本当にいるのか?
ごく稀に上の二行しか書いていないドキュメントも出てくるし、どっかの誰かがわけもわからず三つと…

L2TPv3がらみのVPN設計をしているついでで、IPSecによるVPNにもちょこちょこ手を出しているんだけど・・・。

FreeBSDのカーネルをIPSec対応にするためのオプションの指定が、

options IPSEC
options IPSEC_ESP
options IPSEC_DEBUG

となっているドキュメントが検索でわらわら出てくるんだけど、最後のIPSEC_DEBUGって本当にいるのか?

ごく稀に上の二行しか書いていないドキュメントも出てくるし、どっかの誰かがわけもわからず三つとも入れたのを真に受けてみんなそれを馬鹿正直に書き写してるような気がしてならない。

CoreBlogでのイメージの貼り付け方

CoreBlogでイメージを貼り付ける場合には、まずイメージをサーバーにアップロードする必要がある。
まず、manageページから自分のブログディレクトリー内のimagesフォルダーに移動する。ここでAddでImagesを選び、ID(ファイル名)とTitle(イメージの説明)を入力し、イメージのファイルを指定してアップロードする。これで準備は完了。
次に、Entry作製時にIMGタグで埋め込む。この時、相対パス指定で”image/filename”と指定するだけでよい。
これで、Entry内に…

CoreBlogでイメージを貼り付ける場合には、まずイメージをサーバーにアップロードする必要がある。

まず、manageページから自分のブログディレクトリー内のimagesフォルダーに移動する。ここでAddでImagesを選び、ID(ファイル名)とTitle(イメージの説明)を入力し、イメージのファイルを指定してアップロードする。これで準備は完了。

次に、Entry作製時にIMGタグで埋め込む。この時、相対パス指定で”image/filename”と指定するだけでよい。

これで、Entry内に写真等のイメージを埋め込む事が出来る。

XR-410/TX2-L2テストレポート

とりあえず、テストの為にXR-410/TX2-L2をLAN内に2台設置してL2TPv3トンネルを張ってみた。というより、あまりの簡単さに拍子抜け。
最初はトンネルの向こう側のルーターの出口インターフェースのIPにPingが通らないのでトンネルが張れてないのかと焦ったけど、XR-410は組み込みLinuxベースなので、たんなるLinuxのインターフェースの制限だった。L2TPにカプセルされたパケットは相手側ルーターでデカプセルされたあと、自身宛かどうかを見ないで出口インターフェースに送ってるらし…

とりあえず、テストの為にXR-410/TX2-L2をLAN内に2台設置してL2TPv3トンネルを張ってみた。というより、あまりの簡単さに拍子抜け。

最初はトンネルの向こう側のルーターの出口インターフェースのIPにPingが通らないのでトンネルが張れてないのかと焦ったけど、XR-410は組み込みLinuxベースなので、たんなるLinuxのインターフェースの制限だった。L2TPにカプセルされたパケットは相手側ルーターでデカプセルされたあと、自身宛かどうかを見ないで出口インターフェースに送ってるらしい。で、Linuxの基本中の基本で自身のインターフェース宛のパケットは自身で出して受け取ることは出来ない、の制限らしい。それ以外は、非常に問題なくトンネル経由で全てのパケットがブリッジされてる。

というわけで、自身のLAN側インターフェースを使ってトンネルの向こう側からのパケットを受け取れないので、XR-410/TX2-L2をトンネル兼インターネットへのゲートウェイとして利用する計画は、トンネルされた側から外に出れなくなるので断念。別にゲートウェイを導入して、XR-410/TX2-L2はトンネルに専念させる設計に変更。

あとの問題は、L2TPv3 over IPSecにすると、XR-410はIPSec暗号化をソフトウェアでやるので、スループットが6Mbpsぐらいまで落ちてしまうことだけど、これは新しい研究室は上位にファイアーウォールが入ってるので、暗号化する必要はなしという判断で、IP Spoofing防止の為にL2TPv3の認証をハッシュ化するのみにとどめることに決定。

L2TPv3で遊ぼう

次の仕事先のネットワーク設計がうざい。
どうやらフロアごとにIP空間を分けてるらしい。しかも、研究室で割り当てられた部屋は防火扉に分けられた二つの同フロアの部屋と別フロアの大部屋。一応フロア間や防火壁にシャフトは通っていて各部屋の配線をしなおして一つの部屋に全部ネットワークを持ってくることはできるんだろうけど、ネゴシエーションも面倒そうだし、ましてフロア単位でIP空間を分けるような設計をする人が物理トポロジーと論理トポロジーの食い違いを受け入れるとは思えない。
ということで、各部屋間をVPNで結…

移転予定の研究室のネットワークを設計中。

新しい研究室の入っている建物はどうやらフロアごとにIP空間を分けてるらしい。しかも、研究室で割り当てられた部屋は防火扉に分けられた二つの同フロアの部屋と別フロアの大部屋。一応フロア間や防火壁にシャフトは通っていて各部屋からの配線を一つの部屋に持ってきて閉じたLANを作ることはできるんだろうけど、新たに配線をシャフトを通してもらう為のネゴシエーションが面倒そう。というか、レイヤー0レベルでなかなかうまく通信できない管理者をあまり相手にしたくない。

ということで、各部屋間をVPNで結ぶことに決定。普通のIP based VPNだとIP以外のレイヤー3なプロトコルが通らない。新しい研究室はボスがMacユーザーなので是非AppleTalkを部屋間で通したい所だが、レガシー(って言うな!)なプロトコルを通すには各部屋にルーターを置いてover IPなカプセル化をして通してあげないといけないので、これだと各部屋に都合3台のルーター(PC-UNIX)を置かないといけない。ところが、最近Ciscoを中心に策定が進められているL2TPの新バージョンv3だと、一度トンネルを張ってしまえばレイヤー2レベルでブリッジとして振舞うので、各部屋にL2TPv3なトンネルゲートウェイを置くことで物理配線無しに各部屋を一つの論理セグメントに繋いでしまうことが出来そう。

で、L2TPv3を先走って勝手に搭載したルーター(XR-410/TX2-L2)を出してる会社(Century Systems)があったので、研究費でとりあえず2つ導入してテストすることに。

光ファイバー導入

マンションにBフレッツのマンションタイプ導入。とりあえずマンション内では契約第一号なので、今のところ100Mbps占有状態らしい。
マンション構内は100MbpsVDSLで配線なので、自宅にはVDSLモデムが到着。電話回線の部屋側にスプリッタを入れるのかと思いきや、スプリッタ不要で構内電話回線に市販の単なる2分化コネクタを入れて電話とモデムを接続。VDSLで使う周波数って音声と十分はなれてるのね。まあ、音声回線からVDSL周波数へノイズが乗らない様にノイズフィルタは入れられたけど。音声は光ファ…

マンションにBフレッツのマンションタイプ導入。とりあえずマンション内では契約第一号なので、今のところ100Mbps占有状態らしい。

マンション構内は100MbpsVDSLで配線なので、自宅にはVDSLモデムが到着。電話回線の部屋側にスプリッタを入れるのかと思いきや、スプリッタ不要で構内電話回線に市販の単なる2分化コネクタを入れて電話とモデムを接続。VDSLで使う周波数って音声と十分はなれてるのね。まあ、音声回線からVDSL周波数へノイズが乗らない様にノイズフィルタは入れられたけど。音声は光ファイバからVDSLへのコンバーター側で分岐されるらしい。

で、とりあえずPPPoEルーターのマルチセッション機能を使って、プロバイダーとのセッションに加えてBフレッツの追加セッションを設定。オンデマンドでBフレッツの専用網につながるように設定して、フレッツ網内で閉じたスピードテスト。おおよそ下り50Mbps程度。輻輳もあるだろうし、まあ予想通りといったところか。上りのスピードテストがないところが痛いな。

後は、上りでストレスをかけたときの実測の測定と、バンド幅を生かした遊びをどうにか考えないと。

Blogってやっぱりいらない?

最近、UNIX関連の情報がGoogleで検索してもうまくまとまってるサイトがヒットしないなあ・・・と思っていたけど、自分でBlogやってみてわかったのはBlogのせいだったのね。
日々の雑用の記録をつけていくという主旨だと、Blogの簡単にエントリー出来るってことは楽なのは確かだけど、最終的にはここに記録したことをまとめて他人に見れるようなページにしないといけないのに、Bloggerって日々のTrackbackとかのオナニー的要素に満足しちゃってそこをしないからまとまらないのね。
これならWi…

最近、UNIX関連の情報がGoogleで検索してもうまくまとまってるサイトがヒットしないなあ・・・と思っていたけど、自分でBlogやってみてわかったのは、ドキュメント作成者が減る一方なのはBlogのせいだったのね。

日々の雑用の記録をつけていくという主旨だと、Blogの簡単にエントリー出来るってことは楽なのは確かだけど、最終的にはここに記録したことをまとめて他人に見れるようなページにしないといけないのに、Bloggerって日々の反応を直接的に感じ取れるTrackbackとかの要素に満足しちゃって、非Bloggerの為のドキュメントとしてまとめるのが面倒になっちゃうんだろうな。

COREBlogなんて、COREBlog自身のドキュメントがCOREBlogを入れてZopeから英語のHelpを見る以外ないんだもんなあ。製作者自身もBlogでしか情報を出していないのはいかんだろ。

これならドキュメント類はWikiで記録した方がいいかしらん。Zwikiでも試してみるか。

XFree86の依存性解消

FreeBSDの4系列の古い(といっても4.10でもだが)portsツリーをcvsupで最新に同期させて、portupgradeのportsdbで新しく依存関係のデータベースを作らせると、XFree86のdriへの依存性で問題になる。
これは、SGIが提供していたOpenGLライブラリであるdriがobsoleteになって、XFree86
projectがXFree86-driを提供するようになった為で、こちらに依存性を変更してあげる必要がある。というより、graphics/driをgraph…

FreeBSDの4系列の古い(といっても4.10でもだが)portsツリーをcvsupで最新に同期させて、portupgradeのportsdbで新しく依存関係のデータベースを作らせると、XFree86のdriへの依存性で問題になる。

これは、SGIが提供していたOpenGLライブラリであるdriがobsoleteになって、XFree86 projectがXFree86-driを提供するようになった為で、こちらに依存性を変更してあげる必要がある。というより、graphics/driをgraphics/xfree86-driに強制的にバージョンアップさせる必要がある。

とりあえずrootでコマンドラインから

portupgrade -fo graphics/xfree86-dri graphics/dri

これで、xfree86-driがdriからのバージョンアップとしてインストールされる。