torutkのブログ

ソフトウェア・エンジニアのブログ

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

finalizeとJavaヒープメモリ

JavaのGUIアプリケーション(ネイティブライブラリ使用)をしばらく実行していると、だんだん重くなり、JavaヒープメモリをJDKのjconsoleツールで調べると、上限に張り付きFull GCが頻繁に発生してますが、グラフが下がらないという状況がありました。同じく…

java.util.regexとString.substringの性能の違いはどれだけか(続)

java.util.regexとString.substringの性能の違いはどれだけか - torutkの日記の続きです。 短い時間を測定するなら、大量にループして測定して割り算すれば・・・ 短い処理時間を測定するために、例えば1万回ループで繰り返し実行し、ループ回数で割り算する…

java.util.regexとString.substringの性能の違いはどれだけか

正規表現(java.uitl.regexパッケージ)を使った文字列切り出しと、Stringクラスのsubstringによる文字列切り出しとで性能比較をすると、感覚的には正規表現がかなり遅いと思っていました。 この2つの実行時間を測定して比べてみました。 背景 周期的に送ら…

NetBeans 7.1RC1所感

NetBeans 7.1RC1はEmacsキーバインド使用者はしばし待ち NetBeans 7.1RC1をインストールし、キーバインドをいつものようにEmacsに設定後、JavaエディタでCtrl+kを押すとNetBeansがハングアップ。以下のバグのようです。 Bug 205733 - IDE locks up after usi…

JavaFX 2.0最初の一歩

最近ちょっと話題になっているJavaFX とは 非Web系Javaプログラマ(あるいはJava SEプログラマ)から見たJavaFX 2.0とは新たなGUIライブラリです。Java標準のAWTおよびSwing、Eclipseが使用しているSWTなどと並ぶもので、得意分野はアニメーション、サウンド…

Java SE 7のメソッド名で一部の日本語がエラーとなる

Java SE 6で作成していたNetBeansのプロジェクトを、Java SE 7にしてみたら、テストクラスのあちこちでコンパイルエラーが発生しました。 テストクラスではメソッド名に日本語を使っていましたが、一部の文字がJava SE 7でエラーになってしまいます。なぜか…

Windows 7のHDDキャッシュ方式

Windows 7で、HDDのキャッシュ方式としてデフォルトではライトバックを使っており、設定で、ライトスルーに変更できると各所の記事にあったので、試してみました。コンピュータの管理>ディスクの管理>Cドライブのディスクを選択して右クリック>プロパティ…

Java SE 6 Windows x86版の最大ヒープサイズ

メモ書き Windows 7 64bit版 Java SE 6 u27 32bit版 起動オプション -mx で指定可能な最大値は、-mx1582m $ java -mx1583m -jar hello.jar Error occurred during initialization of VM Could not reserve enough space for object heap Could not create th…

Sphinxのバージョンアップ(Windows)

以前WindowsマシンにセットアップしたSphinxのバージョンアップメモです。 Sphinxでドキュメント生成(Windowsでの始め方) - torutkの日記 Sphinxでドキュメント生成-図を描く(Windowsでの始め方) - torutkの日記 Sphinxは、Pythonのモジュールとして作ら…

次回の書籍投票中ーHadoopとは

現在、Java読書会BOFでは次回の課題図書の投票中です。推薦図書と投票されているなかにHadoopという名前が挙がっています。さて、Hadoopとはなんだろう? Hadoopで書籍を調べると、続々と出てきます。最近気になるJava関係の和書がほとんど出てないなぁ、と…

JAXBでJavaクラスのアノテーションでアトリビュートの順番を制御

JAXBでJavaクラスからXML schema生成 - torutkの日記の続きです。 Measureクラスのフィールドに@XmlAttributeを指定し、XMLにmarshalした際、XMLのアトリビュートの順番を制御するには、エレメント同様@XmlTypeの属性propOrderを利用できます。XMLのアトリビ…

JAXBでCalendarを任意の書式でXMLに出す

JAXBでJavaクラスからXML schema生成 - torutkの日記の続きです。Javaのクラスでjava.util.Calendar型のデータをJAXBでXMLに出力すると、XML Schema上はxs:dateTimeにマッピングされます。 具体的な出力形式は、 dateTime="2011-10-01T23:00:00.261+09:00" …

JAXBでJavaクラスからXML schema生成

Java SE 標準APIのJAXBを使うと、Javaのインスタンスの内容をXML形式で出力したり、逆にXMLファイルからJavaのインスタンスを生成することができます。JAXBは最初、XML Schema定義からJavaクラスを生成し、そのクラスを利用して実行時にJavaインスタンスとXM…

範囲を扱う

プログラミングにおいて、台数、個数、チャンネル数、金額、速度、年齢、身長といった何らかの数量を表現することはよくあることです。 こうした数量を、それぞれ個別のクラスにすることは面倒なので、大抵はint、doubleなどの基本型で表現します。表現する…

他のプロジェクトのWikiページへのリンク

Redmineは複数プロジェクトを作成することができます。ところが、RedmineのWikiはプロジェクト毎に別々に存在しており、コンテンツを共有する場合、あるプロジェクトのWikiページから別プロジェクトのWikiページへリンクを貼りたくなります。ところが標準で…

java.util.CalendarのgetActualMaximumメソッドのはまりポイント(2) - 年の最大値

