uehaj's blog

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

2010-08-01から1ヶ月間の記事一覧

JNAで死ぬほどはまった件

MacOS XおよびLinuxで、JNA(Java Native Access)を通じて、putenv("A=B")すると、即座もしくは数秒後〜数十秒後に設定したはずの環境変数が消え去るという現象に遭遇した。消え去るまでの時間が不定なので、何かを修正して、「直った」と思ったら実は発現ま…

Gretty..軽量でノンブロッキングなイベント駆動Webサーバ

http://groovy.dzone.com/articles/512000-concurrent-websockets?utm_campaign=toya256ForRSS&utm_medium=twitter&utm_source=am6_feedtweetによれば、GrettyとはNettyを使っており、Groovy++で書かれており、超軽量でノンブロッキングなイベント駆動のWeb…

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…

正規表現における部分文字列の後方参照(キャプチャリング)をスマートに

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…

GroovyServの小技シリーズ6 Groovyコードの保存時に自動的にコンパイルエラーチェック(ただしEmacsに限る)

Eclipseとかでは常識ですが、あるいはflymakeを適用したruby-modeでもそうなってますが、Groovyソースを保存したときにgroovycをかけるというもの。基本的なエラーは見つけてくれるので便利。もちろん、今までのgroovycでもできた訳ですけど、遅い。毎回保存…

超絶未来のprintfデバッグ

printfデバッグというものはなかなか滅びないものでございます。詳細ログファイルを見ながらデバッグするということに形を変えている様にも思われます。ならいっそ、それを発展させるとどうなるか?ログ出力指向のデバッギング。ログビューワの超強力なもの…

GroovyServの小技シリーズ5 - GroovyServで実行しているかどうかを判定する

GroovyServ配下で実行中は、システムプロパティ"groovy.runningmode"が定義されています。 GroovyServ配下での実行と、通常実行中で動作を切り分けたいときに使えます。 $ groovycilent -e 'if (System.getProperty("groovy.runningmode")){println "GroovyS…

GroovyServの小技シリーズ4 -- Eclipseの外部ツールにgroovyclientを登録する

昨日のEmacs版に続き、編集中のGroovyコードを1アクションで実行する方法のEclipse版です。これはid:nobeansさんがid:masanobuimaiさんに記事「http://d.hatena.ne.jp/masanobuimai/20100714#1279119388」にてコメントしている内容そのものです。[Run]-[Ext…

GroovyServの小技シリーズ3 -- groovy-execute-buffer-file

編集中のバッファ中の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…

Gasic -- Basic Intepreter by Groovy

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 …

GroovyServの小技シリーズ2 scalacを高速化する

つい昨日0.4がリリースされたGroovyServですが、相当バグフィックス入ってるのでお薦めです。GroovyServはGroovyスクリプトの起動を高速化するものですが、Groovyから呼び出すものはGroovyに限りません。つまりJVM上で動くものならなんでも起動の高速化が理…