Doma 1.36.0 をリリース

リリースしました。 詳細はこちらをご覧ください。http://www.seasar.org/wiki/index.php?SeasarWhatsNew%2F2014-02-01#ie0983f2

[Doma][Java] Doma 2 素案

Java 8 対応に伴い Doma 2 の開発を検討しています。 素案を書いてみました。 https://gist.github.com/nakamura-to/6751206 ご意見ありましたら、コメントをお願いします。

Doma 1.35.0 をリリース

Daoフレームワーク Doma 1.35.0 をリリースしました。ダウンロードはこちらからどうぞ。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照ください。 http://www.seasar.org/wiki/index.php?Maven2RepoRemote 以前のバージョンから移…

Doma 1.34.0 をリリース

Daoフレームワーク Doma 1.34.0 をリリースしました。ダウンロードはこちらからどうぞ。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照ください。 http://www.seasar.org/wiki/index.php?Maven2RepoRemote 以前のバージョンから移…

Doma 1.33.0 をリリース

Doma 1.33.0 をリリースしました。ダウンロードはこちらからどうぞ。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照ください。 http://www.seasar.org/wiki/index.php?Maven2RepoRemote 以前のバージョンから移行するには移行ガイ…

m2eでDomaを使う場合に気をつけること

m2e(m2eclipse)を使って次のようなエラーがでたら設定を調整してください。 [DOMA4019] SQLファイル[META-INF/../select.sql]がクラスパスから見つかりませんでした これは、m2e(m2eclipse)で作ったプロジェクトがSQLファイルをOutput Folderにコピーしない…

Doma 1.32.0 をリリース

Doma 1.32.0 をリリースしました。ダウンロードはこちらからどうぞ。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照ください。 http://www.seasar.org/wiki/index.php?Maven2RepoRemote 以前のバージョンから移行するには移行ガイ…

ドメインクラスで型パラメータをサポート

twitter:@backpaper0 さんの発言から。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platfo…

Doma 1.31.0 補足

DOMA-285について JDK7 + Gradle 1.6 でビルドして注釈処理が失敗すると、javax.annotation.processing.Messager経由のメッセージ出力がコンソールに表示されないということがわかりました。例外にも同等の内容を含め、コンソールにメッセージが表示されるよ…

Doma 1.31.0 をリリース

Doma 1.31.0 をリリースしました。今回は非常に細かい修正だけが入っています。ダウンロードはこちらからどうぞ。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照ください。 http://www.seasar.org/wiki/index.php?Maven2RepoRemot…

Doma 1.30.0 をリリース

Doma 1.30.0 をリリースしました。ダウンロードはこちらからどうぞ。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照ください。 http://www.seasar.org/wiki/index.php?Maven2RepoRemote 以前のバージョンから移行するには移行ガイ…

H2 Databaseの互換性のない変更

DomaのJIRAに報告もらって気づいたのですが、最近のH2 Databaseには互換性のない変更が加わっているようです。 一意性約違反のエラーコードが23001から23505に変わった SELECTのLIMIT句に0を指定した場合の検索結果が異なる H2のバージョン1.2.126と1.3.171…

DB上のNULLをどう表現するか

TranqというF#専用のDBアクセスライブラリについて話します。 https://github.com/nakamura-to/Tranq はじめに Tranqでは、F#らしくDB上のNULLをoption型で扱えます。たとえば、次のようなテーブル定義を考えます。 create table Person (Id int primary key…

TranqでF#の機能を最大限活用したDBアクセス

TranqというF#専用のDBアクセスライブラリを作りました。 https://github.com/nakamura-to/Tranq NuGetはこちら。 http://nuget.org/packages/Tranq/ Tranqを作った背景ですが、既存のDBアクセスライブラリだとF#の便利な機能を活かしにくいなと感じたので作…

Java7でソートのロジックが変更されている件

http://seasarproject.g.hatena.ne.jp/halflite/20130305/s2jdbcgen3 コメントできないのでトラックバックで。元の並びに依存したComparatorがダメらしいですね。対応版のコードおいておきます。 https://gist.github.com/nakamura-to/5096537 とりあえずは…

Doma 1.29.0 をリリース

Doma 1.29.0 をリリースしました。ダウンロードはこちらからどうぞ。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照ください。 http://www.seasar.org/wiki/index.php?Maven2RepoRemote 以前のバージョンから移行するには移行ガイ…

TypeProviderでSQLのパラメータに型をつける

F#

