<< 8月 2006 | Home | 10月 2006 >>
PR: 転職    葬式    マンスリーマンション 神戸    北海道    環境    FX    不動産担保融資    桐ヶ谷斎場    海外旅行    専門学校   

Google Reader

marsさんとこで紹介されていたので、Google Readerを使ってみた。

残念ながら904SHではクッキが認識できないようでログインできないのと、PC側でもOperaでは表示が崩れるようだ。今後の改良に期待かな。

Subversion 1.4

ここを読む限りは、レポジトリの作成さえ、1.3でやっておけば、1.3のクライアントと1.4のクライアントが同居していても大丈夫なんだろうか。今ひとつ不安で踏み切れない…

プログラマが減っている

「プログラマが減っている」、Mozilla Japanの代表理事が指摘

育てる以前に、そもそもなりたがる人が減っている気がしますが(少なくとも日本では)。なので「報いる」ことを検討すべきでは。あと一山幾ら制で優秀でもそうでなくても給料変わらない、というか優秀だとむしろ仕事増えるだけで、感謝はされても実は伴わないみたいな環境を変えないとね。

Geneseo

IntelとIBMがPCI Expressの後継仕様「Geneseo」を開発,Dell,HP,Sunなどが支持

また変わるの? やっとAGPからPCI-Expressに乗り換えたばかりなのに。もう少し長持ちする規格を考えて欲しいな。

JPG現像

SILKYPIX 3.0のJPG現像を使って、昔のJPG写真を現像してみた。ノイズリダクションもできるので便利。結構JPGでもレタッチ耐性があるね。色温度調整して、露出補正+1かけているけど、破綻してない。

WebWork in Action

第一部まで読み終わった。Strutsに最新の技術を詰め込んで洗練させた感じかな。Strutsの荒削りな部分が、ていねいに造り込まれているので、これなら楽にできそう。

「これからはJSFでしょ」と思う反面、Webアプリをコンポーネントモデルで実装することに対する疑問も自分の中にはあって、まぁ画面数20枚程度くらいまでなら、GUI開発でお気楽にってのでもいいのだろうけど、それを超える場合、やっぱりStrutsやWebWorkのようなアクションベースの方がStraightforwardで分かり易い気がする。

大抵の場合、Webのフォーム内のフィールドってのはお互いに関連を持っているから、全部揃わないと処理できないわけで、特定のフィールドが変化したからUpdate Eventが飛んで来てみたいなのは、大してありがたくない気がする。結局submitボタンにまとめてイベント処理書くのであれば、アクションベースと比べてメリットが無いし、むしろ分かりにくくなるデメリットさえ感じる。

とりあえずServlet/JSPコンテナが欲しい時

なんとなく、ずっとTomcatを使ってきたけど、Managerアプリ回りって、昔から妙な感じでうまく動かないことが多い。リロードが効かないとか、配備解除しても残ったりとか。最近はJetty使う事の方が多くなってきた気がする。

秋猫

いやまぁ、秋に限らずいつもこんな感じなのですが。

WebWork in Action

読み始めるも、いきなりHello Worldから最新版では動かないじゃないか。サーブレットで受けるのは古くて、フィルタ使うようになってるし、大根もWebWork組み込みのものから春大根が推奨になって、Springの設定ファイルが必要だし。全然違うじゃん。本に載っていない新機能もかなりあるんだろうな。

Skweeze

最近Bloglinesのmobile版を通して、ケータイでblogを見ることが多いのだけど、RSSリーダの中に表示された記事のリンクをクリックすると、普通の(?)パソコン用ページなわけで、そこで表示できなくなってしまうのが残念な感じだった。

ケータイ用のGoogleは、ケータイ用に細かく区切って、複雑なタグを外してパソコン用のページをケータイでも見られるようにしてくれるので、こういうのがBloglinesにあるか、それかケータイ用GoolgeがRSSリーダ機能を作ってくれればなぁと。

