WindowsのコマンドプロンプトでGrails 3開発する(エンコーディング地獄編)

どうも、ひさしぶりにはてダで書きます。 昨今、ソースコードはUTF-8で書くのがデファクトだと思うんですが、WindowsでのJavaはデフォルトエンコーディングが相変わらずwindows-31jなので、何をするにも明示的にエンコードを指定しないといけません。 あと、…

JJUG CCC 2015 SpringでGroovyについて話してきた

2015/4/11のJJUG CCC 2015 Springで、Groovyについてお話ししてきました。 CFPに応募するかしばらく迷ってたんですが、ネタが思いつかなかったので先送りしていたら、〆切最終日辺りにさくらばさんや複数の人から「初心者向けでいいんですよ、むしろいいんで…

GrailsでシンプルなRESTサーバを素早く立ち上げる

はじめに これはWeb API Advent Calendar 2014、10日目のエントリです。 Grailsでは某RESTful DAO的なものがサクッと実装できますよ、というお話です。 だから何だ、とか、○○のFWでもできるぞこの野郎、といった苦情はご遠慮ください。 実装する とりあえず…

Java8のInvokeDynamic実装一新によるGroovyのindyモードの性能改善効果が凄すぎた件

本日、Java Day Tokyo 2014に来ています。 で、ついさっきのセッションで「JDK8ではInvokeDynamic(以下、indy)の実装を一新したのですごく速くなったよ」という話を聞いたので、Groovyのindyモードで試してみました。 Groovyは2.0(現在は2.3)でindy対応され…

Gradleで特定のJarをtestRuntimeで使いたいけどWarからは除外したい

Twitterで@ruimoさんがつぶやかれていたので色々試してみた結果をまとめておきます。 (試行錯誤で徐々に追記しています。) 経緯 @ruimo 単にdependenciesで対象ライブラリをtestRuntimeの方に追加する、ではだめですか?— Yasuharu Nakano (@nobeans) 2014, …

Groovy2.3.0-beta-1と噂のTraitを試してみた

