uehaj's blog

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

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

JVM上の新スクリプト言語 P~(ピーティルド)

JVM上のさらにもうひとつのスクリプト言語「P~」(ptildeと発音するらしい)。 http://ptilde.pbwiki.com/ http://ptilde.pbwiki.com/ExampleLinuxStyleOption http://www.theserverside.com/news/thread.tss?thread_id=47873 正規表現が文字列ではなくて、…

Javaへのクロージャ導入は、苦労じゃ?

http://www.infoq.com/jp/news/2007/12/closures-preserving-feel-of-java 留意しておきたいことは、既にJVM向けのすばらしいプログラミング言語があって両者を提供しており、さらにJavaの相互運用性も備えていることです。 ふむふむ。 それはScalaです。 ず…

GSPのTaglibとJSPのカスタムタグの比較

とある事情があって、JSPのカスタムタグを調べたりしてたのですが、その複雑なことにはあきれました。歴史的経緯がらみの複雑なクラス継承関係から始まって、afterBodyだのBodyContextだのライフサイクルイベントだのエンプティアクションだのさまざまな…

Grailsとrailsの違い

GrailsとRailsの違いとして、細部や、あとプラグインの充実度とか、開発者数とかいろいろありますが、私見としては、技術的に一番大きいのは、以下の点です。 (A)GrailsはドメインモデルをGroovyクラスで作って、それがDBに(裏で自動的に)マッピング…

Groovyの奇妙な演算子(番外編)−エルビス演算子ー

ちょっと前にGroovy 1.5が正式公開となりました。http://www.infoq.com/articles/groovy-1.5-new http://journal.mycom.co.jp/news/2007/12/10/033/index.html今まで「1.1」としてbeta->RC1->とやってきたのが、正式版として「1.5」に飛んだのは、おそらく、…

Grailsで開発された書籍販売情報サービス「Infomew」

アタマノオトさんの記事経由。 Grailsで開発された、コミックや書籍の発売情報サービス「Infomew」。ログインとかマイページが今は動いていないようですが素敵です。 - Grails goes onにトラックバックしてみましたが、良く考えたらこちらはOSSではなかっ…

Grailsコンソール拡張

以前に、groovy console+groovy run-appをする、という記事を書きましたが、Grails 1.0+RC2ではスクリプトがかなり書き換わっていて、使えなくなってしまいました。ということでRC2対応版です(1行追加です)。 >diff -c RunApp.groovy RunAppAndConsole.gr…

HiberObjects

HiberObjectsはUMLを用いたクラス設計とテストのためのEclipseプラグイン。 Grailsにも対応していて、UMLを書くとGrailsドメインクラス生成をしてくれるみたい。junglejava経由。

ユーザーインターフェースとしてのDSL

ユーザーが記述することを前提とした、業務固有知識(語彙+イディオム+構文)を持ったDSLを定義するってのは、システムに対するユーザーインターフェースを作ることですよね。 「グラフィカルユーザーインターフェース」みたいに、インターフェースとして…

Grailsの新しいオンラインドキュメント

Grailsの新しい包括的オンラインドキュメントです。http://grails.org/doc/RC1/大変に良いですね。

grails run-app + grails console

以下は新しいGrailsではできません。比較的新しいGrails(1.0RC2以降)で実行するには http://d.hatena.ne.jp/uehaj/20071205/1200971154 をどうぞ。"grails console"で、実行中のgrailsアプリケーションに対していろいろgroovyレベルでアクセスを行うことがで…

フレームワーク比較に関する資料紹介2つ。

フレームワーク比較に関する資料紹介2つ。 一つ目は、Grailsに関してネガティブな資料。http://www.jkraemer.net/2007/10/31/how-i-learned-to-stop-worrying-and-love-jruby-on-railsRailsに慣れてるって言う理由を差し引くと、RDMSを高度に使いたい場合は…

マイコミジャーナルへの記事掲載

マイコミジャーナルさんに書いた、Grails紹介およびGrails eXchange 2007参加レポート記事が掲載されました。感想などございましたらいただけるとありがたいです。

Grailsプラグインの実装

第4回Grailsコードリーディングで学んだことを記録と整理のために書いておきます(MLに出した記事の焼き直し)。 Grailsのプラグイン実装が達成したいことのひとつは、Groovyで記述された「Groovyのプラグインクラス」およびそのインスタンスとしての「Gr…

CoCの訳

RailsやGrailsの基本方針として名高い「CoC(Convention over Configuration)」という言葉の和訳はいろいろあっていまいち定訳がないようです。「設定より規約を重視する」とかがメジャーでしょうか。 ただ、普通、規約といったらそれは人間が決め、守るべき…

SiteMesh概要

