クラッシュして2時間分の作業がぱぁになりました。こまめに保存していたのですが… ちょっとした隙にやられました(なんか間違っている…)。ノートパソコンにつなげたUSBマウスはことごとく調子悪くなるし、モチベーションさがりまくりです。どうなっているんだー、状態。
AC Adapter
iBookのAC Adapterのコードをまくところが壊れた。やはり買い換えの時期か、ということなのですが、Macを買うならMac Worldを待ってからがいいという話なので、待とうかと思います。というか、買っている余裕があるのか、という方が大きな問題のような気もします。とりあえずWindows Vistaマシンが不調なので、iBookの稼働率があがっているのですが、あまりお金をかけることができないということもあり、悩んでいます。やれやれ。
Party
新年会。
Work
今日はいちおう仕事始めのような気がするのですが、年末年始だらだらーと仕事をしていたので、あまり仕事始めと感じないというあたり問題があるような気がしつつあり。
VM
Perl で 8ビット CPU を作る – naoyaのはてなダイアリー
http://d.hatena.ne.jp/naoya/20080104/1199428155
昔、「CPUの創り方」という本を購入したときに、仮想マシンで用意してあげると面白そうだなぁと思ったことがあったのですが、そのままになっていました。CPUを構成する部品を全部ソフトウェアで実装するということを想像していたのですが、面倒になってやめてしまったのです。教材として使うことを想定していたので、あまり難しいことはしないで実装するにはどうすればいいのか、とか余計なことを考えていたのがいけなかったかもしれません。octopusでは、もっと単純に実現しているような感じなので、JavaとかRubyで結構簡単に実装できてしまうような気がします。どうなんでしょう。
Bird
玄関から鳥が入り込んで、家の中を飛び回って、我が家は一時騒然としました。とりあえず壁や窓に体当たりをしていたので怪我をしないか心配でしたが、2階の窓を開けた上で、部屋へ追い込んだところ、なんとか出て行ってくれました。あるんですねぇ、こういうことって。
Generics
InfoQ: クロージャとJavaらしさの維持
http://www.infoq.com/jp/news/2007/12/closures-preserving-feel-of-java
クロージャについても興味深いですが、Genericsの導入は失敗だったという主張の方がもっと気になります。シンプルな文法だというのが大きなメリットであったJavaですが、Genericsの導入によって、複雑で覚えにくい言語になったといえば、それは確かにそうです。クラス、オブジェクトだけを使ったプログラムで説明ができるのですが、実用的なプログラムを作成しようとすると、プリミティブ型を使いたくなってしまう場面がでてきます。速度を考えなければ、ある程度はかまわないのですが、明示的にプリミティブ型をつかっておいた方が良い場合がやはりあります。もちろん、コンパイラがどの程度最適化をしてくれるのかにもよりますが、確認するためにはコンパイラが生成するJavaVMのコードがわからないといけません。それはもうワンランク上の話になります。
ただ、Javaプログラムを作成するにあたって、定型的なキャスト操作をしなくて済むという意味ではGenericsは役に立つし生産性を高めていると思うので、失敗といっていいのかは疑問です。Javaの不思議はひとつ増えてしまっていますが、利点の方が大きいように個人的には思っています。どれだけ弊害があるのかをきちんと検討していないからかもしれませんが、Genericsが導入されたおかげで、型について安全性を保てるようになったのは、やはり便利だと感覚的に感じているからです。