JGGUGニュースレター Vol.12

55 views
Skip to first unread message

ueha j

unread,
Jul 16, 2010, 4:00:51 AM7/16/10
to jg...@googlegroups.com
/**
* JGGUG (Japan Grails/Groovy User Group) ニュースレター
*
* @volume 12
* @published 2010/07/16
*/

暑いですね!夏はもう目前です。そしてJGGUG総会&G*WSスペシャルも7/24と目
前です。残席も少なくなってきていますので、まだ申し込まれてない方はお早
めにどうぞ!

http://kokucheese.com/event/index/3384/

ということでJGGUGニュースレター<第12号>を熱くお届けします。このメール
マガジンでは、Grails/Groovy 関連ニュースや技術的な記事、JGGUGの活動報告
等を、ほぼ月刊でJGGUGメンバ全員にお送りしています。

▼目次
* ヘッドラインニュース: Grails 1.3.2/1.3.3,Groovy 1.7.3,Griffon 0.3.1,GPars
0.10,Gaelykの0.4.1、0.4.2
* イベントスケジュール
* 活動レポート: G*ワークショップ
* G*なブロガー: 倭マンさん「Groovyの半分は思いやりでできている」
* 便利なGDKメソッド: 第二回 Stringクラス
* Grailsプラグイン探訪: 第12回「Searchableプラグイン」
----------------------------------------------------------------------
■ヘッドラインニュース
* Grails 1.3.2, 1.3.3リリース!

Grailsがマイナーバージョンアップしています。1.3.2は主にはGroovyや
Springのバージョンアップに追随しているもので、1.3.3は純粋なバグフィック
スリリースとのことです。

▽山本さんによるまとめ

http://d.hatena.ne.jp/mottsnite/20100617/1276784643
http://d.hatena.ne.jp/mottsnite/20100708/1278605372

* Groovy 1.7.3リリース!

便利なGDKメソッドの多数追加を含むGroovy 1.7.3がリリースされました。関谷
さんの記事で紹介されている、String#tr()はJGGUGメンバーからのコントリ
ビューションです。

▽DZone記事
http://groovy.dzone.com/announcements/groovy-173-released

▽リリースノート
http://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=10242&version=16356

* Griffon 0.3.1リリース。

ドキュメントGriffon Guideが今回初めて公開されています。

▽ホームページとリリースノート

http://griffon.codehaus.org/
http://griffon.codehaus.org/Griffon+0.3.1

▽Griffon Guide
http://dist.codehaus.org/griffon/guide/index.html

* GPars 0.10 GAリリース

Groovyの並行処理ライブラリがクラス名・メソッド名含め大幅に変わってます。

▽リリースノート
http://www.gpars.org/guide/guide/2.%20Getting%20Started.html#2.4%20What%27s%20new

* Gaelykの0.4.1、0.4.2リリース

立て続けにリリースされています。関谷さんのLoggingに関するcontributionが
取り込まれているとのこと。

▽関谷さんによるまとめ
http://d.hatena.ne.jp/ksky/20100715/p1

▽リリースノート
http://groups.google.com/group/gaelyk/msg/f606fd94b0809736
http://groups.google.com/group/gaelyk/msg/036726aa28b6f62e


(by 上原)
----------------------------------------------------------------------
■イベントスケジュール
* 2009年度JGGUG総会+スペシャルG*ワークショップ
日時: 7月24日(土)
場所: オラクル青山センター 13Fセミナールーム
詳細: http://kokucheese.com/event/index/3384/

スペシャルG*ワークショップは、国内第一人者級の皆さんによる講演です。
GroovyServの開発秘話もあるようですよ!(ってこれから資料を書かない
と…。)豪華なプレゼントもあります!(「えーっこんなのもらっていい
の?!」←経験者の感想です。JGGUGの見解ではありません:)

▼JGGUGの公開Googleカレンダー!購読して最新情報をチェック!
http://bit.ly/9w3QiZ

▼JGGUGの公式Twitterアカウントもよろしく!
http://twitter.com/jggug
----------------------------------------------------------------------

■活動レポート: G*ワークショップ
日時: 2010/5/27(木) 19:00-21:00
場所: NTTソフトウェア品川本社

* 「GroovyとHudson」 by 奥清隆さん (クロノス)
http://www.slideshare.net/kiy0taka/groovy-andhudson2

もともとGroovyが組み込まれているHudsonはGroovyと相性が良いらしく、
HudsonをG*関連プロダクトと組み合わせて使いこなすための多彩なノウハ
ウと、自作ツール群を、デモを合わせて紹介をしていただきました。
自作ツールには、例えば、

* Hudsoのスクリプトコンソールを元にしてOSコマンド実行が可能な「Hudson
ターミナル」

* Hudson Cliを経由してリモートのHudson上に任意のバージョンのGrailsをイ
ンストールするGrails Installer Plugin。

