Java

X509Certificateはjavax.security.certとjava.security.certのどっちを使えばいいのか問題

APIリファレンスにちゃんと書いてありました。 java.security.cert.X509Certificateを使うべき。 Note: The classes in the package javax.security.cert exist for compatibility with earlier versions of the Java Secure Sockets Extension (JSSE). New …

LuceneのNumericUtilsで、数字でソートできるドキュメントを作る

Lucene2.9.1で試行。今まではNumberToolsだったけど、2.9からDeprecatedになったので、数字でソートできるフィールドを作るためにNumericUtilsを使う。experimentalって書いてあるのが気になるけど、まあこれしかないし。ポイントも今までとたいして変わらな…

multivaluedなfieldはありものだとソートできない

multivaluedなfieldはFieldCacheが返せないから、ありもののComparatorだとソートできないのか。http://search.lucidimagination.com/search/document/deb209151a5f93b9/how_to_cache_multivalued_field_using_fieldcache#7833c81490cae549もちろん、自前でF…

Lucene2.9で自前でComparatorを作って、複数フィールドの値を協調させてソートさせる

複数フィールドの値をみてソートをするという要件がでてきて、ページングとかの面倒さを考えるとソートはすべてLucene内部で完結させたいので自前でComparatorを作ろうと思ったけど、けっこう難易度が高かったのでその記録。マニングのLucene In Actionのサ…

Luceneで複数フィールドで検索してるときに、そのうちのひとつのフィールドでのスコアでソートする

ついでにほかのフィールドもソート条件に入れたいとか、わりとベタな要望だと思うけど、Lucene wikiで検索してもみつからなかったので考えてしまった。 はじめは、ソート用の結果を取得するのと、ホントのデータを取得するのとで二回サーチしないといかんか…

TerracottaでwebアプリのTIMを入れてものセッションクラスタリングをしないようにする

WEBアプリケーションでTerracottaを使うときはtim-tomcatとかのインテグレーションモジュールを入れて使うのが推奨されています。 例えば、WEBアプリでキャッシュ機構にEHCacheを使う場合のtc-config.xmlはこんな感じ。

TerracottaのTIMは必須ではないみたい

Terracottaを各種ミドルウェアやライブラリと一緒に使うときはTIMと呼ばれるインテグレーションモジュールを入れるのが推奨されているけど、あくまで推奨なのでいれなくても動かすことは可能。 ただし、dsoセクションにライブラリ内部で使われているクラスの…

Terracotta3.1.1とEHCache1.7の統合ぶりがすごい

Terracotta3.1.1がリリースされたので試してみたら、EHCacheとの統合っぷりがすごい。http://www.terracotta.org/web/display/orgsite/Get%20Started%20With%20Ehcache%20Distributed%20Cache に書いてる手順だけど、 Terracottaサーバー立ち上げ /bin/start…

Lukeにクラスパスを通す

jarにクラスパスを通すといい方のほうが正しい?LuceneのインデックスビューワーのLukeを使って検索を試してるときって、自前のAnalyzerでパースさせたくなるけど、どうやって認識させればいいのかわからなかった。こんなんだとダメで、 C:\Users\foo\Deskto…

Google Guiceのアレコレ ―Guice管理のクラスをプロバイダを使って取得順を制御する―

DIコンテナで管理しているクラスの取得順というのは、コンテナの責務ではないと思うけど、そういうのが必要な場面も稀にあります。 登録側 Providerメソッドに@Injectアノテーションをつけて、引数で必要なのを渡すだけ。 冗長だけど、まあシンプルです。 pa…

Google Guiceのアレコレ ―同一の戻り値を持ったプロバイダを定義する―

2.0からProviderの書き方がちょっとラクになったみたいだけど、そのへんはよくわからん。 登録側 package jp.co.hogehoge.provider; import java.util.Arrays; import java.util.List; import com.google.inject.AbstractModule; import com.google.inject.P…

Google Guiceのアレコレ ―同一のインタフェースを持った複数のクラスの登録と取得―

http://groups.google.com/group/google-guice/browse_thread/thread/10cbc601380b8757/f2f414d8e69c40a5?lnk=gst&q=Using+annotation+on+injector+getInstance+call#f2f414d8e69c40a5 登録 binder.bind(IService.class).annotatedWith(Names.named("A")).to…

