<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>foursics.jp is here</title>
    <link rel="alternate" type="text/html" href="http://foursics.jp/" />
    <link rel="self" type="application/atom+xml" href="http://foursics.jp/atom.xml" />
    <id>tag:foursics.jp,2010-01-31://3</id>
    <updated>2010-09-07T08:21:06Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 5.02</generator>

<entry>
    <title>さくらのVPSに移転してみるなど - foursics blog</title>
    <link rel="alternate" type="text/html" href="http://blog.foursics.jp/hironobu/2010/09/sakura-vps.html" />
    <id>tag:blog.foursics.jp,2010:/hironobu//2.320</id>

    <published>2010-09-07T08:16:27Z</published>
    <updated>2010-09-07T08:21:06Z</updated>

    <summary> http://vps.sakura.ad.jp/ さくらのVPS｜VPS（仮想...</summary>
    <author>
        <name>Hironobu Koura</name>
        
    </author>
    
        <category term="network" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.foursics.jp/hironobu/">
        <![CDATA[<p>
<a href="http://vps.sakura.ad.jp/">http://vps.sakura.ad.jp/</a><br/>
さくらのVPS｜VPS（仮想専用サーバ）はさくらインターネット
</p>

<p>
直前までさくらのレンタルサーバを検討つか実際申し込みしてお試し期間中だったんだけど、その間に9/1からこいつが始まっちゃったんで即決してみました。で既にお引っ越し完了。このブログももちろん動かしてますよ。
</p>

<p>
sshとMovableTypeの設定、あとpostfixにしてメール受信の設定を最小限済ませてあとは割と放置気味ですが、問題なく使えてます。あとtracも入れなきゃ。何かあれば詳報は以降随時ということで。
</p>]]>
        
    </content>
</entry>

<entry>
    <title>RTに久々の新型ですって。 - foursics blog</title>
    <link rel="alternate" type="text/html" href="http://blog.foursics.jp/hironobu/2010/08/new-rt-series.html" />
    <id>tag:blog.foursics.jp,2010:/hironobu//2.319</id>

    <published>2010-08-25T08:23:45Z</published>
    <updated>2010-08-25T08:38:12Z</updated>

    <summary> http://internet.watch.impress.co.jp/doc...</summary>
    <author>
        <name>Hironobu Koura</name>
        
    </author>
    
        <category term="network" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.foursics.jp/hironobu/">
        <![CDATA[<p>
<a href="http://internet.watch.impress.co.jp/docs/news/20100824_389017.html">http://internet.watch.impress.co.jp/docs/news/20100824_389017.html</a><br/>
ヤマハ、ネットボランチ「RT58i」の後継となる「NVR500」10月下旬発売 -INTERNET Watch
</p>

<p>
RT58i級とRTX1200級の間を埋めるクラスが欲しいんだよなあ...。SRT100も悪くないんだけど、うーん...。VPN機能がPPTPだけとか、ねえ。
</p>]]>
        
    </content>
</entry>

<entry>
    <title>カーネル再構築時にDebianパッケージ化してさらにそこにe1000eドライバの最新を組み込んでおきたいので - foursics blog</title>
    <link rel="alternate" type="text/html" href="http://blog.foursics.jp/hironobu/2010/08/kernel-build-with-e1000e-as-debian-package.html" />
    <id>tag:blog.foursics.jp,2010:/hironobu//2.318</id>

    <published>2010-08-19T14:15:06Z</published>
    <updated>2010-08-20T10:32:01Z</updated>

    <summary> 5台で運用してるdebianサーバのカーネルを合わせるために、うち1台でビルド...</summary>
    <author>
        <name>Hironobu Koura</name>
        
    </author>
    
        <category term="linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.foursics.jp/hironobu/">
        <![CDATA[<p>
5台で運用してるdebianサーバのカーネルを合わせるために、うち1台でビルドしたカーネルはdebパッケージにして配布してるのですがね。e1000eドライバはIntelのダウンロードセンターから取り寄せて組み込んでいるので、ちょっと手順が複雑な上に間隔が空くとすぐに忘れちゃうんですよ。いやだわおぢいちゃんたら晩ご飯ならさっき食べたでしょ。
</p>

<p>
なお、前段階として
<ul>
<li><a href="http://kernel.org/">http://kernel.org/</a>あたりから適当なkernel tarballをひっぱってくる
<li>あと、e1000eの最新も<a href="http://downloadcenter.intel.com/Detail_Desc.aspx?ProductID=3003&amp;DwnldID=15817&amp;lang=jpn">http://downloadcenter.intel.com/Detail_Desc.aspx?ProductID=3003&amp;DwnldID=15817&amp;lang=jpn</a>とかからもってくる
<li>tarballの解凍先は、カーネルを/usr/src、e1000eをホームディレクトリ直下(~hoge/)等に仮定。rootで作業してたら~root/に。
</ul>
とかも忘れないでね。良い子のお約束だゾ。
</p>

<pre class="brush: bash">
$ tar jxf linux-x.y.z.tar.bz2 -C /usr/src
$ tar zxf e1000e-p.q.r.tar.gz -C ~
$ cd /usr/src/linux-x.y.z
$ make menuconfig
$ make-kpkg clean
$ fakeroot make-kpkg --initrd --revision=abc.0.1 kernel_image
(ここで途中、include/generatedに生成された？ヘッダファイルがinclude/linuxに無いのでとエラーが起こるので)
$ cd ~/e1000e-p.q.r/src/
$ env BUILD_KERNEL=x.y.z make
$ cd /usr/src/linux-x.y.z/drivers/net/
$ mv ./e1000e ~/e1000e.old && cp -r ~/e1000e-p.q.r/src ./e1000e
$ cd ../../include/generated/
$ mv * ../linux/
$ cd ../..
$ fakeroot make-kpkg --initrd --revision=abc.0.1 kernel_image
(で、~hoge/直下にlinux-image-x.y.z_abc.0.1_amd64.debとか何か出来てないか確認したまへ)
</pre>

<p>
で、完成のもより。
</p>

<script type="text/javascript">
SyntaxHighlighter.all()
</script>]]>
        
    </content>
</entry>

<entry>
    <title>どうして分かってないことに嬉々として突進して行って即座に地雷踏み抜く奴が後を絶たないんだろう。 - foursics blog</title>
    <link rel="alternate" type="text/html" href="http://blog.foursics.jp/hironobu/2010/07/you-cant-see-the-minefield.html" />
    <id>tag:blog.foursics.jp,2010:/hironobu//2.317</id>

    <published>2010-07-01T14:51:25Z</published>
    <updated>2010-07-01T15:55:07Z</updated>

    <summary> まあこの御仁がそういう人間だってのは始めからわかってた上でですけどね。 htt...</summary>
    <author>
        <name>Hironobu Koura</name>
        
    </author>
    
        <category term="sports" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.foursics.jp/hironobu/">
        <![CDATA[<p>
まあこの御仁がそういう人間だってのは始めからわかってた上でですけどね。
</p>

<p>
<a href="http://diamond.jp/articles/-/8609">http://diamond.jp/articles/-/8609</a><br/>
ワールドカップ敗退で歓喜している国に、 ベスト4など永遠に無理な話だ｜週刊・上杉隆｜ダイヤモンド・オンライン
</p>

<p>
いのちはだいじに。
</p>]]>
        
    </content>
</entry>

