No Programming, No Life

新しいNPNLです。http://d.hatena.ne.jp/fumokmm/ から引っ越してきました。

Groovy

Mac OSXにOpenJDK7をインストールしてGroovyを実行する

こちらの@yusukeyさんの記事を参考にMac OSXにOpenJDK7をインストールしてGroovyを実行するところまで試してみたのでメモしておきます。 1.まずはOpenJDK7をダウンロード Mac OSX用のバイナリが以下から手に入るのでダウンロードしてきます。 http://code.go…

GroovyなJDK、それがGDK(java.util.List編)

このシリーズの一覧はこちら はじめに GroovyにはJavaの標準API(JDK)を拡張したGroovy JDK(GDK)があります。大量の便利メソッドが追加されており、これを使いこなすだけでも相当のことができるようになります。このシリーズでは毎回1クラスずつ各メソッドの…

Gradleで--daemonオプションを付けた際にnew Fileするとうまくいかない

はじめに --daemonオプションは高速起動するためのオプションなんですが、まだexperimental(実験段階)なんで何があっても自己責任でお願いしますということです。 $ gradle -h (省略) --daemon Uses the Gradle daemon to run the build. Starts the daemon …

Groovy v1.8.1とv1.9-beta-1の新機能をサクっと紹介するよ

このシリーズの一覧はこちら はじめに 2011-07-21にGroovy v1.8.1とv1.9-beta-1が同時リリースされたようなので、その新機能の一部をサクっと紹介します。 1. プリミティブ型演算のパフォーマンス最適化 割愛*1 2. ストリーミングビルダー(StreamingJsonBuil…

猫にもわかるSwingBuilder「frame」

このシリーズの一覧はこちら はじめに 自分のSwing力の無さに愕然としたので、ちょこちょこサンプルを作ってはまとめてゆく。故にちょこちょこ記事は加筆修正されてゆく予定です。 まず何はともあれframeを作らないと始まらないですよね、ということでframe…

現場で使えるGroovy(その3)「JavaにREPLが無いならgroovysh, groovyConsoleを使えばいいじゃない」

このシリーズの一覧はこちら はじめに ご存知の通り、JavaにはREPLがありません。しかし残念がることはありません、そう、あなたにはGroovyが付いています。 Groovyがこれらの特性とJavaとの親和性を高いレベルで同時に実現していることです。 (中略) ・Ja…

「1000以下の回文素数で最大のものを示せ」をGroovyでやってみた

はじめに 1000以下の回文素数で最大のものを示せ - Kumappusの日記 をGroovyでやってみた。 説明 素数を求める部分は素数を求める - ゲンゾウ用ポストイット-newを使わせてもらいました。 どうもソースが冴えない。もっといい方法があるはず。改造したよ!っ…

Groovyでリスト内包表記(その2)

はじめに Groovyでリスト内包表記 - No Programming, No Lifeの記事にfujwaraさんより、Scalaでは以下のようにできるけど、Groovyではどうやればできるの?とコメントをいただきました。 手始めにGroovy流に書いてみる うん、ほんとはこれでいいと思うんだけ…

Groovyの再帰処理(trampoline)についてひとつ分かったこと

はじめに Groovyのクロージャ(Closure)には.trampolineってメソッドがあって、これをうまい感じに使うと末尾再帰を最適化してくれる。 よしやってみよう では、簡単な合計値を求めるサンプルを再帰処理で。 java.lang.StackOverflowError お約束。 よし、今…

Groovyでdo-whileループを!

はじめに No 'do ... while()' syntax as yet. do ... while() 構文はまだないよ! Due to ambiguity, we've not yet added support for do .. while to Groovy 曖昧だもん、だからGroovyのサポートにはまだdo ... while()ループは追加してないんだからね! …

Groovyでスリープソートとバケットソートをやってみた

はじめに ちょっと前にスリープソートが流行ってたので、それをid:orangecloverさんが実装していたのを見て、id:nobeansさんがさらに添削していたものを参考に書いたコードが下のようになりました。 スリープソートって スリープソートって、あるデータのも…

アイコンにGroovyのロゴを追加するjarを作りました 

(◕ ‿‿ ◕)グルーべぇ 僕と契約して、Groovyistになってよ! 契約と引き換えに出来上がるのがGroovyバッジ。 契約方法 まずは、ここからjarをダウンロードして下さい。 GUIで使う jarをダブルクリックして起動 配置場所や縮小率などを調整 ウィンドウにアイコ…

I made jar that adding Groovy's logo on your icon

(◕ ‿‿ ◕)Groovee Please contract with me, and will be a Groovyist!! This is a groovy badge, generated by contract in exchange. (This is parody of Japanese Anime "Madoka Magica") How to use First, download this jar. Using by GUI Double click…

Groovyのtrampolineを使ってピラミッドのお題を解いてみた

お題はなつかしのどう書く?orgのもの。 Server error ソースコード 解説 計算したくない、再帰で書きたいと思った、そこでトランポリンですよ! ソース上に示したHINTみたいなリスト構造をつくって、エイヤで出力しています トランポリンしてるので、4段じ…

Groovyで@Categoryを使ってカテゴリクラスを作成する

@Categoryアノテーションを付けるとそのクラスをカテゴリクラスにできますよというサンプル。この機能はObjective-Cのカテゴリ由来のようです*1。 以前までは第一引数にメソッドを追加したい型をパラメータself*2として付けたstaticなメソッドを宣言してやる…

Groovyソースコード斜め読み(その3)「GDKのメソッドはDGM、DGSMに定義されている」

このシリーズの一覧はこちら はじめに org.codehaus.groovy.runtime.DefaultGroovyMethods (JavaDoc) org.codehaus.groovy.runtime.DefaultGroovyStaticMethods (JavaDoc) というクラスをご存知でしょうか。実はGDKによって拡張されたメソッドの実態はこのク…

Groovy v1.8の新機能をサクっと紹介するよ

このシリーズの一覧はこちらGroovy v1.8リリースノートより。 はじめに 待ちに待ったGroovy v1.8がやっと出ましたね!ということで、Groovy v1.8の新機能をサクっと紹介したいと思います。 Groovy v1.8は結構多くの機能拡張がなされておりますので、サラっと…

気になってたSpockを試してみた

Groovy!(挨拶) はじめに SpockはGroovy製のBDDフレームワークです。前から気になっていた*1ので是非試してみたいなと思っていたら、 id:backpaper0 さんが はじめてのSpock - 裏紙 で試していたので、私も試してみました。といってもやった内容はほぼコピ…

Groovyならインタフェースはクロージャとマップで実装できる

はじめに インタフェースは機能仕様と実装を切り離す素晴らしいアイデアです。Javaではinterfaceキーワードでこの機能を提供しています。が、Javaだとこれを実装するのが意外と面倒くさいんですよね。 Javaだとこうなる Readable r = new Readable(){ int re…

ゼロから2時間で作るGroovy DSL

はじめに この記事はA Groovy DSL from scratch in 2 hours | Groovy Zoneを意訳したものです。訳者の力不足により翻訳に未熟な部分が多数あると思われますこと、ご勘弁願います。 ゼロから2時間で作るGroovy DSL 今日はついてるな。DZoneでArchitecture Ru…

こだまでしょうか、いいえ、Groovyです。

「pom.xml書くのめんどい」っていうと「Gradle」っていう。「静的が良い」っていうと「Groovy++」っていう。「起動が遅い」っていうと「GroovyServ」っていう。「マルチコア」っていうと「GPars」っていう。「ウェブアプリ」っていうと「Grails」っていう。…

Re:今流行のお題を出してみた(一方通行を許可した迷路を作成)

はじめに 元ネタはこちら。前から取り組んでいたのですが、仕様が複雑なのとアルゴリズムを考えてたら頭がこんがらがってきてしまっていたのと、新年度が始まったので色々と忙しかったので、なかなか取り組めてなかったのですが、力技で作ったやつを公開して…

Groovyでクラスにプロパティをくっつける

はじめに プロパティは オブジェクト.プロパティ の形式でアクセス可能なものです。Groovyの場合は引数を取らないクロージャとして定義することができます。 サンプルコード 解説 プロパティをくっつける方法は二つあります。 その1. ゲッターで定義 Object…

Groovyソースコード斜め読み(その2)「私をもっと評価して! 」

このシリーズの一覧はこちら はじめに GroovyにゃGroovyShellっていう便利なクラスがおってのぅ、こいつにevaluatしておくれとお願いすれば、なんとまぁ普通の文字列をGroovyコードとして評価してくれるんじゃ。良い時代になったもんじゃのぅ。と、誰得かわ…

GroovyなJDK、それがGDK(Enum編)

このシリーズの一覧はこちら はじめに GroovyにはJavaの標準API(JDK)を拡張したGroovy JDK(GDK)があります。大量の便利メソッドが追加されており、これを使いこなすだけでも相当のことができるようになります。このシリーズでは毎回1クラスずつ各メソッドの…

Groovyでクラスを静的に動的拡張する方法

はじめに GroovyではExpandoMetaClassの機能を利用してメタプログラミングが可能です。これにより動的にクラスにメソッドを定義できるため豊かなプログラミングスタイルを提供できます。 しかし、GroovyにはRubyのようなincludeキーワードがないため、拡張部…

GroovyなJDK、それがGDK(String編その5)

このシリーズの一覧はこちら はじめに GroovyにはJavaの標準API(JDK)を拡張したGroovy JDK(GDK)があります。大量の便利メソッドが追加されており、これを使いこなすだけでも相当のことができるようになります。このシリーズでは毎回1クラスずつ各メソッドの…

GroovyなJDK、それがGDK(String編その4)

このシリーズの一覧はこちら はじめに GroovyにはJavaの標準API(JDK)を拡張したGroovy JDK(GDK)があります。大量の便利メソッドが追加されており、これを使いこなすだけでも相当のことができるようになります。このシリーズでは毎回1クラスずつ各メソッドの…

GroovyなJDK、それがGDK(String編その3)

このシリーズの一覧はこちら はじめに GroovyにはJavaの標準API(JDK)を拡張したGroovy JDK(GDK)があります。大量の便利メソッドが追加されており、これを使いこなすだけでも相当のことができるようになります。このシリーズでは毎回1クラスずつ各メソッドの…

GroovyなJDK、それがGDK(String編その2)

このシリーズの一覧はこちら はじめに GroovyにはJavaの標準API(JDK)を拡張したGroovy JDK(GDK)があります。大量の便利メソッドが追加されており、これを使いこなすだけでも相当のことができるようになります。このシリーズでは毎回1クラスずつ各メソッドの…