<?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns="http://purl.org/rss/1.0/"
>

<channel rdf:about="http://www.canetrash.jp/">
<title>Invention Works</title>
<link>http://www.canetrash.jp/</link>
<description>Stay hungry, stay foolish.</description>
<dc:language>ja</dc:language>
<admin:generatorAgent rdf:resource="http://blog.seesaa.jp/" />
<items>
<rdf:Seq>
<rdf:li rdf:resource="http://www.canetrash.jp/article/132571047.html" />
<rdf:li rdf:resource="http://www.canetrash.jp/article/132292669.html" />
<rdf:li rdf:resource="http://www.canetrash.jp/article/132253292.html" />
<rdf:li rdf:resource="http://www.canetrash.jp/article/131626583.html" />
<rdf:li rdf:resource="http://www.canetrash.jp/article/126745019.html" />
<rdf:li rdf:resource="http://www.canetrash.jp/article/125226251.html" />
<rdf:li rdf:resource="http://www.canetrash.jp/article/117949918.html" />
<rdf:li rdf:resource="http://www.canetrash.jp/article/117191103.html" />
<rdf:li rdf:resource="http://www.canetrash.jp/article/117157246.html" />
<rdf:li rdf:resource="http://www.canetrash.jp/article/117093348.html" />
<rdf:li rdf:resource="http://www.canetrash.jp/article/117002546.html" />
<rdf:li rdf:resource="http://www.canetrash.jp/article/115758418.html" />
<rdf:li rdf:resource="http://www.canetrash.jp/article/115736356.html" />
<rdf:li rdf:resource="http://www.canetrash.jp/article/115556493.html" />
<rdf:li rdf:resource="http://www.canetrash.jp/article/108211289.html" />
</rdf:Seq>
</items>
</channel>