SiteMeshはGrailsの重要な構成要素のひとつですが、他のもの(Groovy, Spring, Hibernate)と比べると知名度は低いですよね。日本語の情報もあまりありません。なのでちょっとhttp://www.opensymphony.com/sitemesh/にあるSiteMesh概要を要約してみました。 (…

Grails Podcasting

Grails/Groovyの英語スピーチを勉強したい人の心の友に、「Grails Podcasting」があります。英語の勉強とGrails/Groovyの勉強が同時にできて実にお勧めです。しかしこのページにはこのPodcastをiTunesで定期購読するリンクが見当たりません。じつはそれは、T…

無料PDF小冊子「Getting Started with Grails」

InfoQからGrailsに関するミニ書籍「Getting Started with Grails」PDFが無料でダウンロードできます(要登録)。http://www.infoq.com/minibooks/grailsgrailsのページの左のところに「Free e-book at InfoQ」とあるやつです。

君ならどう書く? s///ge

Perlとかでは、文字列x中の正規表現にマッチする部分を置換するときには x =~ s/正規表現パターン/置換後の文字列/g; の様に書きます。Javaでは同様のことを x = x.replaceAll("正規表現パターン", "置換後の文字列"); と書けます。このとき、置換後の文字列…

Javaの延長線としてのGrails

もともとのJavaの基本理念として、マシン依存・OS依存なコードのみをCで書く、という役割分担の考え方があります。Grailsが訴求しているのは、その考え方(役割毎の言語分担)と似たところがあります。つまり、インプリメンテーション依存、プラットフォーム…

Groovyの正規表現はなぜ文字列か

Groovyでは/〜/で正規表現をあらわしますが、これはString型の定数であり、java.util.regex.Pattern型ではありません。直感的には、Pattern型であってもおかしくないですよね。思うに、この理由は、Javaとの親和性を重視しているためです。String#split()の…

Grailsでビジネスロジックをどこに書くか(GrailsとDIとAUTOWIREと)

Grailsの入門者が(←俺)、ひととおりGrailsのチュートリアルを終わって、つまりBookmarkなりBookなり、Authorなりのドメインモデルとビューの生成の仕方がわかって、さて、次の段階に行こうと思ったときには、なんらかのロジックを書こう、ということになり…

第三回Grailsソースリーディング

第三回Grailsソースリーディング、お疲れ様でした。ありがごとうございました。 いつもながら大変面白く、また勉強になりました。今日のメモ(飲み会含め)。 Grailsは、「(1)フルスタックフレームワーク」「(2)スクリプト(動的・LL)言語への回帰」「(3)J…

Grails Exchange 2007

Grails Exchange 2007に参加できそうです。 しかし、ロンドンは物価高いですねー (外税表示でVAT17.5%はやめてほしい・・・)。

Groovyの素敵(?)なインクリメント・デクリメント

Groovyのインクリメント・デクリメントの演算子++, --は、メソッドprevious(), next()にマップされていて、これらのメソッドを定義もしくはオーバーライド定義することで、演算子のオーバーロードを行うことができます(その他、plus,minus,..など、結構な種…

正規表現の補足

前に書いた記事「Groovyの奇妙な正規表現」に対する補足ですが、 =~, ==~ がパターンに対しても実行可能ですね。 つまり、 "A" =~ /B/ "A" =~ ~/B/ ← "A" ==~ /B/ "A" ==~ ~/B/ ←が可能。これによって、以下のように正規表現をあらかじめコンパイルしておい…

「グッドラッパー」VS「セカンドシステム症候群」

本日、「第2回 grails code reading」に参加いたしました。 私にとっては、懇親会を含め(懇親会のほうが?)大いにインスパイされる、有意義なものでした。参加者の皆様および、会場を提供いただいたCIJさまにおかれましては、ありがとうございました。 …

Groovyの奇妙な正規表現(Groovyの奇妙な演算子(3)改め)

今回は、正規表現の処理にかかわる以下の演算子/記法についてです。 /.../ ~ =~ ==~ 「/.../」文字列定数の表記。 /.../はGroovyにおける文字列定数の表記法のひとつです。正規表現専用ではないのですが、正規表現が格納された文字列に使うと便利なように、…

ダイナミックファインダーの嬉しさ

とある集まりでGrailsの説明をしていたら 「ダイナミックファインダー(findByXXX(...)で呼び出すやつ)って何がうれしいの? (findBy('XXX', ...)でいいじゃんw)」 と言われてしまった、という話が、前回のGrailsソースリーディングで、山田さんより紹介…

(翻訳)Grailsに関する10個の誤解

xmlDoで紹介されていたMarc Palmer氏による「10 Common Misconceptions about Grails(Grailsに関する10個の誤解)」の翻訳です。 (翻訳ここから) Grailsに関する10個の誤解「新しいもの」が出てきたときはいつもそうなのですが、Grailsを使ってもいない人…