2009年3月30日月曜日

JGGUGに参加してきました

JGUGG第1回g*ワークショップ

先日横浜で行われた、JGUGG第1回g*ワークショップに参加してまいりました。内容はGroovyのデスクトップフレームワーク「Griffon」の紹介をして頂きました。
私のような初心者には判らない事も多数ありましたが、あまり初歩の質問ばかりでは、話の内容を止めてしまいそうなので、さすがにそれは出来ませんでした。もう少し図太いほうがいいのかもしれませんが...。
こんな私でも快く受入れてくれたみなさまに感謝です。非常に有意義な時間でした。第2回もぜひ参加したいと思いました。
話は変わって、Groovyの構文を忘れたとき用に書いときます。普段使わないと、似たような構文でどれがどれか分からなくなります。RPGみたいに固定フォーマットだと間違えようがないんですが...。

■if条件分岐
def a =1
def b=2
def c = a +b

if (c==3){
println "${a} + ${b} は ${c}です。"
}else{
println "答えは3以外です。"
}

■forループ

def a = 0

for (i in 1..5){
a++
a+=1
a-=1
}

println"${a}回ループしました"



つづく。

2009年3月26日木曜日

MYSQL for DB2 i

MySQL Storage Engine ibmdb2i

MySQLのストレージエンジンで、「ibmdb2i」のベータ版が公式サイトで、発表されていた。この「 ibmdb2i Storage Engine 」は、IBM i(AS/400)上にあるDB2のテーブルとMySQL上のテーブルをつなぐ架け橋だ。
例えばオープン系プログラマーは、MySQL上の「CUSTOMER」というテーブルに大して、顧客レコードを追加する。レガシー系プログラマーは、DB2上の「CUSTOMER」というテーブルにアクセスすると、MySQL側で作成された、顧客レコードを参照することが出来る。
実装レベルでは、MySQL側にテーブルがあって、DB2にもテーブルがあって同期をとっているのか?実態は1つで、どちらかが仮想テーブルなのかは?今のところわからない。なんせ、まだ英語のページ(http://solutions.mysql.com/engines/ibm_db2_storage_engine.html)しか見つからなかったんで。
これは、レガシー系で既存のテーブルが存在しているケースに、オープン系でも利用する際に、データの一元化が出来そうだ。但し、今のところは、既存ファイルに対しては、「ibmdb2iを適用できないので、MySQL側に作成してから、DB2のデータをコピーする必要がある。逆に既存のテーブルがMySQLで「innodb myisam」の場合は、「ibmdb2i」に変更することは容易だ。

2009年3月25日水曜日

アジャイルなその4

Groovyの特徴

いまさらだけどGroovyの特徴。
①Javaとの親和性が高い。
②変数の動的型付け
③構文終わりの「;」セミコロンが不要(Javaとの違い)
④import済みの以下のクラス
java.io.*
java.lang.*
java.math.BigDecimal
java.math.BigInteger
java.net.*
java.util.*
groovy.lang.*
groovy.util.*
⑤クロージャー(関数みたいに処理をまとめておいて、いつでも呼び出せる)
⑥拡張されたStringクラス
⑦publicなどの宣言も不要
⑧複数のクラスを持つことができる
⑨スクリプトが実行できる。(コンパイル不要。)
⑩コンパイルしてクラスを作ることも出来る。(groovycコマンド)
まだまだ、たくさん知らないことはあるけど、これから覚えていこう。

■Groovyの簡単な例
stringA = "Hello Groovy!"
println stringA

(結果)
groovy => Hello Groovy!

これでも内部的には、Mainメソッドが作られて、Javaのクラスにコンパイルされて、JVM上で動いているんだそうです。

■ちなみにJavaだと
class HelloGroovy{
public static void main(String[] args){
String stringA = "Hello Groovy!"
System.out.println(stringA);
}
}

2009年3月23日月曜日

アジャイルなその3

とりあえずGroovyのインスト



まずは、Groovyをhttp://groovy.codehaus.org/Downloadからダウンロード。

現時点での最新版は、1.5.xだったのだが、つい最近1.6が正式リリースをされたので、また違いを覚えなおすのも何なんで、1.6を再度ダウンロード。

ちなみに前提のJVMは1.4以上です。

自分の環境はWinなんで、インストーラー付のバイナリーがあり、インストール作業や環境変数”GROOVY_HOME”の設定なんかも勝手にやってくれる。

コマンドラインで、「groovy -h(または--help)」でヘルプが確認できる。
「groovy -v(または--version)」でGroovyとJVMのバージョンを確認できる。
「groovysh」でインタラクティブにGroovyを実行できる。

つづく...

2009年3月18日水曜日

アジャイルなその2

Groovyをお試か?

Javaと親和性の高いGroovy。一時はJdK6にも入るのでは何てぐらいだったみたいだから。
特に私はJavaが得意なわけではないけど、Javaの強力なクラスやAPIを使える事が、非常に大きなメリットである事はよく分かる。
だから、Java実装のJRubyやJythonが生まれてくるのかぁと思ったし、考えた人は発想が柔軟なんだなと思う。
そして、Groovyは、Rubyの後追いと言われればそうかもしれないけど、後出しジャンケンは必ず勝つのだから、それだけ痒いところに手が届くって事で、良い意味でとらえていいんじゃないかと思う。
車だって似たようなコンセプトだと、後出しの方が、真似だと言われても出来が良かったりするもの。
GrailsもGroovy+Railsのまんまの名前だけど、後出しだからいいんじゃないかな?その辺Rubyに詳しい訳じゃないんで、間単には、比べられないけど...。
Groovyに一番興味を引かれた訳は、これ。
Project Zeroは、Groovyをサポートしている事。Project Zeroは、IBMが提唱している、新しいオープン系のWebアプリケーション開発環境。有償版はWebSphere sMash。
IBM iもそのうち、WebSphere sMashがサポートされるかもしれないし。IBM iはJava VMは乗っているから、GroovyをAIXバイナリーに出来れば、PASE環境で動くんでは?ってな発想も浮かんだけど、時間があったらやってみたい。とりあえずは、Winのバイナリーを公式サイトから落として、Groovy1.6をインストールしました。

2009年3月17日火曜日

アジャイルなその1

Ruby? Python? Groovy?

自分は、どちらかと言うと基本レガシーな人種なんで、この状況を打破したいのですが、過去に色々と手を出しては、中途半端な感じになることが多く、悩んでいる今日この頃。
過去には、"Java",".NET"を少しカジって見たものの結局、「何とか組めるけど、本当にこれでいいの?」的な状況が、続くわけです。
仕事傍ら、ヒXXアカデミーみたいな、学校も行ったけど、「別にそれくらい自習できるでしょ!」ぐらいのレベルしか教えてくれないし。所詮お勉強はお勉強。
やはり自分のスキル向上及び、開発生産性の向上が、第一(そこは社会人だから、好きだから楽しい+仕事にならないと)なので、実際にはそれが満たされればコンピュータ言語は何でも良いのです。
まぁ、下回りのチョコッとした要件をPCで、作るぐらいは何て事はないんですが、基幹システム焼きなおせるぐらいのスキルは無いと意味無いなと思います。当然それに見合った、設計思想の点から変革が必要なんでしょうけど。

そんな中でもアジャイル開発可能な言語は、チョット惹かれるものがあります。
Ruby,Python,Groovyなどなど色々とありますが、どれかをやってみたいそんな気持ちになりました。
RailsやGrailsの「設定は規約に勝る」的な考えも共感できます。
昔Strutsやったとき、設定ばかりで「うーん?」ってなってたんで。

2009年3月16日月曜日

iSeries Access for Linux

iSeries Access for Linux

相変わらずIBMのUSサイトは慣れない。これでも最初よりはましだけど、遅くてもいいから何とか日本語のページもならんもんか?する気はないだろうけどね。英語わからない時点で、ノーサンキューって感じが伝わります。
それはさておき、ダウンロード。ライセンス的にはClient Accessの部類なので、それがあれば問題ないとのこと。パッケージはrpmなので(ちなみにIBMではRedhat系が推奨環境みたい?)、そんなこといってもdebian入れちまったので、(こんなことならFedoraにしときゃよかったよ)debパッケージに変換。依存関係のある、パッケージ落としまくって、インスコ。「ibm5250」をシェルで実行。
エミュレータ接続してサインオンするも、いきなり文字化け、丸一日格闘するも、改善せず。だれかdebian系で5250エミュ文字化けせずに使っている人おせーて。

2009年3月11日水曜日

Debian5.0インスト

Debain 5.0 インスト

1年くらい前に自分が使っていた、使われずじまいのw2kサーバー(Dell PowerEdge 600SC)が、放置されたままだ。
win環境で、いちいちwww,app,db鯖、たてるのがめんどいので、テスト用のサーバーとして、Debainを入れてしまおうかと。ここ数年、Linux系のOSなんてインストしたこと無いですが、ずいぶんお洒落というか、だいぶ昔とイメージ違いますね。GUIできました、てっきりコマンドラインでかとおもってました。
選択するだけで、勝手にwww,app,db鯖,php,pythonも入ってくれるので簡単にLAMP環境も作れちゃいます。
winより、よっぽど良いかもしません。一応ibm i? i5? AS/400?の仕事もしますんで、エミュレータくらいと思い調べてたら、iSeries Access for Linuxなんてありました。(例のごとく、IのUSサイトですけど...)今度、エミュを入れてみます。

2009年3月6日金曜日

PASE環境にRubyその2


Rubyのバイナリー

AIXのコンパイラーが無いので、バイナリー探しの旅に出た。
苦手な英語のページでも何とか読まねばならないのが、たいていの旅の辛い所。もうちょっとまじめに、英語をやっときゃよかった。
何とかバイナリーを提供している奇特な方のページを見つけて、ダウンロードしてインスト。QP2TERMでRuby実行。よしっ!rubyコマンドは、動いた。じゃあirb。うごかねぇ...。やんごとねぇ...。
何か別のライブラリが必要なのかな?自分でコンパイル出来ない以上、如何ともしがたいし、ちょっと飽きた。リフレッシュもかねて、使っていないPCにdebian5.0でも入れよう。

2009年3月4日水曜日

PASE環境にRubyその1


PASE on Ruby

PASE環境にせっかくMYSQLが入ったので、先刻受けてきたセミナーの影響もありまして、Rubyも入れてしまえという事になりました。

ちなみに、PHPは既にZend Core i5/OSが入っています。しかも有償ライセンスを購入したので、何のセットアップせずに動いています。
i5上でPHPの勉強している同僚がいますが、設定やそういったスキルも身に付くことがなくなるのは、それはそれで如何なものかと...。

まずRubyのダウンロードということで、公式ページに行くと、さすが日本人が作っただけあって、日本語のオフィシャルページでした。ソースをせっかくなので最新版1.9をダウンロードして、PASE環境に導入と行きましょう。あんまし、AIXもLinuxも詳しくないので、マニュアル読みながらっ?コンパイル...?あっ!AIXのコンパラーって無いかも!!i5に関連するライセンスしか、会社にはありませんでした。
PASEでAIXバイナリーが動くのは、良いけどAIXのコンパイラーも何か1つは欲しいなぁ。何か無償のとないかし?あるかも知れないけど、よく分からないので、RubyのAIX用バイナリーを探したほうが、早いかもと言う事で、探すたびに出たのでした。

2009年3月3日火曜日

PASE環境にMYSQLその3


MYSQLのスタートアップ

まずは、サブシステム「MYSQL」を作成。(よく考えたら、MYSQLのデーモンしか動かないので、OPEN系用にOPENSYSとかにすれば良かった。)
MYSQLサブシステムの自動実行に、作成したCLEをADDAJE追加。WRKSBSDにて確認。QSTRUPでSTRSBSを追加。次の日IPLで確認したらOKでした。
i5にMYSQL乗ったから、今度はRubyをPASE環境に入れてみよう。