20140329_kyon_kao_wedding_lt_groovy

13
2014.3.29 須江信洋(@nobusue) http://d.hatena.ne.jp/nobusue https://www.facebook.com/nobuhiro.sue きょんくん&かおりちゃん 結婚おめでとうLT大会 in Tokyo Groovy(G*)による SIer閉鎖空間サバイバル術』

Upload: nobuhiro-sue

Post on 27-Jun-2015

1.449 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 20140329_kyon_kao_wedding_LT_Groovy

2014.3.29

須江信洋(@nobusue)

http://d.hatena.ne.jp/nobusue

https://www.facebook.com/nobuhiro.sue

きょんくん&かおりちゃん

結婚おめでとうLT大会 in Tokyo

『Groovy(G*)による

SIer閉鎖空間サバイバル術』

Page 2: 20140329_kyon_kao_wedding_LT_Groovy

まずは、

ご結婚

おめでとうございます!!!

(from JGGUG一同)

2

Page 3: 20140329_kyon_kao_wedding_LT_Groovy

自己紹介

須江 信洋(すえ のぶひろ) Twitter: @nobusue

https://www.facebook.com/nobuhiro.sue

約10年ほどJavaEE関連の仕事をしてます

2013年10月よりフリーランス(個人事業主)

最近興味を持っているもの Vert.x / Storm / Camel / ElasticSearch

Vagrant / Docker / Ansible / Serverspec

もちろんGroovy / Gradle / Grails

3

Gradle本 (執筆中)

Page 4: 20140329_kyon_kao_wedding_LT_Groovy

JGGUGって?

Japan Grails/Groovy User Group 2009年発足

Grails/GroovyなどのGroovyエコシステム(G*)に関するコミュニティ

前身は2006年から活動していたGrailsコミュニティ

こわくない

毎月第3金曜日にG*ワークショップを開催 参加型(ハンズオンなど)

告知・申し込みはこちら

http://jggug.doorkeeper.jp/

4

http://www.jggug.org/

Page 5: 20140329_kyon_kao_wedding_LT_Groovy

きょんくんとJGGUG

何度も登壇いただいてます!

最近だと、、、

5

いつも刺激的な発表をありがとうございます。

今後ともよろしくお願い申し上げます。

(JGGUG一同)

Page 6: 20140329_kyon_kao_wedding_LT_Groovy

ここから本題

[Q]Groovyって役に立つの? [A]知らなくても生きていけますが、 知っていると快適に生きていけるかも 例えばこんなとき JavaのクラスやJVMの挙動を手っ取り早く調べたい

JUnitのテストケースを簡潔に書きたい

Antのビルドスクリプトが複雑すぎて手がつけられない

Jenkinsをちょちょっとハックしたい

JDK以外禁止の環境で生き延びたい

6

Page 7: 20140329_kyon_kao_wedding_LT_Groovy

とあるSIerの現場

インターネット接続制限厳しい 当然ながらProxyでアクセス制限

SlideShare禁止

Dropbox/Google groups禁止

GitHub禁止

使えるツールの制限厳しい Ruby入ってない(あっても1.8.7)

Python古い

Gemとか自由に取ってこれない

仮想マシン禁止(というか32bit Windows…)

7

Page 8: 20140329_kyon_kao_wedding_LT_Groovy

インストールレスでGroovy

JDKさえインストールされていれば、 以下の方法でGroovyが使えます Groovyのバイナリを落としてくる

展開して embeddable/groovy-all-x.x.x.jar を取り出す

ターゲット環境で以下を実行

java –jar groovy-all-x.x.x.jar hoge.groovy

java –jar groovy-all-x.x.x.jar –e “println ‘Hello groovy’”

8

Page 9: 20140329_kyon_kao_wedding_LT_Groovy

実話 その1

とあるシステム間の疎通確認のため、対向側のサーバーの指定ポートに接続できるか確認したい

間にFirewallがあるので、対向側でnetstatで確認するだけではダメ

最近のLinuxはtelnet入ってない・・・

以下で解決 java –jar groovy-all.jar –e

"new Socket(‘x.x.x.x’, 9443)“

接続できない場合、ConnectException が出る

9

Page 10: 20140329_kyon_kao_wedding_LT_Groovy

実話 その2

アプリケーションが使っているOSSの名称と

バージョンをリストアップしてお客さんに報告しなければならなくなった

ビルドは当然Antで、JARはSubversionに直接コミットされている・・・

そんなプロジェクトが十数個

10

Page 11: 20140329_kyon_kao_wedding_LT_Groovy

こんなの作りました

11

def rootDir = new File(args[0])

rootDir.eachFileRecurse { file ->

if( file.name =~ /.*¥.jar$/ {

def jar = new JarFile(file)

def manifest = jar.manifest

def att = manifest?.mainAttributes

println “[File] ${file.absolutePath}”

println “Title: ${att?.getValue(‘Implementation-Title’)}”

println “Version: ${att?.getValue(‘Implementation-Version’)}”

println

}

Page 12: 20140329_kyon_kao_wedding_LT_Groovy

というわけで

Groovy(G*)に興味が湧いてきた方は ぜひG*ワークショップにお越しください 告知・申し込みはこちら

http://jggug.doorkeeper.jp/

次回はApache Camel+Groovyの予定

お仕事も承っております ご相談は @nobusue まで

12

Page 13: 20140329_kyon_kao_wedding_LT_Groovy

ありがとうございました

13

https://www.facebook.com/orehiji