読者です 読者をやめる 読者になる 読者になる

uehaj's blog

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

JWTトークン認証つきのWeb APIを作るのはGrails+Spring Security REST Pluginを使えば非常に簡単である件

先日のJGGUG WSでのLT資料を公開します。「JWT」は、ついジェーダブリュティーと読んでしまいましたが、正しい発音は「jot(ジョット)」だそうです。 Use JWT access-token on Grails REST API from ちなみに、上記デモで使用する認証スキームBearerという…

Grails 3ってどうよ+ LT大会 - 日本Grails/Groovyユーザーグループ

連休明け5/13に、JGGUG(日本Grails/Groovyユーザ会)より、上記イベントがございます。 Sring BootをGSPとscaffold、GORMなどでさらに使いやすくしたフルスタックフレームワーク、Grails3について、実務適用している人たちとの情報提供、議論を行います。また…

React Meets Grails 〜ReactはエンタープライズSPAの夢を見るか?〜

本記事は、G*Advent Calendar 2015の24日目の記事です。 昨日は it__sseiさんの記事で、明日はtouchez_du_boisさんの記事です。 (2016/1/22追記) id:bati11_ さんが、本記事で作成しているボイラープレートコードのReact部分について、ステップバイステップ…

今こそッ、始めようGrailsブートキャンプ!!!!

以下のイベントが予定されています。 Grails3対応のGrailsブートキャンプです。 Grails3というのが出たタイミングで、ちょっと取り組み直しみよう、という向きに最適です。 jggug.doorkeeper.jp 山本さん(id:yamkazu)NTTSOFTが講師です。 ご興味があればぜひ…

G*なWeb API

Grails3もカウントダウンな感じのおり、イベント紹介です。以下引用。 G*ワークショップZは日本Grails/Groovyユーザーグループの定例イベントです。Java仮想マシン上で動作するGroovy、Grails、Gradle、Spock、vert.xといったG*技術をテーマに、ハンズオンや…

Grails/Groovyのサイトを構築している、名もなき静的サイトジェネレータ

Grails/Groovyのサイトは、静的サイトジェネレータで作成されています。Groovyサイトは去年ぐらいからそうだったのですが、最近Grailsもそうなりました*1。 しかしこの静的サイトジェネレータの名前がわかりません。ソースコード上は、単に「generator/SiteG…

enumに継承を! traitとenumの妙な関係、もしくはGrailsのドメインクラスの選択フィールドを国際化表示するのにtraitが便利

