めざましテレビ

今日の早耳ムスメは杏ちゃん,お題は「寒い時こそ食べたい! あったかテイクアウト」.
ささきさん,ちゃんと見ましたかー!?
その杏ちゃんですが,彼女にしては珍しく表情豊かでしたね.やれば出来るって感じ? (^^;
ところで,昨日のあさ美ちゃん,今日の杏ちゃんと年末と同じ顔ぶれのような気のせいが.ということは,明日はローサちゃん or ジェシカちゃん? 当たりだったら撮りだめですから!! 残念!!!!

騙り入門記

自分が騙られたのかどうかは分かりませんが,せっかくなので書いてみるテスト.


初級編
まずはやっぱり句読点.
「、。」ではなく「,.」を使いませう.それだけで騙ることが出来るかもしれません.


中級編
半角文字の前後にスペースを入れましょう.以前は違ったけど最近は大体空けてます.
例文

「今年もまた,登板回数 No1 だね」


上級編
決め台詞を使いましょう.
「ぐはぁっ」「うーみゅ」「あうあう」あたりがオススメですが,使いすぎると「うざすぎ」ってたたかれるので注意しましょう.しくしくしく.
もちろん「ともあれ (JW),」「そんなわけで (どんなわけで?),」「無念だ」「心より恥じる」「残念!!!!」とかもありです.ちなみに「残念」の後のびっくりマークは全角で 4 つと決まっています.ここ試験に出るからねぇ〜.
例文

このネタ,昨年も書いてますから!! 残念!!!!

ちなみに「〜です (ます) から」の後のびっくりマークは全角で 2 つと決まっています.ここ試験に出るからねぇ〜.
...
これが上級? なのか?


達人編
誤変換してモデルの名前を紛れ込ませましょう.
「潤」「杏」あたりがオススメです.
例文

BaseのサブクラスとしてSub1とSub2がこの潤で定義されているとすると、

例文のように,あえて句読点を「、」にするなど初級・中級のテクをあえて外すのが高等な騙りです.これで「他人のフリして書き込んだけどバレバレ」を演出することが出来ます.
えっ? 例文? えぇ,わざとに決まってるじゃないですか.誤変換に気づかなかったなんて,そんなはずは,そんなはずは,そんなはずはぁーっあうあうピーーーーーーガガガッ (ぷっつん)

複数コミッタ制

太一さんが S2S2Dao のコミッタに!! 頑張ってください>太一さん
そこで気になるのが Kijimuna.鳥獣用^h^h^h超重要プロダクトだと思うのですが,まさたかさんが Maya の方で忙しくてサポートできない状況っぽいですよね...
亮ちん手を挙げてみない? (^^;
最近 Eclipse プラグインに取り組んでるみたいだし,いずれはモデリングツールのノウハウを持ち込んで dicon をビジュアルに見れるようになったら最高なんだけどな〜.

S2Remoting

むらたさんの日記から一連の「S2Remoting サンプル実装」を読ませて頂きました.なるほど〜,随分前からいろいろな構想があったのですね.さすがひがさん...
そんなわけで (どんなわけで?),さっそく採用させて頂こうかと思います.
S2Remoting では共通の Interceptor を提供し,Connector によって様々なプロトコルをサポートするということにしましょう.
そんなわけで (どんなわけで?),Interceptor はこんな感じでどうでしょうか?

package org.seasar.remoting.client;

import org.aopalliance.intercept.MethodInvocation;
import org.seasar.framework.aop.interceptors.AbstractInterceptor;
import org.seasar.framework.container.ComponentDef;
import org.seasar.framework.util.ClassUtil;

public class RemotingInterceptor extends AbstractInterceptor {
    protected Connector connector;
    protected String name;

    public void setConnector(final Connector connector) {
        this.connector = connector;
    }

    public void setName(final String name) {
        this.name = name;
    }

    public Object invoke(final MethodInvocation invocation) throws Throwable {
        return connector.invoke(getTargetName(invocation), invocation.getMethod(),
                invocation.getArguments());
    }

    protected String getTargetName(final MethodInvocation invocation) {
        if (name != null) {
            return name;
        }

        final ComponentDef componentDef = getComponentDef(invocation);
        final String componentName = componentDef.getComponentName();
        if (componentName != null) {
            return componentName;
        }

        final Class componentClass = componentDef.getComponentClass();
        if (componentClass != null) {
            return ClassUtil.getShortClassName(componentClass);
        }

        return ClassUtil.getShortClassName(invocation.getThis().getClass());
    }
}

ちょっと工夫したのはターゲットの名前を取ってくるところ.この意図は後で.
そして Connector

package org.seasar.remoting.client;

import java.lang.reflect.Method;

public interface Connector {
    Object invoke(String name, Method method, Object[] args) throws Throwable;
}

まぁ,どうということもなく.
そして URL を使う Connector のための抽象クラス.

package org.seasar.remoting.client;

import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.LinkedHashMap;
import java.util.Map;

public abstract class URLBasedConnector implements Connector {
    protected URL baseURL;

    public void setBaseURL(final URL baseURL) {
        this.baseURL = baseURL;
    }

    public Object invoke(final String name, final Method method, final Object[] args)
            throws Throwable {
        return invoke(getTargetURL(name), method, args);
    }

    protected URL getTargetURL(final String name)
            throws MalformedURLException {
        return new URL(baseURL, name);
    }

    protected abstract Object invoke(URL targetURL, Method method, Object[] args)
            throws Throwable;
}

ターゲット URL はキャッシュした方がいいかもしれませんが,それはまた後で.ひがさんの構想にあるような複数 URL をサポートする場合は ClusterableURLBasedConnector とか別途作るって事でそれはまた後で.それから,結局 setBaseUrl(URL) ではなく setBaseURL(URL) にしようかと思ってます.URL が複数になった時に Urls より URLs の方がカッコいいかなーって思ったので.
ともあれ (JW),このように URLBasedConnector はベースとなる URL を持ち,RemotingInterceptor から渡されるサービス (リモートオブジェクト) 名を付加してターゲットとなる URL を求めています.このため,複数のサービスを使う場合でも URL の指定を一カ所にまとめられたりします.そして RemotingInterceptorコンポーネント定義からターゲットの名前を取ってくるため,一つのインスタンスを複数のターゲットに適用できます.で,こんな感じ.

<component name="remoting" class="RemotingInterceptor"/>

<component class="AxisConnector">
    <property name="baseURL">new URL("http://localhost:8080/s2-axis-examples/services/")</property>
</component>

<component name="foo" class="Foo">
    <aspect>remoting</aspect>
</component>

<component name="bar" class="Bar">
    <aspect>remoting</aspect>
</component>

いい感じじゃない? (^^;


これ,S2Axis と S2Hessian は楽に対応できますが,S2XmlRpc はちょっと悩ましいかもしれませんね.ターゲット URL に対応する XmlRpcClient のキャッシュを持つとかしないといけない感じ.
とりあえず,ご意見あればお願いします.


リモーティング関連プロダクトのパッケージ名なんですが,次のように揃えた方がいいかなぁと考えています.

  • org.seasar.remoting.client  リモーティング共通 (クライアント)
  • org.seasar.remoting.server  リモーティング共通 (サーバ)
  • org.seasar.remoting.axis     Axis (SOAP)
  • org.seasar.remoting.caucho  Hessian / Burlap
  • org.seasar.remoting.rmi      RMI
  • org.seasar.remoting.xmlrpc  XmlRpc

なにげに S2XmlRpc はすでに上記のパッケージになっているので,S2Axis と S2Hessian が対応すればいいだけなんですが.
こちらもご意見あればお願いします.


そろそろ Sandbox 申請しようかな...

出演予定 TV 番組

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

蛯原友里
01/07 (金) 11:00〜11:30 TBS 「恋するハニカミ!」
01/08 (土) 02:50〜03:45 ANB 「特命係長・只野仁 (再)」
徳澤直子
01/09 (日) 10:55〜11:25 YTV 「オカンと娘」
山田優
01/10 (月) 18:55〜19:54 TBS 「関口宏東京フレンドパーク 2」
押切もえ
01/10 (月) 10:20〜11:15 TBS 「ホノルルマラソン

エビちゃん,今年もハニカミ出るんですね.でもでも,来週から始まる特命係長と時間がかぶるのは大丈夫なんでしょうか?
いやその,大丈夫じゃないのはうちの録画環境なんですが.HDD レコーダーで録画するのはどっちにするか... 普通に考えたら特命係長なんですが,こっちはいずれ DVD が発売になるわけで... ハニカミ優先かなぁ.うーみゅ...

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

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

CanCam から,お気に入りの蛯原友里ちゃんを紹介しようというこのコーナー.
今日も「海外ブランドショッピング 『6大都市現地プライス』 大調査 BOOK」から P179 の友里ちゃん.
こ,これは... 思わずバニーな友里ちゃんを想像してしまうではないですか!? やばすぎですから!! 切腹!!!!
そんなわけで (どんなわけで?),やっぱり CanCam 買うしか!!