と思っていたら、出来てた。ただ残念ながら日本語が化けるのと、Googleに比べると、ケータイではうまく表示できないケースが多いようだ。改良されていくといいな。

でもケータイのパケット代考えると、b-Mobileとザウルスとかの方がいいのかなぁ。

ちゃんと中まで見てるんだ。

FindBugs 1.1.1用の日本語メッセージファイルを送ったら、"switch"を"seitch"と間違えてない? とコメントが来た。日本語のファイルなんて中まで見ていないかと思ってたよ。

うっとんは皆を引きつける。

我が家では、老若男女を問わず、うっとんが大人気。夢久のしつこさにも、迷惑そうな様子。^^;

NetBeansとJBoss

なんか知らないうちに、NetBeansのJBossバンドルとか出てるし。前からあったのに気づかなかっただけかな。JBoss強し。

Jeliot

marsさんとこで発見。すごいよこれ。

public class MyClass {
    public static void main() {
        // Your algorithm goes here.
        System.out.println(factorial(5));
    }

    static int factorial(int v) {
        if (v == 1) return 1;
        return v * factorial(v - 1);
    }
}

とか見せれば、たちどころに再帰が理解できるようになるかも。

二分探索でオーバーフロー

 int mid =(low + high) / 2;

中間値計算でオーバーフローする危険がありますよ。というお話。こんなことを気にしなければならない時代になったのだね。まぁC/C++だと、わざと巨大なデータを渡すことで、脆弱性を突くなんてことにもなりかねないんで、やばそうではある。

static final定数の埋め込み

なるほどね、static final定数の埋め込みには、こんな弊害もあるのか。

夕焼け

連休中は台風で散々だったけれど、今日はきれいな夕焼けが見られた。ケータイで何枚か。SYLKYPIXのJPG現像で、レタッチしてみた。






猫ページ

猫ページ更新完了。

ce-scroll

Meadow3では、physical-line-modeの代わりにce-scrollを使えばいいみたいだ。でも、なんかC-vでページダウンした時に余計に進んでしまう感じ。とりあえずce-scroll.elの中のce-scroll-upとce-scroll-downへのバインディングを外してみたら、いい感じ。

