Java

double checked locking の理解を今頃している

double checked locking が(Javaでは)ダメっていうのを、メモリモデルがどうのという理由でわかってはいたけど、細かいところをちゃんと把握していませんでした。http://www.ibm.com/developerworks/jp/java/library/j-dcl/index.html上記の記事を読んでやっ…

誰がこのファイルに書き込めと...

ちょっとした、Tipsだけど、Javaのコマンドラインオプションには、-Xbootclasspath, -Xbootclasspath/a, -Xbootclasspath/p とかがある。-Xbootclasspath/p とかつかうと、Javaのrt.jarとかに定義されているクラスより 前 にクラスパスを設定できるので、色…

もちょっと改善

先日、RandomAccessFileを使って、とっても遅いプログラムを書いたが、もう少し改善して、40秒ぐらいで終わるようになった。ディスクアクセスをちょこちょこ改善しているだけなんだが、やっぱ、Diskとメモリの速度の差は大きいねぇ。これ以上に早くするには…

RandomAccessFile を使い過ぎました...

ファイルを読み込んで、それをパースして、単語を切り出して... みたいにやってたら、あっさりOutOfMemory でJavaVMがお亡くなりになりました。まぁ、OutOfMemoryはほぼ予想していたので、次は、幾つかファイルに情報を保存するようにしてテストコードを書い…

Luceneのメモ

