2007-06-01から1ヶ月間の記事一覧

日付時刻を使いやすくするためにはDateで全部できなきゃだめだよね

いろいろ考えると、結局、そういう結論になりました。 ようするに、Dateクラスのメソッドのdeplicatedが全部はずせればいいんです。 で、国際化のために、コンストラクタを使わずgetInstanceとかstaticメソッド用意する。 static Date getInstance(); static…

可能無限・実無限という言葉は1998年以降に現れたのか

弾さんのブログで、茂木さんの「可能無限」についてのツッコミがあった。 茂木は可能無限を以下のように定義している。 フューチャリスト宣言 p.156 最近のマイブームに、「可能無限」という概念があります。もともと数学用語で、自然数を1、2、3...と数えて…

Calendarがどうやったら使いやすくなるか

ようするに、Calendarの使いにくいところは、必ずCalendar用の変数が必要になるところです。 日付の設定の場合は、setのかわりにDateを返すgetを用意すれば便利です。 Date get(int year, int month, int date) そうすると、次のように日付を指定してDateが…

DateFormatがどうやったら使いやすくなるか

結局のところtry〜catchを書かないといけないということは、プログラムの書きにくさに直結します。 3行もコードが増えて、インデントがひとつ深まります。変数の定義が遠くtryブロックの外に追いやられたりもします。 ということで、例外を投げないparseメソ…

日付時刻の扱いにJavaの難しさが凝集されている

日付がわかっててDateクラスのオブジェクトが得たいとき、一番便利なのはDateクラスのコンストラクタに日付を渡して「new Date("2007/6/28")」とすることなんですけど、このコンストラクタは非推奨になってます。 でも、日付からDateオブジェクトを得る方法…

無限ループはdo〜whileに展開されるわけじゃない

すんません、バイトコードのほうをちゃんと見るべきでした。 trueでの条件分岐は最適化で省略されるようです。 というわけでfor(;;)などは結局、無条件ループのバイトコードになるのですが、無条件ループに対応するJava命令がないので、jadはdo〜whileで表示…

無限ループはdo〜whileに展開される

Javaでの無限ループ for(;;){ System.out.println("aa"); } や while(true){ System.out.println("aa"); } は、コンパイルされるときに do{ System.out.println("aa"); } while(true); に展開されます。Java6+jadで確認。 無限ループの実行速度がちょっとだ…

Java基礎セミナー終了

終わりました。 基本的に、最適化の話。 APIの話はできなかった・・・ 日本 Java ユーザグループ 第 1 回 Java 基礎セミナー

スレッド内でメモリが足りなくなったときの怖い話

こんな感じのプログラムを実行すると、OutOfMemoryError出ますね。 public static void main(String[] args) { List<List> l = new ArrayList(); for(;;) l.add(new ArrayList()); } ところが、こんな感じでスレッドに入れてあげると、静かに終了します。 public s</list>…

グラフィック系のプログラムは楽しい

ということで、最近グラフィック系のプログラムしてるんですけど、APIとか環境とか、そういうことにあんまりとらわれず、やりたいことを実現する方法だけ考えればいいので、すごく楽しい。 APIとかプロトコルとか、そういう人為的な制約はなくて、自然の制約…

2次ベジェ曲線から3次ベジェ曲線への変換

点p1と点p2を通って、中間の制御点が点sになる2次のベジェ曲線を3次のベジェ曲線に変換するときの制御点v, wは、それぞれp1〜a,p2〜aの2/3の点になる。 つまり、2次ベジェ曲線のオブジェクト new QuadCurve2D.Double( p1x, p1y, sx, sy, p2x, p2y) は、次の3…

ユメのある科学とユメのない科学

ちょっと前に、初心者でまだプログラムが書けない人が、あてずっぽうで「その書き方で期待通り動いたら、世の中変わるね」というコードを書くことがあるって書いたんだけど、科学をよく知らない人が「その理論が実現するなら世の中が変わっちゃうユメのある…

「JavaからRubyへ」について書くと

角谷さんにブクマされるらしい、という情報を得た http://yoshiori.org/blog/java/ 「買ったけど読んでない」 とか 「買ったことも忘れていた」 とか 「RubyよりDelphiだよね」 とか、とりあえずwktk JavaからRubyへ ―マネージャのための実践移行ガイド…

