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

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を使うのはこれが初め…

Annotation Processorで登場するUnionTypeとIntersectionType

Domaの注釈処理周辺でJava7/Java8対応がどの程度必要か調べている過程で、UnionTypeというものがすでにJava7で追加されていて、IntersectionTypeというものがJava8で追加される予定だということを知りました。 http://download.java.net/jdk8/docs/api/javax…

Soma 1.8.0.6 リリース

.NETで使えるO/Rマッパー、Soma 1.8.0.6 をリリースしました(10日ほど前に)。 ODP.NETでメモリリークする可能性があったのを修正しています。 Fix - Dispose DbParameters and those values to prevent memory leak in ODP.NET environment Fix - Consume …

ASP.NET Web APIのSelf-Hostでテスト

これはOne ASP.NET Advent Calendar 2012の18日目の記事です。 昨日は、karuakunさんでASP.NET 4 WebFormでモバイルサイトを作成する場合のスクリプト結合でした。 はじめに ASP.NET Web APIにはSelf-Hostと呼ばれる機能があります。IISがなくても動くという…

Doma 1.26.0 をリリース

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

ライブラリを作ってみて感じたF#の良いところや悩みどころ

F#

これはF# Advent Calendar 2012の5日目の記事です。昨日の記事は、kos59125さんのF# のための乱数生成フレームワークでした。私にとっては、あまりなじみのない世界の話で大変刺激的です。stateモナドはいつ見ても魔法のようです。自分もそろそろコンピュテ…

ダイアログをはさみながらの非同期処理の再実行

接続ボタンを押したら、XMLHttpRequestを飛ばして取得したHTMLのサイズを表示するというものです。 タイムアウトが起きたら、ダイアログを表示して再接続するかどうかをユーザーに尋ねます。 再接続でまたタイムアウトしたら同じダイアログを出すということ…

Doma 1.25.0 で追加した DOMA-264 の機能の解説