<entry>
    <title>hiphop-phpが動かないとお嘆きのあなたに。 - foursics blog</title>
    <link rel="alternate" type="text/html" href="http://blog.foursics.jp/hironobu/2010/07/hiphop-php-must-run.html" />
    <id>tag:blog.foursics.jp,2010:/hironobu//2.316</id>

    <published>2010-07-01T13:22:24Z</published>
    <updated>2010-07-01T15:46:41Z</updated>

    <summary> 先日からhiphop-phpをいじってたんですが、ビルドを通していざ動作検証、...</summary>
    <author>
        <name>Hironobu Koura</name>
        
    </author>
    
        <category term="comp" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="prog" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.foursics.jp/hironobu/">
        <![CDATA[<p>
先日からhiphop-phpをいじってたんですが、ビルドを通していざ動作検証、で全然動かないことが多々ありましたもので。
</p>

<p>
<a href="http://wiki.github.com/facebook/hiphop-php/running-hiphop">http://wiki.github.com/facebook/hiphop-php/running-hiphop</a><br/>
Running HipHop - hiphop-php - GitHub
</p>

<p>
最初、動作検証用に用意していたphpファイルはhiphop-phpのソースディレクトリツリーの外に置いていたんですね。自作のファイルをソースパッケージ内に置く訳にもいきませんでしたので。そしたら、
</p>

<pre class="brush: bash">
running hphp...
creating temporary directory /tmp/hphp_gVYmhr ...
parsing inputs...
parsing inputs took 0'00" (1 ms) wall time
pre-optimizing...
pre-optimizing took 0'00" (0 ms) wall time
inferring types...
inferring types took 0'00" (0 ms) wall time
post-optimizing...
post-optimizing took 0'00" (0 ms) wall time
creating CPP files...
creating CPP files took 0'00" (85 ms) wall time
compiling and linking CPP files...
CMakeFiles/program.dir/sys/dynamic_table_file.no.cpp.o: In function `HPHP::invoke_file(HPHP::String const&, bool, HPHP::LVariableTable*, char const*)':\ndynamic_table_file.no.cpp:(.text+0x29b): undefined reference to `HPHP::pm_php$__$__$hello_php(bool, HPHP::LVariableTable*)'\ncollect2: ld returned 1 exit status\nmake[2]: *** [program] Error 1\nmake[1]: *** [CMakeFiles/program.dir/all] Error 2\nmake: *** [all] Error 2\n
compiling and linking CPP files took 0'45" (45426 ms) wall time
hphp failed
running hphp took 0'45" (45654 ms) wall time
</pre>

<p>
こんな感じで、どうやら解決されないC++シンボルが発生するみたいだったんですな。
</p>

<p>
ていうかHPHP::pm_php$__$__$hello_php()って関数(orメソッド)名はどこから来てるのさ、といろいろいじくっている間に、hphpに渡していたファイルの名前=hello.phpをtest.phpとかhello2.phpとか色々いじってみると...、おろ、関数名も変わるじゃないですか。お。じゃあこのファイルの場所を動かしたらどうなるよ、ということでさらに色々試してみたら、カレントディレクトリに持ってきたら普通に動作した。
</p>

<p>
で、うまく動作したときとだめだったときを比較してみる。すると、ダメな時はphpディレクトリ配下が空っぽなのですよ。生成されたC++ファイルの構成を正常に生成されたものと比べれば一目瞭然なのでござるよ。
</p>

<pre class="brush: bash">
hironobu@claire:~/Projects/hiphop-php/src$ ls -l /tmp/hphp_dMpt9D/php
合計 12
-rw-r--r-- 1 hironobu hironobu 794 2010-07-01 22:14 hello.cpp
-rw-r--r-- 1 hironobu hironobu 419 2010-07-01 22:14 hello.fw.h
-rw-r--r-- 1 hironobu hironobu 479 2010-07-01 22:14 hello.h
</pre>

<pre class="brush: bash">
hironobu@claire:~/Projects/hiphop-php/src$ ls -l /tmp/hphp_gVYmhr/php
合計 0
</pre>

<p>
このhello.phpをディレクトリ掘って、hiphop-php/src/HELLO/hello.phpみたいに配置してみると、
</p>

<pre class="brush: bash">
hironobu@claire:~/Projects/hiphop-php/src$ ls -l /tmp/hphp_yW3fOW/php/
合計 0
drwxr-xr-x 2 hironobu hironobu 53 2010-07-01 01:53 HELLO
hironobu@claire:~/Projects/hiphop-php/src$ ls -l /tmp/hphp_yW3fOW/php/HELLO/
合計 16
-rw-r--r-- 1 hironobu hironobu 6927 2010-07-01 01:53 hello.cpp
-rw-r--r-- 1 hironobu hironobu  465 2010-07-01 01:53 hello.fw.h
-rw-r--r-- 1 hironobu hironobu  581 2010-07-01 01:53 hello.h
</pre>

<p>
こんな風になったでごわす。要は、hphpに引数として渡すphpファイルのパス指定が、カレントディレクトリより上位を指すと、生成されるファイルツリーのphpディレクトリ配下をはみ出してしまうためビルドに失敗するということのようです。つまり。てかこのhello.cppとかと同じファイルが、よく見ると/tmp直下にも生成されていた不思議。しかもダメだったときのファイルツリーとほぼおなじタイムスタンプで。そりゃ、どうもならんですわ。
</p>

<p>
ここ一週間くらいこれに振り回されたでござる。ぷすん。
</p>

<script type="text/javascript">
SyntaxHighlighter.all();
</script>]]>
        
    </content>
</entry>

