2013-01-01から1年間の記事一覧

エンジニアとしてプロとして、今年読んだ本(2013年)

自分はエンジニアであり、プロでありたいと思っているので、定期的に技術書を読むように心がけています。読むのと理解するのが遅いため冊数は少なめですが、それでも少しでも身につくものがあればと思って読んでいます。 エンジニアとしてプロとして、今年読…

Java 7 Update 40 で修正されたバグ

2013年9月10日に出た Java 7 Update 40 は Limited Update (セキュリティ修正を含まないバグ修正と新機能のリリース) でした。 そのリリースノートを見てみると、いくつか面白い(?)バグがあったので、調べてみました。 EnumMap: クローン時のバグ修正 En…

JavaとC#で、フィールドの初期化順序が違う (JavaプログラマーがC#でプログラムを書いて引っかかったところ その5)

C# の本を読んでいたら、クラスのフィールドの初期化順序が Java と違っていてびっくりしました。 Java のフィールド初期化順序 Java でインスタンスを作成した場合、親クラスのフィールド初期化 → 親クラスのコンストラクタ実行 → 子クラスのフィールド初期…

Java の配列要素数の上限

Java で配列を生成する際に、どこまで大きい要素数を指定できるかは、Java VMの実装によるみたいです。 なので、Oracle の Java VM ではメモリが十分にあっても、次のコードは必ずエラーになります。 int[] max = new int[Integer.MAX_VALUE]; じゃあ、メモ…

XKeymacsの話、自分の使い方

社内勉強会で使った資料を、SildeShare にアップしました。 堅苦しく話しても興味を持ってもらえないかなーと思ったので、ちょいちょいネタを仕込んでいます。 本番中、そのネタの部分に突っ込みがもらえたので、個人的には大満足です。 XKeymacsの話 from Y…

Excel に、ソースコードをシンタックスハイライト付きでコピペする方法

Excel に、eclipse や Visual Studio からソースコードをコピペした場合、シンタックスハイライトが消えた状態で貼りつけられてしまいます。 読みにくいですね。 そんなときは、一度 Word に貼りつけてから Excel へコピー&ペースト! これで、シンタックス…

Wikipedia の本文データをデータベースに投入する手順

Wikipedia の本文データは、XML形式で公開されています。 (詳しい内容は、Wikipediaのダウンロードできるデータファイル一覧 | mwSoft が参考になります) これをデータベースに投入する手順として、xml2sqlを使う方法がよく紹介されていますが、Wikimedia …

Excel から Redmine の情報を取得する方法

Excel マクロ(VBA)で Redmine の情報を取得して、表にまとめる方法を考えてみました。 よくあるかもしれない質問 Q. なんで Excel でやろうと思った? A. そこに Excel があったから。 手っ取り早く試してみたい方 サンプルを置いておいたので、こちらをご利…

「null」をフラグとして使うのは、やめた方がいい

null をフラグとして使うのは、やめた方がいいと思います。 null は、ただ変数が初期化されていないことを表しているだけです。 この意味以外で、null を使わない方がいいと思います。 null をフラグとして使う 「null をフラグとして使う」というのは、「nu…

Java7 の例外ハンドリングの改善による非互換性

ひとつ前の記事で紹介した Java SE 7 and JDK 7 Compatibility - Oracle のなかに、面白い非互換性がありました。 Synopsis: Improved Exception Handling May Cause source Incompatibility 概要: 例外ハンドリングの改善が原因のソース非互換性 Java SE 7 …

Java6 と Java7 の互換性

Java6 のサポート期限が今月末(2013年2月)で切れます。 その前に、Java6 から Java7 への移行をしなくてはなりません。 そこで参考になるのがこのページ。 Java SE 7 and JDK 7 Compatibility - Oracle 基本的に Java は上位互換があるので、 Java6 と Jav…

JavaとC#で、文字列と null を結合したときの結果が違う (JavaプログラマーがC#でプログラムを書いて引っかかったところ その4)

Java と C# で、文字列と null を結合したときの結果が違います。 // Java System.out.println("abc," + null); // C# Console.WriteLine("abc," + null); Java の場合、結果は「 abc,null 」です。 C# の場合、結果は「 abc, 」です。 文字列と null を結合…

Java で活性エラーが起きたときの x86 アセンブリコードを見てみました。

Effective Java の「項目66 共有された可変データへのアクセスを同期する」で、活性エラー*1について記載があります。 この現象が起こった時の x86 アセンブリコードを見てみました。 なお、アセンブリコードの出力は以下を参考にさせていただきました*2。 J…