IndexReaderの getTermFreqVector で TermPositionVector を取得するにはIndex作成時に TermVector.WITH_POSITIONS_OFFSETS を指定しておく。 Document doc = new Document(); Reader r = <some reader instance>; ... doc.add(new Field("contents", r, TermVector.WITH_POSITIONS</some>…

Docbook の変換でエラーが出ていた

Docbookを書いて、スタイルシートを適用して、HTMLに変換していたのだけど、エラーが出まくっていた。なのに、変換自体はうまくいっているというちょっと不思議なエラーだった。エラーの出力はこんな感じ。こんなのが山ほど出る。 [Error] autoidx.xsl:20:31…

GCで止まらないように

TheServerSide.COM - http://www.theserverside.com/ - の記事で、ガーベジコレクションについての記事が出てたので、読んでみた。ほぼ既知だけど、確かに意識しないと忘れちゃう内容かも。 自分なりにまとめてみると: ガーベジコレクションの速さは、オブジ…

Eclipse 3.1 の使用感

Eclipse 3.1 にバージョンをあげてしばらく使っているのだが、正直言うと 3.0 の方がよかった気がしなくも無い。既に、FAQとかできているのかもしれないけど、今、気がついているあたりだと... 良く分からない黄色いハイライトが入る。メソッドで同じやつを…

OpenSearchDescription

を扱えるようなクラスを作成中。扱えるといっても、単にsetXxxxで値を設定して、Readerでそれらを組み合わせたのをXMLとして取り出せれば今のところよいので、その程度である。 http://opensearch.a9.com/spec/opensearchdescription/1.0/ であるようなXMLが…

URLの途中の拡張子は省略したいな。

また、さっぱり更新が滞ってしまった。ここしばらく、アーカイブファイルの拡張子を省略する方法などをやり直していた。最初の方法を直したのだが、ファイルサイズが増えると極端にファイル取得に時間がかかるようになっていたため、その辺を修正した。 ブラ…

Archteaとして

少し前から、SourceForge.net ( http://sf.net/ ) で Archtea というプロジェクト名でコードを公開している( 右上に Archtea ( http://archtea.sourceforge.net/ ) へのリンクを作成している)。さきほど、version 0.3 (適当に Version番号付けてるけど...) …

OpenSearch

というのがあって、http://a9.com/ から辿れる http://opensearch.a9.com/ というところに説明が色々書いてある。存在自体は知っていたので、読んでみた。サーバ側はシンプルなXMLを返すようになっていて、それを OpenSearch Aggregators というやつが集めて…

拡張子がtbz2のファイルが残る件のデバッグをしてみた。

以前に、vfsで、tbz2 を扱うとファイルを open しっぱなしではないか?という疑いがあったので、調べてみた。デバッグといっても、大体こんな風だ。 1. 現象の把握 現象を軽くまとめると次のようになる。 hoge.tbz2 というファイルを利用すると、closeしても…

Commons VFS のリソース開放

tar.gz か、tgz のどっちだったか忘れてしまったが、vfs_cacheというディレクトリを作成して、その中に一時ファイルを作成していた。が、プログラムが終了しても開放されない。FileObject.close() を呼び出しても効果がなくて、いろいろ調べていたのだが、結…

Commons-VFS を使ってみた。

Jakarta プロジェクト ( http://jakarta.apache.org/ ) の Commons-VFS ( http://jakarta.apache.org/commons/vfs/ ) を試してみた。最近、Commons Proper ?に昇格になったらしい。 このコンポーネントを使うことで、zip やら tgz とかの中身を共通のインタ…

設計変更完了

とりあえず、予定していた変更を完了してメモリ使用量の増加は押さえることが出来た。そもそもが、以前は、ツリー構造のデータをそのままもっちまったので、当然それが開放されない限り、そいつらはどうしようもなかった。今回は、ここのツリーでは、他の子…

テストが軒並み失敗(30%ぐらい)

ちょっと書き換えをやっている為だが、さすがに萎える。問題点のテストをやったのだが、確認したところでは、それほど増大していた訳ではないようだ。想定の範囲内というやつだ。別の場所がOutOfMemoryに寄与しているようだということはわかったのだが、やは…

自分で凹む

ちょっと、ほしいなって思うものがあって(俺ウェア?)、ここしばらくコードを書いていたのだが、最初のころの見通しの甘さを思い返すと、やぱーり凹む。とりあえず、雰囲気で動かしてみてそれなりに動くのだが、あらかじめ気が付いていた欠点があっさり露呈(…

Luceneで日本語ハイライト (その2)

日本語のハイライト処理を行うと TokenGroup.addToken で ArrayIndexOutOfBoundsException がスローされるのを調べてみた。これが発生するのは、1つの TokenGroup に沢山の Token が入ることが原因だ。デフォルトでは50 で変更不可だ。そして、Token を別の …

Luceneで日本語ハイライト

Lucene は、日本語が使える N-Gram の CJKAnalyzer が利用でき(ソースコードリポジトリのcontribから取得)、日本語のIndexも作成できた。とりあえず、検索とかもテストしたが使える感じだ。うまく、検索できるならば、サマリも先頭からとかではなく、キーワ…

しまった。

テストケースを書いていて、誤って、カレントディレクトリを指定してしまい、運悪くそれを利用するコード(というか、LuceneのIndexer)が、そのディレクトリのファイルを削除するらしく、いくつか削除されてしまった。運良く、利用しているファイルを削除でき…

パーサ作りは向いてない。

HTMLのタグを取り除いて単なるテキストにしようと思っていろいろやってみた。Luceneというやつのデモを見るとJavaCC を利用していたが、情報系?の一般知識が足りないので、パーサを作るとかいう場合に用語が分からず難しい。というか全く分からん。はっきり…

Eclipseが拾う NullPointerException

相変わらず、Tomcat を Eclipse から起動すると NullPointerException が throw された段階で止まる。毎回止まってたのでどうにかならないかをもう少し真剣に調べてみた。止まったときに、自動的にデバッガが起動し、表示の内容が変わる。この時のメニューを…

Maven

maven( http://maven.apache.org/ ) がどのようなものか、少し調べてみた。Jakarta プロジェクト で開発が進められている(ソフトウェア)プロジェクトの管理(ビルド?) ツールだ。いまのところ、Javaアプリ用という感じだ。 Javaのアプリケーションのビルドは…

WebUIのテーマ

とりあえず、WebサイトのテーマについてGoogleで検索してみる。 tDiaryのテーマ default のテーマに解説がのっていそうだ。また、それをみれば、大体の様子はわかるだろう。みたかんじ、cssのファイルと、そこから参照する画像で構成されていればよさそうだ…

UI

簡単な、Webアプリを作るような場合、見た目のデザインをいじりたいと思っても、手でCSSを入れてるのは、面倒だ。最近はJSFとか、その他色々、JavaアプリのWebUIについての技術も出てきてるけど、全く使ってないし。普通の、WebUIのCSSについては、きっと、…

NullPointerException

が発生して何が原因か調べていた。設定とかをXMLで扱ってみたくて、XMLBeans を利用するようにしたのだが、Eclipse から Tomcat を起動するようにしていると、NullPointerException を拾って実行が途中で止まる(Suspendする)。TestCase で実行する分には全く…

Java XML Binding

Java XML Binding について軽く調べたのでメモっておく。 Javaで、XMLを扱う方法はいろいろあるけど、SAXやらDOMというので、アプリのデータを扱うのは、面倒なので、後回しにしていた。が、そろそろ、どんなもんか軽く勉強しとくかと思って、調べてみた。私…