uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

Groovy Stream

Groovy Streamというのがあるようです。「Lazy Generator class for Groovy」とのこと。 http://timyates.github.com/groovy-stream/ http://blog.bloidonia.com/post/22117894718/groovy-stream-a-lazy-generator-class-for-groovy サンプル。 @GrabResolve…

[grails]Grailsベストプラクティス

InfoQ記事の翻訳です(日本語版で翻訳されない…orz)。 わたし(Amit Jain氏)はIntelliGrapeというGroovy&Grailsを専門とする会社で働いています。この記事は、私たちのGrailsプロジェクトが従う、メーリング・リスト、スタック・オーバーフロー、ブログ、ポッ…

[grails] GrailsのGSPでスクリプトレット(<%=..%>)の出力でHTMLエスケープをデフォルトにする方法。

まず、Config.groovyで以下を設定。grails.views.default.codec='html'これによってGSP中で${}とかの出力はデフォルトでHTMLエスケープされるようになります。これはセオリー。問題は、これだけでは、やの出力はHTMLエスケープされないということです。なの…

JavaOne 2012 Tokyo/JVM言語BOF

JavaOne Tokyoに参加しています。 表記のBOFにはスピーカーの一人として参加致しました。資料はこちら。 Java One 2012 Tokyo JVM Lang. BOF(Groovy) View more presentations from Junji Uehara 直前の暴風雨で、予定していた懇親会が流れたせいで(?)、慣れ…

"Codeplex" Groovy

ちまたには、複数の実装があってこその成熟した言語、と言う見方もありますが、その意味ではGroovyにも別実装があってもいいのかもしれません。でもあまり聞きませんね。この理由はたとえば「Mavenの別実装」「antの別実装」が無いのと同様に、groovyはツー…

静的で行こう

Groovy 2.0系では、静的型チェック(STC)の実装がぼちぼち進んでいます(参考過去記事,GEP-8 Static Type Checking)。さて、もう早速静的型の悪魔に魂を売り払いたい*1、という諸兄におかれましては、「@TypeChecked」というアノテーションを付けるのももどか…

Groovyじゃんけん作ってみた

