JIS X 0213:2004(JIS2004) と Java と PHP と RDBMS

ずいぶん前に, EC-CUBE の ML へ投稿した話題ですが, どうも過去ログに埋もれているので, 再度まとめてみます…

Windows Vista で, 日本語の文字集合に, JIS X 0213:2004(JIS2004) が採用されました.

このため, 扱える漢字が増えたり, 字体が変化したりして, さまざまな影響があります.

EC-CUBE を代表する PHP のアプリケーションや, Java の場合, どのような影響が考えられるでしょうか.

以前, Windows Vista での影響調査をする機会があり, いろいろ調べましたので, ちょっとまとめてみます.

続きを読む

新しいプログラミング言語を習得するための15の方法

新しいプログラミング言語を習得するための15の方法
http://d.hatena.ne.jp/kajidai/20061025/1161711473
hanoimania!
http://www.kernelthread.com/hanoi/
で、紹介されている言語すべてで、この15の方法が書けるようになったらすごいだろうなーと。
sendmail.cf で書くとかはさすがに無理かもしれないけれど、少しずつでもいいからやってみようかなと思ったりする(笑)
続かなかったらスミマセン。
まずは Java からかなぁ。

続きを読む

Subversion でモジュールを管理する

Java に限らず、アプリケーションを開発する場合において、いくつかのアプリケーションで共通的に使用するモジュールを作成すると思います。
Subversion の svn:externals 属性を使用すると、これらの共通モジュールを管理するのが非常に楽になります。
ディレクトリ単位でしか使用できませんが、かなり重宝します。
使い方は簡単。
svn:externals という属性をディレクトリに対してセットしてやるだけで、そこで指定したリポジトリのディレクトリを update した時にコピーしてくれます。
詳しくは下記参照
Subversion – 外部定義

Eclipse から GWT を起動する for Mac

GWT が Mac OS X にネイティブ対応 したので、早速導入。
基本的には projectCreator で Eclipse のプロジェクトを作って、 Terminal から applicationCreator でデバックしながら開発という感じになるんでしょうけど、これだと Eclipse の デバックモードが使えず、ちょっと不便。
ということで、 Eclipse から起動させる方法を模索。
最初は、googlipse というプラグインを使ってみたのだけど、–XstartOnFirstThread の引数がないと怒られる。
あいにく、googlipse は、 任意の引数を与えることができないらしい。
試行錯誤のあげく、起動構成から直接 GWTShell をたたくことで成功。
具体的には、
1. 実行→構成および実行を選択。
2. メインタブで任意のプロジェクト(GWTTest)を選択、メインクラスは com.google.gwt.dev.GWTShell を指定
3. 引数のタブで、 プログラムの引数に下記を追加

 -port 8888 -out "www"   jp.example.GWTTest/GWTTest.html

4. VM引数に下記を追加

-XstartOnFirstThread

5. クラスパスのタブで、拡張をクリック、プロジェクトのディレクトリである src と bin をクラスパスに追加
これで実行をクリックすると、 Eclipse から GWT の hosted mode が立ち上がります!
さあ、ばりばりやるぞー

Google Web Toolkit (GWT) を Mac OS X で開発する

記事は少し前に見つけていたのですが、なかなか時間が無く、やっと試すことができたのでまとめてみます。
Java で Ajax の開発ができる!という Google Web Toolkit (GWT)が大変注目を集めています。
が、開発環境としてサポートしているのが、Linux (GTK+ 2.2.1+) と、 Windows XP/2000 のみということなので、 Mac OS X ユーザーは非常につらいところ。
この開発環境を何とか Mac OS X で動かすことができないかと, いろいろ調べてみたところ, Google Code に Issue #7480804 – Mac OS X support for Google Web Toolkit というのを発見.
そこに, Using GWT on Mac OS X: How To Guide という Google Group の記事があったので試してみました.

  • まず, http://www.eclipse.org/swt/ から, Mac OS X の SWT をダウンロードし, ‾/Library/Java/swt 等へ展開.
  • Linux 版の GWT をダウンロードし展開.
  • GWT を展開したディレクトリへ移動し, 下記のコマンドを実行. GWT プロジェクトを作成.
    % ./projectCreator -eclipse GWTTest -out ‾/Documents/workspace/GWTTest
    

    こうすることにより, Eclipse のプロジェクトが作成されます. プロジェクト名と, workspace のパスは, 環境に応じて書き変えてください.

  • 次に, 下記コマンドで必要なファイルを生成.
    % ./applicationCreator -eclipse GWTTest -out ‾/Documents/workspace/GWTTest jp.example.gwttest.client.GWTExample
    

    GWT アプリケーションは, 必ず client パッケージを指定する必要があるようです.

  • 生成したプロジェクトのディレクトリへ移動すると, GWTExample-shell や GWTExample-compile といった shell スクリプトが生成されていると思うので, GWTExample-shell を下記のように編集.
    #!/bin/bash
    APPDIR=`dirname $0`;
    java ¥
    -XstartOnFirstThread ¥
    -cp "$APPDIR/src:$APPDIR/bin:/foo/bar/gwt-linux-1.1.10/gwt-user.jar:/foo/bar/swt/swt.jar:/foo/bar/gwt-linux-1.1.10/gwt-dev-linux.jar" ¥
    -Djava.library.path=/foo/bar/swt ¥
    com.google.gwt.dev.GWTShell -out "$APPDIR/www" "$@" jp.example.gwttest.GWTExample/GWTExample.html;
    

    具体的には, 次のオプションを追加.
    -Djava.library.path には, SWT を展開したパスを指定して下さい.

    -XstartOnFirstThread
    -Djava.library.path=/foo/bar/swt
    

    クラスパスの gwt-dev-linux.jar の前に, swt.jar のクラスパスを追加しました.

      編集した GWTExample-shell を Terminal 等から実行すると, GWT アプリケーションがホステッドモードで立ちあがります.

