骨のダイスを転がそう

2009|01|02|03|04|05|06|07|10|12|
2010|01|02|03|04|05|06|07|08|09|10|11|
2011|02|03|05|06|07|08|09|10|11|12|
2012|01|02|04|05|09|10|11|12|
2013|01|02|04|
2014|11|
2015|01|04|05|
2016|06|07|08|09|11|
2017|01|02|03|04|
2018|03|

2011-08-09

_ [ASP.NET] DataContractSerializer

 XMLを設定ファイル的に使用したい、ということで XmlSerializer を使った読み書きをしようとしていたんだけれど、これは、public のクラスでしかも、public の set、get がついたものしかシリアライズしてくれない。

 で、いろいろ探していたら、WCF なんかで使う DataContractSerializer は、set get があろうがなかろうが、[DataMember] 属性をつければシリアライズしてくれる。

 おお、良いじゃないか。何かものすごくトリッキーなことをしている記事も見かけたけど、こういうのはちょっとイヤです(笑)。

http://blogs.msdn.com/b/sowmy/archive/2008/10/04/serializing-internal-types-using-xmlserializer.aspx

_ [C#] ruby の freeze みたいなのがほしい。

http://msdn.microsoft.com/ja-jp/library/system.windows.freezable%28v=VS.80%29.aspx

これによると、Freezable というクラスを継承すれば良いらしいんだが……。freeze させたいクラスは、みんなコレ継承しなけりゃいけないのか?


2011-08-12

_ [msmq] MSMQ トリガーの実行権限

 トリガーを使うと、キューに受信があったらすぐ起動するプログラムというのを指定できるんだが、実行権限は、トリガーサービスのユーザーになるらしい。

 Windows XP の MSMQトリガでは、規則の操作で「デスクトップと対話する」という項目があったんだが、Windows Server 2008 ではそれが消えている。

 このあたり、ユーザーごとに変更できたりすると面白いんだが。今のところは、各ユーザーがポーリングするしかないんだろうな。


2011-08-30

_ [Ruby] nanoc で出力時に、tidy を通す

require 'tidy'

module Nanoc3::Filters
  class Tidy < Nanoc3::Filter
    def run(content, params={})
      ::Tidy.path = '/usr/lib/libtidy.so'
      ::Tidy.open(:wrap => 0, :tidy_mark => false) do |tidy|
        tidy.options.indent = true
        tidy.options.char_encoding = "raw"
        tidy.clean(content)
      end
    end
  end
  Nanoc3::Filter.register '::Nanoc3::Filters::Tidy', :tidy
end

というのを、 ./lib に入れておいて Rules で

compile '*' do
  if item[:extension] == "html"
    filter :tidy
  end
end

フィルタの中に、共有ライブラリのパスを書かせる、というのはちょっとダサいな……。