uehaj's blog

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

2009-01-01から1年間の記事一覧

Groovyの仕様書が無いのはしょうがない?

id:masanobuimaiさんもおっしゃるようにGroovyの言語仕様書が無いと困るというのはもっともな話ですねー。今あるのは、たぶんJSRの要件を通すためだけに作ったもの。JSRになるためには、仕様書+TCK+RIが必要*1ですからね。JSR化のいきさつはここらへんに文章…

"unified" Grails CMS

"unified" Grails CMS 今まで3つあったGrailsのCMSプラグイン Weceem Plugin Simple CMS Plugin Content Manager Plugin を統合することになったんだって。0.001秒で思いついた疑問として「GAE/J上で動くのか?」というのがあったんだけど、既に誰かが同じ…

The Groovy Way

JJUG CCCの発表で、私が紹介しようとしたコンセプトの一つは、Groovyは独立した言語ではなく、Java技術のGroovy流な扱い方「Groovy Way」なのだ、ということです。 Groovy Wayは、Java Wayに重なる広がりであり、拡張である。あるいは、Java技術の階層の一つ…

JJUG 2009 Fall発表資料「変容する言語Groovy」

JJUG CCC 2009 Fallに参加させていただきました。 聴講したセッションについては、クラウドを中心にさまざまな話題があり、興味深かったです。GroovyのBOF発表に来ていただいた方は、ほとんどがGroovyをすでに使ったことがあり、また、既に業務で使った・使…

単位をあらわすDSL

少し古い記事ですが、http://groovy.dzone.com/news/domain-specific-language-unit-に、単位を定義する「JSR-275」をwrapするGroovy DSLの記事があって面白い。 println( 18.4.kg * 2 ) println( 1800000.kg / 3 ) println( 1.kg * 2 + 3.kg / 4 ) println(…

ExpandoMetaClass.enableGlobally()について一言いっておくか

前から書こうと思ってたのですが、つい遅くなりました。 以下でid:genzouwさんや、id:odashinsukeさんが報告されている: MetaClassを使用したクラスの拡張は、インスタンス生成前に行わないといけない??CommentsAdd Star 型に対するメタクラスとインスタ…

Groovy 1.6.5リリース

Groovy 1.6.5がでました。 Windowsインストーラ版もでてます。 バグフィックスとのこと。

Polyglotプログラミング

最近、polyglotプログラミングなる言葉をGroovy界隈でたまに耳にします。最初に聞いたのはGrails Pod Castの会話かな。意味はおそらく、「複数の言語を組み合わせて扱う」というようなことかと思います。要は多言語プログラミングですね。プロダクティブ・プ…

@Mixinの例が変だぞ

http://groovy.codehaus.org/Category+and+Mixin+transformations とか http://www.infoq.com/articles/groovy-1-6 にある@Mixin/@Categoryの例が変に思われる。 @Category(Vehicle) class FlyingAbility { def fly() { "I'm the ${name} and I fly!" } } @C…

JGGUG CCC 2009 Fall のBOFで話します

もう来週になってしまいましたが、JJUG CCCのBOFの枠をいただきましたので、主にGroovy 1.6/1.7まわりの機能などについて紹介したいと思います。AST変換(AST Transformation)開発の可能性と苦労譚なども話してみたいと思っています。よろしければどうぞです…

Groovyのイメージキャラクター欲しい

最近飲み会でみんなにお願いしているのですが、Jungle Javaのbarakiさんとも機会がありまして、お伝えしたところ、サイトでご周知いただきました。たいへんありがとうございます。これはいわゆる「たん」の話です。「たん」が存在して技術は初めて普及した事…

パワーアサート(Power Assert)の真の意味

つい先ほど、Spockの記事をみてましたところPower Assertのことが書いてありました。ご存知のように、Groovy 1.7の「Power Assert機能」は、Spockの機能から由来しています。私としては結構お気に入りの機能です。Power Assertを気軽に体験するにはこちらと…

Groovy勘所ガイド

昨日、JGGUG名古屋支部主催「第3回 Grails/Groovy勉強会 in 名古屋」でお話しをさせていただきました。JGGUG名古屋の皆さま、参加者の皆様、場所を提供いただいたニューキャストの皆様、機会をいただき大変ありがとうございました。懇親会ちょっとしか出られ…

findAllとgrepの違い

自分が曖昧に理解していたのでメモ。 findAllとgrepの違い Collection#findAll(Closure clos) 引数で指定した1引数のクロージャclosが真を返すもののコレクションを返す。たとえばclos.call(a)==true,clos.call(b)==false,clos.call(c)==trueのとき、[a,b,c]…

Groovy API,GDKなど用のFirefox検索エンジン追加

Groovyなど用のFirefox用検索エンジンを追加する方法を紹介します。内容はたいしたことではなくて、やってることはGoogle検索結果をsite:でGroovyのサイトやAPIに絞ってるだけです。Greasemonkeyなど不要。設定方法は以下から「view row」のリンクを右クリッ…

プログラミング言語Fan

fan

