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

ブラウザでもNode.jsでも動くテンプレートライブラリ

これは JavaScript Advent Calendar 2011 (Node.js/WebSocketsコース) の19日目の記事です。 JavaScriptで作られたテンプレートライブラリってたくさんありますよね。今日もこんなブログみかけました。 クライアントサイドJavaScriptで使えるテンプレートエ…

JavaScript用テンプレートライブラリ tempura

JavaScriptのテンプレートライブラリを作りました。その名もtempura(てんぷら)。はい、、語呂だけで選びました。 リポジトリ https://github.com/nakamura-to/tempura Backbone.jsと組み合わせることを想定して作りましたが、特にほかのライブラリには依存…

Soma 1.6.0.0 リリース

F#で作ったO/Rマッパー Soma 1.6.0.0をリリースしました。F#はもちろん、C#やVB.NETもサポートしています。 http://soma.codeplex.com/releases/view/77956 リリースノート New Feature - IConnectionObserverとICommandObserverを追加しました。 Change - S…

Doma 1.20.0 の機能改善について

今回のリリースは、バグ修正は1つもなく、すべて機能改善です。簡単に内容を紹介します。いずれも使い勝手が向上する修正になっていると思います。 aptで生成するメタクラスのコードの改善 エンティティのプロパティごとに2つの内部クラスを生成するコードに…

Doma 1.20.0 リリース

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

DomaのEJB3.1対応

Domaは、これまで、コンストラクタインジェクションが使えるDIコンテナと連携する機能を持っていましたが、コンストラクタインジェクションがサポートされていないEJB3.1とは連携が難しい状況にありました。次のバージョン(1.20.0)で連携しやすくしたいと…

Doma 1.19.0 リリース

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

dependentObservableの仕組み

Knockout.jsを触り始めて最初に感じた疑問は、dependentObservableって何で依存先の変更を自動で感知できるのか?でした。コードを読んでわかってきた自分なりの理解をまとめます。例として、簡単な足し算アプリを使います。 http://jsfiddle.net/nakamura_t…

ViewModelの定義パターン

まず、コンストラクタを使うかどうかで迷って、使わない場合にはdependentObservableからViewModelをどう参照するかに迷います。 どれがいいんでしょうねー? パターン1: コンストラクタを使う まぁ、ふつうです。 ただ、コンストラクタ呼び出しはnewを忘れ…

プログラミングの魔導書 vol.2 の紹介

プログラミングの魔導書 〜Programmers' Grimoire〜 Vol.2 を献本していただきました。 どうもありがとうございます。 はじめに プログラミングの魔導書 vol.2では、C++, D, Scala, Haskell, Coq, F#といった言語を扱っています。どれかひとつにでも興味があ…

東京F#読書会第1回に参加してきました

F#

読書会だというのに本を読まず基本的に雑談?していました。 非常におもしろかったです。第2回もあるとうれしいです!で、自分が話題にしたことの補足をまとめておきます。 F#でO/Rマッパーつくりました http://soma.codeplex.com/ Option型のNoneは内部的に…

Haskellのbreak関数をF#で

F#

こんなかんじだと思う。let break' f list = let rec loop list acc = match list with | [] -> List.rev acc, list | h::t -> if f h then List.rev acc, list else loop t (h::acc) loop list [][1;2;3;4;5] |> break' ((=) 3) |> printfn "%A" // ([1; 2]…

F#でZipper

F#

F#erな方たちがよくHaskellの話題をしているのですが、さっぱりついていけないので、基本的なことは知っておこうと思い Learn You a Haskell for Great Good!: A Beginner's Guideを読んでみました。 完全に理解できたとは言いがたいですが、基本的な文法と…

F#の例外でメンバ定義

F#

http://d.hatena.ne.jp/einblicker/20110815/1313416546 こういった豆知識みたいなのは面白いですね。知らないものがあったので質問させてもらいました。ちょっと便乗して、もしかしたら他の人は意外と知らないかもしれないネタを書いてみます。 F#では、例…

Soma 1.5.0.0 の新機能紹介

C#のコードで紹介します。 検索条件パラメータでIDictionary等の利用をサポート これまでは、検索条件パラメータは匿名型のみをサポートしてました。 var empList = db.Query<Employee>( "select * from Employee e where e.DepartmentId = /* DepartmentId */0 and e.</employee>…

Soma 1.5.0.0 リリース

Soma 1.5.0.0をリリースしました。SomaはF#で作ったO/Rマッパーです。(F#はもちろんC#やVB.NETでも使えます)。 ダウンロードはこちら。 http://soma.codeplex.com/releases/view/72054 NuGetを使って簡単にセットアップできます。 クイックスタート(FShar…

