uehaj's blog

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

2009-01-01から1年間の記事一覧

プログラマの妻たちへ(料理とプログラミング)

料理をしたことがない/できない、というプログラマを夫(もしくは彼氏)として持つ人がいたら、以下のように説明すると料理を作ってくれるようになるかもしれません。料理はソフトウェア開発と同じなんですよ!(言い切る) 両者には、以下のような対応関係が…

EJBとは何か・何だったか・どこへ行くのか

このブログエントリは書きかけです。 「素朴なオブジェクト指向」の限界 EJBが示した一つのことは、古典的なクラスベースオブジェクト指向の限界です。つまりクラスやメソッドの組み合わせを、継承やカプセル化・多態・の枠組みで列挙していくだけでは実用上…

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

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

擬人化キャラクター

id:bikisukeさんの知人の方がGroovyの擬人化キャラクター「Groovyたん」を描いてくれました。 気さくな感じで良い方ですね!イカす!http://d.hatena.ne.jp/bikisuke/20091214/1260812173JGGUGの平均年齢が若が返った気がする!(ただし気分的に) この記事…

Groovy+JNA

JNA(Java Native Access)というものがあります(https://jna.dev.java.net/)。これはJavaから動的にDLL中の関数を呼び出すものです。「動的に」ということの意味は、しち面倒くさくバグも作り出しやすい、悪名高きJNI(Java Native Interface)を使わずに、そも…

groovyでテスト! with GMaven

Groovyはテストを書くのに向いている、って言うじゃない。んで、いまどき、開発はMavenベースじゃないですか。 つうことで、mavenのプロジェクトでGroovyテストを書いてみましょうか、という話。まず、一番うまく行くパターンとして、Maven用の公式groovyプ…

cuke4duke

Cucumberというのがあって、これはRuby用のBDDフレームワークで、RubyのDSLを使って英文のようにテストがかけるのが特徴です。cuke4dukeは、JRubyを使って、CucumberをJVM上で解釈させるためのライブラリです。GroovyでCucumberのテストを書くこともできて、…

ビューティフル・アーキテクチャ

ビューティフルアーキテクチャposted with amazlet at 10.05.30オライリージャパン 売り上げランキング: 87474おすすめ度の平均: 1章が価値高いAmazon.co.jp で詳細を見るこの本買ってみました。 おもしろすぐるです。たかだか、この十数年だと思うのですが…

Groovy用並行処理ライブラリ/DSLであるgparsのドキュメント

Groovy用の並行処理ライブラリ/DSLであるgparsのドキュメントが最新化されたようです。http://www.gpars.org/guide/index.htmlながらくドキュメントが最新版(0.9系)に追随していなかったので、テストコードで動作を類推するしかなかったのですが、これでちゃ…

京速計算機の話はベクトル型かどうかが中核的ポイントなのではないか

ちまたでは京速計算機の話が話題ですね。門外漢の意見として言うと、これって、NECが今の延長線上でのベクトル型プロセッサの開発をあきらめた、というのが発端であり本質であり核心ですよね。今予算をつけるつけないのというのは、なんていうか、余韻という…

mod-groovy

TomcatなどJ2EEサーブレットコンテナとか無しで、apacheで直にGroovyコード実行させようというもの。http://code.google.com/p/mod-groovy/

Javaでクロージャを!!!

Javaでクロージャが使えない? はぁ〜〜〜〜〜〜〜〜〜〜??? 聞こえんなぁぁ〜〜〜〜〜〜??? といわんばかりの豪腕なライブラリ。Closures support for Java using dynamic Groovy evaluation.文字列を実行時にGroovyのクロージャに変換してるみたい。…

トリプルクォート文字列中の改行の書き方

「Groovy String Handling」を見てたまたま知ったことをメモ的に書いときます。Groovyで、複数行のダブルクォート(トリプルダブルクォート)もしくは複数行のシングルクォート(トリプルシングルクォート)で改行を含む文字列定数を書くことができます。 de…

非対話型デバッガYouDebug

Hudsonの川口さんが作った非対話型デバッガ、YouDebugというものが話題になっています。これはおもしろい。 本来なら試してから書きたいけどちょっとまだです。デバッガインターフェース経由のJVMのコントロールを、Groovy DSLを使って制御するというもので…

どう書く?org課題「inline/embeded bytecode assembly」とインラインJavaについて

どう書く.org課題の「inline/embeded bytecode assembly」をやってみました。手っ取り早くjavassistで。 @Grab('javassist:javassist:3.8.0.GA') import javassist.*; ClassPool pool = ClassPool.getDefault(); CtClass cc = pool.makeClass("DuffsDevice")…

ジェシカ=グルービー

If Programming Languages Were Real Persons(もしプログラミング言語がほんとの人間だったら・・)という記事。Groovyは「Jessica Groovy」という名前で擬人化されてます。http://jeez.eu/wp-content/uploads/2009/11/groovy.JPG Groovyは21才。その若さに…

どう書く.orgカバレッジ到達目標達成?!

以前、「どう書く.orgをGroovy好きな方、みんなで解きませんか」という呼びかけをさせていただきましたが、JGGUG合宿のイベントとしてid:nobusueさんと取り組み、無事目標であったScalaのカバレッジを越えることができました。投稿いただいた皆さん、groovy…

細粒度並列処理について

JSR-166yはJava 7で導入が予定されている、細粒度並列処理を効率よく行うことができるようにするためのライブラリ群です。Java7でjava.util.concurrent.forkjoinパッケージで提供される予定ですが、実は今でもダウンロードして利用できます。本記事ではこれ…

Maven3ではGroovyでPOMが書ける

合宿で教えてもらいましたが、Maven 3ではPOMがGrovoyでかけるようになるようです。http://www.wakaleo.com/blog/236-writing-your-pom-files-in-groovy-a-sneek-preview-of-maven-3s-polyglot-features GMavenが取り込まれたということかな。Groovyがいろい…

hatena_groovy

id:nobuseさんが作られたツイッターボット。じわじわととても便利なので改めて紹介。Gaelykで作られているとのことです。 http://d.hatena.ne.jp/nobusue/20090823/p2 http://twitter.com/hatena_groovy はてなキーワードの「Groovyを含むブログ」(http://k.…

Groovyのsortにまつわる衝撃の事実

今日までわたしは、リストを返すクロージャを、sortに渡せば、ソートの第一キー、ソートの第二キーみたいにソートするのに使えると私は思っていました。 例えば以下のようなコードです。 data1 = [aa:1, z:1, c:7, b:1, g:1] println data1.sort{[it.value, …

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

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

真偽のほどは

長さゼロのリストは偽とみなされるけど、長さゼロの配列は偽とみなされない。なんでだろう。 a = [] as int[] assert a b = [] assert !b

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

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

Writableは何のため?

Groovyにはgroovy.lang.Writableというインターフェースがあります。定義は以下の感じ。 package groovy.lang; interface Writable { Writer writeTo(Writer out); } また、クロージャにはasWritable()というメソッドがあり、「クロージャ引数である出力スト…

Groovyの仕様続き

id:kskyさんに以前書いた記事についてコメントで教えてもらいましたが、JSRになった時点では、仕様書が無いのは普通だとのことです。ありがとうございます。そうですね。「リクエスト」ですもんね。ちょっと間が開いているなあ(^^;)とは思いますが、いただい…

Groovyの日本語DSL

ついったーで評判が良かった(?)ので紹介。 日本語DSLです。Scalaのを見て書いてみました。http://jggugcode.appspot.com/view.groovy?id=2011 Object.metaClass.getの = {delegate} Object.metaClass.getを = {delegate} Object.metaClass.getが = {deleg…

GroovyなBASIC認証

JavaでBASIC認証するのは、ちらっとめんどい。http://d.hatena.ne.jp/nacookan/20071109/1194592229を参考にすれば、 import java.net.Authenticator; : final String username = "username"; final String password = "p@ssw0rd"; Authenticator.setDefault…

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

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

groovyクロージャについて徒然と

groovyのクロージャをブロックとして使っていると、breakとかcontinueとかができませんのできっと誰もが最初はあれ?と思ったはず。理由は単純で、クロージャというのは無名メソッド定義であって、たまたま平たくコード中にならんでいて、スコープ則にしたが…