クラスだとかメソッドだとか

javaでPersonクラスにあるsayメソッドをMainクラスから使用する場合、
Person.java

public class Person {
    public void say(String str) {
        System.out.println("Person say " + str + ".");   
    }
}

Main.java

public class Main {
    public static void main (String args[] ) {
        Person suzuki = new Person();
        suzuki.say("こんにちわ");
    }
}

この別のクラスにある、メソッドを呼ぶという処理ですが、
rubyの場合だと、

person.rb

class Person
  def say(str)
    puts("Person say " + str + ".")
  end
end

main.rb

require 'person'

class Main
  def exec
    suzuki = Person.new
    suzuki.say("こんにちわ")
  end
end

main = Main.new
main.exec


こんな感じでしょうか。
javaから来ると、newの位置が違うことに戸惑いましたが、すぐに慣れました。
Main main = Main.new();と書かなくて良い所が好印象です。

Derbyはじめの一歩

Apache Derbyを使ってみてのメモです。

Windowsでの説明になりますが、まず環境変数を設定します。

MS-DOS> set DERBY_INSTALL=C:\derby
MS-DOS> set CLASSPATH=%DERBY_INSTALL%\lib\derby.jar;%DERBY_INSTALL%\lib\derbytools.jar;%CLASSPATH%

環境変数が設定できたか確認します。

MS-DOS> java org.apache.derby.tools.sysinfo

データベースを作ってみますが、カレントにできちゃうので注意してください。

MS-DOS> java org.apache.derby.tools.ij
ij> connect 'jdbc:derby:autotest;create=true';

最後にテーブル作成。

ij> create table test (id int generated by default as identity
                         (start with 1, increment by 1),
                       name varchar(255) not null);
ij> alter table test add primary key (id);
ij> alter table test add unique (name);

ここで力尽きました。

ここまで書いといてアレですが、mysqlのauto incrementより面倒臭そうな予感がします・・・

誰かの役に立てるとうれしい

すごく久しぶりの更新になってしまいました。

誰でも知ってると思うような知識でも、書く価値はあるよ。

といった趣旨のことをessaさんが以前書いてたと思うので、vim-rubyの設定方法です。


環境はこんな感じで、結構古めです。

  • Debian (sarge, kernel-2.6.8)
  • viは既に6系が入ってる


vim-rubyでハイライト表示したいなぁと思ったのですが、

apt-getでvim-rubyをインストールしても表示が変わりません

よくドキュメントをみると、どうもvimが7系じゃなきゃイカンみたいで、

sargeではパッケージないみたいで、、、ソースからインストールです。

まずは解凍し、、、

 $ bunzip2 -c vim-7.0.tar.bz2 | tar xf -

できたフォルダに移動して、インストール

 $ make
 # make install

インストール完了すると

 $ ls /usr/local/bin

で、vimが確認できます。

これを、普通のvimに対するパスより先に設定して、ドキュメントにある.vimrcの設定すれば完了です。

後はvim-rubyのvim7対応版をapt-getじゃなくて、gemでインストールです。

 # gem install vim-ruby --remote


参考url
http://wiki.rubygarden.org/Ruby/page/show/VimRubySupport: Ruby: VimRubySupport
http://www.vim.org/download.php#unix :download : vim online

フレームワークっぽく、Servlet部分と再利用可能な部分を分けて、

htabletree.jarなんて作ったのですが、ドキュメントの整備とか、ソースコードCVSで公開とか

やろうと思うとなかなかパワーが必要ですね。

OSSで自分の作ったものを公開してる人ってすごいと思います。

デモを見てもらうためにJavaだと動かせないので、LLで書き直したいのですが、

道のりは険しそうです。はぁ…

触発されて長めに書いてみる

るびま読みました。

とはいっても、id:essaさんのインタビューのとこだけなんですが。
それでも過去のエントリとかリンクとか見てるだけで2時間!かかってしまったので、
全体を見終わるのはかなり先になるかもしれません。


id:essaさんのブログはアンテナ張ってまして、どういうインタビューになるのか
楽しみにしてたのですが、人となりがでてますね。
非常に人間らしいというか、いろんな側面を感じることができて、楽しめました。
そういった意味だと、トーンは違うけど似てると思うartonさんの基幹系の例えには
かなり笑わせてもらいました。


ってことで、僕は勤勉な人の作った繊細なシステムを、縁の下から支えているような存在です。


もうすぐ30歳ですが、未だにメインフレームやってるし、
吹けば崩れるような繊細なシステムにどうやって拡張性を与えるか、という問題を
社会人になって8年ぐらい、パソコンとのクラサバ通信、データのみ移行、ダム端通信のTCP/IP化、
CORBAとこなしてきましたが、こんどはSOAだそうです。。。

Eclipseで作るときの設定メモ

WTP好きになれないし、tomcatも開発環境には重いし、いろいろ入れるとEclipseも重いので。。。


環境

Windows XP, Eclipse 3.2, Winstone 0.8.1


手順

Winstoneフォルダを作成

例) C:\winstone
C:\winstone\webapps

Eclipseで新規プロジェクトの作成

"Create a Java Project"ウィザードでは、

Contentsは"Create project from existing source"を選択し、Winstoneフォルダに

プロジェクトを作る

例) C:\winstone\webapps\hello

Project Layoutは"Create separete source and output folders"を選択、でNextボタンを押す

Sourceタブの"Default output folder"を修正する。

修正前 : hello/bin
修正後 : hello/WEB-INF/classes

Finishボタンを押す。

プロジェクトのビルドパスにservlet-api.jarを外部jarとして追加する。

後は普通にweb.xmlを書いたり、サーブレット作ればオッケーです。

実行はコマンドプロンプトから

C:\winstone> java -jar winstone-0.8.1.jar --webroot=C:\winstone\webapps\hello
JSPを使うときにはwinstone実行時に"--useJasper"オプションが必須です。

エンコーディングにはまる。


日本語入力ぐらい、MySQLのサーバの文字コードをutf8にしてるし、簡単ですよ。

と思ってたのが、かなりつまづいてしまってました。


結局はここを見て判明したのですが、

ServletRequestクラスのgetParameter()がiso-8859-1でエンコードしちゃうみたいです。

絶対MySQLがらみだろうと思い、jdbcドライバのプロパティとかいじってたのが、見当はずれでした。。。