James Strachan氏のブログ記事へのコメントを見ていて知ったのですが、Fanというプログラミング言語があるそうな。http://www.fandev.org/「Productivity of Ruby, Performance of Java」と書いてありますが、JVMで動いて、.NETでも動いて、JavaScriptにコン…

どう書く.orgをGroovy好きな方、みんなで解きませんか

このところ、どう書く.orgの課題をGroovyでとく、というのを暇を作ってやっております。今回、やっとGroovyのカバレッジ率がJavaScriptのカバレッジ率(76.4%)に並びましたのでご報告。どう書くは、普通は使わない機能を使ったりしないと解けないことがあるの…

どう書く.org課題「分散関数呼び出し 」「不動点関数」「割り算の筆算」

3つやってみました。 分散関数呼び出しはJmxで。GroovyとJMXは親和性高いんですよね。ただ、引数を複数とるメソッドを呼び出せなかった。誰か原因を教えて欲しいです。 不動点関数はいわゆるyコンビネータだかzコンビネータだか言うものです。意味を良く理解…

AST変換について

GroovyのAST変換は良く知られていないかもしれませんし、何だそらいらねと思っている人も多いと思います。AST変換についてつらつらと最近思っているのは、応用面から言うと、これは「Groovyなアノテーション」なのだなと。もちろん、アノテーションを介在し…

どう書く.org課題「 ローカル変数の一覧を取得」

どう書くorg課題「ローカル変数の一覧を取得」を書いてみました。対象を今回クロージャに限定しています。ふつー、JVM上で動く言語としてのJavaでもGroovyでも、ローカル変数名はコンパイル後には消え去っているので、こういうことはできません。なので、今…

どう書く.org課題「BFコンパイラー」

どう書く.org課題「BFコンパイラー」は、その名をはばかるBrainf*ckという言語処理系(Wikipedia)のGroovyでの実装です。この課題のポイントはインタプリタではなく、コンパイラということで、まずターゲット言語(この場合Groovy)での実行可能表現を考えな…

Java 7における5つ(かそこいら)の変更点確定版

Java 7の最終変更点が確定したとのことで、記事を翻訳してみました。 Project Coin: The Final Five (Or So)まず最初に、Project Coinへ興味深い提案をお送りいただいたみなさま、思慮深いコメントをくださった方々、そしてJavaプログラミング言語を発展せし…

どう書く?org課題「メソッド数の多い組み込みクラスを列挙」

どう書く?org課題「メソッド数の多い組み込みクラスを列挙」をGroovyで、かつGDKに読み替えてやってみました。今読み直すと、staticメソッドは除くのね。 [[]] 手っ取り早くGDKのメソッドを探したり検索したいときは、GDKのリファレンスを見るよりも、Groov…

scalaはGroovyと全く競合しない

このところ思ってたのですが、ScalaとGroovyは競合しませんね。まったくしない。適用領域に関して、GroovyのスイートスポットとScalaのスイートスポットに共通部分は、ほぼ全く全然無いと思います。Scalaは、JVM上で動作しはしますが、Javaと完全なる別言語…

どう書く.org課題「化学反応式の完成」

どう書く.org課題「化学反応式の完成」をgroovyでそこはかとなく解いてみました。Groovyには2つのリストを処理できるリスト処理(Haskellでいうzip関数みたいなもの)が無いことに気づいた。不便だ。実装がArrayListだとあまり効率よく処理できないとは思う…

GroovyでMaybe Monadを書いてみた。

「モナドなんて難解なものを含んだ言語は業務で使えねー!!」とScalaの悪口を言おうとして調べてたらモナドが何となく分かった気がしたのでMaybe Monadをgroovyで書いてみました。面白いわこれはw。ただ、HaskellもScalaもちょっと読んだぐらいの経験しかな…

Gaelykチュートリアル

これは要チェックや。id:kskyさんによる翻訳。 http://d.hatena.ne.jp/ksky/20090827/p1id:kskyさんも多分同じことを言ってますが、Gaelykは、Groovyハッカーが、何らかの新しいJavaプラットフォーム、何らかの新しいJavaフレームワークに直面したときに反応…

GroovyLive!

Groovyの勉強用サイト。例題を解きながら、Web上で実行して試して行けます。Groovyのインストール不要。http://trygroovy.appspot.com/tutorialFirefoxだと、アドインいれてるせいか、キー入力が変になる・・。VIA: http://twitter.com/Inetgate/status/3…

JGGUG サマースペシャルG*WS

JGGUG サマースペシャルG*WS、おつかれさまでした。休日開催のせいか、日本全国各地から(新潟、大阪、静岡、広島、・・)もご参加いただき、大変盛況であったと思います。資料や当日の様子について、山本さんも紹介しているように、ここにアップロードして…

GrapeとGrabとIvyの関係

分かりにくいので整理しておく。 つまりだ、 Grape - Groovy組み込みのJAR自動ダウンロード・管理機構。JARの依存関係を考慮して連鎖的にダウンロードしてくれたり、複数のバージョンのJARを同時にインストールし区別して使うことができる。GroovyからGrape…