CPUベンチのとんでもない差は何? 整数演算性能が2倍になってるんですけど。
というか、こういうのってシステムコール呼び出しなんて計ってないよね。多分dhrystoneっぽい感じの演算性能だと思うんだけど、OS関係無いじゃん。使われてるHDBENCH cloneを見ると、ソースからmakeするみたいだから、ディストロに付属しているコンパイラの性能差ってことか。にしても、えらい違いだな。
ちゃんとバージョンアップで、メモリ使用量が減って、速くなっている。こういうのが本来のOSの進化であるはずだよな。
システム => 設定 => キーボードで、レイアウトタブを選ぶと、なぜか私の環境では、レイアウトが2つ登録されていたので、1つ削除して、デフォルトのチェックを入れた。
すると、ctrl caps入れ替えで、caps LEDが点灯/消灯する問題も、VMWare使用中にShift alt ctrlが効かなくなる件も起きなくなったようだ(少なくとも今日1日、起きていない)。
と思ったら、VMWareの問題は、さっきまた起きた。ダメか。
marsさんとこにあった「Genericsの奥深さをちょっと覗いてみたよ」が、おもしろい。
Generic methodの型パラメータを、throws節にバインドできるとは知らなかった。肝は、
static void rethrowAny(Throwable t) {
RethrowDemo.<RuntimeException>rethrowInternal(t);
}
@SuppressWarnings("unchecked")
static <T extends Throwable>: void rethrowInternal(Throwable t) throws T {
throw (T) t;
}
かな。チェック例外への対処はコンパイル時に行われるから、Genericsを使って「これはRuntimeExceptionだからね〜」とだまして、InterruptedExceptionを渡す。throw (T) t;のキャストは、所詮はイレージャだから、コンパイル時のチェックのみで、実行時には消えてなくなってしまい、別にcheckcastされるわけではない。かくして、throws節無しで、チェック例外がスローできてしまうわけだ。
バイトコードを見ると、instanceof使っているんだけど、ということは、複数のcase classが継承関係にある場合、親の方が先のcaseに書かれると、マズイんじゃないだろうか。早速テスト。
abstract class Tree case class Child extends Tree case class Child2 extends Child
shanai@shanai-desktop:~/scala$ scalac CaseClass.scala
CaseClass.scala:3 error: implementation restriction: case class Child2 and case class Child cannot be combined in one object
case class Child2 extends Child
^
one error found
なるほど、出来ないようになっているわけですか。caseクラス同士は、継承関係にあってはいけないようですな。
ScalaByExampleで、末尾再帰にしてみろとのことだったので、してみた。
def factorial2(n: int) : int = {
factorialIter(1, n)
}
def factorialIter(sum: int, n: int) : int = {
if (n == 1) sum else factorialIter(sum * n, n - 1)
}
で、バイトコードを見てみる。
public int factorialIter(int, int); Code: Stack=3, Locals=3, Args_size=3 0: iload_2 1: iconst_1 2: if_icmpeq 16 5: iload_1 6: iload_2 7: imul 8: iload_2 9: iconst_1 10: isub 11: istore_2 12: istore_1 13: goto 0 16: iload_1 17: ireturn
おぉ、ループになってますな。
P.S. Scala的には、こうかな。
def factorial2(n: int) : int = {
def factorialIter(sum: int, n: int) : int = {
if (n == 1) sum else factorialIter(sum * n, n - 1)
}
factorialIter(1, n)
}
値段がネックと見ているようだけど、どうだろう。値段的には元がとれる話だと思うんだけど。それより実際に使ってみて不満なのは、つけてすぐが暗いこと(大分改善されたけど、まだまだ)、不良品があるとショックなこと(長寿命品だからね。これまで10個くらい買ったけど、1個は不良品で1か月ほどで壊れた)、器具を痛めることがあること(うちのランプシェードは塗装が、ひび割れてしまった。どうやら紫外線が多いようで、樹脂を痛めるようだ)。
なんか駒鳥が、雛鳥を回って平等に餌を与える、みたいな説明を昔聞いた覚えがあるんだけど、Wikipediaによると、全然違うじゃん。嘆願書の署名を円状に書くっていうの、日本の歴史の教科書でも見た覚えがあるな。
VMWareの中で動いているゲストOSは問題無いんだけど、外のアプリケーションでことごとくshift, alt, ctrlが使えなくなる。
この問題みたいだ。まだ根本解決は見つかっていないけど、自分の環境では、ここに書いてあるsetxkbmapの実行で、回避できている。あと、Ctrl+Alt+Enterによる全画面表示をしなければ、大丈夫のようだ。
JJUG 2008 Springで取り上げた、Swing Application Frameworkの話を公開しました。サンプルやNetBeansの操作動画も一緒に掲載しましたので、当日参加できなかった方でも、読むだけで内容は大体分かるかと思います。