JGGUGのイベントではおなじみの「Groovyじゃんけん」を実際に作ってみました。 import static Hands.* enum Hands{ GOO,CHOKI,PAR; public result = [:].withDefault{"$this is even with $this"} } def rule(Hands x) { [defeats:{Hands y-> x.result[y]="$…

Groovyクロージャはいかにしてクロージャであるか?

前回記事「Groovyのクロージャはちゃんとしているか?の続きです。前回検討したGroovyのクロージャの振る舞いは、実際にJavaバイトコードとしてどのように実現されているでしょうか、ってのが今回のテーマです。本来ならここで、 groovycコマンドでコンパイル…

Groovyのクロージャはちゃんとしているか?

先日参加したStartupGroovy #1にて、参加者の方から「Groovyのクロージャはちゃんとしたクロージャか?」という質問がありました*1。 クロージャが「ちゃんとしている」とは何か 「クロージャがちゃんとしてる」とは何を意味するか、あるいは「ちゃんとしたク…

[groovy]StartupGroovy#1 参加報告

本日、うさぎ組きょん(@kyonn_mm)さんによる「StartupGroovy」イベントに参加してきました。公私ともに切羽詰りつつも、あたふたと参加しましたが、ひっじょーうに有意義なイベントでした。 Togetterまとめhttp://togetter.com/li/259632 マテリアル http://…

1.8.1以降をキャッチアップするシリーズその5、collectAllのcollectNestedへのリネーム、collectManyの新規追加

Groovy 1.8.1以降で追加されたGDKメソッド(主にコレクション関係)を解説するシリーズ第5段、「collectAllのcollectNestedへのリネーム、collectManyの新規追加」です。とりあえずこれでシリーズ打ち止め予定です。 collect系とfind系の概括的な違い まずは、…

1.8.1以降をキャッチアップするシリーズその4、findResultsの新規追加

Groovy 1.8.1以降で追加されたGDKメソッド(主にコレクション関係)を解説するシリーズ第4段、「findResultsの新規追加」です。 findResultsの新規追加 Groovy 1.8.1では新規GDKメソッドfindResultsが追加されました。findResultsは既存メソッド「findResult」…

1.8.1以降をキャッチアップするシリーズその3、引数無しfind/findAllの新規追加

Groovy 1.8.1以降で追加されたGDKメソッド(主にコレクション関係)を解説するシリーズ第3段、「引数無しfind/findAllの新規追加」です。 引数無しのfind()とfindAll() Groovy 1.8.1では以下の2つのGDKメソッドが追加されています。 public Object find() publ…

1.8.1以降をキャッチアップするシリーズその2、複数クロージャによる多段groupBy

あけましておめでとうございます。書き初めならぬ、エントリ初め。今年もよろしくお願いします。みなさまにとって飛躍の年になりますように。さて、Groovy 1.8.1以降で追加されたGDKメソッド(主にコレクション関係)を解説するシリーズ第2弾、「複数クロージ…

1.8.1以降をキャッチアップするシリーズその1、非破壊的sort/unique

大晦日も押し迫ってきたところで連続エントリを書き始めて年の瀬の区切りを悪くする試みです。本記事から続く一連のエントリでは、Groovy 1.8.1で追加されたGDKメソッド(主にコレクション関係)について解説してみます。書籍「プログラミングGROOVY」を執筆し…

Groovyの疑似デバッガgdb

G* Advent Calendarの22日目の@uehajです。Groovy関係のツール紹介ということで、Groovyの疑似デバッガgdbの紹介。gdbといってもGNUデバッガではありませんよ。gdbの説明や入手はこちら。これは、一般的なデバッガというより、コード上の特定の場所(com.gdb.…

[groovy][java] Java Developer Workshop#2報告

遅いですが、Java Developer Workshopに参加しましたので報告。セッションの資料がこちらで公開されています。最初の、Nandini RamaniさんによるJavaFXを中心とした基調講演に続き、前半ではオラクルの寺田さん、佐藤さんから「Javaの今と今後」をコンパクト…

[groovy][gep] 静的コンパイルのGroovy拡張提案(GEP10)が出た

次期Groovyの新機能についての情報です。静的型チェック(STC, Statically Type Check)がGroovy 2.0 beta 1トランクに含められたのに続き、静的コンパイルのためのGroovy拡張提案(groovy enhancement proposal)、GEP10が提示されました。静的コンパイルはAST…

[groovy][java][oracle][JDW2][周知] Java Developer Workshop #2 開催!

前にも書きましたが、12/1にJava Developer Workshop #2というのがあります。 http://blogs.oracle.com/javajp/entry/java_developer_workshop_2_%E9%96%8B%E5%82%AC http://www.oracle.com/goto/jpm111201 参加費無料でもりだくさんですので、御興味のある…

[groovy] Groovy 2.0と静的型チェック

先週にリリースされたGroovyの1.9系の最新版バージョンは、1.9 beta 5かと思いきやなんと、2.0 beta 1となる、とのことでした。リリースノートはこちら。今後1.9系はなくなることになります。なんでこうしたかというと、1.xxのxxを増やすのが限界*1なので、…

Java Developer Workshop #2にてGroovyについて話すことに

来る12月1日に開催される、日本オラクル株式会社主催の「Java Developer Workshop #2」にてGroovyについて話すこととなりました。わりとGroovy紹介的な内容ですが、Spring One 2GX 2011に参加して(今日が最終日@シカゴ)感じた「熱気」みたいなものが伝えられ…

[イベント周知][groovy]第19回 G*ワークショップ開催!

http://kokucheese.com/event/index/20336/第19回 G*ワークショップ開催!のお知らせです。 ーーーーーJGGUG会員の皆様 2011年11月22日(火)、NTTソフトウェア品川本社いてJGGUGの定例イベント、G*ワークショップを開催します。 今回のJGGUG G*ワークショップ…

[Groovy][Gaelyk][bloogaey] Bloogaey - Groovy on GAE(Gaelyk)で実装されたブログエンジン

Groovyのプロジェクトリードguilame laforge 氏のブログを実現しているブログエンジンbloogaeyは、Gaelykで実装されていてGAE上で動いてるんですね。GaelykはGroovyで実装されたGAE/J上のフレームワークです。GroovyMagの紹介によれば、 a blog engine writt…

[Groovy][Gaelyk][bloogaey] Groovy on GAE(Gaelyk)で実装されたブログエンジン

Groovyのプロジェクトリードguilame laforge 氏のブログを実現しているブログエンジン「bloogaey」は、Gaelykで実装されていてGAE上で動いてるんですね。GaelykはGroovyで実装されたGAE/J上のフレームワークです。 そのうちこのブログも移行しようかしら…。

[Groovy][Android] Andoroidで動作するGroovy、Discobotの開発が再起動!

Android上でGroovy動作させるためのパッチとして、Discobotというものがあり、昔ほんの少し試しましたが、これは1.7.0対応のもので少し古いです。groovy-devのメーリングリストを見ていたら、discobotの開発が再開されたようです。 Hi all, We're currently …

[groovy] AST Spec builder

GBenchなどのクールなGroovyツールを開発されている @nagai_masato さんが新たにAstSpecBuilderというのを公開されてますね AstBuilderのbuildFromSpecのためのspecをGroovyコードのASTから生成するというもの。AstBuilderというのは、AST変換のアウトプット…

[groovy][android] groovy in Android SDK

Android SDKをインストールしてたら、groovy-all-1.7.0.jarを入れてるという表示が。たしかにlibの下にある。とTwitterでつぶやいたら、 @kimukou_26さんが発表されていたと教えてもらった。http://www.slideshare.net/kimukou/layout-analyzergroovyレイア…

[groovy][Graffiti]さらにもう一つのGroovyベースのSinatraライクwebアプリフレームワーク Graffiti

Grails Pod cast 126を聞いてたら、SinataライクなGroovyベースのWebアプリケーションフレームワークGraffitiというのが出来ていたようです。SinatraはRubyで成功した軽量Webフレームワークですが、そんな感じのものをGroovyでも実現しようというプロジェク…

[groovy][ポロシャツ] ペンギンの話が聞きたい

はぁ〜るの木漏れ日の中で〜*1。 失礼しました。id:orangecloverさんが「プログラミングGroovy」の表紙にあるペンギン&スターのマークの由来をGroovyポロシャツの予言という記事で解説してます。実は、上の同じ場にいたので、ふんふんそうだよなー驚きだよな…

さらにもう一つの静的Groovy…Grumpyプロジェクト

旧聞に属するのですが、8月の頭ぐらいからGroovy-devのメーリングリストで、Groovyコアコミッターたち(の一部)による「"Grumpy"プロジェクト」なるものが始動していたことが話題になってました。 議論は、プロジェクトリードのGuillaume Laforge氏の休暇中に…