[Java] 20 September 2009 はてなブックマーク - 失われた環境の復活(Eclipse用JUnitTemplate) Twitterでつぶやく

失われた環境の復活(Eclipse用JUnitTemplate)

しばらくJUnitとか触ってなかったら。
EclipseのJUnitのassert用コードテンプレートが何処行ったかわからなくなったので、つくりなおした。
もう失くすのは嫌なのでエクスポートしたものをここに置いておくことにした。

[Java] 24 January 2008 はてなブックマーク - MIDP用文字コード変換ツール作ったよ。 Twitterでつぶやく

MIDP用文字コード変換ツール作ったよ。

表題のもの作ってみました。下記にてDLできます。
J2ME用の文字コード変換コードencconv

NOKIA e61i
最近NOKIAの3Gスマートフォン(E61i)を買ったんですね。スマートフォン、PDAでも携帯でもなくいろいろできるスマートフォン!
こいつは簡体中文版なのですが、ユニコード対応なので表示だけなら日本語もできる優れものです。
日本語入力も、上海在住つながりの(勝手につながって・・・すいません。)nkozawaさん作成のKKJConvを利用すればばっちりなわけです。でも、悲しいことに、標準のメールソフトは日本語が使えないんですね。
悲しっす。


で、POP3のプロトコルを勉強して(っていうほどたいそうなものではないが・・・)携帯用のPOPプロキシサーバを作ってます。正確には携帯の上で動くPOP3プロキシサーバです。いつになるやらわかりませんが、単純なデリゲーターとしては既にPC上で動作してます。

ところがどっこい大きな問題が・・・・・、SJISはおろかEUCJP、ISO2022JPまで全滅です。エンコードの文字セットを持ってないんです。開発者マニュアル確認してもローカライズされたものには搭載されているとしか書いていない。もちろん引き下がるわけにも行かないので、ほやほやのNetBeans6でサンプルを作り、気合いを込めて実機に転送!

ズギュウゥゥン!!"あ".getBytes("SJIS")

おらああああああ!
どうだこのやろーーーー。サーバ野郎なめんな!

ドッギャアアアアアン、UnsupportedEncodingException!!

あえなく、撃沈。
で、怒りにまかせて作りました。
いろんなページを見てUCS2やらJISやらビットシフトやらやりました。とりあえずいくつかの問題はありますが、UTF-8を取得するという目的は達成できそうなので公開します。

ニッチですが、利用する人がいたら使ってください。
ではまた。

[Java] 17 May 2007 はてなブックマーク - FlatXmlDataSetでnull値 Twitterでつぶやく

FlatXmlDataSetでnull値

ただのメモ。
DBUnitのFlatXmlDataSetでnull値を利用したいときはこういう感じでリプレースしてやると可能。
ReplacementDataSet dataSet = new ReplacementDataSet(
new FlatXmlDataSet(…));
dataSet.addReplacementObject("[NULL]", null);

http://dbunit.sourceforge.net/components.html

[Java] 30 November 2006 はてなブックマーク - やばいClick進化してる・・・ Twitterでつぶやく

やばいClick進化してる・・・

しばらく放っておいたら1.0では大きく利便性が向上している。
0.xではいろいろと補完するためにツールが必要だったけど、かなりフルスタックでいけそう。
#っていうかこの前1.1出てるんだけどねw進化早いっす

いまのところ気持ちよいのは(いや表の派手なコントロールではなくて、地味なところに着目しちゃってるのですが・・・)
・Page#onRenderの導入
→ これはある意味で妥当な進化かも、以前からレンダリングプロセスを行うとき無駄に自由度高くてコードが荒れやすかったし(コードスタイル統一の観点と、オフショア的観点から)

・ClickControlの自動的なaddControlとaddModel
いままでは(古っ!)PageのaddControl,addModelをしないとダメだったが、1.x弄ってて気づいたのがいつのまにか追加されている。
おかしい・・・どこかで自動追加してやがる!と思って、良く見てみると下記のようにClickServlet#processPageFieldsでやってる。パブリックフィールドで捜し出してコールバックに渡して、コールバック内部ではinstanceofでControlとそれ以外を判定して追加してる。
→ これはよりいっそうC/S系クライアントに近付いたので非常に使いやすいと思う