<item rdf:about="http://www.canetrash.jp/article/132571047.html">
<link>http://www.canetrash.jp/article/132571047.html</link>
<title>Mavenと他のツールとの連携</title>
<description>実際の開発ではmaven単体だけで使われることはほとんどなく、mavenを複数のツールと組み合わせて使用します。そのなかでもJava開発でよく使われているIDEのEclipseとの連携があります。そのほかのIDEとしてはNetBeansや、最近、無償のコミュニティ版が提供された、IntelliJ IDEAもmavenと組み合わせることが可能です。また、継続的インテグレーションツールとの親和性も高いです。EclipseとMavenの統合一番身近な例としてはEclipseとの連携...</description>
<dc:subject>Maven</dc:subject>
<dc:creator>tfunato</dc:creator>
<dc:date>2009-11-11T00:31:55+09:00</dc:date>
<content:encoded><![CDATA[
実際の開発ではmaven単体だけで使われることはほとんどなく、mavenを複数のツールと組み合わせて使用します。<br />そのなかでもJava開発でよく使われているIDEの<a href="http://www.eclipse.org/" target="_blank">Eclipse</a>との連携があります。<br />そのほかのIDEとしては<a href="http://netbeans.org/index_ja.html" target="_blank">NetBeans</a>や、最近、無償のコミュニティ版が提供された、<a href="http://www.jetbrains.com/idea/" target="_blank">IntelliJ IDEA</a>もmavenと組み合わせることが可能です。<br /><br />また、継続的インテグレーションツールとの親和性も高いです。<br /><br /><br /><h2>EclipseとMavenの統合</h2><br /><br />一番身近な例としてはEclipseとの連携です。<br /><br />Eclipseのプラグインで<a href="http://m2eclipse.sonatype.org/">m2eclipse</a>というプラグインがあります。<br />これは、Eclipse上でMavenを使えるようにします。<br /><br />主だった機能としては、mavenの設定ファイルであるpom.xmlを読み込んで依存関係にあるjarファイルを自動で取得してパスを通します。また、artifactIdと同じプロジェクト名のものがあればプロジェクト参照します。<br /><br />その他、依存jarのjavaDocやソースコードをDLしてくれたりpomエディタなど便利な機能があります。<br /><br />中でもPOMエディタは、依存関係を追加する際に該当するライブラリ名を補完したり、依存関係の一覧を表示できたりとかなり高機能です。<br /><br />m2eclipseの対抗馬でEclipse IAM (q4e)というのもあり、両者ともEclipseの公式プラグインとなるべく提案されています。<br /><a href="http://www.eclipse.org/m2e/" target="_blank">http://www.eclipse.org/m2e/</a><br /><a href="http://www.eclipse.org/iam/" target="_blank">http://www.eclipse.org/iam/</a><br />ただし、今後の展開を考えると、m2eclipseは<a href="http://www.sonatype.com/">Sonatype</a>という会社（mavenのサポート、コンサルで稼いでいる？）が開発を行っており積極的に働きかけている関係上、OSSでやってる<a href="http://code.google.com/p/q4e/">q4e</a>は分が悪そうです。<br /><br />See also:<a href="http://docs.codehaus.org/display/MAVENUSER/Eclipse+Integration">EclipseとMavenの統合についての比較</a><br /><br /><h2>継続的インテグレーションツールとの統合</h2><br /><br /> 継続的インテグレーションツールとは、問題の早期発見などに主に使われていて、何度もビルドを行い、何度もテストをするという「確実なビルドを行う」ために使われているものです。CI（Continuous Integration）と呼ばれます。<br /><br />See also:<a href="http://www.objectclub.jp/community/XP-jp/xp_relate/cont-j#n77">継続的インテグレーション</a><br /><br />有名どころでは、<br /><ul><br /><li><a href="https://hudson.dev.java.net/">Hudson</a></li><br /><li><a href="http://continuum.apache.org/">Continuum</a></li><br /><li><a href="http://cruisecontrol.sourceforge.net/">CruiseControl</a></li><br /><li><a href="http://luntbuild.javaforge.com/">Luntbuild </a></li><br /></ul><br />など、どれもmaven2をサポートしていて、mavenを連携させて簡単に設定を行うことができます。<br /><br /><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://www.canetrash.jp/article/132292669.html">
<link>http://www.canetrash.jp/article/132292669.html</link>
<title>Maven2のすすめ</title>
<description>認知度が結構あがってきてMaven2も結構つかわれてきてるのではないかと思います。でもまだまだ、Antやシェルを使ってコンパイルなどの作業を行っている人もいるでしょう。そこでMaven2を使うメリット・特徴などを書いていきたいと思います。</description>
<dc:subject>Maven</dc:subject>
<dc:creator>tfunato</dc:creator>
<dc:date>2009-11-07T23:49:21+09:00</dc:date>
<content:encoded><![CDATA[
<a href="http://maven.apache.org/" target="_blank"><img src="http://canetrash.up.seesaa.net/image/maven-logo-2-thumbnail2.jpg" width="150" height="44" border="0" align="left" alt="maven-logo-2.jpg" hspace="10" vspace="40"/></a><br /><br />認知度が結構あがってきてMaven2も<br />結構つかわれてきてるのではないかと思います。<br />でもまだまだ、Antやシェルを使ってコンパイルなどの作業を行っている人もいるでしょう。<br /><br />そこでMaven2を使うメリット・特徴などを書いていきたいと思います。<br /><br /><a name="more"></a><h2>Mavenとは</h2><br /><br />Mavenは一言では「構成管理ツール」といわれています。<br /><br />構成管理とは、ビルド、バージョン管理、ドキュメンテーション、変更管理、リリース管理、テスト等々など、ソフトウェア開発をする上で必要な作業や管理項目です。<br /><br />それらの項目をMavenというツールで一元管理しようというものです。<br /><br />Webアプリケーションを作成していく流れは、大まかに設計→実装→テスト→リリースの流れになると思います。<br />そして、ドキュメントを作成することもあるでしょう。<br />（Javadocやカバレッジレポート、メトリクスなどなど）<br /><br />その中で、Mavenが担っている主な役割は実装環境の整備、テストの実行、ドキュメント出力などがありますです。<br /><br />開発環境の整備ついて言えば、ライブラリの依存関係を数行定義するだけで必要なライブラリをダウンロードし、クラスパスを通してくれます。<br /><br /><pre class="code"><br />mvn eclipse:eclipse<br /></pre><br /><br />とコマンドを打つだけでEclipseでの開発環境は完了です。<br />煩雑なJavaのクラスパス、依存関係に時間をとられることなくスピーディに環境を整えられます。<br />これは大人数での開発の場合にも威力を発揮し開発環境の整備、共通化の管理、構築コストを抑えてくれるでしょう。<br /><br />Mavenが登場する前までは、Javaで開発するとなると依存するライブラリを取得するのもクラスパスを通すのも人が手を掛けてあげなければできませんでした。<br />Antなどを使って楽はできたのですが、都度都度build.xmlを書き換えなければいけません。人によっても書き方はばらばら。<br />また、ライブラリのバージョンに関してもそれぞれ依存関係があり、どのライブラリをどれが使っているのかわからない状態でした。<br />大規模な開発になればなるほど、複数のEclipseプロジェクトが関わるほどライブラリ間の依存関係（バージョン）についての問題が複雑化していきます。<br />（commons-langなどのバージョンの違いで問題が起きたことないですか？）<br /><br />それらの煩雑な設定項目を人手を介さないで自動・共通化します。<br />人手を介さないで自動化することによって、ヒューマンエラーを減らすこともできます。あるライブラリの1.0のバージョンを使って実装したけれども、<br />別のひとは1.1を使って実装して動かないなどの、問題もおきにくくなります。<br /><br />たびたび起こる、開発環境が壊れた場合でもMavenのコマンドで修復できることが多いです。<br /><br /><br />ドキュメントを作成するにも、それぞれの設定、定義などをしなければ出力できない状況でした。（Javadocを出すのも一苦労）<br /><br />デプロイするためのwarを作るのも一苦労。。。<br />（特定のプロジェクトに依存したシェルスクリプトを毎回書きたいですか？）<br /><br />そこを、Mavenという共通のプラットフォームでプラグイン化をしてあるため、pom.xmlに数行書く程度で出力することが可能です。<br /><br />エンジニアはわずらわしい設定や問題の対処に時間をとられることが減り、目的の作業に集中することができるようになったわけです。<br /><br />また、共通のプラットフォームとしてMavenを使うことにより知識の共有化ができ、学習コストも減りました。<br /><br />今、現在Mavenのプラグインは大変な数になっています。<br />それも、数行書く程度で簡単に使用できるのも魅力です。<br /><br /><br /><h2>Mavenの仕組み</h2><br /><br />Mavenの特筆すべき機能として、依存関係の自動設定とプラガブルな仕組みがあります。<br /><br />通常、JavaのWebアプリケーションは複数のライブラリを使って作成されます。<br />使用するにはさまざまなライブラリをクラスパスに通さないと、コンパイルできません。<br /><br />Mavenがない場合、libディレクトリを作ったりして、その中にjarファイルをどんどん突っ込んでいきます。<br />規模が小さいうちはいいのですが、Jarファイルが20～30とかに増えてくると、何がどう使われてるかわからず、管理することができなくなります。<br />ライブラリにセキュリティホールは重大なバグが見つかった場合にすばやく対処できなくなります。<br /><br />その点、Mavenは厳密にライブラリのバージョン管理をしているので、定義ファイルのバージョンを書き換るだけですみます。<br />複数のプロジェクトを一元管理し、ライブラリのバージョンを統一します。<br /><br />依存するライブラリもインターネット越しに自動で取得しローカルにJarをコピーするので取得するコストも最初の一回ですみます。<br />また、jarファイルをSubversion等のバージョン管理に含める必要もありません。<br /><br />また、プラグイン形式で機能を追加することが可能です。<br /><br />現在、Mavenで使えるプラグインはもはや数え切れなくなってきていて、<br />主要な、最低限必要そうなプラグインはMavenの本家でメンテナンスされています。<br />主なPluginの一覧：<br /><a href="http://maven.apache.org/plugins/index.html" target="_blank">http://maven.apache.org/plugins/index.html</a><br /><a href="http://code.google.com/hosting/search?q=maven+plugin+label%3Amaven&projectsearch=Search+Projects" target="_blank">http://code.google.com/hosting/search?q=maven+plugin+label%3Amaven&projectsearch=Search+Projects</a><br /><a href="http://mojo.codehaus.org/plugins.html" target="_blank">http://mojo.codehaus.org/plugins.html</a><br /><br />そのほかにも、codehaus.orgや、SourceForgeにもあったり、GoogleCode上でも<br />自作のプラグインが多数作成されています。<br /><br />これらをpom.xmlに書くだけで使用することが可能です。<br /><br />APサーバにデプロイを行ったり、変更点のレポートを出したり、TwitterにPostしたり？することも可能です。<br /><br />これらは、lifecycleという考えを元にして、それぞれのフェーズでプラグインが実行されるように定義します。<br />例えばビルド時に実行、テストを行うときに実行など。<br /><br /><pre class="code"><br />mvn package<br /></pre><br /><br />など、よく使いますが、packageというライフサイクルを実行せよという意味です。<br /><br />単体のプラグインだけの実行の場合は"："が付きます。<br /><br /><pre class="code"><br />mvn clean:clean<br /></pre><br /><br />など、mvn clean との違いは、ライフサイクルの実行か、cleanプラグインのcleanターゲットを実行するかの違いになります。<br /><br /><h2>まとめ</h2><br /><br />Mavenを使ってさくさく開発しましょう！<br />

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://www.canetrash.jp/article/132253292.html">
<link>http://www.canetrash.jp/article/132253292.html</link>
<title>忘れないようにするEclipseショートカットキー</title>
<description>覚えとくCtrl+Shift+oimportを解決。Ctrl+Alt+jJavaのコメント文の雛形を生成。Ctrl+space補完。Ctrl+oソースコードのアウトラインを表示。Ctrl+1Eclipseがよきに計らってくれる（コンパイルエラーの修正候補表示とか、ローカル変数の追加とか）Shift+Alt+bパンくずナビをJavaエディタで表示。上に出てきます。プロジェクトからパッケージからメソッドまでどれでも選択かのうでその場所に飛ぶことができます。Since 3.4Ctr...</description>
<dc:subject>Java</dc:subject>
<dc:creator>tfunato</dc:creator>
<dc:date>2009-11-07T16:04:07+09:00</dc:date>
<content:encoded><![CDATA[
<h2>覚えとく</h2><br /><br /><span style="font-size:large;"><strong>Ctrl+Shift+o</strong></span><br />importを解決。<br /><br /><span style="font-size:large;"><strong>Ctrl+Alt+j</strong></span><br />Javaのコメント文の雛形を生成。<br /><br /><span style="font-size:large;"><strong>Ctrl+space</strong></span><br />補完。<br /><br /><span style="font-size:large;"><strong>Ctrl+o</strong></span><br />ソースコードのアウトラインを表示。<br /><br /><span style="font-size:large;"><strong>Ctrl+1</strong></span><br />Eclipseがよきに計らってくれる<br />（コンパイルエラーの修正候補表示とか、ローカル変数の追加とか）<br /><br /><span style="font-size:large;"><strong>Shift+Alt+b</strong></span><br />パンくずナビをJavaエディタで表示。上に出てきます。<br />プロジェクトからパッケージからメソッドまでどれでも選択かのうでその場所に飛ぶことができます。Since 3.4<br /><br /><span style="font-size:large;"><strong>Ctrl+3</strong></span><br />移動系。さまざまなパースペクティブからエディタ、Viewなどどこでも表示。<br /><span style="font-size:large;"><br /><strong>Ctrl+Shift+r</strong></span><br />ファイル選択。正規表現により目的のファイルを選択して表示。<br /><br /><span style="font-size:large;"><strong>Ctrl+Shift+f</strong></span><br />フォーマット。<br /><br /><span style="font-size:large;"><strong>F3</strong></span><br />該当場所の実装コードへジャンプ<br /><br /><span style="font-size:large;"><strong>F4</strong></span><br />タイプヒエラルキー。<br />選択したクラスの実装コードのツリーを表示<br /><span style="font-size:large;"><br /><strong>Alt+←</strong></span><br />前回編集場所へ戻る<br /><br /><span style="font-size:large;"><strong>Alt+→</strong></span><br />編集場所へ進む<br /><br /><span style="font-size:large;"><strong>Alt+Shift+r</strong></span><br />メソッド名や変数名をリファクタリング<br /><br />とりあえず、これだけ<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://www.canetrash.jp/article/131626583.html">
<link>http://www.canetrash.jp/article/131626583.html</link>
<title>全文検索エンジンの導入</title>
<description>検証対象・PostgreSQL GIN Indexhttp://www.postgresql.jp/document/pg836doc/html/gin.html- PostgreSQLの転置インデックス・Lucenehttp://lucene.apache.org/- Javaで書かれた全文検索エンジン実績多数今回使用したソース。Senの辞書、Luceneのインデックス等は自分で作成してください。fulltextsearch-sample.zip調査データ青空文庫(http...</description>
<dc:subject>日記</dc:subject>
<dc:creator>tfunato</dc:creator>
<dc:date>2009-10-31T01:33:51+09:00</dc:date>
<content:encoded><![CDATA[
<h2>検証対象</h2><br /><strong>・PostgreSQL GIN Index</strong><br /><a href="http://www.postgresql.jp/document/pg836doc/html/gin.html" target="_blank">http://www.postgresql.jp/document/pg836doc/html/gin.html</a><br />- PostgreSQLの転置インデックス<br /><br /><strong>・Lucene</strong><br /><a href="http://lucene.apache.org/" target="_blank">http://lucene.apache.org/</a><br />- Javaで書かれた全文検索エンジン<br />実績多数<br /><br />今回使用したソース。<br />Senの辞書、Luceneのインデックス等は自分で作成してください。<br /><a href="http://canetrash.up.seesaa.net/image/fulltextsearch-sample.zip">fulltextsearch-sample.zip</a><br /><br /><h3>調査データ</h3><br />青空文庫(<a href="http://www.aozora.gr.jp/)" target="_blank">http://www.aozora.gr.jp/)</a>のデータを取り込んでそれぞれ検証した。<br />テキストデータの行ごとにレコード、インデックス作成を行い。<br />それぞれ検証を行った。<br />対象レコードは約100万レコード<br /><br /><a name="more"></a>検証はローカルのPostgresql 8.4上で行った。<br />設定はデフォルト。<br /><br /><h3>PostgreSQL GIN</h3><br /><pre class="code"><br />CREATE TABLE gin_test_table<br />(<br />  id integer NOT NULL, <br />  original_text text, -- もともとのテキスト<br />  array_text text[],  -- 形態素解析を行ったものを格納<br />  CONSTRAINT pk_test_table PRIMARY KEY (id)<br />)<br /></pre><br />というテーブルをつくり<br />GINインデックスをarray_textに張る。<br /><pre class="code"><br />CREATE INDEX gin_index<br />  ON gin_test_table<br />  USING gin<br />  (array_text);<br /></pre><br /><br />・データ件数：1162687件<br /><pre class="code"><br />select count(*) from gin_test_table<br /></pre><br />SQLでLIKE検索した場合約2分程度検索でかかる。<br /><pre class="code"><br />select count(*) from gin_test_table<br />where original_text like '%吾輩%'<br /></pre><br />※ キャッシュに乗ると2秒ほど<br /><br /><strong>・GINインデックスを使用した場合</strong><br /><pre class="code"><br />select count(*) from gin_test_table<br />where array_text && ARRAY['吾輩']<br /></pre><br /><br />大体数十ms<br /><br /><strong>◇ メリット</strong><br />・導入が比較的簡単<br />	- Postgresqlに検索テーブルを作成してIndexを張る<br />・DBFluteも使える<br />・APサーバを複数配置したとしてもDBで一元管理できる<br />・通常のSQLが使用できる<br /><strong>◇ デメリット</strong><br />・分かち書きをしたものをARRAYのカラムに入れないといけないため、形態素解析のライブラリを入れる必要がある（Senとか）<br />・転置インデックスのため検索に漏れが出る。<br />例）「吾輩」で分かち書きされているものは「吾」で検索してもヒットしない<br />（検索語句を同ライブラリで分かち書きして検索すればある程度カバーできる）<br />・最新語句の分かち書きに対応できない。<br />・形態素解析の辞書をインストールする必要がある。<br /><br /><h3>Lucene</h3><br />上記のGINインデックスで作成したテーブルのレコードをLuceneに登録した。<br />インデックス約100万件程度<br />速度は10ms程度。<br />N-Gramのインデックスを作成した。<br /><br />作り方は上のソースコードにある。<br />基本的には、IndexWriterを作成して、Documentクラスをつくって書き込む。<br /><br />検索は、逆にIndexReaderを作成してSearcherを作って、Queryを作って検索する。<br /><br /><strong>◇ メリット</strong><br />・検索結果が望むものになりやすい。<br />・インデックス作成が高速。<br />・数億のインデックス作成が可能（Wikipediaでの実績）<br />・辞書を必要としない<br /><strong><br />◇ デメリット</strong><br />・複数APサーバで運用している場合導入が煩雑<br />- インデックスは複数サーバから参照されなければいけないが、物理的なファイルなので、ファイルの置き場所を考慮しなければいけない。(Solr【Luceneの全文検索サーバ】？を導入してリモートでインデックスの参照、更新を行うことで対処。Hadoop導入)<br />・検索に引っかかりすぎることもある。<br />・Lucene独自のクエリーを使用する（学習コスト的に）<br />

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://www.canetrash.jp/article/126745019.html">
<link>http://www.canetrash.jp/article/126745019.html</link>
<title>iBATIS3のbeta2が出たのでとりあえず動くコードを書いてみました</title>
<description>iBATIS3のbeta2が出たのでとりあえず動くコードを書いてみた。トランザクション周り無視で、新しい機能としてまず、Annotationを利用した部分を動かしてみました。作成環境はEclipse3.5+m2eclipse。依存するjarファイルは勝手に取ってきてくれます。DBはH2を使ってます。サンプルコード2の頃ではXMLベースで設定ファイルが物理的に存在しないとどうにもならなかったiBATISですがJavaのコードで設定等ができるようになりました。従来DIで扱いづらか...</description>
<dc:subject>iBATIS</dc:subject>
<dc:creator>tfunato</dc:creator>
<dc:date>2009-08-29T21:00:00+09:00</dc:date>
<content:encoded><![CDATA[
<a href="http://ibatis.apache.org/index.html" target="_blank">iBATIS3</a>のbeta2が出たのでとりあえず動くコードを書いてみた。<br />トランザクション周り無視で、新しい機能としてまず、Annotationを利用した部分を動かしてみました。<br />作成環境はEclipse3.5+m2eclipse。<br />依存するjarファイルは勝手に取ってきてくれます。<br />DBはH2を使ってます。<br /><br /><a href="http://canetrash.up.seesaa.net/image/ibatis3-sample.zip" target="_blank">サンプルコード</a><br /><br />2の頃ではXMLベースで設定ファイルが物理的に存在しないとどうにもならなかったiBATISですがJavaのコードで設定等ができるようになりました。<br />従来DIで扱いづらかったiBATISですがかなり柔軟なことができるようなったと思います。<br /><br />Annotationを使ったDBアクセスですが、<a href="http://s2dao.seasar.org/ja/" target="_blank">S2Dao</a>に似た感じとなってます。<br />インターフェースのみを書いてそれをConfiguration.addMapperとすることでプロキシコードを生成して、メソッドをフックして該当処理を行うような形です。DIコンテナを意識した設計なってイメージですかね。<br /><br />実際にMapperのインターフェースですが、該当メソッドにSQLのAnnotationをつけて処理をしています。<br /><br /><pre class="code"><br />package jp.canetrash.sample.ibatis3.mapper;<br /><br />import java.util.List;<br /><br />import jp.canetrash.sample.ibatis3.domain.Emp;<br /><br />import org.apache.ibatis.annotations.Delete;<br />import org.apache.ibatis.annotations.Insert;<br />import org.apache.ibatis.annotations.Select;<br />import org.apache.ibatis.annotations.Update;<br /><br />public interface EmpMapper {<br /><br />    @Select("SELECT * FROM emp ")<br />    List<Emp> selectAllEmp();<br /><br />    Emp selectEmp(int id);<br /><br />    @Insert("insert into emp (id, name, title ) values (#{id}, #{name}, #{title})")<br />    void insertEmp(Emp emp);<br /><br />    @Delete("delete from emp where id = #{id}")<br />    int deleteEmp(int id);<br /><br />    int updateEmp(Emp emp);<br /><br />    @Update("create table emp (id integer, name varchar(128), title varchar(128)) ")<br />    void createTable();<br /><br />    @Update("drop table emp")<br />    void dropTable();<br />}<br /></pre><br />返却値のモデルへのマッピングは自動でやってくれます。<br /><br />印象として以前のIBMでの記事のiBATIS版という感じでしょうか？<br /><a href="http://www.ibm.com/developerworks/jp/java/library/j-genericdao/" target="_blank">DAOを繰り返すな！</a><br /><br />AnnotationとSQLMap.xmlとの住み分けですが単純なSQL（いわゆるCRUD）な部分はAnnotationで複雑なSQLはSQLMap.xmlで記述にわかれそうです。<br /><br />他ではは、SQLMap.xmlでのDynamicSQLにOGNLが使えるようになったことがあります。下の例でみるとわかると思いますが、JSPでの学習がそまま、iBATIS3のDynamicSQLで生かせることがわかります<br /><pre><br />&lt;iftest="title != null"&gt;<br />  AND title like #{title}<br />&lt;/if&gt;<br />&lt;choose&gt;<br />  &lt;when test="title != null"&gt;<br />    AND title like #{title}<br />  &lt;/when&gt;<br />  &lt;when test="author != null && author.name != null"&gt;<br />    AND title like #{author.name}<br />  &lt;/when&gt;<br />  &lt;otherwise&gt;<br />    AND featured = 1<br />  &lt;/otherwise&gt;<br />&lt;/choose&gt;<br /></pre><br /><br />最後に自分でSQLを生成してSQLを発行できるのですが、SQLを生成をサポートするSelectBuilderというものがあります。面白いのがSelectBuilderクラスをstatic importしてメソッド呼び出しによってSQLを生成するというものです。<br /><pre class="code"><br />import static org.apache.ibatis.jdbc.SelectBuilder.*;<br />...<br />private String selectPersonSql() {<br />    BEGIN(); // Clears ThreadLocal variable<br />    SELECT("P.ID, P.USERNAME, P.PASSWORD, P.FULL_NAME");<br />    SELECT("P.LAST_NAME, P.CREATED_ON, P.UPDATED_ON");<br />    FROM("PERSON P");<br />    FROM("ACCOUNT A");<br />    INNER_JOIN("DEPARTMENT D on D.ID = P.DEPARTMENT_ID");<br />    INNER_JOIN("COMPANY C on D.COMPANY_ID = C.ID");<br />    WHERE("P.ID = A.ID");<br />    WHERE("P.FIRST_NAME like ?");<br />    OR();<br />    WHERE("P.LAST_NAME like ?");<br />    GROUP_BY("P.ID");<br />    HAVING("P.LAST_NAME like ?");<br />    OR();<br />    HAVING("P.FIRST_NAME like ?");<br />    ORDER_BY("P.ID");<br />    ORDER_BY("P.FULL_NAME");<br />    return SQL();<br />}</pre><br />実際にSQLをJavaの文字列操作で組み立て見るとわかると思いますが相当面倒です。SelectBuilderを使うとかなり負荷を軽減して可読性があがると思うのですが、使い道が浮かびません＞＜<br /><br /><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://www.canetrash.jp/article/125226251.html">
<link>http://www.canetrash.jp/article/125226251.html</link>
<title>iBATIS3のリリース間近か？！</title>
<description>iBATIS3のリリースがどうも間近に迫っているようだ。iBATISのサイトがリニューアルしている。また、iBATIS3のドキュメントがつい先日コミットされている。http://fisheye6.atlassian.com/browse/ibatis/trunk/java/ibatis-3/doc/iBATIS-3-User-Guide.pdf#r800666まだ、実際には動かしていないのですが、SelectBuilderの機能が面白そう。他のORマッパーでこのようなやり方は...</description>
<dc:subject>iBATIS</dc:subject>
<dc:creator>tfunato</dc:creator>
<dc:date>2009-08-07T20:48:51+09:00</dc:date>
<content:encoded><![CDATA[
iBATIS3のリリースがどうも間近に迫っているようだ。<br /><br />iBATISの<a href="http://ibatis.apache.org" target="_blank">サイト</a>がリニューアルしている。<br /><br />また、iBATIS3のドキュメントがつい先日コミットされている。<br /><a href="http://fisheye6.atlassian.com/browse/ibatis/trunk/java/ibatis-3/doc/iBATIS-3-User-Guide.pdf#r800666" target="_blank">http://fisheye6.atlassian.com/browse/ibatis/trunk/java/ibatis-3/doc/iBATIS-3-User-Guide.pdf#r800666</a><br /><br />まだ、実際には動かしていないのですが、SelectBuilderの機能が面白そう。他のORマッパーでこのようなやり方は見たことがない。<br /><br />かなり柔軟に動的にSQLを組み立てられるんじゃないかと思われる。<br /><br />あと、アノテーションを使ったSQLMap.xmlなしでの実行も可能のようだ。<br /><br />長らく、更新がなかっただけにiBATIS3はどうなっているか楽しみだ。<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://www.canetrash.jp/article/117949918.html">
<link>http://www.canetrash.jp/article/117949918.html</link>
<title>GlassfishのMavenプラグイン</title>
<description>https://maven-glassfish-plugin.dev.java.net/できること後で試す* glassfish:create-domaino Create a new Glassfish domain. (Creating an existing domain will cause it to be deleted and recreated.)ドメインの新規作成* glassfish:start-domaino Start an existing Glas...</description>
<dc:subject>Maven</dc:subject>
<dc:creator>tfunato</dc:creator>
<dc:date>2009-04-23T11:24:06+09:00</dc:date>
<content:encoded><![CDATA[
<a href="https://maven-glassfish-plugin.dev.java.net/" target="_blank">https://maven-glassfish-plugin.dev.java.net/</a><br /><br />できること<br />後で試す<br /><br />* glassfish:create-domain<br />o Create a new Glassfish domain. (Creating an existing domain will cause it to be deleted and recreated.)<br />ドメインの新規作成<br /><br />* glassfish:start-domain<br />o Start an existing Glassfish domain. (Starting a non-existent domain will cause it to be created.)<br />ドメインの開始<br /><br />* glassfish:deploy<br />o Deploy JavaEE artifacts to a running domain. (Deploying to an inactive domain will cause it to be started and created if necessary.)<br />デプロイ<br /><br />* glassfish:redeploy<br />o Redeploy JavaEE artifacts to a running domain. (Cold redeployment by first calling undeploy and then deploy . Use deploy to effect a hot deployment.)<br />再デプロイ<br /><br />* glassfish:undeploy<br />o Undeploy JavaEE components from a running domain.<br />デプロイの削除<br /><br />* glassfish:stop-domain<br />o Stop a running Glassfish domain.<br />ドメインの停止<br /><br />* glassfish:delete-domain<br />o Delete an existing Glassfish domain.<br />ドメインの削除<br /><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://www.canetrash.jp/article/117191103.html">
<link>http://www.canetrash.jp/article/117191103.html</link>
<title>自分用Firefox Add-ons</title>
<description>○ Firebughttps://addons.mozilla.org/ja/firefox/addon/1843○ functions for keyconfighttp://www.pqrs.org/tekezo/firefox/extensions/functions_for_keyconfig/index.html.ja○kyeconfig 20060828○ Gmai Notifierhttps://addons.mozilla.org/ja/firefox/add...</description>
<dc:subject>日記</dc:subject>
<dc:creator>tfunato</dc:creator>
<dc:date>2009-04-09T23:08:04+09:00</dc:date>
<content:encoded><![CDATA[
<pre><br />○ Firebug<br /><a href="https://addons.mozilla.org/ja/firefox/addon/1843" target="_blank">https://addons.mozilla.org/ja/firefox/addon/1843</a><br /><br />○ functions for keyconfig<br /><a href="http://www.pqrs.org/tekezo/firefox/extensions/functions_for_keyconfig/index.html.ja" target="_blank">http://www.pqrs.org/tekezo/firefox/extensions/functions_for_keyconfig/index.html.ja</a><br />○kyeconfig 20060828<br /><br />○ Gmai Notifier<br /><a href="https://addons.mozilla.org/ja/firefox/addon/173" target="_blank">https://addons.mozilla.org/ja/firefox/addon/173</a><br /><br />○ Google Toolbar for Firefox<br /><a href="http://www.google.com/tools/firefox/toolbar/FT2/intl/ja/" target="_blank">http://www.google.com/tools/firefox/toolbar/FT2/intl/ja/</a><br /><br />○ GooglePedia<br /><a href="https://addons.mozilla.org/ja/firefox/addon/2517" target="_blank">https://addons.mozilla.org/ja/firefox/addon/2517</a><br /><br />○ Greasemonkey<br /><a href="https://addons.mozilla.org/ja/firefox/addon/748" target="_blank">https://addons.mozilla.org/ja/firefox/addon/748</a><br /><br />○ Header Monitor<br /><a href="https://addons.mozilla.org/ja/firefox/addon/575" target="_blank">https://addons.mozilla.org/ja/firefox/addon/575</a><br /><br />○ LiveHTTP Header<br /><a href="https://addons.mozilla.org/ja/firefox/addon/3829" target="_blank">https://addons.mozilla.org/ja/firefox/addon/3829</a><br /><br />○ MouseGestures<br /><a href="https://addons.mozilla.org/ja/firefox/addon/39" target="_blank">https://addons.mozilla.org/ja/firefox/addon/39</a><br /><br />○ Stylish<br /><a href="https://addons.mozilla.org/ja/firefox/addon/2108" target="_blank">https://addons.mozilla.org/ja/firefox/addon/2108</a><br /><br />○ Tab Mix Plus<br /><a href="https://addons.mozilla.org/ja/firefox/addon/1122" target="_blank">https://addons.mozilla.org/ja/firefox/addon/1122</a><br /><br />○ はてなブックマークカウンタ<br /><a href="http://miniturbo.org/product/extension/sbmcounter/" target="_blank">http://miniturbo.org/product/extension/sbmcounter/</a><br /><br />○ フォクすけといっしょ<br /><a href="https://addons.mozilla.org/ja/firefox/addon/3867" target="_blank">https://addons.mozilla.org/ja/firefox/addon/3867</a><br /><br />○ Outpuz<br /><a href="http://outputz.com/" target="_blank">http://outputz.com/</a><br /><br />○ Menu Editor<br /><a href="http://menueditor.mozdev.org/" target="_blank">http://menueditor.mozdev.org/</a><br /><br />○ Split Browser<br /><a href="https://addons.mozilla.org/ja/firefox/addon/4287" target="_blank">https://addons.mozilla.org/ja/firefox/addon/4287</a><br /></pre><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://www.canetrash.jp/article/117157246.html">
<link>http://www.canetrash.jp/article/117157246.html</link>
<title>自分用Netbeansの設定</title>
<description>● 設定ツール → 詳細 編集 → エディタの設定 行番号On■ jVi Fro NB6.xhttps://sourceforge.net/project/platformdownload.php?group_id=3653&amp;sel_platform=5290★ 設定オプション：詳細jVi Option And ConfigurationFile Modification Optionsexpandtab → オンshitwidth → ４tabstop   → ４</description>
<dc:subject>Java</dc:subject>
<dc:creator>tfunato</dc:creator>
<dc:date>2009-04-09T11:47:27+09:00</dc:date>
<content:encoded><![CDATA[
<pre><br />● 設定<br />	ツール　→　詳細 <br />		編集　→　エディタの設定　行番号On<br /><br />■ jVi Fro NB6.x<br /><a href="https://sourceforge.net/project/platformdownload.php?group_id=3653&sel_platform=5290" target="_blank">https://sourceforge.net/project/platformdownload.php?group_id=3653&sel_platform=5290</a><br /><br />★ 設定<br />オプション：詳細<br />jVi Option And Configuration<br />	File Modification Options<br />		expandtab → オン<br />		shitwidth → ４<br />		tabstop   → ４<br /><br /><br /></pre><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://www.canetrash.jp/article/117093348.html">
<link>http://www.canetrash.jp/article/117093348.html</link>
<title>m2eclipseとtomcatPluginを使っている人向け知ってるとうれしいこと</title>
<description>mvn eclipse:m2eclipsem2eclipseようのクラスパスコンテナ（MAVEN2_CLASSPATH_CONTAINER）の.classpathファイルを作ってくれる。http://maven.apache.org/plugins/maven-eclipse-plugin/m2eclipse-mojo.htmlmvn sysdeo-tomcat:m2eclipsesysdeo tomcat plugin用の.tomcatpluginをpom.xmlから作成し...</description>
<dc:subject>Maven</dc:subject>
<dc:creator>tfunato</dc:creator>
<dc:date>2009-04-08T21:36:25+09:00</dc:date>
<content:encoded><![CDATA[
<pre class="console"><br />mvn eclipse:m2eclipse<br /></pre><br /><br />m2eclipseようのクラスパスコンテナ（MAVEN2_CLASSPATH_CONTAINER）の.classpathファイルを作ってくれる。<br /><br /><a href="http://maven.apache.org/plugins/maven-eclipse-plugin/m2eclipse-mojo.html" target="_blank">http://maven.apache.org/plugins/maven-eclipse-plugin/m2eclipse-mojo.html</a><br /><br /><pre class="console"><br />mvn sysdeo-tomcat:m2eclipse<br /></pre><br /><br />sysdeo tomcat plugin用の.tomcatpluginをpom.xmlから作成してくれる。開発用クラスローダの選択を悩まなくてすむ。<br />servlet.jarが紛れ込んで動かなくなることもなくなるでしょう。<br /><br /><a href="http://mojo.codehaus.org/sysdeo-tomcat-maven-plugin/m2eclipse-mojo.html" target="_blank">http://mojo.codehaus.org/sysdeo-tomcat-maven-plugin/m2eclipse-mojo.html</a><br /><br />ちなみに今のところm2eclipseが使いやすそうだ。<br /><a href="http://docs.codehaus.org/display/MAVENUSER/Eclipse+Integration" target="_blank">http://docs.codehaus.org/display/MAVENUSER/Eclipse+Integration</a><br />まぁ、CodehausのWikiってのもあるけれど。<br /><br />追記：2009/04/22<br />現在、sysdeo-tomcatプラグインで作成された.tomcatpluginファイルには不具合があるようです。ディレクトリのデリミタが\になっていてtomcat pluginが正常に読み込むことが出来ないようです。"\"を"/"に置換することで対応可能です。いやはや。よくある話で。。。<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://www.canetrash.jp/article/117002546.html">
<link>http://www.canetrash.jp/article/117002546.html</link>
<title>mavenで美人さんが時刻を教えてくれるPlugin</title>
<description>某美人さんが時刻を教えてくれるサービスがありました。でも、仕事中はEclipseだのMavenだのをさわってて、見る機会がありません。とても残念なのです。なので、仕事をしていても某美人さんで、時刻が見たくなったときにみることができるようなものを作りました！日頃、コード書いてテストして、コード書いてテストして・・・、deployして、installして。。。そんな忙しくmavenを使っているあなた、心がすさんでいませんか？どうせなら、mavenで某美人さんが時刻を教えてくれれば...</description>
<dc:subject>Maven</dc:subject>
<dc:creator>tfunato</dc:creator>
<dc:date>2009-04-07T20:40:00+09:00</dc:date>
<content:encoded><![CDATA[
某美人さんが時刻を教えてくれるサービスがありました。<br/>
でも、仕事中はEclipseだのMavenだのをさわってて、見る機会がありません。とても残念なのです。<br/>
なので、仕事をしていても某美人さんで、時刻が見たくなったときにみることができるようなものを作りました！<br/>
<br/>
日頃、コード書いてテストして、コード書いてテストして・・・、deployして、installして。。。そんな忙しくmavenを使っているあなた、心がすさんでいませんか？<br/>
<br/>
どうせなら、mavenで某美人さんが時刻を教えてくれればいいの。。。
ならば！作ってしまおう！
でも、残念ながらCUIではjpegをうまく表示することができません＞＜。
<br/>
だったら、画像をAsciiArtにしてしまえばいいのです。<br/>
これで、いつでも美人さんが時刻を教えてくれますね！<br/>
時刻がわかりづらかったら、実行した最後のあたりで
<pre class="console">
[INFO] Finished at: Tue Apr 07 10:07:51 JST 2009
</pre>
<br/>
とかってだしてくれますし！！<br/>
<br/>

ソースはCodeReposに上げました。<br/>
<a href="http://svn.coderepos.org/share/lang/java/misc/maven-bijint-plugin/" target="_blank">http://svn.coderepos.org/share/lang/java/misc/maven-bijint-plugin/</a>

<h3>つかいかた</h3>
１．インストール用のダミーのpom.xmlを用意

<textarea name="code" class="xml" cols="60" rows="35">
<?xml version="1.0" encoding="UTF-8"?>
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>dummy</groupId>
  <artifactId>dummy</artifactId>
  <version>1.0-SNAPSHOT</version>
  <pluginRepositories>
    <pluginRepository>
    <id>code repos</id>
    <name>The Code Repos Maven2 Repository</name>
    <url><a href="http://svn.coderepos.org/share/lang/java/misc/maven2repo/" target="_blank">http://svn.coderepos.org/share/lang/java/misc/maven2repo/</a></url>
    </pluginRepository>
  </pluginRepositories>
  <build>
    <plugins>
      <plugin>
      <groupId>jp.canetrash.maven.plugin</groupId>
      <artifactId>maven-bijint-plugin</artifactId>
      <version>0.1</version>
      </plugin>
    </plugins>
  </build>
</project>
</textarea>

２．呼び出し
<pre class="console">
  mvn bijint:touch
</pre>

美人さんにタッチ！
某美人さんは忙しいので表示されるまでに結構かかります。
<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://www.canetrash.jp/article/115758418.html">
<link>http://www.canetrash.jp/article/115758418.html</link>
<title>デザイン変更したのは</title>
<description>はてブユーザ数を表示しようとしていて、いじっていたら元に戻せなくなったからというのは内緒だ。</description>
<dc:subject>日記</dc:subject>
<dc:creator>tfunato</dc:creator>
<dc:date>2009-03-16T22:18:24+09:00</dc:date>
<content:encoded><![CDATA[
はてブユーザ数を表示しようとしていて、いじっていたら元に戻せなくなったからというのは内緒だ。<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://www.canetrash.jp/article/115736356.html">
<link>http://www.canetrash.jp/article/115736356.html</link>
<title>自分用Eclipseプラグイン一覧</title>
<description>◎ Outputz Pluginupdatehttp://yoshiori.org/project/outputzplugin/update/●Vi Pluginhttp://www.viplugin.com/viplugin/updatehttp://viplugin.com●EasyExplorer(maven2を使うなら)http://easystruts.sourceforge.net/#easyexploreupdatehttp://easystruts.sourc...</description>
<dc:subject>Java</dc:subject>
<dc:creator>tfunato</dc:creator>
<dc:date>2009-03-16T14:44:28+09:00</dc:date>
<content:encoded><![CDATA[
<pre><br />◎ Outputz Plugin<br /><br />	update<br />	<a href="http://yoshiori.org/project/outputzplugin/update/" target="_blank">http://yoshiori.org/project/outputzplugin/update/</a><br />●Vi Plugin<br />	<a href="http://www.viplugin.com/viplugin/" target="_blank">http://www.viplugin.com/viplugin/</a><br />	update<br />	<a href="http://viplugin.com" target="_blank">http://viplugin.com</a><br />●EasyExplorer(maven2を使うなら)<br />	<a href="http://easystruts.sourceforge.net/#easyexplore" target="_blank">http://easystruts.sourceforge.net/#easyexplore</a><br />	update<br />	<a href="http://easystruts.sourceforge.net/eclipse/updates/site.xml" target="_blank">http://easystruts.sourceforge.net/eclipse/updates/site.xml</a><br />●Implementers<br />	<a href="http://eclipse-tools.sourceforge.net/" target="_blank">http://eclipse-tools.sourceforge.net/</a><br />	update<br />	<a href="http://eclipse-tools.sourceforge.net/updates/" target="_blank">http://eclipse-tools.sourceforge.net/updates/</a><br />●CheckStyle<br />	update<br />	<a href="http://eclipse-cs.sourceforge.net/update" target="_blank">http://eclipse-cs.sourceforge.net/update</a><br />●GotoFile Eclipse Plugin<br />	update<br />	<a href="http://www.muermann.org/gotofile/update" target="_blank">http://www.muermann.org/gotofile/update</a><br />	キー：［Ctrl］+［Atl］+［n］<br />■Memory Indicator<br />	update<br />	<a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-ui-home/updates" target="_blank">http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-ui-home/updates</a><br />	※ ガニメデから設定で出せるようになった<br />●S2junit4 Plugin(Seasar使うならQuick Junitよりもこちら)<br />	<a href="http://s2junit4plugin.sandbox.seasar.org/" target="_blank">http://s2junit4plugin.sandbox.seasar.org/</a><br />	update<br />	<a href="http://eclipse.seasar.org/updates/3.3/" target="_blank">http://eclipse.seasar.org/updates/3.3/</a> <br />● M2Eclipse か　q4e<br />	<a href="http://m2eclipse.codehaus.org/" target="_blank">http://m2eclipse.codehaus.org/</a><br />	update<br />	<a href="http://m2eclipse.sonatype.org/update/" target="_blank">http://m2eclipse.sonatype.org/update/</a><br /><br />●■ q4e か M2Eclipse<br />	<a href="http://code.google.com/p/q4e/" target="_blank">http://code.google.com/p/q4e/</a><br />	update<br />	<a href="http://q4e.googlecode.com/svn/trunk/updatesite/" target="_blank">http://q4e.googlecode.com/svn/trunk/updatesite/</a><br /><br />■プロパティエディタ<br />	<a href="http://propedit.sourceforge.jp/" target="_blank">http://propedit.sourceforge.jp/</a><br />	update<br />	<a href="http://propedit.sourceforge.jp/eclipse/updates/" target="_blank">http://propedit.sourceforge.jp/eclipse/updates/</a><br /><br />■Subclipse<br />	<a href="http://subclipse.tigris.org/" target="_blank">http://subclipse.tigris.org/</a><br />	update<br />	<a href="http://subclipse.tigris.org/update_1.4.x" target="_blank">http://subclipse.tigris.org/update_1.4.x</a><br /><br />■ EclEmma<br />	<a href="http://www.eclemma.org/" target="_blank">http://www.eclemma.org/</a><br />	update<br />	<a href="http://update.eclemma.org/" target="_blank">http://update.eclemma.org/</a><br /><br />※ Tomcatプラグインを使う場合<br />■舞姫<br />	<a href="http://eclipse.seasar.org/updates/3.1/" target="_blank">http://eclipse.seasar.org/updates/3.1/</a><br />●■TomcatPlugin<br />	<a href="http://www.eclipsetotale.com/tomcatPlugin.html" target="_blank">http://www.eclipsetotale.com/tomcatPlugin.html</a><br /><br />☆キーバインド設定<br />CTRL+PをViの補完に変更（Word Completion) デフォでALT+/<br />CTRL+Cをコピーに変更<br />CTRL+Wをファイルを閉じるに変更<br />Find/ReplaceをALT+Fに変更<br /></pre><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://www.canetrash.jp/article/115556493.html">
<link>http://www.canetrash.jp/article/115556493.html</link>
<title>HTMLをパースするJavaライブラリ</title>
<description>・HTML Parserhttp://htmlparser.sourceforge.net/http://mvnrepository.com/artifact/org.htmlparser/htmlparser・Jericho HTML Parserhttp://jerichohtml.sourceforge.net/doc/index.htmlhttp://mvnrepository.com/artifact/net.htmlparser/jericho-html・Cybe...</description>
<dc:subject>Java</dc:subject>
<dc:creator>tfunato</dc:creator>
<dc:date>2009-03-13T11:37:33+09:00</dc:date>
<content:encoded><![CDATA[
・HTML Parser<br /><a href="http://htmlparser.sourceforge.net/" target="_blank">http://htmlparser.sourceforge.net/</a><br /><a href="http://mvnrepository.com/artifact/org.htmlparser/htmlparser" target="_blank">http://mvnrepository.com/artifact/org.htmlparser/htmlparser</a><br /><br /><br />・Jericho HTML Parser<br /><a href="http://jerichohtml.sourceforge.net/doc/index.html" target="_blank">http://jerichohtml.sourceforge.net/doc/index.html</a><br /><a href="http://mvnrepository.com/artifact/net.htmlparser/jericho-html" target="_blank">http://mvnrepository.com/artifact/net.htmlparser/jericho-html</a><br /><br /><br />・CyberNeko HTML Parser<br /><a href="http://nekohtml.sourceforge.net/" target="_blank">http://nekohtml.sourceforge.net/</a><br /><a href="http://mvnrepository.com/artifact/net.sourceforge.nekohtml/nekohtml" target="_blank">http://mvnrepository.com/artifact/net.sourceforge.nekohtml/nekohtml</a><br /><br /><br />・TagSoup <br /><a href="http://home.ccil.org/~cowan/XML/tagsoup/" target="_blank">http://home.ccil.org/~cowan/XML/tagsoup/</a><br /><a href="http://mvnrepository.com/artifact/org.ccil.cowan.tagsoup/tagsoup" target="_blank">http://mvnrepository.com/artifact/org.ccil.cowan.tagsoup/tagsoup</a><br /><br /><br />・Java Mozilla Html Parser<br /><a href="http://mozillaparser.sourceforge.net/" target="_blank">http://mozillaparser.sourceforge.net/</a><br />（maven2のリポジトリ登録はなさげ。）<br /><br /><br />・JTidy<br /><a href="http://jtidy.sourceforge.net/" target="_blank">http://jtidy.sourceforge.net/</a><br /><a href="http://mvnrepository.com/artifact/jtidy/jtidy" target="_blank">http://mvnrepository.com/artifact/jtidy/jtidy</a><br />（古い）<br /><br />・Cobra: Java HTML Renderer & Parser<br /><a href="http://lobobrowser.org/cobra.jsp" target="_blank">http://lobobrowser.org/cobra.jsp</a><br />Java製ブラウザ<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://www.canetrash.jp/article/108211289.html">
<link>http://www.canetrash.jp/article/108211289.html</link>
<title>JJUG Cross Community ConferenceでLTしてきたよ</title>
<description>JJUGクロスコミュニティ2008 FallのBOFでLTしてきました。例によってjava界の自重しない集団のjava-jaのLTです。「家族と技術と私」てなタイトルでFamilyManagementException研究会の紹介とかしてきました。いつものようにS6で書きました。資料はここに置きました。family-tech-me.zip5分以内に終わっちゃうかなぁと思ってたんですが、ドラを鳴らしてもらえてよかったですｗLTで話し忘れてしまったのですが、エンジニアの未来サミッ...</description>
<dc:subject>日記</dc:subject>
<dc:creator>tfunato</dc:creator>
<dc:date>2008-10-17T12:10:39+09:00</dc:date>
<content:encoded><![CDATA[
<a href="http://www.java-users.jp/contents/events/ccc2008fall/index.html" target="_blank">JJUGクロスコミュニティ2008 Fall</a>のBOFでLTしてきました。<br />例によってjava界の自重しない集団のjava-jaのLTです。<br /><br />「家族と技術と私」てなタイトルで<br /><a href="http://groups.google.co.jp/group/golden_waraji?hl=ja">FamilyManagementException研究会</a>の紹介とかしてきました。<br /><br />いつものように<a href="http://d.hatena.ne.jp/amachang/20071121/1195627344">S6</a>で書きました。<br /><br />資料はここに置きました。<br /><a href="http://canetrash.up.seesaa.net/src/family-tech-me.zip" alt="family-tech-me.zip" target="_blank">family-tech-me.zip</a><br /><br />5分以内に終わっちゃうかなぁと思ってたんですが、<br />ドラを鳴らしてもらえてよかったですｗ<br /><br />LTで話し忘れてしまったのですが、エンジニアの未来サミットでは直近の未来（IT業界を目指す学生，また今IT業界に入ってきた若手エンジニア）が対象だったのですが、もうちょっと、未来のこともあるのではないかなぁと思ってます。それは、もっと若い世代、未就学～高校生くらいの世代が対象です。<br />その世代にとってITは身近ではあるものの、それを作る職業としては未知の職業だと思います。（他の人にとってもかな。。。）<br /><br />エンジニアの家族の交流会を開くことによって、もっと若い世代がIT業界の職業に理解、興味を持ってもらえたらなぁと思います。<br /><br />懇親会では、キャビアがでるなどjava-jaっぽいカオスな雰囲気で総勢30人程度。いつものようにどんちゃん騒ぎでワンピースの宴のような感じ。<br /><br />非常に楽しい時間でした。<br />みなさん、ありがとうございました。そして、お疲れ様でした。<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
</rdf:RDF>
