めざましテレビ

今日の早耳ムスメ澤野ひとみちゃん,お題は「この秋欲しい!! 最新おしゃれコート」.
半年ぶりに新早耳ムスメが登場.CanCam モデルの澤野ひとみちゃん.
誌面ではごっつい印象が強いひとみちゃんですが,テレビで見るとそうでもない...
と,昨日の予告では思ったのだけど,やっぱりごっついかな? (^^;
なんか,身長以上に大きい! って感じちゃいますね.
身長は 170cm とのことなので優ちゃんと同じ,もえちゃんより 1cm,友里ちゃんより 2cm 高いだけのはずなんだけど...
たくましさを感じちゃうせいか,かなりのミニスカートでも直ちんの時みたいにドキドキしないというか,迫力を感じてしまうというか...
雑誌やテレビよりランウェイの方が映えるかも〜.
ともあれ (JW),直ちん・麗菜ちゃんと合わせて現役 CanCam モデルが 3 人に.OG のあさ美ちゃんもいるし,いっそのこと CanCam とのタイアップ企画にしちゃえばいいのに.(^^;
そんなわけで (どんなわけで?),ひとみちゃん,頑張ってね〜.


早耳ムスメ」のキーワードにひとみちゃんを追加♪
驚いたことに,ひとみちゃんキーワードになってるのね.昨日は気づかなかったよ.
ともあれ (JW),キーワード化されていない早耳ムスメはココちゃんのみ.かわいそう...
そんなわけで (どんなわけで?),木下ココちゃんのキーワード作るしか!!>だれか

Prolog 写経記 その 71 write_list_delimited/2

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

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

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

今日は write_list_delimited/2 を写経します.

解説

write_list_delimited(List, Del)List の要素を Del で仕切って,現在の出力ストリームに出力する.

ふむ.

モード

write_list_delimited(+, +).

ふむ.

定義

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

write_list_delimited([], _).
write_list_delimited([X], _) :- !,
	write(X).
write_list_delimited([X | List], Del) :-
	write(X),
	write(Del),
	write_list_delimited(List, Del).

昨日のより全然楽♪
最初の節は停止条件,次の節はリストの要素が一つだけならそれを単独で出力.
最後の節はリストの要素が複数ある場合で,最初の要素を出力した後にデリミタを出力して,残りの要素を再帰的に出力,と.

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

2 ?- write_list_delimited([1, 2, 3, 4, 5], '+').
1+2+3+4+5

Yes
3 ?- write_list_delimited(['May', 'June', 'July'], ' ').
May June July

Yes

楽勝♪


S2.3 自動登録とコンテナ階層 (名前空間)

仕事先で、今作成中のシステムに試しに入れて色々動かしてみました。特に問題なく動いてるし、たしかに基盤系以外のdiconファイルはいらなくなることを確認。これ入れたらメンバー楽になるだろうなぁ・・・と思ったのですが・・・、自動設定では定義分割機能やネームスペース機能が使えないっぽいと判明。

大丈夫,ちゃんと使えますよ♪


S2.3 の ComponentAutoRegister は,それ自身のコンテナにコンポーネントを登録します.その他のコンテナにコンポーネントを登録することはできません.
しかし,複数のコンテナを使うことや名前空間を使うことは問題なくできます.
例えば app.dicon

<components>
    <include path="aaa.dicon"/>
    <include path="bbb.dicon"/>
    ・・・

とかしておいて,aaa.dicon では

<components namespace="aaa" >
    <component class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister">
        <initMethod name="addClassPattern">
            <arg>"hoge.aaa"</arg>
            <arg>".*ActionImpl"</arg>
        </initMethod>
        ・・・

そして bbb.dicon では

<components namespace="bbb" >
    <component class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister">
        <initMethod name="addClassPattern">
            <arg>"hoge.bbb"</arg>
            <arg>".*ServiceImpl"</arg>
        </initMethod>
        ・・・

とすることで,hoge.aaa パッケージの 〜ActionImpl クラスは名前空間 aaa のコンテナに,hoge.bbb パッケージの 〜ServiceImpl クラスは名前空間 bbb のコンテナに登録されます.
当然ですが,aaa.diconbbb.dicon はそれぞれが必要な dicon をインクルードすることができますから,

例えば、ある一部の業務では別システムのデータベースに接続する必要があるので、j2ee.diconに設定しているDataSourceとは別のDataSourceオブジェクトを作成する必要があるのですが、このDataSourceや、それを利用するコンポーネントを共通なdiconファイルに定義してしまうと、これらのコンポーネントに対して自動バインディング定義が使えなくなります。

という場合でも大丈夫です.
ある DataSource を定義した dicon (またはそれをインクルードしている dicon) の中にその DataSource を使うコンポーネントを登録する ComponentAutoRegister を記述すればオッケー♪


S2.3 が掲げているのは Less Configuration であって Zero Configuration ではないので (たしか),dicon を全く書かないと考えるのではなく,従来通りコンテナ (dicon) の階層を使ってスコープを管理して,そこに登録したいコンポーネントComponentAutoRegister で引っ張ってくると考えればいいのではないでしょうか.


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

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

CanCam から,お気に入りの蛯原友里ちゃんを紹介しようというこのコーナー.
今日はプランタン銀座とのタイアップによる綴じ込み付録「押切もえ×蛯原友里 with プランタン銀座 超★限定コラボ服 MIRACLE 60」の友里ちゃん.
ドーナツ食べてる友里ちゃん♪
え? 食べてない?
いいのいいの,大事なのは気分♪
友里ちゃんとドーナツ食べ歩きしてる気分を味わう,これ重要.
そんなわけで (どんなわけで?),やっぱり CanCam 買うしか!!