protected void processPageFields(
Page page, FieldCallback callback) {
Field[] fields = page.getClass().getFields();
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
try {
Object fieldValue = field.get(page);
if (fieldValue != null) {
callback.processField(
field.getName(), fieldValue);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}

っていうかこういうインタフェースの使いかたって素敵で大好きw
あと、このコード見て思ったのが、やっぱり最近はアプリケーション層では例外にRuntimeExceptionを利用する流れが普通になってきたなあ、C#とかデフォでランタイムだしなあ

今回作ってる業務系WEBでは、いわゆる慣習化した確認画面を排除して工数を下げてみようと思ってる。機は熟した感じ、可能ならスケルトン自動生成でやりたいなあ

#業務連絡:
オナシスさん、忙しくて返事できてませんホントごめんなさい
m(_ _)m

[Java] 13 November 2006 はてなブックマーク - 待ってたよ、愛してるぜJava。 Twitterでつぶやく

待ってたよ、愛してるぜJava。

キタ!GPL2だぁーーー。


サン、「Java ME」と「Java SE」のソースコードをGPLライセンスで公開へ


これで多くのディストリに標準搭載になる。(ToT)/
嬉しい、嬉しいよ。

バッチをJavaで書いても怒られなくなるし、それとそれと、きっとレンタルサーバも標準で・・・・
gcjにやられることもなくなるし。。。。
↑gcjの人、すいませんm(_ _)m
OpenOfficeとか動かすために必要なのは知ってるけど、でもあれやっぱり忘れた頃にはまるので困る。

よーっし、今日はお祝いだ!(もうあほ丸出し・・・)

[Java] 01 November 2006 はてなブックマーク - NetBeans5.5リリース Twitterでつぶやく

NetBeans5.5リリース

NetBeans5.5がリリースされた。
でもJavaSE6 beta2で使うのは勇気が要るので、JDKは1.5で・・・・

JavaDocのオートコメントのバグはまだ修正されてなかった。
ひょっとして気づいてないのかな・・・・。
↑困った現象のバグorz
オートコメントツールでサンプルにアノーテーションコードを含んだコメントを記述するとapidocのタグ(たとえば@returnとか@paramとか)だと解釈して勝手に消してしまう。
ようするに@が入ってるとダメなようですが、「test@test」みたいに@の前に文字が入っている場合は問題が無く、「 @」のように@の前に空白が入る場合に問題が発生するみたいです。

Java SE 6/EE 5へ対応 - NetBeans 5.5
http://journal.mycom.co.jp/news/2006/11/01/340.html

NetBeans.org
http://www.netbeans.org/

[Java] 21 October 2006 はてなブックマーク - クライアントアプリとJ2EEと認証 Twitterでつぶやく

クライアントアプリとJ2EEと認証

全く持って縁がなかったので想像がつかない。
たぶん、J2EEサーバの認証を利用するんだろう・・・・

方向性としては、こんな感じ
1、J2EEサーバにユーザを登録(ロールベース)
2、J2EEの認証機構最大限利用
→ runclientとか言うヤツ???
3、メニュー情報をEJBで配信
→ その際にEJBContextのisCallerInRoleを利用してロールごとにメニューを変更して配信
4、クライアントアプリ側では2のメニュー情報に従ってメニューを構築
→ WEBと違ってメニューが無ければアクセスできないし
5、あとは各ロジック側に宣言的認証を設定すればセキュリティ的にはOK??

で、常にEJB使うと足を引っ張られるから、開発中はEJBを通さずにPOJOを呼び出して、本番でEJBみたいな。OpenEJBだけでもJ2EE認証使えるのかな??

たぶんこの辺が参考になりそう
Geronimo用のクライアント・アプリケーションを作る
http://www-06.ibm.com/jp/developerworks/java/050715/j_os-ag-client.shtml
第7回 J2EEのセキュリティのキホンを知る
http://www.atmarkit.co.jp/fjava/rensai/j2ee07/j2ee07_2.html

[Java] 16 October 2006 はてなブックマーク - Shiftキー押下時の振る舞いを実装するには Twitterでつぶやく

Shiftキー押下時の振る舞いを実装するには

Swingのメモ。
任意のJComponentにおいてShiftキー押下、解放時の振る舞いを実装しようと思った。
↑ターゲットとしては、業務アプリとかで画面下部に並んでいるファンクションボタン、アレってShiftキーだけ押下するとラベルが変わったりするでしょう?(例えば秀丸とかもそうだけど・・・)

あの動作をコンポーネント化した状態で実装したかった。
作り込みならKeyEventを拾って一個一個ハンドリングすればよいけど、再利用可能なコンポーネント化をしたいとき余りにも問題があると思ったので、InputMapにShiftのKeyBindを追加する。
FunctionKeyの振る舞い自体はMnemonic(ニーモニック)で対応予定。

//インプットマップの取得
InputMap inputMap
= getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
//アクションマップの取得
ActionMap actionMap = getActionMap();

//Shiftが押下されたときのKeyStrokeを取得
KeyStroke shiftPressKeyStroke
= KeyStroke.getKeyStroke(
KeyEvent.VK_SHIFT,
InputEvent.SHIFT_MASK,
false);

//文字表現によるKeyStroke
//KeyStroke shiftDownKeyStroke
// = KeyStroke.getKeyStroke("shift pressed SHIFT");

//KeyStrokeの登録
inputMap.put(shiftPressKeyStroke,"press");
//対応するActionの登録(shiftPressedはAction)
actionMap.put("press",shiftPressed);

//Shiftが押下状態から開放されたときのKeyStrokeを取得
KeyStroke shiftReleaseKeyStroke
= KeyStroke.getKeyStroke(KeyEvent.VK_SHIFT,0,true);

//文字表現によるKeyStroke
//KeyStroke shiftReleaseKeyStroke
// = KeyStroke.getKeyStroke("released SHIFT");

//KeyStrokeの登録
inputMap.put(shiftReleaseKeyStroke,"release");
//対応するActionの登録(shiftReleasedはAction)
actionMap.put("release",shiftReleased);


重要なのは、InputMap取得時に
getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
すること、デフォルトだとWHEN_FOCUSEDなのでどこでもハンドリングされるわけではない。

謎なのは、Shiftキーのpressを拾うときにmodifiersにSHIFTのマスクを設定する必要があること・・・。

参考:
JComponentのJavaDoc
InputMapのJavaDoc
The Java™ Tutorials > Creating a GUI with JFC/Swing > Using Other Swing Features
How to Use Key Bindings

http://www.javadrive.jp/tutorial/jmenu/index10.html

これはEventListnerを利用する方法、これをやりたくなかったからInputMapを利用した。
http://www.atmarkit.co.jp/fjava/javatips/112java018.html

[Java] 03 September 2006 はてなブックマーク - なぜ我々はMavenなのか(プロジェクトにおける有効性) Twitterでつぶやく

なぜ我々はMavenなのか(プロジェクトにおける有効性)

そろそろ時代に乗り遅れないようにJ2EE5.0の勉強を開始しようと思います。w
私がJ2EE勉強を始めるに当たり設定するゴールはこちら
  1. Eclipseによる開発

  2. Build&DeployはMaven2を利用

この2つのゴールは、最終的にはJ2EE5.0において実際的な開発を行なうための必須条件です。1点目については言わずもがなです。最も普及しているIDEである以上、当然利用します。
さてここからが本題ですが・・・・
» 続きを読む

[Java] 26 July 2006 はてなブックマーク - [Groovy]馬鹿丸出しな利用法 Twitterでつぶやく

[Groovy]馬鹿丸出しな利用法

昔の連絡先をメモするのが不便なこともあって、携帯から抽出しておいたVCF(VCARD形式)ファイルを見つけた・・・・。
が・・・、はっきり言ってアレは人間の読むものじゃないのでGroovyで名前と電話、メアドだけパース
そのときの馬鹿丸出しのScript。

vcfFile = new File(args[0])
fnPattern = ~"FN\\:(.*)"
telPattern = ~"TEL.*\\:(.*)"
mailPattern = ~"EMAIL.*\\:(.*)"
vcfFile.eachLine
{
printMatcher(fnPattern.matcher(it))
printMatcher(telPattern.matcher(it))
printMatcher(mailPattern.matcher(it))
}

def printMatcher(matcher){
if(matcher.matches()){
println matcher.group(1)
}
}
«Prev || 1 | 2 | 3 | 4 || Next»