以前までのバージョンでは、DBのカラムにマッピングするクラスをリッチな型(ドメインクラス)にする場合、その型に@Domainという注釈をつける必要がありました。 たとば、次のようなエンティティクラスがあって、 @Entity public class Employee { @Id Inte…

Doma 1.25.0 をリリース

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

ChromeのIndexedDB

https://groups.google.com/a/chromium.org/forum/?fromgroups=#!topic/chromium-html5/RQFrG9SDPTI%5B1-25%5Dversion change transactionがアクティブな場合に、別のトランザクションを実行するとエラーになる、という話。バージョン21から仕様に合わせて厳…

C#でカリー化と部分適用

C#

勉強会で話題になっておもしろかったので、実装してみました。 カリー化 4つの引数まで対応したFuncの拡張メソッド。 public static class FuncCurry { public static Func<T1, Func<T2, TResult>> Curry<T1, T2, TResult>(this Func<T1, T2, TResult> f) { return arg1 => arg2 => f.Invoke(arg1, arg2); } public st</t1,></t1,></t1,>…

部分適用の使いどころ

C#

部分適用というのは、簡単に言ってしまえば、関数の型を変換する方法の1つです。たとえば、Func を Func に変換するとか。部分適用という言葉を使わずとも、これはよく行われていることで、ラムダ式を使って実現されます。わかりやすいように、型を明示して…

継承やインタフェースはほんとうにいらないかもしれない

F#

http://blog.livedoor.jp/gab_km/archives/1425937.htmlだって、F#にはレコードがありますから。(いまさらのリアクションでごめんなさい) type Animal = { name: string; bark: unit->string } let makeDog name = { name = name ; bark = fun () -> "Bow …

スクリプト言語をつくってみたよ その2

昨日の続きです。 昨日のエントリでは紹介しませんでしたが、そういえば、プロパティにgetter/setterを定義できます! Propertyというクラス(コンストラクタ)が組み込みで用意されているのですが、こいつにgetter/setterを教えてあげます。 person = { _na…

スクリプト言語作ってみたよ

2週間でできる! スクリプト言語の作り方 (Software Design plus)と言語実装パターン ―コンパイラ技術によるテキスト処理から言語実装までにとても感銘を受けて、自分でも作ってみました。みました、といっても完成したわけでなくそれなりに動くようになった…

Doma 1.24.0 をリリース

Doma 1.24.0 をリリースしました。このリリースには、 Domaの次バージョン1.24.0で予定している変更点で述べたまんまの修正を入れています。 ダウンロードはこちらからどうぞ。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照くだ…

Domaの次バージョン1.24.0で予定している変更点

Play1.2.5とDomaの相性が悪いという話を見つけました。 Play1.2.5ではpublic finalのプロパティもgetterが定義されるようになっている Domaが生成するコードが持つメソッドとPlayが生成するメソッドがバッティングするとのことです。 Domaで対応することにし…

Doma 1.23.0をEclipse 4.2.0で稼動確認

Eclipse 4.2.0を入れてみました。Domaについて2つ心配がありました。 EclipseのAnnotation Processingまわりがちゃんと動くか? プラグインのDoma Toolsがちゃんと動くか? 結論から言えば、どちらも問題なしでした! EclipseのAnnotation Processingまわり …

Soma 1.8.0.0 リリース

.NET向けO/Rマッパー Soma 1.8.0.0 をリリースしました。 ダウンロードはこちらからどうぞ。 zipファイル: https://github.com/nakamura-to/Soma/downloads NuGet: http://nuget.org/packages/Soma 動かしてみたいという方はクイックスタートをどうぞ。 クイ…

KageDB 0.0.8 リリース

どう考えても、自分を含めた数人しか使っていないKageDBですが、0.0.8をリリースしました。KageDBは、HTML5のIndexedDBのAPIを使いやすくするライブラリです。 ダウンロードはこちらからどうぞ。 https://github.com/nakamura-to/KageDB/downloads サンプル…

Doma 1.23.0 リリース

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

Doma 1.23.0 でSQLの式コメントでカスタム関数が利用可能

こんな感じで、SQLのコメント中で独自に定義した関数(ここではcapitalize)を呼び出せるようになりました。 関数から返される値がPreparedStatementにバインドされます。 select * from employee where employee_name = /* @capitalize(employeeName) */'ho…

KageDB 0.0.6リリース - fetchで多くの抽出条件を指定可能に

Indexed Database API(IndexedDB)を使いやすくするためのライブラリKageDB 0.0.6をリリースしました。 https://github.com/nakamura-to/KageDB/downloads 今回は、fetchという機能を強化して多くの抽出条件を指定可能にしました。これでカーソル処理が必要…

KageDB 0.0.5リリース - IE 10 Release Previewに対応

Indexed Database APIを使いやすくするためのライブラリKageDB 0.0.5をリリースしました。 https://github.com/nakamura-to/KageDB/downloads 昨日リリースされたIE 10 Release Previewに対応しました。それから、Windows 8のメトロスタイルアプリケーション…

IndexedDBを使いやすくするためのライブラリ KageDB 0.0.4 リリース

バージョン0.0.4をリリースしました。 https://github.com/nakamura-to/KageDB/downloads KageDBの特徴はこんなものです。 IndexedDBのAPIをシンプルにする 追加/更新/削除の一括処理をサポート 複数の非同期処理を待ち合わせできる グローバルなエラーハン…

WinJS.Binding.Template.prototypeの拡張

WinJS.UI.ListViewのitemTemplateやgroupHeaderTemplateの中で、何番目のindexか? グループ内にいくつ項目があるか? とかを出力したいなあと思っていたのですが、適切なAPIが用意されていないみたいです。ドキュメントには書いていないですが、WinJS.Bindi…

Indexed Database APIを使いやすくするためのライブラリ KageDB その6 - マイグレーション

KageDB の紹介です。 https://github.com/nakamura-to/KageDB 今回は、マイグレーションについて書きます。Indexed DBのデータベースはスキーマのバージョンを持っていて、バージョンが上がったタイミングをフックできるようになっています。標準のAPIでやっ…

Indexed Database APIを使いやすくするためのライブラリ KageDB その5 - フェッチ

KageDB の紹介です。バージョンはちょこちょこ上げていて、今は0.0.3です。 https://github.com/nakamura-to/KageDB 今回は、フェッチについて書きます。 前回、カーソルについて紹介しましたが、カーソルは1件1件取得する処理なので、全件取得するには次の…

Indexed Database APIを使いやすくするためのライブラリ KageDB その4 - カーソル

KageDB の紹介です。 https://github.com/nakamura-to/KageDB 今回は、次のバージョン(0.0.2)に入れる予定の機能ということでカーソルについて書きます。 IndexedDBのカーソルを使った検索には、keyRangeとdirectionというものが関係してきます。keyRangeは…