コンセントからの情報漏えいをブロック!

via 404 Blog Not Found:新カテゴリ - ニセ情報科学 コンピュータは電源をコンセントに差し込んだ瞬間から機密情報は丸裸になっているらしいので、ブロックする必要があるらしいです。 ところで、アナログとデジタルの周波数の境界ってどこ? 車いすでも気軽…

SubstanceプラグインはNetBeans6からは使えない

川崎あたりのユーザーを増やすためのプラグインとして有名なSubstanceプラグインですが、NetBeans6でのAPI変更により、同じ機能の実現が難しくなったようです。 http://weblogs.java.net/blog/kirillcool/archive/2007/06/substance_modul.html

ホイールでのスクロール

Visual Libraryでは、標準だとホイールでスクロールできない。 org.netbeans.api.visual.widget.SceneComponentのソースを書き換えて、addMouseWheelListenerの行をコメントアウトするのが一番楽。 と思ったけど、こうやってWheelListenerを取り除くのがいい…

Twitter、ID変えた〜

http://twitter.com/nki

オレ幸せすぎワラタ

http://maker.usoko.net/nounai/r/id%3Anowokay

Java6のJDBCドライバでもWebの場合はClass.forNameが必要

Java6からは、JDBC使うときのClass.forNameが不要になったということなんですけど、Webの場合は結局必要ですね。 Tomcat6だと大丈夫だったりするのでしょうか?

話す冥利、聞く冥利

もう一冊はこれ。エッセイ。 話す冥利、聞く冥利 (知恵の森文庫)作者: 永六輔出版社/メーカー: 光文社発売日: 2005/09/06メディア: 文庫この商品を含むブログ (1件) を見る ひとつの文章が、1ページとか、短ければ5行とか、ものすごく短いので、細切れの時間…

夢をかなえる勉強法

まずはこれ。基本的には受験勉強の本。でも、普通に読書法とか考え方の本としても、悪くない感じ。 夢をかなえる勉強法作者: 伊藤真出版社/メーカー: サンマーク出版発売日: 2006/04/01メディア: 単行本購入: 10人 クリック: 67回この商品を含むブログ (109…

立ち読みで全部読んじゃった本は、人に紹介しないとダメだよね

終電逃しちゃってて、なんとなく歩いて帰ったんだけど、ずっと歩くと飽きてくる程度の距離はあるので、途中でコンビニに寄って、本など立ち読みしてたらつい全部よんじゃった。 全部よんじゃうってことは、そこそこいい本だったってことなので、これはやっぱ…

大規模開発のコードの複雑さ

大規模開発になると、コード自体は難しくなくなっていくんじゃないかと思ってるんですが、そこんとこどうなんでしょう?

グリッドの描画

グリッドの描画は悩ましい。 一定範囲だけ描画できればいいというのなら簡単なんだけど、背景に画像や模様を指定しつつ全面にグリッドを描画したいとなると、非常に難しい。 全面にグリッドを描画するためにはSceneにsetBackgroundするのが一番手軽なんだけ…

無限のルート

問題 結城浩の日記:ルートの無限入れ子クイズ 難しい 404 Blog Not Found:√2√2√2... 簡単 http://ueshin.happy-camper.st/archives/2007/06/post_260.html

Winnyでの情報漏えい事件っていうのはつまり・・・

問題のある人気ソフトのメンテナンスを放置させるとこうなるという例でしかないのですね。

locationとprefferedLocation

prefferedLocationで指定するとLayoutによって適切な位置にlocationが設定される

Visual Libraryをまともに使おうと思ったらソース書き換えないと無理

Borderの描画順や、位置・サイズが変わったことの追跡など、ソース書き換えないと対応できないものがあります。

prefferedSizeは無意味

基本的に使われてなく、ResizeActionで変更されるわけでもないので、まったく使い物になりません。 prefferedBoundsを使います。

Visual Libraryでグリッドにあわせて移動

グリッドにあわせて移動するだけなら、SnapToGridMoveStrategyを使ってActionFactory.createMoveActionすればいいんだけど、ctrlキーを押したらグリッドを無視するような、よくありがちな処理をやろうとすると、SnapToGridMoveStrategyどころか、MoveAction…