Groovy2.3.0-beta-1がリリースされましたね。 目玉としてはやはりtraitでしょう。 今までのMetaClassによるメソッドの動的探索パスをいじる系の機能で似たようなことはできましたが、何かと限界(複数スレッドにおける動作の保証とかかなり泥臭い感じだったり…

Grails/Gradleの「さっきのテストレポート」をAlfredに表示してもらう

はじめに この記事は、G*(Groovy, Grails ..) Advent Calendar 2013の15日目として書かれたものです。 14日目は @grimroseさんでした。 最近某自作GrailsアプリにてGrails上でVert.xを利用してWebSocketのプッシュを実装したりしてたので、今回はその話を書…

GroovyServとGradle Daemonとの違い

10/23 9:50 訂正&追記: GradleがデフォルトでDaemon起動すると書いてた件 (thanks to きょんくん) 元記事: http://dev.classmethod.jp/server-side/gradle/gradle-first-contact/ 経緯的な id:daisuke-mが昼過ぎに技術を語るいつものシリーズにGradleを追加…

標準バンドルのVisualVMのウィンドウが空っぽになってしまったらキャッシュを削除すべし

経緯的な 9月にTwitterにぼやいた件のその後。 7u40のretina対応のおかげでjvisualvmもくっきりきれいになってるなー— Yasuharu Nakano (@nobeans) 2013, 9月 12 と思って、7u25と比較したりしてたら、メインウィンドウに何も表示されなくなってしまった...—…

本家Grailsユーザガイドを開くと自動的に日本語翻訳にリダイレクトするChrome拡張

Grailsユーザガイド日本語翻訳版とブックマークレットの紹介 - 豆無日記で、紹介したブックマークレットを毎回実行するのがダルすぎるので、Chrome拡張にしてみました。 以下のURLからChrome拡張をインストールしてください。 https://github.com/nobeans/ch…

Grailsユーザガイド日本語翻訳版とブックマークレットの紹介

有志によるGrailsユーザガイドの日本語翻訳作業がずっと行われていたのですが、実は8月の頭にちょうど一区切り良い感じになりました。 そろそろリリースされそうなGrails 2.3向けに追記された部分などまだちょっと英語部分も残っていますが、基本機能につい…

iPhotoライブラリをDropboxで管理するときに気をつけるべきたったひとつのこと

iPhoto Libraryの中にあるOriginal、Data、Modifiedというエイリアスを削除してから共有しましょう。 なんで? Dropboxはエイリアス経由のパスであっても気にせずに物理的にサーバ上にファイルを格納するので、画像が多重にアップロードされてしまい、サーバ…

Gradle1.6の新機能mustRunAfterでタスク間の実行順序が制御可能になった #gradle

Gradleではタスク間の依存関係の指定ができます。 build.gradle: task a << { println "A" } task b(dependsOn: "a") << { println "B" } task c(dependsOn:"a") << { println "C" } task d(dependsOn: ["b", "c"]) << { println "D" } 実行結果: $ gradle d…

コペンハーゲンのGR8Conf EU 2013でGroovyServとImproxプラグインを紹介してきた

5/22-24にデンマークはコペンハーゲンで開催されたGR8Conf EU 2013というGroovy系のカンファレンスで、GroovyServとImproxプラグインを紹介してきました。 http://gr8conf.eu/index 右の写真はコペンハーゲンの定番がっかり観光スポットの「人魚の像」ですね…

GrailsからMirageを使うサンプルがあったので試してみた

Mirageという2-way SQLが利用できる素敵なO/RマッパをGrailsで使ってみたというブログがあったので、サンプルコードを落として試してみました。 developmentモードでMySQL使うようになってたので、H2に変更してrun-appして試してみました。 確かにMirageでDB…

GrailsのGORMにおける各種関連とmappingによる名前変更のサンプル

Grailsのドキュメントを翻訳する上で、英文読んでも何を言ってるか分からないので、サンプル書いて試してみた記録です。 ↓ここに反映される予定。 http://jenkins.xmldo.jp/job/grails-doc/lastSuccessfulBuild/artifact/build/docs/ja/guide/GORM.html#tabl…

GExcelAPI 0.3 リリースしました #gexcelapi

GExcelAPI 0.3をリリースしました。 https://github.com/nobeans/gexcelapi Change Log、といえるかどうか 変更点としては、以下の2点。 POI3.9化 Java7対応 (thanks to @yamap_55) これだけ? はい、これだけです。 でも、Java7対応重要です。ですよね? オ…

IntelliJ IDEAの細かすぎてわかりづらいGroovyサポート:メソッドシグネチャのホバー表示

メソッドコール部分をホバーするとAPIドキュメントを表示してくれるのはIDEとして普通のことだけど、 Groovyのような言語ではメソッドシグネチャで型を明示指定してないことが良くあります。 そういう場合でも、呼出先で使われるプロパティやメソッドなどを…

Groovy基礎勉強会でGrailsのリクエスト制御をライブコードリーディングしてきました #GroovyBase

全編インテリジェイアイデアを使ったライブだったので、資料成分はほとんどありません。資料で共有する価値が若干でもありそうなのは、1ページだけだったので画像だけ貼っておきますね。ポイントとしては、 インテリジェイアイデア、マジ便利 新規購入はイケ…

書籍『SQLアンチパターン』 #sqlap

献本御礼。 本書のレビューに参加できて大変光栄であります。SQLアンチパターン作者: Bill Karwin,和田卓人(監訳),和田省二(監訳),児島修出版社/メーカー: オライリージャパン発売日: 2013/01/26メディア: 大型本 クリック: 365回この商品を含むブログ (4件)…

Scrum Regional Gatehering Tokyo 2013に参加してきた #sgt2013

若干タナボタ気味ではありましたが、会社のお金で参加してきました。ありがとう、会社の人。おかげさまで大変堪能できました。というわけで、メモです。自分のためのメモなので、噓(はないとは思いたい)・大げさ・紛らわしい・理解誤り・仕様誤り・ケアレ…

「enumの抽象メソッドはgroovyでサポートされてない?」「Yes. でもそれだけじゃねーんだぜ」 #jggug #q

enumの抽象メソッドはgroovyでサポートされてない? #jggug #q - 山pの楽しいお勉強生活 へのアンサーエントリ的な。 Short Answer enumの抽象メソッドはgroovyでサポートされてない? はい。Groovyのenumサポートは微妙です。 Long Answer (or Investigati…

Grailsインタラクティブモードのstop-appとexitコマンドの違い

〜2.1.2まで Grails開発者はみんな大好きなインタラクティブモードですが、開発中のWebアプリケーションの起動/停止もインタラクティブモードでやると、2回目以降が早くなって良い感じです。ときどきハマっておかしくなったら、さっくり再起動し直せばOK。Ct…

第1回JetBrainsユーザグループに行ってきた #jbugj

はじめに ヒゲのイケメンが「ブログ書くまでが〜です」とか言ってたので、今をときめくミニブログ()のTwitterに報告を書いたら却下されたので、ミニじゃない方のブログで書きます。@nobeans ん、#呼んだ? ぶ、ぶろぐ・・・— 山本裕介さん (@yusuke) 12月 12…

今更ながらGExcelAPIでJava7サポートしました(スナップショット版)

2010年から永らく放置熟成させておいたGExcelAPIですが、ビルドに使っているGroovyのバージョンが古すぎてJava7で動かないことが判明したので対応しました。機能面では変わっていませんが、ビルド&テスト時の依存ライブラリ等をアップグレードしました。 Gr…

Grails Improx プラグイン 0.1 (コードネーム GrailsServ) リリースしました!

G*アドベントカレンダ2012の7日目、12/7担当のnobeansです。さて、本日、Improx(インプロックス)というGrailsプラグインをリリースしましたので、ちょっとここで長文自慢しておきつつ、アドベントカレンダの記事に代えさせていただきます。 Grailsのインタラ…

GradleでEclipseの設定ファイルを生成するときにlib直下のjarを相対パスにする

GradleでEclipseの設定ファイルを生成するときにクラスパス変数GRADLE_REPOを使う - 豆無日記では、Gradleのローカルリポジトリ(キャッシュ)への絶対パスをGRADLE_REPOのような変数に置換して、Eclipseの設定ファイルを複数人で共有するための方法を考えまし…

Grailsのアプリ起動完了やテストの結果をGrowlで通知するEvents.groovyが便利な件

[2013/04/18追記] Mountain Lion以降で通知センターを使う場合は grails-notifierなるものを作りました - PiyoPiyoDucky を参照のこと。 Grailsスクリプトのイベントフックとは Grailsではアプリ起動とかテスト実行などをGantスクリプトとして提供しています…

Grails2.0.2以降のbinding機構にハメられた件

ハマった。Grails2.0.0で実装途中だったプロダクトを2.0.3に上げてみたらテストが通らなくなった。半端なバージョンだけれども、例のgithubでもあったRailsの脆弱性と同じ問題に対処するために、Grails2.0.2からコントローラ上でhoge.properties = params や…

JavaOne Tokyo 2012でマサカリを膝に受けてきた

この4/4-4/5に日本で7年ぶりに開催されたJavaOne Tokyo 2012のBOFで登壇させていただきました。JVM言語BOFというセッションで、名前だけ見るとなんだかよくわかりませんが、セッション概要をみると JavaVM上で動作するさまざまなプログラミング言語 (Groovy…

Groovyを野良ビルドしてみよう

はじめに G* Advent Calendarの4日目を担当させていただきたいと存じますnobeansと申します。どうもどうも。さて今回のネタとして、 自プロダクトのGroovyServとか 今一押しのビルドツールGradleとか この前のTDDBC横浜で注目を集めたBDDフレームワークのSpo…

vimのquickrun.vimプラグインを使って編集中のGroovyコードをGroovyServ上で実行する

みんな大好きvimに、quickrun.vimという素晴らしいプラグインがあります。 vim-quickrun/doc/quickrun.txt at master · thinca/vim-quickrun · GitHub Vim上でプログラムを実行できるプラグインquickrun.vimで開発効率アップ - Vive Memor Mortis これを使う…

GradleでEclipseの設定ファイルを生成するときにクラスパス変数GRADLE_REPOを使う

2012/3/21追記 id:Hirohiroさんによれば、Gradle 1.0-milestone-9から後述の方法がdeprecatedになってるそうです。最新の方法は↓を参照ください。他にもEclipseでGradleを使うための素敵なTipsが紹介されてます。 http://d.hatena.ne.jp/Hirohiro/20120321/1…

GradleとPMDで循環的複雑度(サイクロマティック数)を手っ取り早く測定するスクリプトを書いてみた

ソースコードの品質向上のための効果的で効率的なコードレビューを読んで、循環的複雑度(サイクロマティック数)を手っ取り早く測定してみたくなったので、GradleとPMDで試してみました。 http://wiki.gradle.org/display/GRADLE/Cookbook#Cookbook-usingPM…

Windowsのショートネーム変換の~sがバグってるのでGroovyServ0.9の起動に失敗する場合がある

事象 ふもさんが、WindowsXP上のJava1.7.0でGroovyServを使おうとしてハマッたという報告を受け、我々取材班オレは急遽調査を開始した*1。 fumokmm: v0.9 on WindowsXP with jdk1.7.0 だと groovyclient が起動しないです。 JAVA_HOMEのパスがおかしいって言…

ふもさんの「お題:フルパスから相対パスを求める」をやってみた

続きまして、お題:フルパスから相対パスを求める - No Programming, No Lifeもやってみました。 こういうアルゴリズムっぽいものはあんまり得意じゃないので、すごくベタな感じになってます。無念。 ちょうど良いのでSpockのParameterized Testを使ってみま…

ふもさんの「お題:FizzBuzz(Nパターン)」をやってみた

Twitterでつぶやいて既に拾ってもらってはいますが、一応こっちにも書いておきます。id:fumokmmさんが出してるプログラミングお題一覧 - No Programming, No Lifeの中から、お題:FizzBuzz(Nパターン) - No Programming, No Lifeをやってみましたというお話。…

"Java SE 7 リリース記念 特別イベント"懇親会LTでのGParsのFork/Joinについての宿題の解答

最後が若干投げやりですが、やっとまとまりました。 はじめに 先週の7/7(木)に"Java SE 7 リリース記念 特別イベント"の懇親会でLTをしてきました。 JavaSE7 Launch Event: Java7xGroovy View more presentations from Yasuharu NAKANO "Java7のその機能Groo…

オブラブ2011夏イベントに参加しました

初のオブラブにして最後の(?)オブラブ。 天野さんの思惑通り、会社のお金でお仕事として参加してますので、できるだけメモをとっております。メモなんで万一敬称とか内容とか失礼な書き方してる箇所がありましてもご了承いただけると幸いです。 全日程終了。…

JythonをGroovyServで実行してみる

気がついたらTwitterでid:t-wadaからふられてた*1のでやってみました。 $ alias gython="groovyclient -cp /tmp/jython.jar -e 'import org.python.util.jython; jython.main(args)' --" こんなaliasを書けばそれっぽく動きました。jython.jarは自分の環境に…

DZoneでGroovyServについてのインタビュー記事が掲載されました

DZoneという海外の技術情報サイトがあるんですけど、GroovyZoneというサブカテゴリもあったりして、Groovy&Grailsの技術者が集っていたり、コミッタ達も割と出没していたりします。で、そこでライターをやっている(?)GriffonコミッタのAndres Almiray氏から…

Homebrewで日本語ファイル名問題(UTF-8-MAC)にパッチをあてたSubversionをインストールする

ずっとMacOSX標準の/usr/bin/svnを使ってたんですが、これ、日本語ファイル名の扱いに問題があるんですね。 http://q.hatena.ne.jp/1195788711で、とりあえずごまかしごまかしでこれまできたわけですが、流石にちょっとなと思って調べてみたらあっさり解決し…

Homebrewでgit-nowを一発インストールする

2012/03/14追記 ときどきこちらにたどり着かれる方がいらっしゃるようなので、追記しておきます。 すでにgit-nowのformulaはiwata(id:mobcov)さんの手によってhomebrew本家に追加されているので、普通にbrew install git-nowでインストールできますので、お…

JGGUGのg*workshopのLT枠でGradleを紹介してきたよ

http://kokucheese.com/event/index/7712/ http://togetter.com/li/104729今回のg*workshopでは、Jenkinsの川口さん(id:kkawa)をお招きして、JenkinsでどのようにGroovyを使い倒しているかなどのお話を1時間ほどしていただきました。いやもう↓の一言に尽きま…

Sphinxでサイドバーの検索ボックスをOFFにする

オンラインヘルプとかHTMLドキュメントを書くのに、すごく便利ですよね、Sphinx。某アレに提出するためのドキュメントを書いてたんですが、一つだけ困りました。 サイドバーの検索ボックスがあるんですが、なんかうまく動かない。検索が全然返ってこない。と…

MacBook Air 11インチ欲しい!

MacBook Air 11インチ欲しい!

GriffonのJavaFXプラグインFxBuilderをスタンドアロンで使ってみる

まずは 12/20の JavaFX & GlassFish 合同勉強会(http://atnd.org/events/10146)で、GroovyのBuilderについて発表させていただきました。 機会をいただいたid:skrbさんをはじめ、開催側・参加者の皆さんありがとうございました。Groovy's BuilderView more pr…

ひっそりとGExcelAPI v0.2をリリースしました

はじめに みんな大好きExcelのファイルに超簡単にアクセスしまくれるGroovy用ライブラリです。 名前がGExcelAPIなのに使ってるライブラリはApache POIです。JExcelAPIじゃないのでご注意。 だって語呂がいいだもん。 元々暖めてたアイデアを某書籍のサンプル…

bashのシェルスクリプトでexpand_pathとかを実装してみた

某GroovyServで欲しくなったので実装してみたんですが、こんなまどろっこしい方法しかないのでしょうかね。どっかに素敵な車輪が転がっているのかしら。 Linuxでは普通なGNU readlinkの-f, -e, -mオプションが使えれば話は早いんですけど、Mac OS XのBSD系の…

KeyRemap4MacBookでの外だし設定XMLファイル&動的リロード

mac

なんか最近KeyRemap4MacBookのことばっかり書いてる気もしますが、だって便利なんだから仕方ない。 正式バージョンとしてはまだリリースされてないですが、KeyRemap4MacBook-7.0.0から、独自の設定ファイルをそのまま外部XMLファイルとして管理できて、かつ…