コンピュテーション式でADO.NETのトランザクションを表現するアイデアを使いつつ、パラメータありのSQLをTypeProviderを使って(比較的)型安全に実行する方法を考えてみました。TypeProviderはF# 3.0で導入された、コンパイル時に型を生成する機能です。こ…

Lazyの合成

F#

Lazyのアクティブパターンを使うとすっきり書けることに気づきました。 (* ('a -> 'b -> 'c) -> Lazy<'a> -> Lazy<'b> -> Lazy<'c> *) let lift2 f x y = lazy ( let (Lazy a) = x let (Lazy b) = y f a b) do let x = lazy (10 + 20) let y = lazy (1 + 2) …

ピエールの綱渡り

F#

すごいHaskellたのしく学ぼう! にMaybeモナドの説明で、次のようなものがあります。 ピエールがバランス棒を持って綱渡りしている最中、バランス棒の左右に鳥がとまる。 左右の鳥の数の差が3より大きくなったらピエールは落下して綱渡りが失敗する。 左右の…

コンピュテーション式でADO.NETのトランザクションを表現するアイデア

F#

F#のコンピュテーション式がだんだんとわかってきたので思いついたアイデアをコードに落としてみました。 https://gist.github.com/4698060/5eae582bfda17733baa2f1944f858875324a1ea6 ADO.NETのトランザクションやコネクションの管理をすっきり書けるように…

F#でインタープリタ : 配列

F#

配列が使えるようになりました。実装はF#のリストですけど。 https://gist.github.com/4645884/2465fde0e7653fc8051979d7d54c83fd8d60146b 次のスクリプトを解釈させると a = [2, 3, 4] print(a[1]) a[1] = "three" print("a[1]: " + a[1]) b = [["one", 1],…

Doma 1.28.0 をリリース

Doma 1.28.0 をリリースしました。ダウンロードはこちらからどうぞ。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照ください。 http://www.seasar.org/wiki/index.php?Maven2RepoRemote 以前のバージョンから移行するには移行ガイ…

F#でインタープリタ : オブジェクト指向

F#

クラスの定義とインスタンス化ができるようになりました。 https://gist.github.com/4641973/925dbbb67ade2720c99099bf1f0c177aba0ecd20 class Position { x = 0 y = 0 def move(nx, ny) { x = nx y = ny } } class Pos3D extends Position { z = 0 def set(…

F#でインタープリタ : F#の関数や.NETのメソッドを呼び出す

F#

https://gist.github.com/4632243/73184b099d24ebcad956de5c01409224ccf96f9d F#の関数や.NETのメソッドを呼び出せるようにしました。 lengthで文字列の長さを返して、toIntで文字列を数値へ変換。printで出力。 次のコードを実行すると5が返ってきます。 s1…

F#でインタープリタ : クロージャの実装

F#

https://gist.github.com/4578600/687544edff499c54d4e5ea6fd2208244cdce1c1f やっとクロージャが実装できました。 def counter (c) { fun () { c = c + 1 } } c1 = counter(0) c2 = counter(0) c1() c1() c2() c1()上のコードを実行すると3が返ってきます。…

Visual Studioでデバッグ

#F

昨日書いた評価器は、いまいちバグってるなー。静的スコープじゃなくて動的スコープになっているし、環境がグローバルの環境しかない。 デバッグでずいぶん時間を無駄にしました(そしてまだ解決していない)。しかし、そのおかげで、Visual Studioのデバッ…

F#でインタープリタ

F#

半年前くらいにJavaでおもちゃスクリプトを作ってみましたが、今度はF#で挑戦。 https://gist.github.com/4578600 この週末にフィボナッチ計算ができるところまで作ってみました。 言語の構文は 2週間でできる! スクリプト言語の作り方 (Software Design pl…

Doma 1.27.1 をリリース

Doma 1.27.1 をリリースしました。ダウンロードはこちらからどうぞ。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照ください。 http://www.seasar.org/wiki/index.php?Maven2RepoRemote 以前のバージョンから移行するには移行ガイ…

Doma 1.27.0 をリリース

Doma 1.27.0 をリリースしました。ダウンロードはこちらからどうぞ。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照ください。 http://www.seasar.org/wiki/index.php?Maven2RepoRemote 以前のバージョンから移行するには移行ガイ…

DomaをIntelliJ IDEAで動かす

これまで、ずっと、Domaを実行できるIDEはEclipseだけだと思い込んでいましたが、それは間違いでした。DomaがIntelliJ IDEAでも動いたんですよ、しかも、そんなにハマることもなく!せっかくなので手順書いておきます。(IntelliJ IDEAを使うのはこれが初め…