id:torutk:20110629 の関連です。 Calendar theDay = Calendar.getInstance(); int maxYear = theDay.getActualMaximum(Calendar.YEAR); というコードで、カレンダーの取りえる年の最大値を取得すると、プログラムを実行した日によって値が変わるという現象…

Java SE 6 u27リリース

Oracleから、Java SE 6 u27がリリースされています。 修正したバグの一覧ページも見えるようになっています。 http://www.oracle.com/technetwork/java/javase/downloads/index.html バグ一覧は、上記ページのJava SE 6 Update 27 JDK欄のRelease Noteから、…

Java SE 7の新しいファイルI/O

今まで、なかなかJava SE 7の新しいAPIに取り組めていなかったので、ちょっとしたツールを作成する機会に、コマンドライン引数で指定したファイルを読み込むという、よくありがちなシナリオで、Java SE 7の新しいファイルI/OのAPIを試してみました。新しいAP…

FEST-SwingでSwingクラスの自動ユニットテスト(続)

id:torutk:20110131(最初の一歩編)の続きです。 次の一歩を踏み出すときの大小さまざまなつまづきを書いていきます。 Swing部品にsetNameするのが手間 ここで注意点、SwingのGUIコンポーネントでFrameFixtureから制御・状態取得したいものには、setNameメ…

ローカルファイルの更新で自動リロード

JavadocやSphinxなどのHTML生成ツールを使用しているときに、見栄えの試行錯誤を何回もすると、ブラウザのリロードが面倒に感じます。そのようなときにローカルファイルをFirefoxで開いていると、ファイルが更新されたのを検知して自動的にリロードするプラ…

NetBeans上からプロジェクトのJavadoc生成時、パッケージドキュメントへの画像貼り付けとoverview.htmlの指定

NetBeansではプロジェクト単位でjavadoc生成を行うことができますが、パッケージドキュメント(のHTML)に画像ファイル(のリンク)を書きたいときの方法、overview.htmlをどこに置いてどう指定するかの方法を紹介している記事(英語)がありました。 http:/…

2月の日数をjava.util.CalendarのgetActualMaximumメソッドで調べる際のはまりポイント

今日は6月29日です。29日というのがミソです。 #ここでもう分かったという方も多いかと思います。Javaで、2月の日数が28日か29日かを取るために、CalendarクラスのgetActualMaximumメソッドを使っています。これはその月の最大日(1月なら31、4月なら30)を…

Windows/JDK6のデフォルトフォントの変更と、論理フォントに対応する物理フォントをプログラム上で取得

JDK6 u26がこの6月にリリースされており、本日u25をアンインストールしu26をインストールしました。Windows版JDK6は、デフォルトで論理フォントにMS ゴシックとMS 明朝を使用する設定となっています。この設定(のソース)は以下ファイルです。 \jre\lib\fon…

Sphinxでドキュメント生成 - 図を描く、TeX経由でPDF(Windowsでの始め方)(続)

先月のSphinxへの取り組みの続きです。 Sphinxでドキュメント生成(Windowsでの始め方) - torutkの日記 Sphinxでドキュメント生成-PDF(Windowsでの始め方) - torutkの日記 Sphinxでドキュメント生成-PDF(Windowsでの始め方)(続) - torutkの日記 Sphin…

WiXによるインストーラ作成(続)

以下の日記の続きです。 WiXによるインストーラ作成 - torutkの日記 アプリケーションで作成するデータ(ユーザー共有)の格納用ディレクトリと、そこにアクセス権を設定する試みを行いました。WiXのCreateFolderとPermissionを使う方法です。以下のドキュメ…

NetBeansのモジュールファイルをハック

NetBeansのSQEプラグインに含まれるCheckstyleのバージョンが古い(5.0-beta1)ので、新しいバージョン(5.3)にどうやって置き換えられるかを追い求めてみました。 (2011/06/20に更新されたSQEではCheckstyle 5.3対応したようです) SQEプラグインのソースを…

Windowsのディレクトリ構成ガイドライン

Windows Vista/7 になって、ユーザーのディレクトリがC:\Users下になったり、C:\Users\\AddDataなるディレクトリが出来たり、C:\ProgramDataなるディレクトリが出来たり、といろいろな変化があります。また、C:\Program Filesの下にインストールしたプログラ…

WiXによるインストーラ作成

Windows OS上で、MSI形式のインストーラを作るには、いくつかの手段があります。以下記事などに詳しく紹介されています。 あなたのアプリにはどのインストーラが最適?(2/3) - @IT InstallShieldは有名ですが価格も高く、一番グレードの低いExpress版も10…

Sphinxでドキュメント生成-図を描く(Windowsでの始め方)

昨日までの日記の続きです。 Sphinxでドキュメント生成(Windowsでの始め方) - torutkの日記 Sphinxでドキュメント生成-PDF(Windowsでの始め方) - torutkの日記 Sphinxでドキュメント生成-PDF(Windowsでの始め方)(続) - torutkの日記 プログラミング…

Sphinxでドキュメント生成-PDF(Windowsでの始め方)(続)

昨日の日記の続きです。 Sphinxでドキュメント生成-PDF(Windowsでの始め方) - torutkの日記 Sphinxで、PDFを生成(rst2pdf)するためには、ドキュメント・プロジェクトをquickstartで作成する毎に、conf.pyの修正、make.batの修正、ja.jsonのコピーをする…