Grailsのドメインクラスにおいて、いくつかの候補の数値のいずれか、というフィールドを作成し、scaffoldで生成した画面からCRUD操作したいとします。簡単なのは、こうですね。 class Domain { Integer something static constraints = { something inList:[…

XML形式のlog4j設定(log4j.xml)をGrailsで使用する

Grailsではロギングの設定がConfig.groovyで設定できますが、なんらかの理由でXML形式の設定(log4j.xml)で行ないたいことがあるかもしれません。しかし、その場合log4j.xmlをどこに置くか、という問題があり得ます。この問題を説明します。まずGrailsでlog4j…

(周知) 予告: JGGUG大忘年会LT大会と、LondonのG*なカンファレンス行ってきた報告!+合宿の報告もあるよ! #jggug

今週末は、JGGUG忘年会です。あしたビアバッシュのピザなどを予約しますんで、参加希望のかたは今日中にぜひどうぞ。JGGUG大忘年会LT大会と、LondonのG*なカンファレンス行ってきた報告!+合宿の報告もあるよ! - 日本Grails/Groovyユーザーグループ | Doork…

Grailsで、tomcatを起動するというだけの目的でファンクショナルテストを設定する方法

Grailsでコントローラの試験を、モックを使わず実際の通信を使って試験したいケースがある。たとえば、Rest APIを開発する場合、Rest APIはブラウザを使用しなくても簡単に呼び出せるものなので、ユニットテストがしたいです。もちろんGrailsにはコントロー…

Grails/Groovyでのカバレッジ取得に関してのTIPS

プリミティブ最適化を抑制することでブランチカバレッジをましなものに Grailsでは、コードカバレッジは以下で取得できる。 Test Code Coverage Plugin(http://grails.org/plugin/code-coverage) しかし、上記を使用した場合、分岐網羅(ブランチカバレッジ)…

Dockerを使ってGrails開発

Grails開発でdockerを使用するためのDockerfileを、備忘録兼ねて晒します。開発中に使うものです。運用用は、別のものになるでしょうかね。 onesysadmin/docker-grailsを元にして、Proxy設定を行い、いくつかの工夫をしております(プロキシ設定については、D…

PHPのようにGrailsを使う方法

GrailsアプリケーションではGSPのビューは以下の方法で表示できます(他にもあるかも)。 コントローラーアクションの結果として表示 renderで指定したビュー コントローラ名とアクション名から定まるデフォルトのビュー ビューを直接表示する URLMappingでURL…

Grails 3.0先取り!? Spring Boot入門ハンズオン

次回G*Workshopは、8/1 「Grails 3.0先取り!? Spring Boot入門ハンズオン」です。 ふるってのご参加をお待ちしております。 Grails 3.0先取り!? Spring Boot入門ハンズオン申し込みはこちらから> Grails 3.0先取り!? Spring Boot入門ハンズオン予定の内容Gra…

Grails 2.x脆弱性情報(WEB-INF配下が読みとられる)

脆弱性情報のアナウンスがでています。http://grails.1312388.n4.nabble.com/IMPORTANT-CVE-2014-0053-Information-Disclosure-in-Grails-applications-td4654254.htmlhttp://cxsecurity.com/issue/WLB-2014020172Grails 2.xのリソースプラグインのデフォル…

「Groovyスクリプト100本斬り」回顧編

2010年のJGGUG合宿で、企画Groovy: 「Groovyスクリプト100本斬り」 お題(公募中!)を事前に100個用意しておき、みんなでスクリプトを書きまくります。 詳細はこちら:http://www.jggug.org/Home/ibento-shiryoushuu/g100pon.pdfというのがあったのですが(…

夏サミ2013「中堅SIerにおいて、
先進的なフルスタックフレームワークGrailsを全社的に普及推進してみた。」

デブサミSummer(夏サミ)にて発表します。物語1:エンタープライズGrails 中堅SIerにおいて、 先進的なフルスタックフレームワークGrailsを全社的に普及推進してみた。 残席わずかとのことなので、ご興味のある方はお早めに是非どうぞ。 http://event.shoeisha…

HATEOASって何だ?

Grails 2.3のRest機能のドキュメントを読んでいたら、拡張の一つとして「8.1.7 Hypermedia as the Engine of Application State」というのが書いてあって、調べると面白かったので、この資料(REST: From GET to HATEOAS)を読んだだけでの、私の理解する限り…

Groovy基礎勉強会で発表してきました

@kyon_mmさんたちが企画した、Groovy基礎勉強会で発表してきました。 機会を頂きありがとうございました>kyonさん、スタッフの皆様、場所を提供頂いたオラクルのみなさん。「コンパイラ処理系としてのGroovyの中身」を覗いてみよう、というのが今回のテーマ…

G*ワークショップ 2013新春SP #jggug

G*Workshopが今週末開催されます。 http://kokucheese.com/event/index/68561/いろいろと楽しい話が聞けると思いますので是非どうぞ。 私も、LTにて、Groovy 2.1.0の濃いところを話します。いや話したい。いや話せれば。がんばります。

ヘッドレスGrails

"昨日"の記事ではあんなことを書きましたが、単に「Grailsでバッチ処理ができるよ」と言う話では無いと私は思います。つまり、Grailsが、Webアプリに限定されない、アプリ開発のフレームワークになるということです。デスクトップGUIアプリの分野はGriffonに…

Grailsでバッチ処理を実行

Webアプリ機能は使用せずに、GORMやサービスなどのGrailsのすべての機能を使いたい場合があります。たとえばデータベースにデータをバッチ的にひたすらインポートするような処理です。GORMを使いたいですね。その目的のためにbatch-launcher-pluginというプ…

QuartzプラグインでTriggerのスケジューリングタイミングを動的に変更する

GrailsのQuartzプラグインを使っている場合に、ジョブスケジューリングを動的に変更したいときがあります*1。一見、こちらにある「Dynamic Jobs Scheduling」にある方法で変更できそうにも思えますが、ジョブ名やトリガー名を与えることができないインターフ…

HowToPublisher

Grailsのハウツー文書を、Peter Ledbrookさんがまとめております。これはかなり参考になります。今回の本題は、このHOWTOの内容ではなくて、このHOWTOがどのようにHTMLとして作られているかです。調べると、github上のプロジェクトとして管理されています。…

静的リソース機能はGrails 2において中核的価値の一つである

タイトルは釣りっぽくもありますが、G*MagazineのVol.3とVol4にも紹介されているGrails Resoucesプラグインについて熱く語ってみます。 Grails ResouceプラグインはGrails 2.0からGrails本体に同梱される標準プラグインとなりました。つまり明示的にインスト…

Kickstart with Bootstrapプラグインがかっこいいぞ

GrailsにはKickstart with Bootstrapプラグインというのがあって、サイトの雛形として使える便利ものですが、実にかっちょ良い。 スキャッフォルドも手が加わっていて、Twitter Bootstrap対応になっています。 こういうテンプレートがいっぱいあると良いなあ…

G*Workshop「Groovy2.0の新機能」を発表してきました

10/26金曜日は、JGGUG G*Workshopでした。 五十嵐さんのJavaOne報告、杉浦さんのVert.xなど盛り沢山で、G*としては大変盛況でした。参加者各位および発表者の皆さまにおかれましては、ありがとうございました。 以下は@kimukou2628さんによるまとめです。あ…

GVM: Groovy enVironment Manager

GVM Toolというのがありますので入れてみました。Groovyを始めとするgroovy関連のツール・フレームワーク類をインストールして、複数のバージョンを切り替えて使用したりするためのものです。RubyのRVM相当のものとのこと。 % curl -s get.gvmtool.net | bas…

G*Workshop in 福岡(Groovy 2.xの新機能)

もう1週間たっちゃいましたが、先週はG*Workshop初の九州開催ということで、福岡博多にて開催してまいりました。@orange_cloverさんによるまとめ(ありがとうございます!)はこちら。 個人的には ラーメン旨い 替え玉を頼まないと負けになる 九州の人はみな熱…

第18回 G*ワークショップ周知

http://kokucheese.com/event/index/16071/ より 〜〜 今回のG*ワークショップは「G*なGUI祭り」として、G系デスクトップアプリケーション技術をフィーチャーしたセッションをお届けします。Grailsと並びG系を代表するフレームワークであるGriffonと、JavaFX…

Groovyなどのソースコードのビジュアライゼーションの動画

昨日の記事で、Groovyなどのソースコード変遷のビジュアライゼーション動画について言及しましたが、見つけましたのでご紹介します。これらはSVNなどのバージョンコントロールシステムのコミットログなどから、Gourceというツールで生成されたもののようです…

シナトラといえばスペシャルローリングサンダー

Ratpackというものがあるそうで。こちらの記事によれば、 Compared to Grails, it's a more bootstraped experience but is useful for small projects. Just as Sinatra coexists with Rails, Ratpack can coexist with Grails. Rubyの軽量Webフレームワー…

STSにおいてGroovyデバッグサポートが向上した

SpringSource Team Blog]によれば、STS 2.5.1では、EclipseにおけるGroovyデバッグサポートの機能が向上しているようです。STSというのはEclipseのSpring関係詰め合わせパックです。要約すると、 1. Step in/Step outで、いままではreflection and cached ca…

第12回G* Workshop 11月9日

JGGUGの月例勉強会「G* Workshop」が11月9日に行われます。http://kokucheese.com/event/index/5267/DCIアーキテクチャ、合宿企画報告、JavaOne参加者が語る海外Groovy/Grails事情など、興味深いところがもりだくさんです。ぜひご参加ご検討ください。 JGGUG…

GroovyServの小技シリーズ番外編 - GrailsをGroovyServで実行してみる。

結論:予想通り、あまり嬉しくないやってみた。 $ alias gs_grails="groovyclient -cp $GRAILS_HOME/lib/groovy-all-1.7.4.jar:$GRAILS_HOME/dist/grails-bootstrap-1.3.4.jar:/System/Library/Java -Dgrails.home=$GRAILS_HOME -e 'org.codehaus.groovy.gra…

JGGUG WS&special G*Workshop 7/24

JGGUG総会とG*Workshop、参加して参りました。会場を提供いただきました、オラクル様、関谷さん懇親会幹事およびLT大会を取り仕切っていただきました、綿引さん、今回もありがとうございました。山田さん、参加者の皆様おつかれさまでした。ありがとうござい…

2009年度JGGUG総会+スペシャルG*ワークショップ

JGGUG主催のG*ワークショップ(+JGGUG総会)がきたる7月24日に開催されます。 JGGUG総会+スペシャルG*ワークショップ 先日0.2版が公開されたGroovyServについてのセッションもあります!そのほかGrails Groovyに関する注目の情報が満載。ご都合つく場合、是非…

Grails console plugin

Grails 1.3.0のリリースおめでとうございます。それとは直接関係はないですが、「これは便利!!!」と思ったGrailsプラグインを紹介します。それはGrails console pluginです。何かというと、Grailsアプリを実際に動かしながら、裏でGroovyコードをインタラ…

BDDフレームワークspockのドキュメントの翻訳

山田さんがBDDフレームワークであるspockのドキュメントを翻訳されておられます。 http://grailsgoeson.metabolics.co.jp/2009/12/spock.html これは実に良い情報。 こちらをどうぞ。 Spock Framework リファレンスドキュメント — Spock 1.0-SNAPSHOT

Quanban・・ソフトウェアかんばん by Grails

Quanbanはいわゆる「ソフトウェアかんばん方式」をサポートするソフトウェアです。Grailsで書かれているとのこと。http://code.qbranch.se/

Grailsプラグイン探訪: 第六回「Simple Blogプラグイン」

地球に優しいリサイクル記事、今回はJGGUGニュースレターの宣伝をかねてJGGUGニュースレターVol.6に書いた記事を紹介します。こんな記事を含むJGGUGニュースレターをほぼ毎月読めますので、お気に召しましたらJGGUG(日本Grails/Groovyユーザ会)に加入なども…

GAE/J SDK 1.2.6以降でGrailsを動作させるために指定が必須のプロパティ

(訂正があります) ついったー経由で知りましたが、以下の設定を行わないと、Groovy/GrailsはGAE/J 1.2.6 以上では動かないようです。自分では試していませんが。 set the System property, "stringchararrayaccessor.disabled" to true. 理由はこちら。 さ…

「えせMVC論争」についてこそこそと一言言っておくか

某所でRailsの「えせMVC」の論争が話題のようです。へたれなので、トラバは打ちませんが一言いわささしていただきます。 MVCパターン != MVC2。これ重要。Java界では誰もMVCなんていってません*1。むしろ「2」をつけることで、「本来のMVCそのものじゃない…

"unified" Grails CMS

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

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

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

JGGUGサマーイベントのお知らせ

以下にありますように、今週末の土曜日にJGGUGイベントが実施されます。 http://www.jggug.org/news/summer_event_2009 8月22日(土)、IBM渋谷オフィスにて、JGGUGの定例イベント g* ワークショップの サマースペシャルバージョンを開催します。ふるってご参…

求人数から見るGroovy/Grailsの人気

TIOBEランキングでは、scalaにも後塵を拝した(´・ω・`)のですが、www.indeed.comの求人数から見ると去年ぐらいからぐっと増えてます。まあ、人気と仕事に使うかどうかは別だってことですかね。 groovy, grails, scala Job Trends groovy jobs - grails jobs …

Grails on GAE/J アプリケーションサンプル Fixdapfeed

遅くなりましたが、6月8日に行われたJGGUGのショートプレゼン資料「Grails on GAE/J 簡単事例編:Fixdapfeed」をアップロードしました。 発表内容は、ちょっとしたツールをGrails on GAE/Jで作ったよ、というもので、何をするものかというと、ライブドアさん…

Grails on GAEにおける既知の問題(と回避策)

Grails on The Google App Engine: Everything you wanted to know but were afraid to ask(Grails on GAEについて聞きにくいけど知りたいことの全て)というブログ記事の一部を訳してみました。 Grails on GAEにおける既知の問題(と回避策) 先にGoogle App E…

Grails on GAE/J用のGoogleアカウント処理用タグリブ

Grails on GAE/Jで以下のように使えるGSPタグリブをつくってみましたよ。 <g:ifLoggedIn>ログインしているときに表示</g:ifLoggedIn> <g:ifNotLoggedIn>ログインしていないときに表示</g:ifNotLoggedIn> <g:ifUserAdmin>管理者がログインしているときに表示</g:ifUserAdmin> <g:ifNotUserAdmin>管理者がログインしていないときに表示</g:ifNotUserAdmin> <a href="<g:loginUrl />">ログインURL</a>