2010-01-01から1年間の記事一覧
Groovy用の静的解析ツールであるCodeNarcの0.11リリースのアナウンスが出ています。Groovy版checkstyleと思えばよろしい。今バージョンではチェックルールが増えたようです。業務開発ではコーディング規約を揃える必要がありますが、これを使うとGroovy開発…
昨日、「STSにおいてGroovyデバッグサポートが向上した」という記事を書きました。これは、SpringSource Team Blog]の記事を読んだだけで書いたのですが、今日は実際に試してみました。デバッグ時の「式の評価」機能については、勝手な思い込みとして、「実…
当日リマインダーですが、本日、今年最後のJGGUG G*WSがあります。 http://www.jggug.org/news/13th_g_workshop 2010年12月9日(木)、青山の日本オラクルセミナールームにてJGGUGの定例イベント、 G*ワークショップを開催します。今回は年末スペシャル!通常…
SpringSource Team Blog]によれば、STS 2.5.1では、EclipseにおけるGroovyデバッグサポートの機能が向上しているようです。STSというのはEclipseのSpring関係詰め合わせパックです。要約すると、 1. Step in/Step outで、いままではreflection and cached ca…
いつも忘れるのでメモ。/Developer/Applications/Performance\ Tools/Quartz\ Debug.appを起動して、Window-UI Resolutionを選び、適当な倍率を選び、対象となるアプリケーションを(再)起動します。DPI値がかわるので、フォントだけではなく、アイコンや画像…
前にHtmlUnit賛歌という記事を書きました。この記事は「スクレイピングにHtmlUnitを使おう」という趣旨でした。今回、結論が変るわけではないのですが、開発を通じて経験した留意点をちょっと書いてみます。前の記事では以下のように書きました。 HtmlUnitで…
Chrome拡張の"Chrome KeyConfig Extension"が超便利。要はキーカスタマイズなわけですが、嬉しいのは: bookmarkletの呼び出しをショートカット化できる(go toアクションのURLに設定)。例えば「はてなbookmarに登録ブックマークレット」とかを登録できる 文字…
JGGUGの月例勉強会「G* Workshop」が11月9日に行われます。http://kokucheese.com/event/index/5267/DCIアーキテクチャ、合宿企画報告、JavaOne参加者が語る海外Groovy/Grails事情など、興味深いところがもりだくさんです。ぜひご参加ご検討ください。 JGGUG…
ハイウェスト日記経由で、「Groovy 1.8 beta3 からClosureのメモ化ができるようになった」とのことを知り、情報を探してみました。 Implement closure memoization, like in GPars を読むとクロージャに以下の3つのメソッドが追加されています。 memoize() m…
本日、JJUG CCC 2010にて、Groovyのプレゼンをして参りました。コマ割りの都合上、和気あいあいと、フレンドリーに発表ができ「勉強会状態」でした。http://twitter.com/#search/%23CCC10の最後の方で皆様がつぶやいてくれています。ありがたいです。JVM言語…
知っている人には、今さらですが、HtmlUnitというものがあります。名前からするとxUnit系の、ユニットテストツールのような気がするかもしれませんが、違うよ!全然違います。誤解を招く名称です*1。これはGUIレスなブラウザなのです。GUIがないだけでなく、C…
groovyをコンパイルする際に一部のユニットテストだけを実行する方法。 ant -DtestCase=groovy.RegularExpressionsTest test ant -DtestCase=groovy.GroovyMethodsTest test こんな感じ。
このところ、「Emacsテクニック・バイブル」の本を読んでました。この本はひとことで言って、Emacsの設定集です。標準機能と、非標準機能の両方について、これでもか!というぐらいの便利設定が満載されています。Emacsテクニックバイブル 〜作業効率をカイゼ…
こないだのエントリで書いた、日本語DSLのサンプルコードが、ただいま開催されているJavaOneにおけるPaul King氏のセッションで紹介されたとのことです。@nobeans: [DSL/Groovy]@uehajのDSLがJavaOneで晒された瞬間 URL #javaonejp2010-09-24 09:13:59 via Y…
Groovy Web Consoleを見ていて気づいた事ですが、Groovy 1.8ではクロージャに対する演算子>で関数合成ができるようになってますね。 def twice = { a -> a * 2 } def plus3 = { a -> a + 3 } def t1 = twice >> plus3 def t2 = twice << plus3 assert t1(1) …
注意:以下の内容はGroovy 1.8のβ(9/19時点のtrunk)で試した結果を元にしています。最終版では異なってくる可能性があります。前に「Groovyの日本語DSL」という記事を書きましたが、前に紹介したGEP3の機能(Groovy 1.8系でのみ利用可能)を使って、括弧やピリ…
エディタのundo/redoというのはソースコード履歴管理システムの一種です。Emacsにはundo-tree.elというのがあるのですが、これはEmacsでのundo-redo履歴を可視化してくれます。これは例えば、gitの以下のような履歴ツリーというかDAGと同種のものです。われ…
旧聞に属しますが、ちょっと前に流行った括弧ゴルフ(括弧をなるべく使わずに階乗を計算するやつ)をgroovyでやってみました。 a = args as List a += '1' a.putAt 1, 'x' a -= 'x' s = a as String c = s.chars c.putAt 0, " " minus1 = -1 c.putAt minus1, "…
Groovy 1.8ではGEP3という機能拡張が予定されていて、それは何かと言うとカンマや括弧の解釈の優先度とか省略ルールを変えることで、「メソッド呼び出しっぽくなく」英語のようにメソッドが呼べるようになると言うものです。以下、glaforge氏による実行可能…
MacOS XおよびLinuxで、JNA(Java Native Access)を通じて、putenv("A=B")すると、即座もしくは数秒後〜数十秒後に設定したはずの環境変数が消え去るという現象に遭遇した。消え去るまでの時間が不定なので、何かを修正して、「直った」と思ったら実は発現ま…
http://groovy.dzone.com/articles/512000-concurrent-websockets?utm_campaign=toya256ForRSS&utm_medium=twitter&utm_source=am6_feedtweetによれば、GrettyとはNettyを使っており、Groovy++で書かれており、超軽量でノンブロッキングなイベント駆動のWeb…
結論:予想通り、あまり嬉しくないやってみた。 $ 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…
http://groovyconsole.appspot.com/script/202001にも投稿しましたが、 java.util.regex.Matcher.metaClass.call = { Closure c -> while (delegate.find()) { (0..delegate.groupCount()).each { c.setProperty("\$$it", delegate.group(it)) } c.call(dele…
Eclipseとかでは常識ですが、あるいはflymakeを適用したruby-modeでもそうなってますが、Groovyソースを保存したときにgroovycをかけるというもの。基本的なエラーは見つけてくれるので便利。もちろん、今までのgroovycでもできた訳ですけど、遅い。毎回保存…
printfデバッグというものはなかなか滅びないものでございます。詳細ログファイルを見ながらデバッグするということに形を変えている様にも思われます。ならいっそ、それを発展させるとどうなるか?ログ出力指向のデバッギング。ログビューワの超強力なもの…
GroovyServ配下で実行中は、システムプロパティ"groovy.runningmode"が定義されています。 GroovyServ配下での実行と、通常実行中で動作を切り分けたいときに使えます。 $ groovycilent -e 'if (System.getProperty("groovy.runningmode")){println "GroovyS…
昨日のEmacs版に続き、編集中のGroovyコードを1アクションで実行する方法のEclipse版です。これはid:nobeansさんがid:masanobuimaiさんに記事「http://d.hatena.ne.jp/masanobuimai/20100714#1279119388」にてコメントしている内容そのものです。[Run]-[Ext…
編集中のバッファ中のGroovyコードをGroovyServで実行するコマンド。 (defvar groovy-command "groovyclient %f" "groovy or compatible command. %f means buffer-file") (setq groovy-command-line nil) (defun groovy-execute-argument() (if (null groov…
Groovyで書かれたBASICインタプリタだそうな。http://groovyconsole.appspot.com/script/192001サンプルコード ' initialize the loop counter count = 10 ' stop looping if we're done top: if count = 0 then end print "Hello, world!" ' decrement and …
つい昨日0.4がリリースされたGroovyServですが、相当バグフィックス入ってるのでお薦めです。GroovyServはGroovyスクリプトの起動を高速化するものですが、Groovyから呼び出すものはGroovyに限りません。つまりJVM上で動くものならなんでも起動の高速化が理…