骨のダイスを転がそう
2011-02-01
_ [ASP.NET][C#] 型付きRepeater
Container 変数の型を 型付きデータセットに対応させたカスタム Repeater
を元にして、T4 Template で型付きRepeater を量産できるようにしてみた。
CodeProjectの A Typed Repeater in ASP.NET でジェネリックが使える Repeater があるけど、別途、Reflector というライブラリの導入が必要なんだよね。(ということは実行時に、リフレクションを使っているということでOK?)コードジェネレーションの方が敷居が低いよなあ。
あと、ASP.NET Generic Data Source Control こういうのを発見したけど、ジェネリックとは関係ない?
2011-02-06
_ [C#][WCF]
WCF の何がうっとおしい、って、web.config にゴチャゴチャと設定を書かないといけない、というのがうっとおしい。
柔軟性の代償とは言え、ちょっとなあと思ってました。そこでこの記事。
http://msdn.microsoft.com/ja-jp/magazine/dd315413.aspx
……こんなのあったとは知りませんでした。やっぱり同じような要望は出ていたんですね。これならいろいろ楽に書けそう。
2011-02-17
_ [C#] NUnit でイベントの発生を確認
を参考にイベントの発生をテストしていたけど、NUnit2.5 では、Timeout 属性をつければ、特定時間内にイベントが発生したかどうかを簡単に検証できる模様。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using NUnit.Framework;
using System.ComponentModel;
namespace TestEvent
{
public class Class1
{
//指定した日付のデータをデータベースから取得する
[Test(),Timeout(1000)]
public void TestGetLogData()
{
//イベントが呼び出されたことを示すフラグを設定するよ
bool evenFired = false;
//テスト対象のインスタンスを作るよ
var model = new LogModel();
//イベントメソッドを定義してやるよ
model.LogGetted += (o, e) =>
{
Console.WriteLine("Record Count {0}", model.Logs.Count);
//イベント発生のフラグを立てるよ
evenFired = true;
};
//Event Fire!!
model.GetLogData(new DateTime(2010, 4, 26));
//イベント発生のフラグが立っていたらテスト成功!!
Assert.IsTrue(evenFired, "GetLogData Fired.");
}
}
class LogModel
{
public event EventHandler LogGetted;
public void GetLogData(DateTime date)
{
LogGetted(this, new EventArgs());
}
public List<string> Logs
{
get { return new List<string> { "", "" }; }
}
}
}
_ [Ruby][Rails][debian] lenny を squeeze に、redmine を 0.8.4 から 1.1.1 へ
まあ、昔のこと思えば随分、楽になってるよね……。
まず、lenny から squeeze への移行の中で postgresql が 8.3 から 8.4 へ移行。これが、手作業でのDB移行が必要だった。(アップグレードのときにメッセージを読み逃した?)
- ユーザーとDBの作成
- pg_dump でデータベースのバックアップ作成
- pg_restore で復活
次に、gems をアップグレード。squeeze で、gem は、1.3.7 になったんだけど、ここで
gem update
とやったら、gem が 1.3.7 から 1.5.2 にアップグレード。
gem list
とやると既存の gem がどこかへ行ってしまっている……。おーい。
gem install rubygems-update -v='1.4.2' gem uninstall gem-update v='1.5.2' update_rubygems
と、まあ無難なバージョンにしておく。
rails は、2.3.5、redmine は、1.1.1 、Passenger は 2.2.4 。移行作業そのものは、まあうまく行った。
http://www.redmine.org/projects/redmine/wiki/RedmineUpgrade
で、試しに何箇所か表示させてみると、
PhusionPassenger::Railz::ApplicationSpawner::Error
と。Passenger の問題らしいので、試しに Passenger を、最新の 3.0.2 へ。
gem install passenger passenger-install-apache2-module
apache の passenger.conf でモジュールのパスを調整する。
これで問題なく表示されるようになった。
Before...
_ Chase [How many would you like? http://www.cleanmedeurope.org/che..]
_ Moises [I can't get a signal https://ummgc.org/sirve-maxifort-zima..]
_ Faustino [How much does the job pay? http://www.elsiemagazine.com/av..]