%E3%83%92%E3%82%9A%E3%82%AF%E3%83%81%E3%83%A3%201.png
しかし, GWTExample-compile でWebモードへコンパイルしないと, GWTアプリケーションが動作しないようです..(苦笑)
Compile/Browse ボタンも動作しないようです..
つまり, JavaScript へコンパイルしないと動作しない模様..
ホステッドモードで debug 可能なのが GWT の良さでもあるので, 魅力半減..
でも, いちいちブラウザを立ちあげて確認するよりも, 少しは手間が省けるので, Mac OS X が正式にサポートされるまでの繋ぎとして使うのにはこれで我慢ですね..

trac

2ヶ月ほど前から、プロジェクト管理を GForge から trac に乗り換えました。
Wiki ベースのプロジェクト管理ツールで、Subversion との連携は抜群。バグトラッカであるチケットシステムもシンプルでなじみやすいです。
乗り換えた最大の理由は、 trac が Python で書かれていること。
GForge は PHP4 で書かれており、GForge を使うためだけに サーバーに mod_php4 を入れていました。
apache2.0.x を使っているので、mod_php4 の使用は推奨されてないんですよね。。
また、最近は PHP で開発することもほとんど無くなり。。。必要性がかなり薄れておりました。
とりあえず、すっきり PHP とオサラバしたかったのです(笑)
最近は、 trac で開発を行っているプロジェクトもよく見られるようになってきました。国内では Meadow とか、 Namazu など。
WWDC 2006で存在明らかにされたMac OS Xの次バージョン「Leopard」に搭載予定のカレンダーサーバーである、 Darwin Calendar Server も trac で開発が行われるようです。
日本語の情報が、まだまだ少ないようなので、時間があったら少しずつでも、ノウハウまとめていきたいと思っておりますが。。。
できるのか?(汗)

Java で Ajax が書ける!

Google Web Toolkit
これすごい。
Java 使いにとっては朗報。
いまのところ、実行環境が Windows と Linux のみのサポートだそうで、 Mac 使いにはちょっとツライ。
でも、しつこく試してみたところ、実行環境は動かないけど、 Java のソースコードから、 HTML と JavaScript のコードは生成出来る模様。
このあたりは Java で動いているみたいです。
もちろん、それをブラウザで開けばちゃんと動きます。
試してないけど、 Debugging in Hosted Mode なんてものもあるので、 Eclipse 使えば動くのかな?
使い方覚えれば、かなり使えるかなと。
いま使っている、 Struts ベースのフレームワークと、どう連携させようか・・・。
落ち着いたらまた書きます(汗)

基本。

フォームに入力すると、見積書とか、請求書が PDF で自動的にできるソフト作ってくれーとの依頼入る。
Webベースにして、Java で作ることに。
Webベースにすることで、PCにインストールする手間が無くなり、ブラウザなら誰でも簡単に扱えるという利点がある。
ていうか、以前作ったことあるので、ちょっとカスタマイズするだけでできるのだが、くそまじめに作ろうと思い立ち、設計書から作ることに。
大規模なプロジェクトになると、概要設計→基本設計→詳細設計→製造→結合テスト→Quality Assurance(品質保証テスト) という流れは必須なのだが、小規模なアプリなら、ざっとER図とかクラス図を書いたりして、簡単に設計して、コーディングというように省略してしまう。
しかし、今回は、ちょっと基本をみっちりやろうと、概要設計から作っております。
設計書は、Excel、Word、PowerPoint等で作ることが多いと思いますが、僕はテキストベースで、Subversion 使って管理したいのです。
テキストベースにすることによって、プラットホームやバージョンの依存性が無くなり、Excel が入ってないからみれないとか、長い年月が経ち、作ったソフトが廃止され、ファイルが開けないということもなくなります。
いまやってるプロジェクトでは、APT(Almost Plain Text)というのを使っており、
Aptconvert is a command-line tool that can be used to convert the APT format to HTML, XHTML, PDF, PostScript, (MS Word loadable) RTF, DocBook SGML and DocBook XML.
ということで、かなりいろいろなフォーマットへ変換でき、大変優秀であります。
ベースとなるテキストファイルも Wiki に似た文法で、そのままでも読みやすい。
しかし欠点がただ一つ。
表が非常に書きにくいこと。
*+-:|を駆使して、表を書かねばならんのです。

*----------|--------:
|こんな        | 感じ      |
*----------|--------:

これ、超面倒(ーー;
かといって、LaTeX で書くほどのものでもないし・・・。
なんか良いツールは無いかと探していたところ、 SmartDoc はっけん。
前から知っていたのだけど、業界標準と言うほど使われておらず、デザインの柔軟性がちょっと乏しいかなと思い、敬遠しておりました。
また、僕は XHTML で出力したいので、これがないのがネックでした。
でも、それは、まだ SmartDoc が0.6とかのバージョンだった頃のお話。
現在、1.2b となって、かなり使えるツールになっております。
-html4.xhtml:true というオプションをつけると、XHTML で出力できるし、オプションと CSS を駆使すれば、かなり柔軟に HTML出力可能。
また、 PureSmartDoc 形式で書き出せば、XML DB と連携したり、 Java と連携したりと汎用性抜群。
ということで、いま、 SmartDoc を使ってごそごそ基本設計書を作っております。
で、いま作ってる帳票アプリは、機能が安定してきたらオープンソースで公開しても良いかなぁと思ってます。
PDFに出力する部分は、 JasperReports 使います。
こういうのは、一度作ってしまえば、割と楽なんですが、最初はなかなか敷居が高いですからねえ。。
とりあえず、基本に返って地道に頑張ります。。