Stateモナドでコネクション管理

これは結構使える!かも。open System open System.Transactions open FSharp.Monad.State open Soma.Corelet config = { new MsSqlConfig() with member this.ConnectionString = "Data Source=.;Initial Catalog=Soma.Tutorial;Integrated Security=True" …

プログラミングF#の状態ワークフローについてメモ

F#

プログラミングF#のp.268に状態ワークフロー(Stateモナド)を展開した次のような擬似コードがあります。StatefulFunc(fun initialState -> let result1, updatedState1 = OpenWebPage "www.bing.com" initialState updatedState1 |> (fun initialState -> l…

Doma 1.18.0 リリース

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

Soma 1.4.0.0 リリース

Soma 1.4.0.0をリリースしました。SomaはF#で作ったO/Rマッパーです。(F#はもちろんC#やVB.NETでも使えます)。 ダウンロードはこちら。 http://soma.codeplex.com/releases/view/71193 NuGetを使って簡単にセットアップできます。 クイックスタート(FShar…

Doma 1.7.0 + Doma Tools 1.7.1 + Java 7 + Eclipse 3.7

Java 7やEclipse 3.7がリリースされたということで稼動確認してみました。DomaもDoma Toolsも動作としては特に問題ありませんでした。ただjavac(実際にはAntから試しました)でDomaを利用したアプリをコンパイルしてみると次の警告メッセージが表示されまし…

Doma Tools 1.17.1 リリース

Domaの開発を支援するEclipseプラグインのDoma Toolsですが、バグを2つ直してリリースしました。更新サイトからインストールできます。 http://eclipse.seasar.org/updates/3.5/ Bug [DOMA-245] - [Tools] Doma ToolsのDaoのメソッドからSQLファイルにジャン…

Doma 1.17.0 リリース

Java6(JDBC4.0)対応のDaoフレームワーク Doma 1.17.0 をリリースしました。 ダウンロードはこちらからできます。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照ください。 http://www.seasar.org/wiki/index.php?Maven2RepoRemo…

Soma 1.3.0.0 リリース

Soma 1.3.0.0をリリースしました。SomaはF#で作ったO/Rマッパーです。(F#はもちろんC#やVB.NETでも使えます)。 ダウンロードはこちら。 http://soma.codeplex.com/releases/view/70125 NuGetを使って簡単にセットアップできます。 クイックスタート(FShar…

C#の非同期プログラミングモデル(APM)をF#のMailboxProcessorに書き換えてみた

C# F#

非同期処理が得意になりたいなぁと思います、最近。プログラミング.NET FRAMEWORK 第3版 (Microsoft Press)の27章にAPM(Asynchronous Programming Model)のいい例が載っていたので、勉強がてらF#のMailboxProcessorに書き換えてみました。 例のプログラム…

Somaの式コメントでオリジナルの関数を使う(C#版)

上の補足。C#でほぼ同じものを書くとこうなります。F#のオプション型を意識していないのが主な違いです。 using System; using System.Collections.Generic; using Soma.Core; namespace ConsoleApplication3 { public class Dialect : MsSqlDialect { publi…

Somaの式コメントでオリジナルの関数を使う

このエントリは、Soma 1.2.0.0を利用する際のTipsです。 はじめに Somaでは、SQLを動的に組み立てるためにSQLコメント(式コメント)内で利用できる関数があらかじめ組み込まれていて、たとえば次のように使えます。 select * from Employee where /*%if not…

Soma 1.2.0.0 リリース

Soma 1.2.0.0をリリースしました。SomaはF#で作ったO/Rマッパーです。(F#はもちろんC#やVB.NETでも使えます)。 ダウンロードはこちら。 http://soma.codeplex.com/releases/view/69733 NuGetを使って簡単セットアップできます。 クイックスタート(FSharp…

Domaでvarcharとnvarcharを使い分けたい場合

ちょっとトリッキーな方法ですが、ドメインクラスを使うとできます。まずは利用イメージを示します。エンティティはこんな感じで、varcharをString、nvarcharをNStringにマッピングするものとします。NStringはもちろんこれから自作するクラスです。 @Entity…

Soma 1.1.0.0 リリース

昨日1.0.0.0をリリースしたばかりでなんですが、Soma 1.1.0.0をリリースしました。SomaはF#で作ったO/Rマッパーです。(F#はもちろんC#やVB.NETでも使えます)。ダウンロードはこちら。 http://soma.codeplex.com/releases/view/69471 NuGetを使ったダウンロ…