■
http://mvnrepository.com/
ここで検索したら、迷わずgrabできる。
■
どう書く?にうるう年か調べるやつを投稿してみた。理屈の部分は、C#の投稿から借りてきて、groovyに置き換えて投稿してみたけど、groovyなら、Dateクラスに拡張してしまうほうが、すっきりするような気がする。
Date.metaClass.define{ isLeapYear{ y = year+1900 ((y & 3) == 0) && (!("$y" ==~ /.*00$/) || ((y & 15) == 0)) } } println new Date("1900/1/1").isLeapYear() println new Date("2000/1/1").isLeapYear() println new Date("2008/1/1").isLeapYear() println new Date("2009/1/1").isLeapYear() println new Date("2100/1/1").isLeapYear()
Snow Leopardをいれてみた
子供を寝かしつけつつ、Snow Leopardをいれてみた。
入れる前にディスク容量を調べるのを忘れてたので、ほんとに7GBも減ったのか分からなくて残念。
全体に動作が速くなった気がするのは、欲目でしょうか。
javaのバージョンが、ついに1.6になっててうれしい。
いろいろ試してみよう。
複雑な条件でもOK
複雑な条件の組み合わせもgroovyなら簡単。
クロージャってすばらしい。
class P{ def v1 def v2 def check(cond){ if (cond.c1.call(v1) && cond.c2.call(v2)){ cond.func.call() } } } class C{ Closure c1 Closure c2 Closure func } def conds = [ new C( c1:{it == 1}, c2:{(0..3).contains(it)}, func:{println "con1"}), new C( c1:{it == 1}, c2:{(4..10).contains(it)}, func:{println "con2"}) ] def p1 = new P(v1:1, v2:5) conds.each{ p1.check(it) }
なんで、こんなのを試したかというと、お仕事で4つのenum値の組み合わせで処理を分岐させるケースがあって、シコシコとロジック書くのがばからしくなったから。
でもC++でやろうとすると、いっぱいクラスや関数をつくんないといけなくて、うまくいかなかった。
groovyなら、さくっとできるのに。
もう、頭がgroovy脳になりかかっているのかも。
grailsとcomet
Googleしてみたら、あっさりとプラグインが見つかった。
installして、run-appしてみると、ファイル数が1000を超えていた。これって、GAEにのらないよなぁ。
サンプルもついていたので、2、3ファイルのぞいていたら、dojoを使ったJavaScriptのばかりで、まったく理解できなかった。
UI側を作るなら、JavaScriptの勉強も不可欠か。
早速ためしてみたgrails+GAE
今日の読書会で、紹介があった、grails+GAEをさっそく試してみた。
http://docs.google.com/Presentation?id=dgkcctp6_2123s6h5tc7
確かに、空っぽのgrails appをGAEにdeployすることには成功した。
けど、ドメインクラスを作って、ローカルでscaffoldしてもうまくいかないし、generate-allしても、persistの例外みたいになってうまく表示できない。
何がどうなっているのやら。
例外はこんな感じ
Exception Message: Identifier expected at character 1 in ".Book"
Caused by: javax.persistence.PersistenceException: Identifier expected at character 1 in ".Book"
generateしたcontrollerを見てみると、
def query = entityManager.createQuery("select from .Book")
query.maxResults = params.max
query.firstResult = params?.offset?.toInteger() ?: 0
bookInstanceList = query.resultList
デフォルトパッケージなのが悪い?
grails でパッケージを追加するのってどうやるの?
で、適当にパッケージ名をいれて、JPAクエリにも"select from
しかし、こんどはcreateが・・・うごかない。
create.gspをみると中身は空っぽなので〜書くしかないみたい。
でも、例外はなんかちがうみたいだし。
今日はここまで