執筆日記5
= Meadowに入れたインデントを外す関数の名前がmyunindent-regionで、 M-x myuってうちながら「まいうー」と言っている自分に気がついた。
ローマ字で書いてみると「みゅ」だなぁ。
= Java歴2年ちょいの僕がJavaがらみの本を書いていていいのだろうか、と思う瞬間。 「Javaの「==」は同じインスタンスかどうかの判定で、同じ値かどうかの判定にはequalsを使う」 というようなことを何かで読んだような気がしていたのだけど、どうもそう簡単ではなさそうだ。 Javaにそもそもインスタンスとして扱ってもらえないプリミティブ型があったり、 1.5からauto-boxingが入ったりしたおかげですごいもつれ方をしているよ。 「x == y」が真なのに「x.equals(y)」が偽のケースがあるw
Integer x = 1; System.out.println(x == 1.0); // true System.out.println(x.equals(1.0)); // false
どうしようこれ。 「==」の実装がどこに書いてあるのかがわからないのだけど、 少なくともequalsの実装はObject型を受けるようになっていて、 そこでauto-boxingでFloatに変換されるため、その続きの 「instanceof Integer」というチェックではねられてしまう。 これIntegerじゃなくてNumberでテスト&キャストすべきなのでは? Java1.5の実装のバグという結論でいい?
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}
あっ、ダメか。IntegerをNumberに変えた場合、
Integerの1とdoubleの1.1を比較したときに1.1を切り捨ててから比較するから正しくない挙動になる。
じゃぁinstanceof Doubleとかも全部作るべきなのか?
= 先日の日記の通り、Jy.tojavaが@deprecatedなのはバグだと思うわけですが、 それでもEclipse上でJy.tojavaを使うと 「メソッド tojava(PyObject, Class) は型 Py で使用すべきではありません。」 と怒られてしまいます。当たり前。 「これはバグだから使っていい」と説明すべきか、華麗にスルーすべきか…。
まぁ「使っていい」路線はメソッド名に打ち消し線が出ているのを無視した上で 「@SuppressWarnings("deprecation")」で警告を消す訳なので正直やりたくないわけですが。
= KaradaScanのウェブでなんかやってるやつが1ヶ月間無料と書いてあったので試してみる。 とりあえず「ウォーキング de ダイエット「目標体重までマイナス5キロ」クラス」に所属してみる。 やった、20台で歩数1位だ!僕と27歳主婦の二人しかいないけど!
千葉県内ランキングだと11人中9位で、一つ上の人とは1万歩差。 土日の間にこの人より1万歩多く歩けば勝てるのか…。
「日本縦断にチャレンジ」 「沖縄を出発しました」 「あと660kmで鹿児島に到着します」 ちょっ、直線距離?沖縄から鹿児島まで海上を歩くの? 敷居高すぎ。 「山手線一周にチャレンジ」とか「淡路島縦断にチャレンジ」とかがいいなぁ。 山手線一周は40キロくらいらしい。 僕の今のペースでも1ヶ月で一周できる。
まぁ、無料期間が終わったらそのままやめそうではある。 そんなことよりCSVで出力してExcelで差分を取ったり散布図書いたりするのが面白い。 もっとデータが欲しいけどいくら頑張っても1日1個しか増えないしなぁ。 年末年始は実家に持って帰る気まんまん。
= SVNでバージョン管理しているファイルの移動が面倒だと思っていたけども、 右ドラッグすればいいことに今頃気がついた。
= 子供の名付け(命名)DQN度ランキング 名前:美し姫(うつくしき)。
関連性のある名前 美姫ルジル(みきるじる)ちゃん, 美姫(びっぷ)ちゃん, 美姫(びゅーてぃー)ちゃん,美姫(みっふぃー)ちゃん,美姫(みひ)ちゃん,(以下略)
…。
= お茶をコップに入れたらなんだか濁っていて、 「朝沸かしたまま放置したのがよくなかったのかなぁ」 と思いながら飲んでいると下の方に白いもやもやが!
そういえばさっきこのコップで牛乳を飲んだんだった!(ぉ