S2Axis 英語ドキュメント

S2Axis のドキュメントが英訳されてます.ちょっとびっくり.
http://www.seasar.org/en/s2-axis.html
翻訳してくださったのは小沢さんという方らしい.ありがとうございました&お疲れ様でした.
っていうか,いつの間にやら S2Remoting のドキュメントも英訳されていたのですね.
http://www.seasar.org/en/s2-remoting.html
こちらも小沢さん.多謝.


ファッションニュースメンズ November 2005 Vol.107 11

遅くなりましたが,ようやく入手しました.
これ,近所の書店では売ってないんですよね.遊園の文教堂にも入荷してないとのことだったし.
今日は横浜でデートだったので,そのついでに購入してきました♪


基本的にコレクションの写真が掲載されているだけなので gap PRESS MEN と同類,値段もほぼ同じ.
でもでも,こっちの方がかなり厚いんですよね.
一つ一つのカットが gap PRESS MEN より大きめでサイズが揃っているのでこっちの方が見やすいかな?
でもでも,所々に祐真さんがランキングした番号が入ってるのが目障り.隅っこに小さくしてよ...


ともあれ (JW),雑誌を見ていて気になったアイテムをいくつか.
まずは ALEXANDER McQUEEN のニット.

Web でも gap PRESS MEN でも見ていたはずなのですが,ファッションニュースメンズで見たら好印象.
手持ちの服はほとんどがモノトーンかつ無地なので,せめて柄物にチャレンジしてみようかな♪


続いて DOLCE&GABBANA のタキシード (?).

これはヤヴァいです...


GIVENCHY のブルゾンもよさげ.

DIOR HOMME のブルゾンとかぶるかなぁ...
ともあれ (JW),来季の GIVENCHY は激しくチェック!!


GUCCI のブルゾン,素材なんだろう?

いつまで経っても薄手のアウター不足 (この時期は苦しい) なので,ちょっと気になります...


LOUIS VUITTON のジャケット.

ちょっと微妙な気もするけど面白い気もする...


意外と,来季は春夏にしてはいいものあるかも.
お金を蓄えておかねば...
その前に,予約してある GUCCI のコートはいつになったら入荷するのだろうか?
あれを買うまで身動きできないんですけど.
うーみゅ...


果実きわだつチューハイ

相沢紗世ちゃんの「乾杯しよっ」が印象的な CM です.
先週から動画では見ていたのですが (笑),よやくテレビでも見かけることができました.
うーん,紗世ちゃん美しすぎる... 魅力的すぎる... 乾杯したい!!
できれば,中程の 10 秒くらいの部分でも紗世ちゃんを見せて欲しかった...


こちらから動画を見ることができます.
http://www.takarashuzo.co.jp/cch/kajitsu_cm.htm


出演予定 TV 番組

この近辺 (どこ?) で話題のモデルが出演するテレビ番組を分かるだけ掲載します.
新規分は赤字で (レギュラー除く).直近分は太字で.

山田優
10/09 (日) 13:40〜16:00 CX 「F1世界選手権第18戦日本グランプリ


CanCam 11 月号 エビちゃんベストセレクション 15

CanCam2005年11月号の蛯原友里ちゃん

CanCam から,お気に入りの蛯原友里ちゃんを紹介しようというこのコーナー.
今日はサマンサティアラとのタイアップ「お呼ばれジュエリーできました!」から P281 の友里ちゃん.
これまたサマンサクオリティ! な友里ちゃん.ルンルンな気分になります♪
そんなわけで (どんなわけで?),やっぱり CanCam 買うしか!!


Prolog 写経記 その 60 random/3

(ほぼ) 毎日淡々と Prolog を写経します.元ネタはこちら.

Prologユーティリティライブラリ

Prologユーティリティライブラリ

今日は random/3 を写経します.

解説

random(Min, Max, Num)MinMax の間からランダムに選んだ数を Num に具体化する.

ふむ.

モード

random(+, +, -).

ふむふむ.

定義

では,こいつの定義を写経しませう.

random(Min, Max, Num) :-
	integer(Min),
	integer(Max),
	Min =< Max,
	retract(seed(S)),
	Num is S mod (Max - Min + 1) + Min,
	NewSeed is (125 * S +1) mod 4096,
	asserta(seed(NewSeed)), !.
seed(7).

うーみゅ...
ここでポイントになるのは以下のとこ.

	retract(seed(S)),

retract/1 は引数で指定した述語を Prolog の実行環境 (Prolog ではこれをデータベースと呼ぶらしい) から取り除きます.Java でいうとクラスのアンロードみたいなものでしょうか.
その際に,乱数の種 S を具体化しています.
その種から引数で指定された範囲の乱数 Num を求めた後,新しい種 NewSeed を求めて

	asserta(seed(NewSeed)), !.

asserta/1 により新しい種を Prolog の実行環境に追加します.
つまり,実行環境 (データベース) をグローバル変数として利用しているわけです.
し・か・も
破壊的代入をしているのと同等.
なんか,とってもいやーんなやり方ですね...


なお,SWI-Prolog (ってか ISO 標準?) では random/3seed/1 を定義する前に

:- dynamic seed/1.

としておく必要があります.
こうしておかないと retract/1 等で seed/1 を扱えません.

注記

MinMax は整数である.16 ビットコンピュータでは NewSeed に関する整数オーバーフローを防ぐために,定義中の 4096 を 256 に置き換えること.
上記の定義ではランダム数生成の元となる数 (シード (seed) と呼ばれる) の初期値は定数としてある.しかし,たとえばシステム時間のような変数を用いれば,random が呼ばれるたびに同じランダム数の列が作り出されるのを防げる.

ふむふむふむふむ.
定義中の

seed(7).

がシードの初期値を定義した定数になるわけですね.

では使用例を写経しませう.

2 ?- nl, repeat, random(1, 100, X), write(X), tab(2), X == 77.

8  77  

X = 77 

Yes

うーみゅ.
repeat はバックトラックで制御が戻ってくる度にまた後続の節を実行する述語なので,random/3 の生成する乱数 X が 77 になるまで延々繰り返すという事ですね.
そして最初に生成された乱数が 8.その次に生成された乱数が 77.終了.
あっけなさすぎるのでもう一度.

3 ?- nl, repeat, random(1, 100, X), write(X), tab(2), X == 77.

6  91  4  73  54  43  92  93  30  3  48  13  10  47  48  5  70  55  60  45  82  
99  68  9  30  51  44  73  78  95  60  9  6  95  96  93  90  31  24  1  2  79  
16  9  22  15  52  89  18  7  4  17  70  39  48  69  54  79  64  21  38  7  16  
45  6  95  88  17  26  23  52  9  78  55  84  5  34  79  56  73  66  59  48  89  
58  79  32  29  78  7  80  65  2  23  72  77  

X = 77 

Yes

お,それっぽい感じ.
さらにもう一度.

4 ?- nl, repeat, random(1, 100, X), write(X), tab(2), X == 77.

6  99  80  37  62  11  84  21  50  35  52  1  46  43  64  57  18  11  92  61  
42  19  12  85  2  35  100  13  62  39  28  9  2  3  76  57  98  99  12  29  
26  11  20  97  54  7  68  41  66  63  32  29  30  59  92  45  26  63  16  57  
26  51  84  45  2  3  68  77  

X = 77 

Yes

いい感じ♪