* Hudson Griffon Plugin

その他などを作られたとのことです。まとめとして「動的言語が(型チェック
に関して)不安なら、頻繁にビルドして健康状態を保つべき」とのことでした。
Groovy開発者ならHudsonの併用は必須ぐらいに考えた方がいいかもしれませんね。

* 「CAS + Grails Acegi Plugin」 by 笠原史郎さん (CIJ)
http://bit.ly/aEN1Wu

笠原さんによる、Central Authentication Service(CAS)というオープンソース
のシングルサインオン製品をGrailsの認証プラグイン(Spring Security
Plugin)と組み合わせた利用方法の紹介です。Grailsdで開発するWebアプリを
SSO対応させるための手順とデモを説明してくれました。

Spring Securty PluginがもともとCAS対応しているとのことで、Webアプリ側は
容易に設定できるようです。単なる設定では対応できないシングルサインアウ
トについても、web.xmlにServlet Filterを設定するだけで対応可能とのことで
した。

今回の来場者の方には、SSO機能を業務で利用されている方も何名かいらっしゃっ
たようでしたが、Grailsがこの種の「既存のJavaライブラリ」が如何に容易に
Grailsアプリ開発に取り込めるか、という良い実例としてアピールできたので
はないかと思います。

http://www.jggug.org/news/10th_g_workshop
(by 上原)
----------------------------------------------------------------------
■G*なブロガー: 倭マンさん「Groovyの半分は思いやりでできている」

こんにちは。 はてなダイアリーで「倭マン日記」を書いてます、倭マンと申
します。拙文ですが、少々お付き合いをお願いします。

さて、「G*なブロガー」の紹介を受けて、改めて自分がGroovyを使っている理
由、使い始めたキッカケを考えてみたんですが、うーむ、イマイチ思い当たる
ものが・・・。いやいや、そんなハズは。 とりあえずGroovyを始める前に考
えてたのは:

・スクリプト(動的)言語を何かやろう!
・Javaが使えるといいカモ

ということだったんですが、それがGroovyでなければいけなかったかという
と・・・うん、アレだね。理由がないってことは「本能」だね!(もしくは
「運命」)

まぁ、始めた当初はそれはともかく、今はどうなのか?というと、まだGroovy
歴は半年無いくらいなので、Groovyのメリットを充分把握しているわけではあ
りませんが、今まで使っていて「Groovy凄い!」と思ったところを2つほど。
(Groovyは趣味レベルで使っているので、そのレベルで読んでいただければ幸
いです)

1つ目は、ScriptやGPathなどによって、簡単にJavaライブラリを動かした
りJavaオブジェクトの設定を行ったりできるところです。例えば、

・NekoHTMLでWebからデータを取得する
・Apache POIでExcel、Spread Sheetを作る
・JFreeChartでグラフを描く

のような、頑張ればJavaでも操れるけれど、たくさんの手順や設定項目があっ
て辟易し、よほどのインセンティブがなければ投げ出しそうな(ちょっと言い
過ぎかな(笑))ライブラリでも結構簡単に動くコードを書いたり、設定を変
更したりできるのが凄い!

これによって、「使ってみたいけど複雑そうだなぁ」と思っていたライブラリ
でも試してみることへの精神的ハードルがかなり下がった感じがします。今後、
PDFや動画を操作するライブラリなんかも使ってみようかと。

2つ目はXMLが簡単に扱えるところです。

一時期、XML(の解析)に結構はまっていて、SAX,StAX,dom4jやその他XML解析
のJava APIをあれこれイジっていたのですが、GroovyでXML解析をやってみて、
全て吹っ飛びましたね。いやー、Groovy凄い!

ビルダー使った記法だと、XMLの冗長性すらなくなってしまうし。

他にもいろいろ「Groovy凄い!」と思ったこともありますが、いろいろな所で
細部がよく考えられていて、かつ、それらが有機的に繋がっているような感じ
で、もうホント、Groovyの半分は思いやりでできているんじゃ?と思ってしま
うくらい(笑)

と、まぁここまでGroovy凄いって話でしたが、それもこれも、Javaという下地
があってこそ。逆に、Javaを知らずにGroovyができるのか?というのも疑問。っ
てことで、Groovyを使ってみて再確認したこと:

「やっぱり Java もスキ!」

▽倭マン日記
http://d.hatena.ne.jp/waman/

(by 倭マン)
----------------------------------------------------------------------
■便利なGDKメソッド: 第二回 Stringクラス

第二回はターゲットはStringクラスです。Stringクラスにはもともと数多くの
メソッドがありますが、GDKではさらに88個ものメソッドを追加しています。今
回はその中から、独断と偏見によりいくつか興味深いものを選んで紹介します。