<entry>
    <title>フジテレビはこの件を猛烈に反省すべきじゃないかな(セルジオ風に) - foursics blog</title>
    <link rel="alternate" type="text/html" href="http://blog.foursics.jp/hironobu/2010/06/fu-ji-sucks-fu-ji-sucks.html" />
    <id>tag:blog.foursics.jp,2010:/hironobu//2.315</id>

    <published>2010-06-26T15:00:22Z</published>
    <updated>2010-06-26T18:11:56Z</updated>

    <summary> フ・ジ・SUCKS!! フ・ジ・SUCKS!! まだまだ逝けるぞフ(違 htt...</summary>
    <author>
        <name>Hironobu Koura</name>
        
    </author>
    
        <category term="sports" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.foursics.jp/hironobu/">
        <![CDATA[<p>
フ・ジ・SUCKS!! フ・ジ・SUCKS!! まだまだ逝けるぞフ(違
</p>

<p>
<a href="http://www.nikkansports.com/entertainment/news/p-et-tp0-20100626-645894.html">http://www.nikkansports.com/entertainment/news/p-et-tp0-20100626-645894.html</a><br/>
痛恨フジ社長...パラグアイ戦放送権放棄 - 芸能ニュース : nikkansports.com
</p>

<p>
日本の決勝トーナメント進出の裏では、まあ馬鹿げた話が繰り広げられていた。というか、最近のフジのしょうもなさっぷりからしたらさもありなんではある。
</p>

<p>
最近のフジはライト層、あまりサッカーにくわしくない視聴者をターゲットにして番組作りをしている風が見えていて、ちょっとどうかなという感がずっとしていた。すぽると！はサッカーの内容よりも有名選手にフォーカスした作りになってるのがまあ言ってみれば顕著な例。そして例の「V」のカナ表記問題である。
</p>

<p>
<a href="http://blog.foursics.jp/hironobu/2007/11/faq.html">http://blog.foursics.jp/hironobu/2007/11/faq.html</a><br/>
ふぁっきゅーと書いてFAQと読む - foursics blog
</p>

<p>
<a href="http://blog.foursics.jp/hironobu/2007/09/black-cx-monday.html">http://blog.foursics.jp/hironobu/2007/09/black-cx-monday.html</a><br/>
相変わらずなFOOTBALL CX - foursics blog
</p>

<p>
<a href="http://blog.foursics.jp/hironobu/2007/04/its-just-a-cow.html">http://blog.foursics.jp/hironobu/2007/04/its-just-a-cow.html</a><br/>
今週のあんた牛？ - foursics blog
</p>

<p>
自分たち＝制作スタッフの思い込みや独りよがりだけで番組を作り、何も知らない視聴者に「分かりやすくして」見せてやろう的な、と言ってしまうと意地が悪いが、まあ、言ってみればそういうつくりである。(こうした姿勢はCXだけじゃないんだけど、「すぽると！」は特にその傾向が強いと思っている)
</p>

<p>
今回、フジテレビはW杯中継の抽選にあたり、グループリーグでの日本戦の中継が不可能になった時点で二者択一の選択を自らに迫ったに違いない。すなわち、日本の決勝トーナメントの可能性に賭けるか、もしくは上述のようなライト層重視をうけついだアプローチをW杯でもやるのか。
</p>

<p>
で、選んだ結果がこれである。
</p>

<p>
まあもちろん、開幕前は死のグループと呼び声の高かったグループGが第２節にしてあっけない展開を見せてしまったのは意外だし、それを後からどうこう言うことはできない。しかし、せっかく選んだポルトガル-ブラジルがお互いほとんど勝ち抜けが決まった状態での対戦となったことで史上まれに見る凡戦となったことは実に皮肉である。
</p>

<p>
さらに言えば強豪国がグループリーグでなかなか調子を上げてこないことは充分想定できることであって、初戦でスイス相手に蹴っつまずくスペインとか(これはこれで中継の価値がある一戦となったが)、本当にあなた方が観たかったのはこれなの？と意地悪なことを言ってみたりなんかしちゃったりなんかして。
</p>

<p>
唯一残る決勝トーナメントの中継カードは、おそらくイングランド一抜けを期待してだったのであろうのが、これも目論見がはずれてアメリカ-ガーナ(これはこれで面白いと思うけどね)。しかもそのイングランドは裏のカードに行ってそこでドイツとの対決、こちらもTBSに持って行かれると言う徹底的なツキの無さである。
</p>

<p>
悪いときには、あらゆる判断がとことん裏目裏目に出ると言うだけのことかもしれない。しかし、だ。ライト層重視でサッカーの中身はおざなりにしていって、サッカー自体を楽しみにしている本来の視聴者層が何を望んでいるかを理解できなくなってしまい、肝心な場所で見る目を曇らせ、判断を誤るという事態になってしまったのではないかと、私にはそう感じられてならない。
</p>

<p>
見るべきものを見ず、上っ面だけでにぎやかそうとするから、選手やチーム名をきちんと調べようとしないどころかどうでもいいやくらいの勢いでやってるし、W杯のどこが見所で、どこに注目すべきで、サッカーファンとしてはもちろん、視聴率＝フジ自身の利益(←ここ大事)という意味でも重要な対戦カードはどこか、という見分けが付かなくなっている。私は、フジテレビ・スポーツ局内のサッカー班(正確な部局名は知らないが)はそうした真剣に憂慮すべき状態に落ち込んでいるのだと思っている。その中でフジ青嶋アナの実況は民放地上波の中では数少ない好みの実況だったんだけど、<a href="http://blog.fujitv.co.jp/sportsana/E20080906001.html">こんなブログで「ヴィジャ」</a>とか書いててあーあとなってしまったのは残念だった。というか、これ以外のフジのサイト内ページでは<a href="http://seah.fujitv.co.jp/sc-s/?category=WEB&keyword=ビジャ">大抵「ビジャ」</a>って書いてて<a href="http://seah.fujitv.co.jp/sc-s/?category=WEB&keyword=ヴィジャ">あれれれ</a>なんですけどね(苦笑)。
</p>

<p>
とにかくまあ元記事では担当者の処分とか、穏やかじゃない話にまで展開されてますけど、そこまで行かずとも、CXスポーツ局はこの事態を真剣に猛省すべきだと思いますよ。このカード、もしかしたらイタリアが来た可能性だってありえたのに、それすら逃してたってことだもん、ねえ(苦笑)。
</p>]]>
        
    </content>
</entry>

<entry>
    <title>今更ながら#okada_sorry - foursics blog</title>
    <link rel="alternate" type="text/html" href="http://blog.foursics.jp/hironobu/2010/06/okada-sorry.html" />
    <id>tag:blog.foursics.jp,2010:/hironobu//2.314</id>

    <published>2010-06-26T13:30:03Z</published>
    <updated>2010-06-26T14:50:39Z</updated>

    <summary> http://www.fifa.com/Live/Competitions/w...</summary>
    <author>
        <name>Hironobu Koura</name>
        
    </author>
    
        <category term="sports" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.foursics.jp/hironobu/">
        <![CDATA[<p>
<a href="http://www.fifa.com/Live/Competitions/worldcup/matchday=14/day=1/match=300061474/">http://www.fifa.com/Live/Competitions/worldcup/matchday=14/day=1/match=300061474/</a><br/>
FIFA.com - Denmark-Japan - The matches of 2010 FIFA World Cup South Africa
</p>

<p>
大会前の混迷振りに、今回全く期待していなかった。というか、この出来で勝てるとは思えず、この出来でうっかり勝つなんてことが起こったら、何も知らない人達が観て「なぁんだW杯、世界ってたいしたことないじゃん」的に甘く見てしまうというか、そんな状況が起こったら嫌だな、なんてことをうだうだと考えてもいた。あげくの果てには監督交代論とか。そこまでやっちゃうともうチームが丸ごと瓦解してしまう、そこまでやってしまったらもう本当に望みがないなと思っていたけど、そのくらいのどん底を感じさせてくれてもおりましたが。
</p>

<p>
...取り越し苦労でしたね！
</p>

<p>
監督が変わってチーム作りをやり直すときは、守備組織から組み立てるという話をよく聞くけど、その守備のやりかたを組み直してきたところはほとんど監督交代と同じような効果だったと言ってもいいかもしれない。
</p>

<p>
それ以上に、守備重視の戦術即ちつまらないとか、めざすべきでないとか、そういう言葉を行動で粉砕した戦いぶりだったと思う。守備戦術がつまらないのではなくて、その戦術で何を目指すのかがはっきりしないサッカーがつまらない、ということがはっきり示されたと思う。パスがどんどんつながったって、それがゴールを目指さない、自己目的化したパスはサッカーは相手からしても恐くない。
</p>

<p>
何よりまず、ゴールに向かうこと。点を取ろうとすること。勇気をもつこと。オシムさんも言ってた。この意識が大切。デンマーク戦３点目も、本田が行くぞ、行くぞ、って姿勢でゴールに迫って行ったからGKもそっちに釣られて飛びついて、で岡崎に渡ったボールに対応できなくさせた。やはりゴールを狙うのだ、という意識がなによりも大切なのだなと。深く納得した次第。
</p>

<p>
ともあれ、決勝トーナメントにも楽しみが続くこの幸せに感謝しつつ、そして次の戦いに向けて気を引き締めつつ、岡ちゃんの居る南アフリカに向けて土下座である。orz
</p>

<p>
<a href="http://www.itmedia.co.jp/news/articles/1006/25/news024.html">http://www.itmedia.co.jp/news/articles/1006/25/news024.html</a><br/>
「岡ちゃん、ごめんね」　日本、W杯決勝T進出、Twitterに"謝罪ハッシュタグ"出現 - ITmedia News
</p>]]>
        
    </content>
</entry>

<entry>
    <title>ブォーブォーブォー - foursics blog</title>
    <link rel="alternate" type="text/html" href="http://blog.foursics.jp/hironobu/2010/06/buzz-buzz-buzz.html" />
    <id>tag:blog.foursics.jp,2010:/hironobu//2.313</id>

    <published>2010-06-15T13:07:47Z</published>
    <updated>2010-06-15T14:05:19Z</updated>

    <summary> ここ1週間くらいひどい鼻＆咳風邪を引いてしまって、活動が著しく低下しているあい...</summary>
    <author>
        <name>Hironobu Koura</name>
        
    </author>
    
        <category term="misc" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.foursics.jp/hironobu/">
        <![CDATA[<p>
ここ1週間くらいひどい鼻＆咳風邪を引いてしまって、活動が著しく低下しているあいだにW杯が開幕してしまい、中継を通して流れてくるブブゼラの音と手前の鼻をかむ音がシンクロしてしまう今日この頃、皆様いかがお過ごしでしょうか。
</p>

<p>
<a href="http://slashdot.jp/articles/10/06/08/0728248.shtml">http://slashdot.jp/articles/10/06/08/0728248.shtml</a><br/>
ロシアの短波無線局「UVB-76」のブザー音、止む - スラッシュドット・ジャパン
</p>

<p>
そのブブゼラの音に負けてしまってかどうかは定かではないけれども、冷戦時代から30-40年間ずっと鳴り続けていたロシアの短波放送局のブザー音が止まったらしい。実際に聞いてみると何とも不気味な感じだ。それもただ不気味なだけでなく、まさに冷戦期、当時の世界に充満していたような、重苦しい空気すら呼び覚ましてくれるような音色である。
</p>

<p>
<object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/-2EKWgTNEYU&hl=ja_JP&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-2EKWgTNEYU&hl=ja_JP&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object>
</p>

<p>
そこから関連動画なんかを眺めると一気に30年くらい引き戻されたような感じである。それでいて今なお生き続ける乱数放送局(Numbers Station)なんてものを見させられると、日々の平穏の裏に隠されてきた何かを呼び覚まさせるようではないか。
</p>

<p>
<a href="http://www.youtube.com/watch?v=EdnoAJ7KoFE">http://www.youtube.com/watch?v=EdnoAJ7KoFE</a><br/>
YouTube - Achtung! The Swedish Rhapsody Numbers Station
</p>

<p>
<a href="http://www.youtube.com/watch?v=EcJK56Ep5Rw&feature=related">http://www.youtube.com/watch?v=EcJK56Ep5Rw</a><br/>
YouTube - The Conet Project - Cherry Ripe Iridial
</p>

<p>
自分たちが日常生活を営む裏で、様々な思惑が雲の糸のように絡み合って、本当はそれらの危ういバランスがあるのだ、という感覚っていつの間にかどうでもよくなってしまったというか、あまり気にされなくなったよなあとおもう。どの辺からだったろう。小学生の頃はまだ普通に東西冷戦下で、それが中学〜高校と上がって行くにつれて多くは東側諸国の社会主義体制の放棄によって次第に瓦解していった。しかし世界は全て事もなしかと言うとそうでもない。忘れちゃいけない世界の現実ってのがあるんだよなあ。そもそも朝鮮半島情勢が<a href="http://www.cnn.co.jp/special/kr_peninsula/">あんなことになってる</a>し。
</p>

<p>
<a href="http://www.youtube.com/watch?v=k1GqzosWoVc">http://www.youtube.com/watch?v=k1GqzosWoVc</a><br/>
YouTube - UKWMO 1980S WARNING
</p>

<p>
<a href="http://www.youtube.com/watch?v=VG3Kb12s16A">http://www.youtube.com/watch?v=VG3Kb12s16A</a><br/>
YouTube - Protect and Survive - Nuclear Explosions Explained
</p>

<p>
<a href="http://www.nicovideo.jp/watch/sm6788532">http://www.nicovideo.jp/watch/sm6788532</a><br/>
Protect and Survive 核爆発(1)＋家にとどまれ(4)‐ニコニコ動画(9)
</p>

<p>
このひどい緊張感は決して目にしたくないものだなと言いつつもしかし、実際に起こったことだったのかもしれないし、今後決して起こらないとも限らない。悲しいけどこれ、現実なのよね。とはいえまあ、Protect and Surviveは夜中になんて見るもんじゃないな。
</p>

<p>
<a href="http://www.nicovideo.jp/watch/sm10886006">http://www.nicovideo.jp/watch/sm10886006</a><br/>
【BGMなし・SHOW音声版】BBC 核攻撃のときの予定原稿‐ニコニコ動画(9)
</p>

<p>
<a href="http://www.afpbb.com/article/war-unrest/2524740/3394811">http://www.afpbb.com/article/war-unrest/2524740/3394811</a><br/>
BBC、核攻撃時に放送予定だったアナウンス原稿を公開　国際ニュース : AFPBB News
</p>

<p>
<a href="http://www.nicovideo.jp/watch/sm8018199">http://www.nicovideo.jp/watch/sm8018199</a><br/>
THREADS　Part 1‐ニコニコ動画(9)
</p>

<p>
つくづく、平和ってのはただそこにあるだけなわけじゃないんだよな、でもその平和があってこそのこのW杯だよな、ということを認識させられた一週間でありました。
</p>

<p>
<a href="http://www.youtube.com/watch?v=4rk78eCIx4E">http://www.youtube.com/watch?v=4rk78eCIx4E</a><br/>
YouTube - Sting - Russians
</p>

<p>
その<a href="http://www.asahi.com/sports/update/0615/TKY201006150399.html">ロシアからも注目される本田△</a>でありました。
</p>]]>
        
    </content>
</entry>

<entry>
    <title>BS-G2016MRの静音化手術に成功しましたよ - foursics blog</title>
    <link rel="alternate" type="text/html" href="http://blog.foursics.jp/hironobu/2010/05/bs-g2016mr-get-silent.html" />
    <id>tag:blog.foursics.jp,2010:/hironobu//2.312</id>

    <published>2010-05-31T14:57:07Z</published>
    <updated>2010-05-31T20:44:47Z</updated>

    <summary> で。BS-G2016MRのファン音の騒音ぶりにさすがに耐えきれず、一時はヤフオ...</summary>
    <author>
        <name>Hironobu Koura</name>
        
    </author>
    
        <category term="network" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.foursics.jp/hironobu/">
        <![CDATA[<p>
で。BS-G2016MRのファン音の騒音ぶりにさすがに耐えきれず、一時はヤフオクあたりで放出することも考えた。けどその前に試してみたっていいんじゃないかと思って一念発起、ふた開けてみた。注意深くネジを外す。
</p>

<p>
<font color="red">※なお本記事について、当方の個体以外においても内容を保証するものではありません。メーカー保証等も受けられなくなりますので、万一この記事を読んで試すなどされた方が居られましても、各自の環境にて生じた差異や損害などには責任を負いかねます。くれぐれもご了承の上ご覧くださいますようお願いします。(_ _)</font>
</p>

<p>
<img alt="IMG_0389.jpg" src="http://blog.foursics.jp/hironobu/2010/05/31/IMG_0389.jpg" width="320" height="240" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" />
</p>

<p>
ちょっと分かりにくいけど、奥側が機器前方。で、手前側中央に黒く四角いのが見えていて、これがBS-G2016MR唯一のファン。外形は一般的な40mmファンの厚み15mm。当たり前だけどこいつの給電を外してやれば無音になった。さて。外してみると型番が判明。Delta ElectronicsのAFB0412MBという代物らしい。データシートがこちらで読める。
</p>

<p>
<a href="http://www.delta.com.tw/product/cp/dcfans/download/pdf/AFB/AFB40x40x15mm.pdf">
http://www.delta.com.tw/product/cp/dcfans/download/pdf/AFB/AFB40x40x15mm.pdf
</a>
</p>

<p>
ここから性能を確認してみると、だ。
</p>

<ul>
<li>回転数(Speed) = 6000 R.P.M.
<li>最大風量(Maximum Air Flow) = 8.12 CFM
<li>最大静圧(Maximum Air Pressure) = 0.202 IN H<sub>2</sub>O
<li>騒音(Noise) = 24.5 dB-A
</ul>

<p>
回転数がとにかく高い。6000RPMは高い。おそらく筐体から出ている高周波音はここから来ている。このファン単体で取り出してから回してみてもそんなに大した音ではないんだが、いざ取付けて回すと筐体全体と共鳴を起こしてひどい騒音になっている。しかしその一方で風量の8.12CFMというのはなかなかのもの。4cmファンの同クラスの中で探してみたけど、なかなかこれだけの出力を出すファンは見当たらない。おそらく、高回転・高出力と引き換えにこれだけの音量になってしまっているのだろう。
</p>

<p>
というわけで、静音タイプのファンに換装するとなると必然的に今のファンより出力上劣らざるを得ない。排熱効率が十分か、見守る必要はありそうだ。そこを何度か自分に問い直しつつ、いざ覚悟を決めたら次に進めだ。
</p>

<p>
内部を改めて眺めると、結構大型のヒートシンクがメインボード上に取付けられていて、主要チップ自体の冷却は大分手当てされている模様。排熱用のファンを筐体の狭い横側ではなくて、上方向に付けてより大きな6cmとか8cmファンにしておけばそもそも良いんじゃね？とも思ったが、まあそこは仕方なし。
</p>

<p>
というわけで閉店間際のPCDEPOT盛岡店に飛び込んで見つけてきたのがこれ。
</p>

<p>
<a href="http://www.scythe.co.jp/cooler/mini-kaze-ultra.html">http://www.scythe.co.jp/cooler/mini-kaze-ultra.html</a><br/>
株式会社サイズ ｜ 商品詳細 ｜MINI-Kaze ULTRA 20mm厚
</p>

<p>
決め手は3500RPMとかなりの低回転・静音タイプでありつつ風量4.86CFMはだいぶ稼げそうな点。ケース内の設置空間もかなりギリギリではあったものの20mm厚も入れそうだったのでやってみた。この判断は結果から言うと成功。20mm厚でもメインボードとの間に3mmほど隙間が残り、ファンが干渉するおそれもない。
</p>

<p>
<img alt="IMG_0394.jpg" src="http://blog.foursics.jp/hironobu/2010/05/31/IMG_0394.jpg" width="320" height="240" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" />
</p>

<p>
ここで一度コネクタを繋いで電源を入れてみたが問題が残った。ファンが回らないのである。原因は2枚目の写真。それぞれケースファン電源用の3ピンコネクタである。上は取り外した元々のファン(AFB0412MB)、下は新しく取付けたファン(MINI-Kaze ULTRA 20mm厚/SY124020L)。ケーブルの色の順番に注意してほしい(ちょっと見えにくいが...)。AFB0412MBは上から「黒、青、赤」となっているのに対し、MINI-Kazeでは「(空き)、赤、黒」になっている。これもデータシートを参照すると下記のような記述を確認できる。
</p>

<pre>
* Lead Wires :
  UL 1007 AWG #24 OR Equivalent
  Red Wire Positive(+)
  Black Wire Negative(-)
</pre>

<p>
あれ、青(Blue)はどこ？
</p>

<p>
まあひとまず、赤と黒の線はそれぞれ同じくプラスとマイナスで共通していると仮定し、これが全くあべこべの配線になっているので直してみる。AF0412MBの順番に習い、「赤、(空き)、黒」の順にする(青は無視。2ピンなんだし割り切れ＞俺)。写真のコネクタには3ピンそれぞれの接点部分に金具部分がヒッカケになっているので、これを細身のドライバや針金などで強く押し込み、ヒッカケがはずれるのをさぐりつつケーブルをゆっくりと引き抜く。一気に強く引こうとすると切れてしまうと思われるので注意。金具を押し込みながら、押し込んだ方向と同じ向きに角度を付けて引くようにすれば割とあっさり抜ける。3枚目の写真に模してみたのでこちらを参照のこと。
</p>

<p>
<img alt="IMG_0397.jpg" src="http://blog.foursics.jp/hironobu/2010/05/31/IMG_0397.jpg" width="240" height="320" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" />
</p>

<p>
さてこれでコネクタ刺してフタして起動。おおっ。音がない。不安になるくらいファン音(とその共鳴音)がない(笑)。でも排気ダクトに手を当ててみるとちゃんと空気は出ているぞ。OKだ。すばらしい。
</p>

<p>
というわけでうちのBS-G2016MRヤフオク行きを何とか逃れました(何)。やったー。
</p>]]>
        
    </content>
</entry>

<entry>
    <title>さすが法人向けは伊達じゃない(何 - foursics blog</title>
    <link rel="alternate" type="text/html" href="http://blog.foursics.jp/hironobu/2010/05/bs-g2016mr.html" />
    <id>tag:blog.foursics.jp,2010:/hironobu//2.311</id>

    <published>2010-05-19T05:20:15Z</published>
    <updated>2010-05-19T14:36:01Z</updated>

    <summary> で、早速届いたんですわBS-G2016MR。 http://buffalo.j...</summary>
    <author>
        <name>Hironobu Koura</name>
        
    </author>
    
        <category term="network" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.foursics.jp/hironobu/">
        <![CDATA[<p>
で、早速届いたんですわBS-G2016MR。
</p>

<p>
<a href="http://buffalo.jp/products/catalog/network/bs-g2016mr/">http://buffalo.jp/products/catalog/network/bs-g2016mr/</a><br/>
レイヤー2 インテリジェントGigaスイッチ 16ポート | BS-G2016MR
</p>

<p>
さすが法人向けあって重厚っていうかすげえですな。ファン音が。(爆) うちの5台あるPC全部束にしてもまだこの一台のファン音のほうが大きいです。想定はしててもいざ火を入れて実感すると違うよねーってやつです。
</p>

<p>
まあ965BEのときと比べればまだまだだし、爆音ってほどじゃないにしても、でも結構ある。逆に言うと、Core i7/i5のマシンすらここまで音立ててないので、随分静音PCとしてうまく作れてたんだなと自分を褒めたくらい。^^;
</p>

<p>
まあどうせ仕事部屋は独立なんで気にしないでもいいし、設置して数時間して慣れてきつつはあるので、もう少し様子見ながらで行きますわ。
</p>]]>
        
    </content>
</entry>

<entry>
    <title>おうちでgangliaとか - foursics blog</title>
    <link rel="alternate" type="text/html" href="http://blog.foursics.jp/hironobu/2010/05/ganglia-at-home.html" />
    <id>tag:blog.foursics.jp,2010:/hironobu//2.310</id>

    <published>2010-05-18T13:59:16Z</published>
    <updated>2010-05-18T17:11:19Z</updated>

    <summary> 結局スイッチの件は無事発注しなおしができましたよということで、気を取り直して次...</summary>
    <author>
        <name>Hironobu Koura</name>
        
    </author>
    
        <category term="linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.foursics.jp/hironobu/">
        <![CDATA[<p>
結局スイッチの件は無事発注しなおしができましたよということで、気を取り直して次のネタ。
</p>

<p>
せっかく何台もサーバを揃えたのでやってみたいじゃないですかとgangliaを入れてみた。
</p>

<p>
<a href="http://ganglia.sourceforge.net/">http://ganglia.sourceforge.net/</a><br/>
Ganglia Monitoring System
</p>

<p>
インストール時につっかえたのは「date.timezone」の設定を明示的に行っておかないとphpがだだをこねてwarningを出しまくると言う点。ちなみにうちのphpは現時点最新の5.3.2。php.iniを作成してそこで指定しておくことにした。
</p>

<p>
あと、GDモジュールが必要。と言っても円グラフを少し入れたりするのに使ってる程度だけど、うちではphpのconfigureしてたときに--with-gdオプションを付けてなかったこともあってインストールされていなかった模様。GDはdebパッケージなので(libgd2-xpm)、開発用パッケージ(libgd2-xpm-dev)も忘れずにインストール。その後--with-gd付きで再度ビルドしなおして事なきを得た。
</p>

<p>
ganglia自体もsqueezeには入ってるらしいganglia-webfrontendパッケージはまだlennyには降りて来ていないっぽく、またdeb自体もバージョン2.5.xとやや古めで設定ファイルの書式なども違っていたので、3.1.7をこちらもソースからビルドしてインストール。こちらもそんなに引っかかること無くインストールできました。　
</p>]]>
        
    </content>
</entry>

<entry>
    <title>ひゃくめがしょっく - foursics blog</title>
    <link rel="alternate" type="text/html" href="http://blog.foursics.jp/hironobu/2010/05/100mega-shock.html" />
    <id>tag:blog.foursics.jp,2010:/hironobu//2.309</id>

    <published>2010-05-17T11:29:19Z</published>
    <updated>2010-05-18T16:59:05Z</updated>

    <summary> さて自宅環境のメインのハブが8ポートじゃいよいよ辛くなってきたのでそろそろ16...</summary>
    <author>
        <name>Hironobu Koura</name>
        
    </author>
    
        <category term="comp" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.foursics.jp/hironobu/">
        <![CDATA[<p>
さて自宅環境のメインのハブが8ポートじゃいよいよ辛くなってきたのでそろそろ16ポートにしてさらにVLANとか組めたら嬉しいなうへへとか<strike>よだれ垂らして</strike>思っていろいろ眺めてたんですが、最初目を付けていたI/OデータのETG2-SHV16Nがどこ見に逝っても無いんですね。在庫が。
</p>

<p>
<a href="http://kakaku.com/item/00660410105/">http://kakaku.com/item/00660410105/</a><br/>
価格.com - IODATA ETG2-SHV16N 価格比較
</p>

<p>
来月中旬入荷予定とかふざけてんのかと。
</p>

<p>
しょうがないのでバッファローの同等品を探してみたらちょっと値段帯上がるんですわな。まあでもしょうがねーかとポチったんですよ。そしたら奥さん。
</p>

<p>
<a href="http://buffalo.jp/products/catalog/item/b/bs-2016mr/">http://buffalo.jp/products/catalog/item/b/bs-2016mr/</a><br/>
「Business Switch」シリーズ レイヤー2インテリジェントスイッチ 16ポート|BS-2016MR
</p>

<p>
間違えて100Mスイッチになっちゃったんですのよおほほほほほ
</p>

<p>
o... rz
</p>

<p>
本当に注文しようとしてたのはこっち↓
</p>

<p>
<a href="http://buffalo.jp/products/catalog/network/bs-g2016mr/">http://buffalo.jp/products/catalog/network/bs-g2016mr/</a><br/>
レイヤー2 インテリジェントGigaスイッチ 16ポート | BS-G2016MR
</p>

<p>
（´・ω・｀）
</p>

<p>
（´・ω:;.:...
</p>

<p>
（´:;....::;.:. :::;.. .....
</p>

<p>
さー明日朝一で販売店にお詫びの電凸逝くよー...‥.. λ...
</p>]]>
        
    </content>
</entry>

<entry>
    <title>複数インタフェイスを持つサーバ上でxl2tpdを動かしたときにね。 - foursics blog</title>
    <link rel="alternate" type="text/html" href="http://blog.foursics.jp/hironobu/2010/05/xl2tpd-with-multiple-interfaces.html" />
    <id>tag:blog.foursics.jp,2010:/hironobu//2.308</id>

    <published>2010-05-13T18:58:50Z</published>
    <updated>2010-05-13T19:21:12Z</updated>

    <summary> 例のLinuxルータ(nelly)、NICが2つ付いてる訳なんですけど、ってい...</summary>
    <author>
        <name>Hironobu Koura</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.foursics.jp/hironobu/">
        <![CDATA[<p>
例のLinuxルータ(nelly)、NICが2つ付いてる訳なんですけど、っていうかpppoeかましてしかもマルチセッションしてるからインタフェイスの数がまあ5-6個くらいはある形になってるんです。で、ppp0でOCN、ppp1でwakwakっていうマルチセッションをやってて、wakwakの方が固定IPアドレス付けてまして、っていう構成なんですがね。
</p>

<p>
そこに外からVPNを掛けたいとしましょうや。VPNの受け口にはまあOCNは非固定アドレスなんでDynamic DNSでもやってない限り使いにくい。なんでwakwakの方でVPNの受信をさせようかとか思うとですね、L2TP+IPSECでやってるとxl2tpdがよろしくないんです。IPsecのネゴシエートが終わってL2TPに処理が移るとですね、xl2tpdさん何を血迷ったか、ppp1経由で受け取ったはずのL2TPクライアントからのリクエストに対して、default routeになってるppp0経由でレスポンス返そうとするんですわ。したらあんさん、L2TPクライアントからすればリクエスト送ったはずのサーバアドレス(=ppp1)と違うアドレス(=ppp0)からレスポンスが返ってきたって知るかーってなもんですよ。いやー、参りましたわー。orz
</p>

<p>
というわけでこれ、直しました。受信IPアドレスを使って打ち返すように、sendmsg()でmsg_controlにIP_PKTINFOを仕込んで設定するようにしました。xl2tpd v1.2.4に対するパッチとして適宜適用して下さい。本来なら同じmsg_controlを使うIP_IPSEC_REFINFOと併用した際の挙動とかも確かめなきゃなんですけど、うちでは使ってないのでやってません;-)。パッチの適用についてはat your own riskでよろしくでございます。詳細は追って。
</p>

<p>
ファイル: <a href="http://blog.foursics.jp/hironobu/2010/05/14/xl2tpd-1.2.4.patch">xl2tpd-1.2.4.patch</a>
</p>

<pre class="brush: diff">
diff -uNr ./xl2tpd-1.2.4.orig/call.c ./xl2tpd-1.2.4/call.c
--- ./xl2tpd-1.2.4.orig/call.c  2009-03-09 08:25:30.000000000 +0900
+++ ./xl2tpd-1.2.4/call.c       2010-05-14 03:34:40.461125516 +0900
@@ -618,7 +618,7 @@
 }
 
 struct call *get_call (int tunnel, int call, unsigned int addr, int port,
-                      IPsecSAref_t refme, IPsecSAref_t refhim)
+                      unsigned int localaddr, IPsecSAref_t refme, IPsecSAref_t refhim)
 {
     /*
      * Figure out which call struct should handle this. 
@@ -695,9 +695,11 @@
         };
         st->peer.sin_family = AF_INET;
         st->peer.sin_port = port;
+       st->local.sin_family = AF_INET;
        st->refme  = refme;
        st->refhim = refhim;
         bcopy (&addr, &st->peer.sin_addr, sizeof (addr));
+        bcopy (&localaddr, &st->local.sin_addr, sizeof (localaddr));
         st->next = tunnels.head;
         tunnels.head = st;
         tunnels.count++;
diff -uNr ./xl2tpd-1.2.4.orig/call.h ./xl2tpd-1.2.4/call.h
--- ./xl2tpd-1.2.4.orig/call.h  2009-03-09 08:25:30.000000000 +0900
+++ ./xl2tpd-1.2.4/call.h       2010-05-14 03:34:52.625126441 +0900
@@ -98,7 +98,7 @@
 extern void push_handler (int);
 extern void toss (struct buffer *);
 extern struct call *get_call (int tunnel, int call, unsigned int addr,
-                             int port,
+                             int port, unsigned int localaddr,
                              IPsecSAref_t refme, IPsecSAref_t refhim);
 extern struct call *get_tunnel (int, unsigned int, int);
 extern void destroy_call (struct call *);
diff -uNr ./xl2tpd-1.2.4.orig/l2tp.h ./xl2tpd-1.2.4/l2tp.h
--- ./xl2tpd-1.2.4.orig/l2tp.h  2009-03-09 08:25:30.000000000 +0900
+++ ./xl2tpd-1.2.4/l2tp.h       2010-05-14 03:38:04.172126651 +0900
@@ -146,6 +146,7 @@
     unsigned short port;        /* Port on remote end */
 #else
     struct sockaddr_in peer;    /* Peer's Address */
+    struct sockaddr_in local;   /* Local's Address */
 #endif
     int debug;                  /* Are we debugging or not? */
     int nego;                   /* Show Negotiation? */
diff -uNr ./xl2tpd-1.2.4.orig/network.c ./xl2tpd-1.2.4/network.c
--- ./xl2tpd-1.2.4.orig/network.c       2009-03-09 08:25:30.000000000 +0900
+++ ./xl2tpd-1.2.4/network.c    2010-05-14 04:03:15.057126011 +0900
@@ -77,6 +77,11 @@
 
            gconfig.ipsecsaref=0;
     }
+    arg=1;
+    if (setsockopt(server_socket, IPPROTO_IP, IP_PKTINFO, &arg, sizeof(arg)) != 0) {
+           l2tp_log(LOG_CRIT, "setsockopt recvref[%d]: %s\n", IP_PKTINFO, strerror(errno));
+    }
+
 #else
        l2tp_log(LOG_INFO, "No attempt being made to use IPsec SAref's since we're not on a Linux machine.\n");
 
@@ -257,8 +262,8 @@
 
 void udp_xmit (struct buffer *buf, struct tunnel *t)
 {
-    struct cmsghdr *cmsg;
-    char cbuf[CMSG_SPACE(sizeof (unsigned int))];
+    struct cmsghdr *cmsg = NULL;
+    char cbuf[CMSG_SPACE(sizeof (unsigned int)) + CMSG_SPACE(sizeof(struct in_pktinfo))];
     unsigned int *refp;
     struct msghdr msgh;
     int err;
@@ -288,6 +293,28 @@
 
        msgh.msg_controllen = cmsg->cmsg_len;
     }
+
+    if (t->local.sin_addr.s_addr) {
+        if(gconfig.debug_network) {
+                l2tp_log(LOG_DEBUG,"sending with setting source address saref=%s\n", inet_ntoa(t->local.sin_addr));
+        }
+
+        struct in_pktinfo* ipi;
+        msgh.msg_controllen = sizeof(cbuf);
+
+        cmsg = (cmsg ? CMSG_NXTHDR(&msgh, cmsg) : CMSG_FIRSTHDR(&msgh));
+        cmsg->cmsg_level = IPPROTO_IP;
+        cmsg->cmsg_type  = IP_PKTINFO;
+        cmsg->cmsg_len   = CMSG_LEN(sizeof(struct in_pktinfo));
+
+        ipi = (struct in_pktinfo*)CMSG_DATA(cmsg);
+        ipi->ipi_ifindex = 0;
+        ipi->ipi_addr.s_addr = 0;
+        bcopy(&t->local.sin_addr, &ipi->ipi_spec_dst, sizeof(ipi->ipi_spec_dst));
+
+        msgh.msg_controllen = CMSG_SPACE(sizeof(struct in_pktinfo));
+    }
+
     
     iov.iov_base = buf->start;
     iov.iov_len  = buf->len;
@@ -388,6 +415,8 @@
     struct iovec iov;
     char cbuf[256];
     unsigned int refme, refhim;
+    struct cmsghdr *cmsg;
+    struct in_pktinfo* inpkt = NULL;
 
     /* This one buffer can be recycled for everything except control packets */
     buf = new_buf (MAX_RECV_SIZE);
@@ -478,7 +507,6 @@
 
            /* extract IPsec info out */
            if(gconfig.ipsecsaref) {
-                   struct cmsghdr *cmsg;
                    /* Process auxiliary received data in msgh */
                    for (cmsg = CMSG_FIRSTHDR(&msgh);
                         cmsg != NULL;
@@ -494,6 +522,12 @@
                    }
            }
 
+            for (cmsg = CMSG_FIRSTHDR(&msgh); cmsg != NULL; cmsg = CMSG_NXTHDR(&msgh,cmsg)) {
+                if (cmsg->cmsg_level == IPPROTO_IP && cmsg->cmsg_type == IP_PKTINFO) {
+                    inpkt = (struct in_pktinfo*)CMSG_DATA(cmsg); 
+                }
+            }
+
            /*
             * some logic could be added here to verify that we only
             * get L2TP packets inside of IPsec, or to provide different
@@ -517,7 +551,7 @@
            }
            if (!
                (c = get_call (tunnel, call, from.sin_addr.s_addr,
-                              from.sin_port, refme, refhim)))
+                              from.sin_port, (inpkt ? inpkt->ipi_spec_dst.s_addr : 0), refme, refhim)))
            {
                if ((c =
                     get_tunnel (tunnel, from.sin_addr.s_addr,
diff -uNr ./xl2tpd-1.2.4.orig/xl2tpd.c ./xl2tpd-1.2.4/xl2tpd.c
--- ./xl2tpd-1.2.4.orig/xl2tpd.c        2009-03-09 08:25:30.000000000 +0900
+++ ./xl2tpd-1.2.4/xl2tpd.c     2010-05-14 03:37:08.664125809 +0900
@@ -599,7 +599,7 @@
      * to do IPsec properly here, we need to set a socket policy,
      * and/or communicate with pluto.
      */
-    tmp = get_call (0, 0, addr, port, IPSEC_SAREF_NULL, IPSEC_SAREF_NULL);
+    tmp = get_call (0, 0, addr, port, 0, IPSEC_SAREF_NULL, IPSEC_SAREF_NULL);
     if (!tmp)
     {
         l2tp_log (LOG_WARNING, "%s: Unable to create tunnel to %s.\n", __FUNCTION__,

</pre>

<script type="text/javascript">
SyntaxHighlighter.all();
</script>]]>
        
    </content>
</entry>

<entry>
    <title>UnixBenchの中身を見てみるよ - foursics blog</title>
    <link rel="alternate" type="text/html" href="http://blog.foursics.jp/hironobu/2010/05/unixbench-analysis.html" />
    <id>tag:blog.foursics.jp,2010:/hironobu//2.307</id>

    <published>2010-05-12T06:46:51Z</published>
    <updated>2010-05-12T07:34:55Z</updated>

    <summary> さて、ここまでUnix Benchをただ走らすだけ走らせてみたけど、内容にもち...</summary>
    <author>
        <name>Hironobu Koura</name>
        
    </author>
    
        <category term="linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.foursics.jp/hironobu/">
        <![CDATA[<p>
さて、ここまでUnix Benchをただ走らすだけ走らせてみたけど、内容にもちゃんと踏み込まないと逝けませんよねということでソースの中身を検証してみます。
</p>

<p>
まず何より気になっていたのがAMD系からIntel系に切り替えて歴然と違いが出たSystem Call Overhead。Unix Benchのテストはtarballを解凍した中にある"Run"スクリプトから全てが始まりますが、こいつは配下にpgmsディレクトリを持っていて、そこに配置された各テストプログラムを起動するだけです。
</p>

<p>
Runスクリプトの中ではそれらテストプログラムとその説明や起動時のオプション(何回・何秒ループさせるとか、テストの種類を指定する)の情報をハッシュで保持しています。
</p>

<pre class="brush: perl">
# Individual parameters for all benchmarks.
my $testParams = {

    ##########################
    ## System Benchmarks    ##
    ##########################

    "dhry2reg" => {
        "logmsg" => "Dhrystone 2 using register variables",
        "cat"    => 'system',
        "options" => "10",
        "repeat" => 'long',
    },
    "whetstone-double" => {
        "logmsg" => "Double-Precision Whetstone",
        "cat"    => 'system',
        "repeat" => 'long',
    },
    "syscall" => {
        "logmsg" => "System Call Overhead",
        "cat"    => 'system',
        "repeat" => 'long',
        "options" => "10",
    },
    "context1" => {
        "logmsg" => "Pipe-based Context Switching",
        "cat"    => 'system',
        "repeat" => 'long',
        "options" => "10",
    },
...
};
</pre>

<p>
"System Call Overhead"、つまりsyscallの項目に格納されていることになります。そしてこの場合、"syscall"のキーが起動するテストプログラム名に対応付けされていて、それは(unixbenchディレクトリ)/pgms/syscallとなります。またこれのソースが(unixbenchディレクトリ)/src/syscall.cとなります。
</p>

<p>
また起動時の引数はさらに下位ハッシュの"options"に格納されていますがこちらは"10"となっています。つまりここから"System Call Overhead"のテストを起動するときは、コマンドラインで仮定すれば"./pgms/syscall 10"として起動することになります。
</p>

<pre class="brush: c">
        switch (test[0]) {
        case 'm':
           while (1) {
                close(dup(0));
                getpid();
                getuid();
                umask(022);
                iter++;
           }
           /* NOTREACHED */
        case 'c':
           while (1) {
                close(dup(0));
                iter++;
           }
           /* NOTREACHED */
        case 'g':
           while (1) {
                getpid();
                iter++;
           }
           /* NOTREACHED */
           ...
        }
        ...
</pre>

<p>
syscallテストプログラムでは第2引数でテストの種類を指定することができ、それが上のコードサンプルのswitch(test[0])の行に対応しています。無指定の場合は"mix"が指定されたのと同じとなっていて、上記サンプルで言えば続くcase 'm':行以下のwhileループがそれに相当することになります。ループが1回回るたびにiter変数がインクリメントされるので、最終的にこのiterの値がいくつになったかがテスト結果となります。whileは見た目上永久ループになっていますが、SIGALRMによって抜け出すようになっています。テスト起動時の第1引数がテストの継続時間となっていて、これがalarm()に使われている訳です。
</p>

<p>
つまり、上記のコードサンプルからすると、close()/dup()/getpid()/getuid()/umask()の5つのシステムコール関数のいずれかがAMD/Intel両アーキテクチャ間での性能差を引き出していたことになるわけです。うーん。惜しむらくはここを気にする前にAthlon/Phenomとも手放してしまったことですが...。<a href="http://blog.foursics.jp/hironobu/2010/04/unixbench-chart-2.html">こちら</a>を見る限り、これはAthlon/Phenom共々出ている傾向のようなんですよね。
</p>


<script type="text/javascript">
SyntaxHighlighter.all();
</script>]]>
        
    </content>
</entry>

<entry>
    <title>自宅環境のリニューアル完了しましたよ。 - foursics blog</title>
    <link rel="alternate" type="text/html" href="http://blog.foursics.jp/hironobu/2010/05/unixbench-chart-4.html" />
    <id>tag:blog.foursics.jp,2010:/hironobu//2.306</id>

    <published>2010-05-12T05:47:34Z</published>
    <updated>2010-05-12T06:08:18Z</updated>

    <summary> とどめに。しんがりはclaire。Clarkdaleなんですけど、やはりmar...</summary>
    <author>
        <name>Hironobu Koura</name>
        
    </author>
    
        <category term="comp" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://blog.foursics.jp/hironobu/">
        <![CDATA[<p>
とどめに。しんがりはclaire。Clarkdaleなんですけど、やはりmary&amp;emmaのnative 4coreに比べて4coreでの性能が一部伸びませんな。それでも悪くない感じです。
</p>

            <script type="text/javascript">
<!--
$(document).ready(function() {
      chart1 = new Highcharts.Chart({
         chart: {
            renderTo: 'chart-container-05-12',
            defaultSeriesType: 'bar',
            margin: [ 30, 30, 80, 230 ]
         },
         legend: { reversed: true },
         plotOptions: {
             bar: { groupPadding: .1, pointPadding: 0 }
         },
         title: {
            text: 'Unix Bench 5.1.2'
         },
         xAxis: {
            categories: ["Dhrystone 2 using register variables","Double-Precision Whetstone","Execl Throughput","File Copy 1024 bufsize 2000 maxblocks","File Copy 256 bufsize 500 maxblocks","File Copy 4096 bufsize 8000 maxblocks","Pipe Throughput","Pipe-based Context Switching","Process Creation","Shell Scripts (1 concurrent)","Shell Scripts (8 concurrent)","System Call Overhead","System Benchmarks Index Score"],
         },
         yAxis: {
             title: { text: "" },
         },
         series: [{
            name: "mary (1 core)",
            data: [1809.6,604.5,968.0,2367.0,1556.6,4395.5,1614.3,651.3,809.7,2371.4,2142.5,2387.3,1539.4]
         }, {
            name: "mary (8 cores)",
            data: [6822.3,4069.9,6369.8,1410.8,849.8,3116.1,7570.8,2229.0,7254.7,1359.7,666.0,9156.2,3058.8]
         }, {
            name: "emma (1 core)",
            data: [1723.4,575.8,720.4,2255.8,1496.7,4201.5,1537.8,632.5,661.5,2275.7,1968.7,2271.8,1418.6],
         }, {
            name: "emma (4 cores)",
            data: [6891.1,2303.3,4397.6,1799.0,1035.9,3229.8,6149.1,2186.6,5340.0,1956.9,979.1,7242.5,2940.9]
         }, {
            name: "claire (1 core)",
            data: [1896.2,633.4,945.3,2209.2,1512.2,3102.6,1679.6,500.4,1013.3,2184.5,2219.3,2509.9,1492.3],
         }, {
            name: "claire (4 cores)",
            data: [3583.7,2137.3,3475.4,1622.4,983.6,2419.5,3948.5,1028.3,3800.5,2195.1,938.0,6397.4,2290.9]
         }]
      });
   });
//-->
</script>

<div id="chart-container-05-12" style="width: 100%; height: 640px"></div>

<style type="text/css">
.unixbench-chart tr > th:first-child {
  border-right: 1px solid darkgray;
  text-align: right;
  white-space: nowrap;
}

.unixbench-chart th:not(:first-child) {
  border-right: 1px solid darkgray;
}

table.unixbench-chart {
  border-collapse: collapse;
  border-top: 1px solid darkgray;
  border-left: 1px solid darkgray;
  border-right: 1px solid darkgray;
  border-bottom: 1px solid darkgray;
}
table.unixbench-chart-bottom {
}
.unixbench-chart th {
  background-color: lightgray;
}
.unixbench-chart thead th {
  text-align: center;
  border-bottom: 1px solid darkgray;
}
.unixbench-chart td {
  border-right: 1px solid darkgray;
}
.unixbench-chart.result td {
  text-align: right;
}
</style>

<table class="unixbench-chart result">
<thead>
	<tr>
		<th scope="col"></th>
		<th scope="col">Dhrystone 2 using register variables</th>
		<th scope="col">Double-Precision Whetstone</th>
		<th scope="col">Execl Throughput</th>
		<th scope="col">File Copy 1024 bufsize 2000 maxblocks</th>
		<th scope="col">File Copy 256 bufsize 500 maxblocks</th>
		<th scope="col">File Copy 4096 bufsize 8000 maxblocks</th>
	</tr>
</thead>
<tbody>
	<tr>
		<th scope="row">mary (1 core)</th>
<td>1809.6</td>
<td>604.5</td>
<td>968.0</td>
<td>2367.0</td>
<td>1556.6</td>
<td>4395.5</td>
	</tr>
	<tr>
		<th scope="row">mary (8 cores)</th>
<td>6822.3</td>
<td>4069.9</td>
<td>6369.8</td>
<td>1410.8</td>
<td>849.8</td>
<td>3116.1</td>
	</tr>
        <tr>
		<th scope="row">emma (1 core)</th>
<td>1723.4</td>
<td>575.8</td>
<td>720.4</td>
<td>2255.8</td>
<td>1496.7</td>
<td>4201.5</td>
        </tr>
        <tr>
		<th scope="row">emma (4 cores)</th>
<td>6891.1</td>
<td>2303.3</td>
<td>4397.6</td>
<td>1799.0</td>
<td>1035.9</td>
<td>3229.8</td>
        </tr>
        <tr>
                <th scope="row">claire (1 core)</th>
<td>1896.2</td>
<td>633.4</td>
<td>945.3</td>
<td>2209.2</td>
<td>1512.2</td>
<td>3102.6</td>
        </tr>
        <tr>
                <th scope="row">claire (4 cores)</th>
<td>3583.7</td>
<td>2137.3</td>
<td>3475.4</td>
<td>1622.4</td>
<td>983.6</td>
<td>2419.5</td>
        </tr>
</tbody>
</table>
</p>
<p>
<table class="unixbench-chart result">
<col>
<col>
<col>
<col>
<col width="92">
<col width="92">
<col>
<col width="90">
<thead>
	<tr>
		<th scope="col"></th>
		<th scope="col">Pipe Throughput</th>
		<th scope="col">Pipe-based Context Switching</th>
		<th scope="col">Process Creation</th>
		<th scope="col">Shell Scripts (1 concurrent)</th>
		<th scope="col">Shell Scripts (8 concurrent)</th>
		<th scope="col">System Call Overhead</th>
		<th scope="col">System Benchmarks Index Score</th>
	</tr>
</thead>
<tbody>
	<tr>
		<th scope="row">mary (1 core)</th>
<td>1614.3</td>
<td>651.3</td>
<td>809.7</td>
<td>2371.4</td>
<td>2142.5</td>
<td>2387.3</td>
<td>1539.4</td>
	</tr>
        <tr>
		<th scope="row">mary (8 cores)</th>
<td>7570.8</td>
<td>2229.0</td>
<td>7254.7</td>
<td>1359.7</td>
<td>666.0</td>
<td>9156.2</td>
<td>3058.8</td>
        </tr>
        <tr>
		<th scope="row">emma (1 core)</th>
<td>1537.8</td>
<td>632.5</td>
<td>661.5</td>
<td>2275.7</td>
<td>1968.7</td>
<td>2271.8</td>
<td>1418.6</td>
        </tr>
        <tr>
		<th scope="row">emma (4 cores)</th>
<td>6149.1</td>
<td>2186.6</td>
<td>5340.0</td>
<td>1956.9</td>
<td>979.1</td>
<td>7242.5</td>
<td>2940.9</td>
        </tr>
        <tr>
                <th scope="row">claire (1 core)</th>
<td>1679.6</td>
<td>500.4</td>
<td>1013.3</td>
<td>2184.5</td>
<td>2219.3</td>
<td>2509.9</td>
<td>1492.3</td>
        </tr>
        <tr>
                <th scope="row">claire (4 cores)</th>
<td>3948.5</td>
<td>1028.3</td>
<td>3800.5</td>
<td>2195.1</td>
<td>938.0</td>
<td>6397.4</td>
<td>2290.9</td>
        </tr>
</tbody>
</table>
</p>

<p>
<table class="unixbench-chart">
<thead>
	<tr>
		<th scope="col"></th>
		<th scope="col">CPU</th>
		<th scope="col">Memory</th>
		<th scope="col">Chipset</th>
		<th scope="col">Storage</th>
	</tr>
</thead>
<tbody>
	<tr>
		<th scope="row">mary</th>
		<td>Core i7 860</td>
		<td>DDR3 1333 8GB</td>
		<td>H55</td>
		<td> HDS721050CLA362 (500GB)</td>
	</tr>
	<tr>
		<th scope="row">emma</th>
		<td>Core i5 750</td>
		<td>DDR3 1333 8GB</td>
		<td>H55</td>
		<td>HDS721050CLA362 (500GB)</td>
	</tr>
	<tr>
		<th scope="row">claire</th>
		<td>Core i3 530</td>
		<td>DDR3 1333 4GB</td>
		<td>H57</td>
		<td>HDS721010CLA332 (1TB)</td>
	</tr>
</tbody>
</table>
</p>

<p>
これで一応当初のリニューアル構想を完了したので、いよいよこの環境でいろいろあそんでみたいとおもいます。こんだけ並べて何すんだって感じですが。はわわ。
</p>]]>
        
    </content>
</entry>

</feed>