;;(define-key global-map [next] 'ce-scroll-up)
;;(define-key global-map [prior] 'ce-scroll-down)
;;(define-key global-map "\C-v" 'ce-scroll-up)
;;(define-key global-map "\M-v" 'ce-scroll-down)

invariant

うーむ、ロングマンに載ってない。英辞朗には載ってた。英辞朗エライ。

休止状態移行に失敗するバグ

「システム リソースが不足するため、API を終了できません」ってなるやつ。
知らないうちにちゃんとしたfixが出てた。前は「何が起きても文句言いません」みたいな文章にサインが必要で、怪しかったのでやめたのだけど、今回は早速導入してみた。後でノートにも入れておこう。いやノートは仕事用だし。デスクトップで様子を見てからだな。

[備忘録] XPでZIPサポートをoff

やじうまWatchから。ファイルを一個消すだけで1分かかったりする病気には効果あるんだろうか。

regsvr32 /u zipfldr.dll
regsvr32 /u cabview.dll

[備忘録] FindBugsのメモリ

サマリを作成する処理がメモリを結構使うらしい。findbugs.noSummaryでdisableできる。

findbugs -jvmArgs "-Dfindbugs.noSummary=true" -maxHeap 800

SYLKYPIX 3.0

更新されていた。現像の時のプレビュー画面が速くなってる。JPGに保存できるしアンシャープもかけられるから、もうPhotoShopを立ち上げることも無くなった。

super PI

試しにsuper PIを実行してみた。104万桁で17秒。すごいね。104万桁だよ。昔の8bitマイコンじゃ単に104万回、から回りするだけでも、このくらいかかってたよ。そういえばマーチンの式(だっけ?)で計算に挑戦した覚えが。BASICだったから3桁計算するだけでも、えらく時間がかかったような。

PI=3.

1415926535 8979323846 2643383279 5028841971 6939937510
5820974944 5923078164 0628620899 8628034825 3421170679

今でも、少数点以下30桁までは覚えていた。どーでもいいことは忘れないもんだ。

Meadow3

う、physical-line-modeが動かない…

開きすぎ

Boolean

知らなかった。1.4まではComparableじゃなかったのか。

Eclipse-3.2

djUnit、とっくの昔に対応していたんだ。というわけでEclipse-3.2に乗り換え。MeadowもMeadow3を試用中。term/bobcatが効かなくてうろたえる。

FindBugsアノテーション

知らない内に本家のオンラインマニュアルが更新されていた…

暑い

今日は暑かった。うっとんもぐったり。

そしてオーバクロック

そういえば、昔はクロックアップとか言っていた気がするけど、英語のoverclockが定着したね。こういうケースって珍しいかも。定格は2.4GHzのところ、3GHzにオーバクロックしてみた。何事もなく動作する。ただ鎌斬だとCPU温度が70℃を超えるので、Intelのファンに交換。50℃程度に落ち着いた。やっぱり鎌斬ダメだな。ファン騒音もほとんど変わらないし。というかIntelファンだと温度に応じて自動調整できるし。

SILKYPIXの現像が、とてつもなく速くなった。XP 3000+のころより5倍以上速い感じ。2-3秒で終わってしまう。そしてWoWもまったくストレスなし。遠景の描画が省略されなくなったので「あ、こんなところに難破船が」なんて気づくことも。意味もなく。ぐるぐると回ってみたり。そういえば良く、スピンしているプレーヤを見かけるんだけど、こういうわけだったのか。一番うれしいのが休止状態への移行が高速で安定していることかな。なんか2-3秒でHDDへの保管が終了するんですけど…。そんなにメモリを使ってないからか。残念ながらスタンバイ(S3)は、まともに動かなかった。

Core 2 Duo

買って来た。こんな感じ。

E6600
Gigabyte GA965P-DS4
Leadtek Win Fast PX 7600(Dual DVI/Fan レス)
Seagate 320GB HDD
No Brand DDR2 PC-800 1GB x 2

メモリの値段が上がり始めていたのが想定外だったけど、メモリの価格は先が読めないので、待つのはやめて購入。本当はDS3の予定だったんだけど、展示されているマザーを見ていたら、DS4の銅きらきらに目を奪われて、結局DS4にしてしまった。ツクモさん商売うまいね(ま、2k円程度しか違わないわけだが)。昔Athlonで使い物にならなかったCPUクーラ、鎌斬をつけてみた。なんかBIOS画面で、50℃くらいあるな。もっともBIOS画面ってCPUはビジーウェイトしてフル回転しているから、こんなものか。Athlonだと60℃こえてたし。

Windows2000だと、不具合があるらしいので、XPを導入。認証終わってから、IntelのINFとか、チップセットドライバとかいっぺんに入れたら「システム構成が、あまりに変わったので、もう一回認証してください」とか言われる。で、結局電話認証。む〜。認証しないとパッチもダウンロードさせてくれないから、最後に認証ってわけにはいかないしな。ドライバ、いっぺんに入れずにこまめに再起動しろってことか。めんどいな〜。

c:\Documents and Settingsの場所を変えたくて(何しろ、ここがぶくぶくと太って、いつもC:がいっぱいになってしまう)、いろいろやっていたら、なんかコンパネの管理ツールの中がからっぽになってしまった。というわけで、またインストールし直し。また電話認証になったらやだな〜。さすがに怪しまれるんじゃ ^^;

FindBugs-1.1.0

RC2が出た。1.1.0からかなり変わっているらしい…

FindBugsアノテーション

DocBookの勉強がてら、FindbugsのマニュアルにFindBugsアノテーションの解説を追加してみた。本家にも送ってみたけど、取り入れてもらえるかどうか分からないので、ここにも置いておく(すんません、英語版しか用意してないです)。

Oracleのdualさん。

なんでダミー表がdualって名前なの?

PL/SQLでassertEquals()

  PROCEDURE assertEquals(expected NUMBER, val NUMBER) IS
  BEGIN
    if expected <> val then
      raise_application_error(-20001, TO_CHAR(expected) || 'の期待値に対し、実際は' || TO_CHAR(val) || 'でした。');
    end if;
  END assertEquals;

みたいなのを無邪気に書いていたのだけど、これってnullが暗黙変換で0に変換されてしまうので、assertEquals(0, null)みたいなのが通ってしまう。ちゃんとnullかどうか判定しないとだめだ。assertEquals(null, null)はどうすべきなのかな。

  if (expected is null) <> (val is null) or
     (expected <> val) then

3値論理的にはfailさせた方が安全なのだろうか?

PL/SQLで感心したこと。

procedure foo(
  data char
)
is
begin
  if data = '123' then

みたいにcharで受けると、dataに'123  'のようにスペースが入っていても条件成立する。

procedure foo(
  data varchar2
)

のようにvarcharで受けるとスペースが入っている場合には条件成立しない。なるほどねー。

アノテーションを付ける先の総称は。

アノテーションってクラスに、インターフェース、フィールドやメソッドからローカル変数、パッケージにまで付けられる。これって総称は何だろう。「このアノテーションが付けられたxxxは」のxxxには何と書くべきか。やはり「ターゲット」かな? 「対象」でもいいか。

@NonNull

enum Foo {
    A, B
}

public class Test {
    public static void main(String[] args) throws Exception {
        EnumMap map = new EnumMap(Foo.class);
        map.get(null);
    }
}
$ findbugs.bat -low -textui Test.class
H C NP: Test.main(String[]) でnullをメソッドに渡していますが、この引数は java.util.EnumMap.get(Object) で@NonNull宣言されています。  Test.java:[line 10]行目
Warnings generated: 1

あれ? 何で標準ライブラリのEnumMap.get()にFindBugsの@NonNullアノテーションが付いてるの? と思ったら、FindBugs内部で、こんなことをしていた。

addMethodParameterAnnotation("java.util.EnumMap", "get", "(Ljava/lang/Object;)Ljava/lang/Object;", false, 0, NullnessAnnotation.NONNULL);

しかしEnumMap.get()はAPI仕様書に、引数がnullの場合の挙動が書かれていないので、微妙だ。現在の実装はnullだったらnullが返るようだが、そもそもEnumにnullのメンバなんてあり得ないんだから、null引数ならNPEって仕様にしておけば良かった気がする。Map.get()にもNPE投げてokって書いてあるんだし。

猫ページ

猫ページ更新完了。

Windows

思いたってJava 5のrt.jarをFindBugsでチェック。CPUを思いっきり使うので「通常以下」にプライオリティを変更。でも、何の拍子にか分からないが数分後にシステムが地を這うような遅さになる。しょうがないので「低」に変えようかと思ったがShift+Ctrl+Escをいくら押してもタスクマネージャが出てこない。こういう時にすぐ出てきてくれないと意味ないよ…。FindBugsを止めてみたらタスクマネージャが10個くらい出てきた。って遅すぎ。
何かを思い出した。あれだ。渋滞の中パスを待ってたらなかなか来なくて、やっと来たと思ったら同じ行先のバスが3台くらい連なってやってくるってやつ。

昼食は鳥

近所の宮崎地鶏のお店が閉店になってしまって、自分の知っている、おいしい鳥料理のお店が1つ消えてしまった。今日は、家内のお勧めで葡萄屋に行ってきた。ランチは4種類くらいあって「とりめし」を注文。丼ぶりに焼鳥が乗っているだけなので、見た目的には「なにこれ」なんだけど、この焼鳥が、すごくおいしい。夜はちょっと高めだけど行ってみたいな。大森にもあるようだ。

帰りにソフマップに行こうとしたら、ビックカメラになってた。そういえば買収されたんだっけ。

PL/SQL

ようやく慣れてきたかな。JUnitもどきを実装するのに、手こずってしまった。

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