まずは、外部コマンドを実行するexecuteメソッド。シェルスクリプト的な作業
をするときには欠かせない便利なメソッドです。

"say groovy rocks!".execute() // sayコマンドの非同期実行
"cp bigfile bigfile.bak".execute().waitFor() // 完了を待つ場合
def output = "ls -l".execute().text // 出力を取得

続いてフォーマット系のメソッド、center、padLeft、padRight。
ちょっとしたレポート出力などに便利です。以下の例を見てください:

def s = "groovy"
println "|${s.padLeft (10)}|" // => "| groovy|"
println "|${s.center (10)}|" // => "| groovy |"
println "|${s.padRight(10)}|" // => "|groovy |"

そして演算子系メソッドのbitwiseNegate、getAt、leftShift、minus、multiply、
next、plus、previous。これらによって、Groovyでは文字列に対して以下のような
多彩な演算子が利用可能になっています:

~s 文字列から正規表現Patternオブジェクトを生成
s[idx] 指定インデックスの文字を取得
s1 - s2 文字列の一部を削除
s * n 文字列をn回繰り返す
s1 + s2 (加算はJavaと同じ)
++s, s++ インクリメント。例:++"ggg" => "ggh"
--s, s-- デクリメント。 例:--"ggg" => "ggf"
s1 << s2 連結した文字列をStringBufferで返す

また、isNumberなどのis系メソッドや、toURLなどのto系メソッドも実用的です。
is系メソッドは文字列が指定型(Double,Integer,Numberなど)としてパース可能か
どうかをbooleanで返し、to系メソッドは文字列を指定型(Boolean,Double,Integer,
URLなど)に変換します。

さて最後に最新情報を。6/14にリリースされたばかりのGroovy 1.7.3では、ま
た13もの新しいメソッドが追加されました。ついに実現した、UNIX屋にはおな
じみのtrメソッドはJGGUGの中野さんと上原さんによるcontributionです!

// 全角数字を半角数字に
"0655".tr('0-9', '0-9') // => "0655"

他にも、タブをスペースに展開するexpandとその逆のunexpand、名前のまんま
のcapitalize、複数行文字列リテラルを美しく記述するためのstripIndentや
stripMarginなど、ますますかゆいところに手が届く仕上がりになっています。

Stringには上記以外にも多くの便利なGDKメソッドがあります。文字列は最もよ
く利用する基本データ型ですから、一度GDKのAPIドキュメントに目を通してお
いても絶対損はないですよ!

http://groovy.codehaus.org/groovy-jdk/java/lang/String.html

(by 関谷)
----------------------------------------------------------------------
■Grailsプラグイン探訪: 第12回「Searchableプラグイン」

今回はSearchable Pluginをご紹介します。このプラグインを利用する事でGoogle
のようにテキストボックス1つで様々な検索ができる機能をアプリケーションに
追加する事ができます。

プラグインをインストールし、ドメインクラスに「static searchable = true」
を追加すると、ドメインクラスのプロパティに対して全文検索が可能になりま
す。検索用のViewとControllerは自分で作成する事も出来ますが、プラグイン
で用意されているコントローラ(http://localhost:8080/myapp/searchable)に
アクセスすれば、手軽に検索を試す事ができます。

自前のControllerで検索する場合は、以下のようにドメインクラスのsearchメ
ソッドを利用できます。

// すべてのプロパティに対して「Groovy」という値で検索
Book.search("Groovy")
// プロパティtitleに対して「Groovy」という値で検索
Book.search("title:Groovy")

Searchable PluginはJavaの全文検索エンジンであるApache Luceneを使用して
います。残念ながらLuceneはデフォルトで日本語に対応していないため、プラ
グインをインストールしても日本語の検索は予想した結果を返してくれません。
Searchable Pluginの現時点での最新バージョン(0.5.5)はアナライザの変更も
出来ますが、ロードマップを見るとバージョン0.7で英語以外の言語にも対応す
る予定になっています。

Searchable Pluginについての簡単な紹介になってしまいましたが、様々な設定
方法や使い方がプラグインのサイトにまとめられています。全文検索を気軽に
試したい方はぜひプラグインをインストールしてみてください。

▽Searchableプラグイン
http://grails.org/plugin/searchable
(by 奥)
----------------------------------------------------------------------
// JGGUG ニュースレター Vol.12
// 発行元: 日本 Grails/Groovy ユーザーグループ (http://www.jggug.org/)
// 編集担当: 上原
// バックナンバー: http://grails.jp/wiki/display/newsletter+archive
// Copyright 2010 JGGUG - 再利用は Creative Commons ライセンスによります:
// http://creativecommons.org/licenses/by-sa/2.1/jp/
// お問い合わせ、ご意見等は newsletter[at]jggug.org までお願いします。

Reply all
Reply to author
Forward
0 new messages