Home | 1月 2006 >>
PR: 転職    ドメイン    電子機器    インプラント    転職サイト    ダイエット 食事    転職    コンタクトレンズ    流行キーワード    英会話   

今年もお世話になりました。

今年もお世話になりました。来年もよろしくお願いします。

富久

おともだち。

enumでインターフェースの実装は可能のようだ。

enumは継承できない。

enum Base {
    HELLO
}

enum Sub extends Base {
    WORLD
}
Test0.java:7: '{' がありません。
enum Sub extends Base {

じゃEnum<?>で統一的に、

enum Base {
    HELLO
}

enum Sub {
    WORLD
}

public class Test1 {
    static void foo(Enum<?> e) {
        if (e == Base.HELLO) {
            System.err.println("Hello");
        }
        else if (e == Sub.WORLD) {
            System.err.println("World");
        }
    }

    public static void main(String[] args) {
        foo(Base.HELLO);
        foo(Sub.WORLD);
    }
}
Test1.java:13: 型 java.lang.Enum<capture of ?> と Base は比較できません。
        if (e == Base.HELLO) {

Objectで受ければいいんだけど、そうすると何でも渡せちゃうしな〜、と思ったら、言語仕様書第三版を見ると、

EnumDeclaration:
  ClassModifiers(opt) enum Identifier Interfaces(opt) EnumBody
なので、インターフェースを実装するのはokなのか。
interface HelloWorld {
}

enum Base implements HelloWorld {
    HELLO
}

enum Sub implements HelloWorld {
    WORLD
}

public class Test2 {
    static void foo(HelloWorld e) {
        if (e == Base.HELLO) {
            System.err.println("Hello");
        }
        else if (e == Sub.WORLD) {
            System.err.println("World");
        }
    }

    public static void main(String[] args) {
        foo(Base.HELLO);
        foo(Sub.WORLD);
    }
}
これならok。
$ java -cp . Test2
Hello
World
switch文が使えないのが口惜しいけど、あれはordinalを利用しているものだから、別クラスにしてしまったらswitchサポートしたって内部的にはelse ifで実装せざるを得ないだろう。
あ、そうか。継承を許すとordinalの処理が面倒になるな。継承enumが作成された後に、親enumに定数が加えられてしまって継承enumの再コンパイル無しに実行されてしまうと、ordinalがダブって奇妙な動きを引き起こしてしまいそうだ。それでサポートされていないのかな。

enumって継承できないのか。

将来拡張したい定数群は、どうすればいいんだろう。

2560 x 1600

ドキュメントだけ先に出てる。いくらなんだろう。

オフショア

なんか「書面区分」が「畫面區分」とか。まぁ読めるからいいか。日本では、ほとんど日本人だから、ちょっとした事にも気になるけれど、多分アメリカだと色んな人種が入ってきてるから、こういうのって、かなりいい加減なんだろうな。で、いい加減でも何とかなる社会になってるし、人々もこまかいことを気にしない。冗長性が高いってことか?!

min()

BigDecimal.min(BigDecimal)の説明は、

Returns the minimum of this BigDecimal and val.

なので「小さい方」を返すという言い方になっている。そうすると「じゃぁ、等しかったらどうなるの?」となるのは自然な流れで、

If they are equal, as defined by the compareTo method, this is returned.

thisが返ると言っている。でも値が等しい場合には、どっちを返したっていいわけなんだから、thisが返るって事をAPI仕様として明示してしまうのはどうかという気がする。

「大きくない方を返す」と書いておけば良かったのにね。

くるみ割り人形

今日は、鎌倉までくるみ割り人形を見に。

ちょっと早めにいって猫寺浄妙寺へ。

20D EF-S10-22mm@22mm F11 1/100 ISO100

今日も、出迎えてくれました。

20D EF-S10-22mm@22mm F5.6 1/100 ISO400

冬の浄妙寺。

20D EF-S10-22mm@10mm F10 1/160 ISO100

さすがに冬なので花はほとんど無し。

20D EF70-200mm IS@200mm F4.0 1/800 ISO400

もう水仙が。

20D EF70-200mm IS@148mm F4.5 1/800 ISO100

お昼は左可井へ。

20D EF70-200mm IS@160mm F8.0 1/400 ISO400

からすうりが飾ってあった。もう12月なのに。

20D EF-S10-22mm@10mm F4.5 1/20 ISO800

そして、くるみ割り人形を見に。中庭の竹を。

20D EF-S10-22mm@12mm F7.1 1/60 ISO400

なぜか意味も無くシャンデリア。

20D EF70-200mm IS@70mm F7.1 1/100 ISO400

サンタを追え

artonさんとこを見て、そういえば、そんな話があったなぁと。それで今年はGoogleの 表紙にHappy Holidaysとあるんだと納得(各国語で書いてあるけど日本語だとなんなんだろう。っていうかこの時期、日本では大した連休でもないのに"Holidays"といわれてもなぁ、Thanks Givingとかで連休取ること自体に宗教色は無いんだろうか)。

といいつつ、同じGoogleでサンタを追えなんてのもあったりして。サンタクローズは宗教色無いんだろうか。よくわからん。

Googleさん

いつ灯るのかな〜

の、登れない

「おじちゃん、がんばって」

"a SQL" or "an SQL"?

Googleさんに聞いてみると、

a SQL: 2,050,000件
an SQL: 1,840,000件

「シークェル」派の方が「エスキューエル」派より優勢か。

過去の猫タワーを見られるようにしました。

「過去の猫タワーをチェック」から飛んでください。過去二週間分が保存されています(はずです。バグがなければ...)。

猫タワー

きのうも止まっていた。バグを1個発見。これで直るかな〜。

しかし、寝坊が一発でバレる...

またLiveCamが止まってた。

またreadループで止まってた。

    while ((readLength = is.read(buf)) != -1) {

このループで先に進まなくなっている。どうもスタックトレースを見るとblockedではなくてready to runなので、readLengthが0になっているっぽい。そういえば仕事でもこの現象にはまった事があった気がする。あの時は生ソケットだったけど。とりあえずループの中で自分でタイムアウトチェックを入れて様子を見てみる。

電波時計

さっき書いたのにな〜。消えちゃったよ。バグだろうか。

昔、ここで話題にした電波時計、画面がおかしくなって結局買い換えたのだけど、電池の部分をいじると動くので、だましだまし使っていた。今日、とうとうどうにもならなくなって、アラームもセットしていないのにピーピー悲鳴を上げ出したので、分解してみた。

結局原因は半田不良。電池入れは板バネになっていたのだけど、それがちゃんと半田付けされていなかった。バネもくたびれていたので、手持ちの電池ボックスを付けて見た。

裏蓋が閉まらなくなってしまったけど、すっかり快調になった。まだまだ使えそうだ。

狙われてる

最近、常にレーザーポインタを探している模様。

チルドアイランド?

ヒートアイランド現象と反対の事って起きないのかな。まぁ暖房の場合はヒートポンプ以外にも方法があるし、熱をかき出すよりも、引っ張り込む方が効率は良さそうだけど、厳密に調べたら測定可能なレベルの気温降下が見えるものなんだろうか。

と思ったけど、結局室内を暖めた熱は、外に逃げていくわけで、エネルギー保存の法則的には、やっぱり気温は上がっているのか。

こんなのが写っていた

むくむく。

JavaDocで独自タグを無視する

備忘録:JavaDocで@hibernate.classとかの非標準タグに警告を出さないようにする方法。

コマンドラインの場合は-tagオプションで指定(-tag hibernate.class:X)

Antタスクの時はtagエレメントをネスト。

    <javadoc ...>
        <tag name="hibernate.class" enabled="false"/>
    </javadoc>

Livecamがハング

どうもLivecamがハングするので、kill -3してみたところ、URL.openStream()で開いたInputStreamから読み込むところで刺さっている模様。これってタイムアウトしないんだろうか。

仕方がないので、JDK5.0を入れて、URL.openConnection()してから、setConnectTimeout()と、setReadTimeout()を設定してから、connect()、getInputStream()するように変えてみた。

しかし、猫が全然写らないのが問題だなぁ。

jarにソース

ソースコード入りのJarファイル
今度入ったプロジェクトで、warファイルになぜかソースまで入っていて「なんで??」って思っていたのだけど、こういう背景があったのか。でもwarファイルに入れて実質的に何か意味があるんだろうか(WEB-INF/classesの下)。

猫達の毎日

猫達の毎日更新完了。

スパムインフレ

Googleさんがはじくspamが1か月1000件を超えた。spamインフレ。インフレになると1件あたりの価値が下がるので、それを取り返すために、spamが増えて、spamインフレスパイラル。誰かspam金利を上げてくれ。

Nuke Anything Enhanced

Nuke Anything Enhanced

Flashは「機能の許可」でデフォルトoff出来るけどアニメーションGIFがチカチカとうるさい。OperaはアニメーションGIFもオフれたけどFireFoxの場合は、このextentionで画面の任意のパーツを消すことができるので、これでうるさい広告は消せる。ただ、リロードで元に戻っちゃうのが惜しい。

ショスタコービチのピアノ協奏曲

Dmitri Dmitriyevich Shostakovich人気投票

ん〜やっぱりピアノ協奏曲2番の方が一般ウケするのか。やっぱり2楽章がメロドラマみたいだからだろうな。でもショスタコにそういう音楽を求めるってのもどうなんだ。まぁ3楽章がハノンなのは面白いけど。でも内容的な面白さといったら、1番の方がずっと上だと思うのだけどね。

寒い寒い

いや、冬の寒さって、こういうものだよね。ずっと暖かかったから忘れかけていた。

ストーブ前が大人気。

ArrayListへのダウンキャスト

void foo (List list) {
    List myList = (ArrayList)list;
    for (int i = 0; i < myList.size(); i++) {
        String data = (String)myList.get(i);
...
    }
}

みたいなコードに「ダウンキャストやめようね」というガイドをしたりしていたのだけど、良く考えてみると、これってあまり良くないガイドだったかもしれない。

最初見た時はArrayListにキャストしてるくせに、List型の変数に格納していて「なんじゃこりゃ、キャスト無意味」と感じたのだけど、

確かにダウンキャストを外すと抽象度は上がる。けどループがこのままでLinkedListなんかを渡された日には、動くかもしれないけど地を這うような遅さになる事が確定している。それなら敢えてキャストを残してClassCastExceptionで落とした方が、まだマシかもしれない。

ループもイテレータを使うようにガイドをするのが、一番まっとうではあるし、そこについてこれる人には、そうガイドすべきだ。でも、そうじゃない人にとっては多分イテレータって分かりにくいというか、しきいが高いんだろうな。単に可変長の配列が欲しいって感覚だと。

多分、次善策は、

void foo (ArrayList list) {
    for (int i = 0; i < list.size(); i++) {
        String data = (String)list.get(i);
...
    }
}

なのだろう。中がArrayListの性質に依存しているんだから引数もArrayListにしておくのが無難。柔軟性は落ちるけど、柔軟性は、それを活用出来る人にしか意味は無いわけで、そうでない人にとっては、逆に分かりにくくなるだけだ。

LiveCam

しまった。条件が逆になっていた...

こんなのが撮れていた

楽しい。もう少し画質が良ければな〜

Webカメラ取り込み

取り敢えずカメラから1分おきにファイルを取り込むプログラムをJavaで作ってサーバで稼動してみた。「猫タワーをチェック」リンクで最新ファイルが見える。

Webカメラ

安売りしていたので、LOGITECHのLEC-V300/Wというウェブカメラを買ってみた。無線LAN対応なので、電源さえつなげばok。

画質は、ん〜、それなり。もともと監視カメラ用途なのだろうね。 httpサーバが入っていて、トップのIMAGE.JPGをgetすればokなので利便性は高い。

どこからでも、猫タワーが見られるのはいい感じ。

developerWorks RSS配信

developerWorks、知らないうちにRSS配信するようになっていた。

ブリッジ?

いやいや、背中がついてます。

new Integer()は無駄

そういえば、Integerには定数ZEROとかが無いな〜と思ったら、

    public static Integer valueOf(int i) {
	final int offset = 128;
	if (i >= -128 && i <= 127) { // must cache 
	    return IntegerCache.cache[i + offset];
	}
        return new Integer(i);
    }

valueOf(0)を使っておけばいいのか。

割り箸

muimyさんのところ。私も「割り箸は廃材を利用している」説をずっと信じていました。実際は全然違うのですね。

く、首が

首が無い。

にく

帰りに店先で買ってきた肉で一杯。あひるに豚スペアリブに豚耳。

あひるウマイ。日本ではあまり食べないけど何でだろう。

中華街

ふらりと中華街へ。京急の踏切が無ければ、もう少し早く行けるんだけど... 羽田を拡張するなら、あの踏切を何とかして欲しい。

デザートに餅があった。何かの番組(不思議発見だっけ)で中国には餅(餅米の)が無いというような事を言っていたと思うんだけど、これは日本用のアレンジなのかな。

なんか、すごく露出アンダーだった。確かに真っ白の背景だ。S30のRAWで撮ってあったのでSILKYPIXのノイズキャンセラで何とか救われた。

コンピュータが計算機と呼ばれた時代

 献本いただきました。ありがとうございます。

不思議と同じような話題の本が重なるものだ...

Pebbleでコメントついたときにe-mail

ちょっと悩んだのでメモ。

Blog propertiesで、E-mail notificationのところにメールアドレスと送信先のメールサーバのIPアドレスを書いてセーブ

Pluginsで、Comment Listenrsのところにpebble.event.comment.EmailNotificationListenerを記入してセーブ

Reload(Maintenanceのところにある)をクリック

メールには内容が書かれているみたいなんだけど、漢字は文字化けしている...

pebbleに移行

pebbleを使って自宅でblogをhostingしてみる実験中。

このサイトの掲載内容は私自身の見解であり、必ずしもIBMの立場、戦略、意見を代表するものではありません。
日本アイ・ビー・エム 花井 志生 Since 1997.6.8