Google Guiceのアレコレ ―ListをGuiceで管理する―

あるいは、Genericタイプの着いたクラスをコンテナで管理する方法。Google Guiceをいろいろ試してていろいろ日本語情報で見つからないのがあったので、メモしておく。 登録 TypeLiteralを使ってあげる。 List<IService> list = new ArrayList<IService>(); list.add(new ServiceA</iservice></iservice>…

EHCacheのtimeToLiveSecondsとtimeToIdleSecondsの違い

ドキュメントを読んでもよくわからんかったけど、ここの説明をみてようやく理解できた。 timeToLive is a total time an entry stays in a cache region. timeToIdle specifies how long it should stay in cache if it is not referenced. https://forums.h…

Archivaで500エラー

このへんのと同じやつ。 http://jira.codehaus.org/browse/MRM-1237新しいバージョンでfixされてるみたいだけど、新しいのをビルドするのも面倒だったので別の方向を探る。 ↓ RedBackが怒ってるみたいだけど、パスワードがブランクなのが原因な気がする。 ↓ …

Eclipseのプロジェクト固有設定の置かれる場所がよくわからなかったけどなんとかなった話

やりたかったこと フォーマッタなどのプロファイルを共有して、エクスポート、インポートなしに適用させたい やり方 プロジェクトのプロパティで、プロファイルの名前が 管理されていないプロファイル とでるけど気にしないでバリバリ変更してOK.変更内容は…

TerracottaでHA構成を試してみた

サーバーアレイまでではなくてシンプルなActive-Passive構成でHAを試してみた。 参考資料 HAにするためのサンプル構成とかないかと探してみたけど、わりと情報が散乱しているのでこのへんを総合して構成してやらないといけなかった。 http://www.terracotta.…

T2のプラグイン機構ってDIコンテナ必須?

T2がシンプルでいい感じなのでちょこちょこ触ってて、T2単体でできることを知りたいのでDIコンテナなしで使ってるんだけど、プラグインの使い方がよくわからん。 T2Filterのソースみると PluginProcessor pluginProcessor = new PluginProcessorImpl(webConf…

JDK 6 update 14のG1GCを試してみた

さすがにまだJConsoleもVisualVMも対応してない。JConsoleで繋ぐとヒープがまったくないように表示されてフシギな感じ。 結論 ちゃんとオプションが効いて、停止時間もオプションで指定した通りになっているみたい。 けど、TomcatでG1GCを有効にして実行した…

guice-servletをarchivaのローカルリポジトリに追加する

guice-servletをarchivaのローカルリポジトリに追加したときの手順の覚え書き。 Upload Artifact 適当なユーザーでログインして、左のメニューのManageグループから Upload Artifact を選択。 POM情報入力とjarのアップロード 入力はこんな感じで。 Group Id…

archivaの内蔵APサーバーのヒープサイズを制限する

archivaをTomcatとかにデプロイするんじゃなくて、内蔵のJettyで動かしてるときの話。archiva関係なく、Jettyの話ですね。 $ARCHIVA_HOME/conf/wrapper.conf の、 # Initial Java Heap Size (in MB) wrapper.java.initmemory=3 # Maximum Java Heap Size (in…

本番で使いそうなサーバーでCubbyとT2 Frameworkを試してみた

ECサイトの本番環境で使いそうなサーバーが評価機で手に入ったので、使う候補のフレームワークのパフォーマンスを量ってみた。気にしてるのは主にスループット。レイテンシは揺らぎが大きそうだから。 環境 Xeon 2.33GHz Quad Core 6144 KB x 2 4G MEM Apach…

Apache archivaでadminのパスワードを忘れた

archivaでadminのパスワードを忘れちゃったので少し調べてみた。 内部で使ってるのはJava DB(Apache Derby) ユーザー情報のDBは ARCHIVA_HOME/data/databases/users レポジトリ情報は ARCHIVA_HOME/data/databases/archiva ユーザー情報が入ってるのはSAスキ…

Terracottaサーバーを立ち上げたままログアウト

Terracotta関係ないな。nohupつけてバックグラウンドで起動させればOK. http://forums.terracotta.org/forums/posts/list/1059.pageこんな感じか。 nohup /opt/terracotta-3.0.0/bin/start-tc-server.sh > terracotta.out 2>&1 & 本当にこれがいいのかはよく…

Terracottaを利用してTomcatのセッションとかもろもろ共有

基本的に http://www.terracotta.org/web/display/orgsite/Tomcat+Integration の通りにやればいいけど、少しだけ違うところがあったので記録しておく。 構成 試した構成はこんな感じ。 ┌──────┐ │ tc-worker2 │ mod_proxy_balancerで重み1同士の単純な振り…

Terracottaを試してみる

Terracottaの検証を始めたのでメモしていきます。 仮想サーバーでTerracottaサーバーが起動しない 初歩のクイックスタートで躓いた。起動しようと思ったらこんなエラーが。 2009-05-22 19:04:58,492 [main] INFO com.terracottatech.dso - Statistics store:…

Sun SPOT キャラバン 2008 in 東京 〜 無線センサーネットワークデバイスの開発者向けセミナー 〜

Gainerでセンサーユニットをいろいろ扱ってみて面白かったので、Sun SPOTにも興味があったのですが、ちょうどこんなセミナーがあったので参加してきました。 サブタイトルは「開発者向けセミナー」とついてますが、どう見ても開発者じゃなさそうなおっちゃん…

テーブル名を修正したらトリガーも修正しよう

原題:テーブル名を修正して@Table(name = "bar")の部分を書き換えてもupdate文のfrom句が書き換わらないぎゃー!トリガーにベタに書いてたテーブル名が古いままだったのが原因でした。 SQL Server Management Studioで実行したらトリガーの問題っていうのが…

Processing 0148 BETA without Javaはインストール済みのJavaを認識しない

bugzilla.processing: Bug 878 - Error on Windows that JDK is not installed even when it is processing.exeがうごかねーじゃんとか思ってたらバグレポートでてたのね。 JDKのコピーとかやりたくないし、with Javaのほうでいいや。

サインカーブ

JavaAppletだとやっぱ成果を発表しづらいのがツライな。ローカルでみせる分にはいいんだけど。 内定者研修のネタにするのでもっとツッコむけど。グラフィックの概念のオブジェクトと、プログラムの概念のオブジェクトをどう対応させるか少し悩んだけど、普通…

GroovyからSwing

GroovyからSwingってみましたが、なんかもう、普通ですね。PythonからTkinter使うのと大差ないというか。 JRubyから、Jythonから、とかいろいろあるけど、もう止めよう。 Swing自体は、今からSwing調べて覚えていくのはツライからたぶん深追いしない。Tkにし…

Groovy

会社の若人向けの勉強会にゲリラで参加してる。it変数も面白いけど、資料を読んでいると非常に面白い機能がバリバリあることがわかって楽しい。 カリー化 クロージャ 高階関数 とかほとんどPythonとかJavaScriptみたいな擬似関数型言語の機能も持っていて興…

はじめてのProcessing

Processingを触っての感想 GUIだからシーケンシャルに書いていくのはまだいいけど、オブジェクトを指定しないのがキモイ インタラクションってやっぱ面白い ぽいい感じになると楽しい 今、Processingをやる意味あるのか?ActionScriptのほうがいいんじゃね?…

log5jを試してみた

log4jなら private static final Logger log = Logger.getLogger( MyClass.class ); だったのが、log5jを使うと private static final Logger log = new Logger(); と書けるようになってるのが有名ですが、これって、 public static Logger getLogger() { St…

Groovy コンファレンス 2008申し込んだ

というか、IBM DevWorksの渋谷テクニカルナイトの一席だけど。 IBM developerWorks Japan : Groovy コンファレンス 2008

多バイト文字の変換とかいわゆる文字化けとその対処に関する自分用のまとめ

webアプリはいろいろ関わってきてるはずなのに、このあたりの話を全然理解してなかったことに愕然とする。 普通のひとには常識なんだろうけど、今回調べたことで体得できたよ。 追記 少し理解が進んだので追記。 TomcatのGETパラメータのデフォルトの挙動 is…

2年振りのJUnit

JUnit4はちゃんと使うのが初めてなのでいろいろよくわからんけど、ひさしぶりにグリーンバーをみて心が落ち着いた。 メソッド名にtestっていう接頭辞をつけなくてよくなったのは知ってます。 新卒共にデベロッパーテストをたくさん書かせよう。

Java6のResourceBundleは魅力的じゃない

Java6なのでResourceBundleの新機能を使ってみようかと思いましたが、ほとんどのケースで全然魅力的じゃないと思う。XML扱えても冗長なだけだし。プロパティエディタ使うから、もともとnative2ascii使わないし。

JNDIからのリソース取得について

Tomcatからのリソースインジェクションは、コンテナ上で動いててもServletからじゃないと取得できない? よくわからんかったので、web.xmlに追記して昔ながらのJNDIで。Javaでの配列の書き方を覚えることができません。 単純な初期化じゃ通らないとか、スト…

Cubbyを試そうかと思ったけど、generateできなかったので力尽きた

ヤクの毛を刈りまくっちゃったよ、モー。Cayenneを試そうかと思ったら、Click+CayenneよりCubbyのほうがラクという情報をみて、Cubbyを試そうとMavenのgenerateを叩いたら、ファイルを取得できず、settings.xmlがおかしいのかとみてみても、プロキシの設定も…

文字のインクリメント

Perlだとmagical inclementという名前です。 Python In [39]: chr(ord('A') + 1) Out[39]: 'B' Perl $ perl -e '$alp = 'a';for (1 .. 52) {print $alp++}';echo abcdefghijklmnopqrstuvwxyzaaabacadaeafagahaiajakalamanaoapaqarasatauavawaxayaz Java publ…

Java開発のためのリハビリ調査メモ

Eclipseは、Calisto(3.2)を使い倒してEuropa(3.3)をスルーしてた自分が、Ganymede(3.4)からまた触わる必要が出てきたので、3時間くらいの調査で書いたメモ。 途中でいろいろ寄り道してたけど。 webアプリ開発 webアプリ開発のやり方忘れちゃったよ サーバサ…

データ型としての関数のまねごと

JavaScriptでいうところのデータ型としての関数(たぶん関数オブジェクトって呼ぶのかな)みたいのをJavaでできないかと思って書いてみたけど、やっぱあんま面白くないや。 こんな単純なコードですら実行時間がかかりすぎるし、第一、全然簡潔じゃないから意…

Sun Certified Programmer for Java 2 Platform 5.0 Upgrade Exam

期間限定 特別受験料18,000円(税込:18,900円) (2006年12月22日迄) 安い。受けようかな。 日本オラクル | Hardware and Software, Engineered to Work Together

Java One Report Seminar

教えてもらったので、申し込んでみました。 休憩込みで5時間だからけっこうなボリュームのよう。セミナーのフィードバックもあとで書きたい。

パターン

久しぶりにJavaでアプリを作ることになって、クラス設計からできるようになったので、パターンを学ぶために積読に手をつけ始めた。 作るのは、iアプリのオセロゲームだけど。社内の勉強用なのでパターン濫用の方向で。エンタープライズ アプリケーションアー…

新人勉強会

新人の勉強会の手伝いをすることになったので、参考図書を読んでみた。Javaプログラマのためのアルゴリズムとデータ構造作者: 近藤嘉雪出版社/メーカー: ソフトバンククリエイティブ発売日: 2004/03メディア: 単行本購入: 1人 クリック: 73回この商品を含む…

続・DuckTyping

で、Reflectionを使ったJavaでのDuckTyping。 package sample.ducktype; import java.util.ArrayList; public class DuckTypeByReflection { public static void main(String[] args) throws Exception { ArrayList<Object> al = new ArrayList<Object>(); Object selfishDuc</object></object>…

「Javaの生みの親」に聞く「AJAX、LAMP、Ruby on Rails」 - CNET Japan

おおむね普通のことを言っていると思う。やっぱりちょっとJavaに肩入れな印象の記事だけど、適材適所ってことなんでしょう。俺もそう思う。Javaの固さもC#のイっちゃってる感じもスキだし、Perlのアプローチの簡単さもスキだし、RubyのOO特化な感じもスキ。 …

JavaOne Tokyo フォロー

割と評判の良かった、「定時退社のためにJava」というか、丸山先生レクチャーシリーズ全体の資料がアップされてる。 http://www.c-sq.com/modules/article/article65.html評判どおり、いいこと書いてるなあ。明日のチームMTGでみんなでみて、啓蒙してみよう。…