argius note

プログラミング関連

Java

EJBとかORMとか

ちょっとだけ復習。EJBは2.xです。何かもうどうでも良くなってきた。

1.4のJVMが起動しなくなった

SunJDK1.3,1.4,1.5,1.6をインストールしていて、メインはJava1.4を使っています。で、今日Eclipseからあるプログラムをlaunchしてみたら、何かエラーが。コマンドで試してみたら、 $ java1.4 -version Error occurred during initialization of VM java/lang…

2つのJTableを同時にスクロール

import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.table.*; public final class Test extends JFrame implements AdjustmentListener { private JScrollBar scrollbar1; private JScrollBar scrollbar2; public Test(…

アップキャストの話

少し前に話題になってたやつです。ローカル変数の場合の。 List list = new ArrayList(); アップしたいわけではなくて、Listが使いたいだけなんですよという主張とか言ってみます。つまり、 // ※注:実際のJavaコードではありません。 List list = new List(…

即興:ストップウォッチ

Java5.0以上。即興で1から書いてみる。SPLIT機能の無い簡単なもの。基本的に、使い捨てコードです。

後付け開発環境

これまで後付けで開発環境を整備することが多かった。既存のフレームワークを使えれば良いのだが、動いているコードを書き換える訳にはいかない。なので、修正がある度にちょっとずつ導入できるカスタム開発環境を準備したりした。 Eclipseプラグイン、Veloc…

相変わらずのnull地獄

前にも似たようなことを書きました。 不毛で煩わしいnullチェックを無くしたいので、 原則として、参照型は非nullとして扱う(特にString) null の代入(初期化および再代入)を避ける APIが返す null はWrapperが別の値に変換する というルールを導入して、nul…

やはりMavenは放っておく

雑誌やサイトでちょこちょこ情報を仕入れてはいたものの、実際に試してみたことはないんです。おまけに、なんとなく肌に合わない印象があって、そのうち忘れていました。で、 議論:Mavenはビルドに適したツールか? を読んで、気持ちが強くなりました。理由…

異なるバージョン間でのシリアライズの互換性

serialVersionUIDが同じなら互換性ある、というところは知っていたけど、実際にどうなるのかは知らなかったので、試してみた。 先に結論を言ってしまうと、少なくともJava1.3と1.6間では互換性がある、というか全く同じ。

JRubyサポート反対派の意見

リクエスト:Sunにお願いです、JRubyのサポートはやめて下さい Javaは言語としては迷走しているが、VMは良く出来ているので、その資産を活かせる別の道が見つかったのは良いことなのだと思います。私はGroovyにはあまり興味がないので、JRubyがあったほうが…

enum classes cannot override finalize method

http://java.sun.com/javase/6/jcp/beta/apidiffs/index-diffs.html Java6のドキュメント見てたら、こんなのを見つけた。Java 5.0(fcs) と Java6 Beta のAPIドキュメントのDIFFをHTMLで見られるらしい。 ここで何となく"java.math.RoundingMode(enum)"を見た…

ローカル用ブックマーク

http://d.hatena.ne.jp/hyuki/20071220#bookmark 乗り遅れすぎですが、自分でもこういうの欲しかったので、作ってみました。とりあえず試作品。指定したURLのファイルしか取ってきません。文字コードによっては題名がちゃんと読めません。 簡易Webサーバを立…

closureとか

http://www.infoq.com/jp/news/2007/12/closures-preserving-feel-of-java 個人的には、JavaSE5.0で新しく追加された言語機能は、慣れると使いやすいと思います。でも、Genericsはやはり敷居が高いように見えます。 十徳ナイフは要りません。普通に切れるハ…

DIとか

http://www.infoq.com/jp/news/2007/12/does-di-pay-off DIというかバイトコードいじりは、UnitTestでは普通に使われるようになりました。本来の使い道は、直接ミドルウェアに関与できない環境では使えないので、テスト用のバイパスとして使うくらいしか無い…

JCPはJavaの未来においてどんな役割を果たすのか?

http://www.infoq.com/jp/news/2007/12/jcp-debate;jsessionid=B4A4449DC2820E7A04FB562D217FD871 (→WebCite) 最近Alex Blewitt氏(ブログ・英語)はJava Community Process(JCP)を”頭がないのにそれに気づかず走り回っている鶏”に例え、それが既に死んでいる…

Rubyの標準ライブラリをPureJavaで書いてみる (2)

懲りずに続けてみます。 クラス名の衝突を先頭3文字にして回避してみましたが、ちょっと格好悪い。 Strクラス:Stringのwrapper。Enumerableを実装してる。 Numericクラス:数値のスーパークラス。自動変換(できるだけ)。 Intクラス:Integerのwrapper。当…

NetBeans IDE 6.0

Milestone7の時にちょっと触ったけど、前のバージョンよりは格段に良くなってます。 5.0のときも十分使えるようにはなってましたけどね。特にMatisseにはお世話になりましたし。だけどやっぱり、使い込んでる時間に差がありすぎることを考慮しても、エディタ…

Rubyの標準ライブラリをPureJavaで書いてみる (1)

これは11/27に書いたものの続きです。Rubyの記述力の高さをJavaでも実現してみたいので、RubyのつもりでJavaのコードが書けるようなライブラリを作ってみます。既にどこかで同じかそれ以上のものが作られていたりするかもしれません*1が、JavaSE5.0から導入…

Java Puzzlers - Joshua Bloch, Neal Gafter

ASIN:4894716895 翻訳は"Effective Java"と同じ柴田さん。Javaユーザとしては定番ですが、何となく読まずに居たら、随分年月が経ってしまいました。最近、書店で見かけたので読みましたが、もっと早く読んでおくべきだったなと思いました。ちょっとくやしい…

JavaでLL言語のようにリスト(配列)を操作したい

Lisp発祥かと思いますが、LL言語でリストor配列を扱う関数orメソッドのようなことを、Javaでやりたい場合はどうやるのが一般的なのでしょうか。 具体的にはRubyで例を挙げてみますが、 ia = [3, 2, 7] p( ia.select() do |item| item >= 3 end ) # => [3, 7]…

JNode - JavaがネイティブなOS?

http://www.jnode.org/ (http://journal.mycom.co.jp/news/2006/03/03/341.html 経由) Javaと「アセンブラ」だけで書かれているOSだそうです。OSそのものがJVMってことですよね? まだちゃんと調べてませんが、VMwareで動かせそうなので挑戦してみようと思い…

"Javaでバッチ処理"をフレームワークで

バッチ処理はJavaでバッチリ?その現状とこれから - @IT ちゃんと調べたことなかったけど、けっこうあるものですね。 実際に導入するには、バッチ処理の規模に見合ったフレームワークを選定するのが一番苦労しそうです。そんなに難しいことをしない処理なら…

JSpinnerがキーイベントを食い潰す

Java1.4だと困ってしまう問題。 private static void test(Window window) { Component[] components = {new JTextField(10), new JSpinner(), new JButton("SUBMIT")}; JOptionPane pane = new JOptionPane(components, JOptionPane.PLAIN_MESSAGE, JOption…

MessageDigest

メッセージダイジェストについて、初歩的なことですがおさらいしてみました。 メッセージダイジェストはハッシュ関数と呼ばれることの方が多いかもしれませんが、あるデータから一意のハッシュ値を算出するものです。大きなデータをダウンロードしたときに、…

JTableにJButtonを配置

JTableのセルにJButtonを追加して行削除 - Java Swing Tips JTableのセルにJButtonを追加して行削除 - てんぷらメモ@はてな ボタンに限らず、JTable上にコントロールを配置するのって、もっと簡単にできてよさそうな気がするんですけどね。 上記サイトでは、…

スクリプティング with Java

スクリプト言語大好きですが、"with Java"としてはあまり良く知らないので、これで勉強。 まださらっとしか目を通していませんが、スクリプト言語自体に慣れていない人向けと感じました。

System.exit()の使い方に注意

すごく今更で当たり前な話かも知れませんがメモ。 System.exit()は、シェルにリターンコードを返したりするのに使いますが、シェルから直接呼び出していない場合は、呼び出し元に戻すことができなくて困るので、どうしたら良いでしょうか。 私は、シェルから…

EventQueueの件でコメントをいただいていた

この日のエントリをたまたま開いたらブックマークがついていたので見てみたら、コメントをいただいていました。 http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/argius/20070816/1187284834私はJavaに深く関わるようになったのはJava1.3からなのですが…

Java SE 6u5 build b04, Nimbus Look and Feel

あいかわらず意味不明のバージョン体系ですが、新しいLaF見たさに早速インストールしてみました。新LaFの名前は"Nimbus"。このLaFを適用するには下記のオプションを指定します。 -Dswing.defaultlaf=sun.swing.plaf.nimbus.NimbusLookAndFeel イメージはJOpt…

6つの機能 - コーディングルールまとめ

Eclipse標準はコンパイル設定、インポート編成、フォーマッタ。プラグインは、FindBugs、CheckStyle、PMD。いずれもコーディングルールに則った設定を施しておきます。 セーブ時にインポート編成とフォーマッタを実行(europaならsaving-actionを使うのも良い…