<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>dasz.at - Benutzbare Technologie &#187; Open Source</title>
	<atom:link href="http://dasz.at/index.php/category/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://dasz.at</link>
	<description>Benutzbare Technologie</description>
	<lastBuildDate>Wed, 07 Jul 2010 06:54:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>EF + NPGSQL: &#8220;Only PrimitiveTypes can be used without qualification.&#8221;</title>
		<link>http://dasz.at/index.php/2010/07/ef-npgsql-only-primitivetypes-can-be-used-without-qualification/</link>
		<comments>http://dasz.at/index.php/2010/07/ef-npgsql-only-primitivetypes-can-be-used-without-qualification/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 12:46:35 +0000</pubDate>
		<dc:creator>David Schmitt</dc:creator>
				<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://dasz.at/?p=396</guid>
		<description><![CDATA[error 0040: The Type ... is not qualified with a namespace or alias. Only PrimitiveTypes can be used without qualification.]]></description>
			<content:encoded><![CDATA[<p>Are you trying to create a SSDL/EDM file for <a href="http://msdn.microsoft.com/en-us/library/aa697427.aspx">Entity Framework</a> and <a href="http://npgsql.projects.postgresql.org/">Npgsql </a>? Are you getting the following error?</p>
<blockquote><p>error 0040: The Type &#8230; is not qualified with a namespace or alias. Only PrimitiveTypes can be used without qualification.</p></blockquote>
<p>This is caused by Npgsql mapping a very sparse selection of type-names to the underlying Entity Framework type structures.</p>
<p>As of 2.0.9, the following type names are recognized:</p>
<ul>
<li>bool</li>
<li>int2</li>
<li>int4</li>
<li>float4</li>
<li>float8</li>
<li>uuid</li>
<li>numeric</li>
<li>bpchar</li>
<li>varchar</li>
<li>text</li>
<li>xml</li>
<li>timestamp</li>
<li>date</li>
<li>bytea</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://dasz.at/index.php/2010/07/ef-npgsql-only-primitivetypes-can-be-used-without-qualification/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Porting Puppet to Windows</title>
		<link>http://dasz.at/index.php/2010/06/porting-puppet-to-windows/</link>
		<comments>http://dasz.at/index.php/2010/06/porting-puppet-to-windows/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 12:50:59 +0000</pubDate>
		<dc:creator>David Schmitt</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Puppet]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://dasz.at/?p=391</guid>
		<description><![CDATA[In the course of the PuppetCamp Europe, I met with many people I only knew from IRC and email and it was a great time with interesting and inspiring discussions.
Today I want to write about the work I&#8217;m currently commisioned for by puppetlabs, porting puppet to Microsoft Windows.
Current Status
After disabling some minor pieces (color, conf [...]]]></description>
			<content:encoded><![CDATA[<p>In the course of the <a href="http://puppetcamp.org/europe-2010-ghent/">PuppetCamp Europe</a>, I met with many people I only knew from IRC and email and it was a great time with interesting and inspiring discussions.</p>
<p>Today I want to write about the work I&#8217;m currently commisioned for by <a href="http://www.puppetlabs.com/">puppetlabs</a>, porting puppet to Microsoft Windows.</p>
<h2>Current Status</h2>
<p>After disabling some minor pieces (color, conf file watching) and fixing a few bugs (see the <a href="http://github.com/DavidS/puppet/tree/feature/master/windows">tree on github</a>) and a little bit hacking various parts to pass through paths with a drive letter, I was able to create the first file on windows with puppet. On the downside a few technical problems with the code surfaced, the most daunting were approximately 600 <a href="http://rspec.info/">spec</a> failures (out of 8.500 examples).</p>
<p><span id="more-391"></span><br />
<h2>The Plan</h2>
<p><a href="http://projects.puppetlabs.com/users/685">Markus Roberts</a> and myself used some of the breaks and sessions to hash out solutions for the various hurdles that I identified. After fixing those, we can move on to pushing the actual basic Microsoft Windows support to master without breaking hell loose and start implementing providers on a larger scale, while people have something in hand to start playing with.</p>
<h3>Unit Testing</h3>
<p>This one was easy. Most of the test failures are caused by examples that use <code>Puppet::Type.type(:file)</code> when they need a type to test the &#8220;other&#8221; functionality they&#8217;re testing. This legacy is a result of bad experiences with examples that did not fail after removing the &#8220;tested&#8221; code, because they were stubbing away too much. As a next step in the evolution of such examples, puppetlabs will create an simple, instrumentable type specifically to be used in tests. That way it&#8217;ll be a &#8220;real&#8221; type for the examples, without any of the complex functionality needs of &#8220;real&#8221; types.</p>
<h3>File is lacking providers</h3>
<p>In my git tree is already a start of a POSIX and a Microsoft Windows provider for file handling. This is currently only a <a href="http://www.extremeprogramming.org/rules/spike.html">spike implementation</a> and will have to be seriously expanded once the unit tests don&#8217;t blow up when touching this area.</p>
<h3>Moving to multi-valued titles</h3>
<p>I&#8217;ve started a discussion about the <a href="http://groups.google.com/group/puppet-dev/browse_thread/thread/c503799d31eb21cd">design of multi-valued titles</a> on the puppet-dev mailing list. This should make implementing the various path syntaxes much more convenient and easier to handle in the file type. Markus promised me a prototype to play with.</p>
<h3>Providing actual functionality</h3>
<p>There was discussion at the puppetcamp whether or not to use the command line tools from the resource kit to manipulate users, groups, services and what-not. While I have not looked deeply into this, as my focus until now was getting puppet to run at all, I believe those tools will be a good source of <strong>what</strong> should be possible, but no good for implementing the providers. One, the tools are another external dependency, they have localized output which will make parsing them very hard, and the output can differ from one release to the next. On the other hand, MRI has quite flexible ways to access the underlying C APIs of Microsoft Windows and those functions are documented and should be quite stable.</p>
]]></content:encoded>
			<wfw:commentRss>http://dasz.at/index.php/2010/06/porting-puppet-to-windows/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using gendarme with Code Contracts from .NET 4.0</title>
		<link>http://dasz.at/index.php/2010/04/using-gendarme-with-code-contracts-from-net-4-0/</link>
		<comments>http://dasz.at/index.php/2010/04/using-gendarme-with-code-contracts-from-net-4-0/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 15:30:11 +0000</pubDate>
		<dc:creator>David Schmitt</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://dasz.at/?p=382</guid>
		<description><![CDATA[When using gendarme on post-processed assemblies with code contracts and /throwonfailure set, a few things have to be ignored. Put the following lines into your ignore file (for example gendarmeignore.txt) and use it with --ignore on the command line.

R: Gendarme.Rules.Exceptions.ExceptionShouldBeVisibleRule
T: System.Diagnostics.Contracts.__ContractsRuntime/ContractException

R: Gendarme.Rules.Exceptions.MissingExceptionConstructorsRule
T: System.Diagnostics.Contracts.__ContractsRuntime/ContractException

R: Gendarme.Rules.Serialization.MissingSerializableAttributeOnISerializableTypeRule
T: System.Diagnostics.Contracts.__ContractsRuntime/ContractException

R: Gendarme.Rules.Serialization.MissingSerializationConstructorRule
T: System.Diagnostics.Contracts.__ContractsRuntime/ContractException

Since this is a tool-generated class we cannot do [...]]]></description>
			<content:encoded><![CDATA[<p>When using <a href="http://www.mono-project.com/Gendarme">gendarme</a> on post-processed assemblies with <a href="http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx">code contracts</a> and <code>/throwonfailure</code> set, a few things have to be ignored. Put the following lines into your ignore file (for example <code>gendarmeignore.txt</code>) and use it with <code>--ignore</code> on the command line.</p>
<pre><code>
R: Gendarme.Rules.Exceptions.ExceptionShouldBeVisibleRule
T: System.Diagnostics.Contracts.__ContractsRuntime/ContractException

R: Gendarme.Rules.Exceptions.MissingExceptionConstructorsRule
T: System.Diagnostics.Contracts.__ContractsRuntime/ContractException

R: Gendarme.Rules.Serialization.MissingSerializableAttributeOnISerializableTypeRule
T: System.Diagnostics.Contracts.__ContractsRuntime/ContractException

R: Gendarme.Rules.Serialization.MissingSerializationConstructorRule
T: System.Diagnostics.Contracts.__ContractsRuntime/ContractException
</code></pre>
<p>Since this is a tool-generated class we cannot do anything about it anyways and should not access or need the missing features.</p>
]]></content:encoded>
			<wfw:commentRss>http://dasz.at/index.php/2010/04/using-gendarme-with-code-contracts-from-net-4-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kolab Connector binaries uploaded</title>
		<link>http://dasz.at/index.php/2010/02/kolab-connector-binaries-uploaded/</link>
		<comments>http://dasz.at/index.php/2010/02/kolab-connector-binaries-uploaded/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 16:57:26 +0000</pubDate>
		<dc:creator>David Schmitt</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Kolab Sync]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://dasz.at/?p=370</guid>
		<description><![CDATA[Arthur moved on with programming and testing. Now we uploaded the first packages, which now contain the basic calendar and contacts synchronisation. The plugins already are able to synchronize our personal data.
You can find the packages on the download pages of the Kolab Sync for Outlook und Kolab Sync for Android projects.
Please use the issue [...]]]></description>
			<content:encoded><![CDATA[<p>Arthur moved on with programming and testing. Now we uploaded the first packages, which now contain the basic calendar and contacts synchronisation. The plugins already are able to synchronize our personal data.</p>
<p>You can find the packages on the download pages of the <a href="http://code.google.com/p/kolab-outlook/downloads/list">Kolab Sync for Outlook</a> und <a href="http://code.google.com/p/kolab-android/downloads/list">Kolab Sync for Android</a> projects.</p>
<p>Please use the issue trackers there for feedback.</p>
]]></content:encoded>
			<wfw:commentRss>http://dasz.at/index.php/2010/02/kolab-connector-binaries-uploaded/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kolab Sync for Android and Outlook: Developer Preview</title>
		<link>http://dasz.at/index.php/2010/02/kolab-sync-android-outlook-developer-preview/</link>
		<comments>http://dasz.at/index.php/2010/02/kolab-sync-android-outlook-developer-preview/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 16:18:18 +0000</pubDate>
		<dc:creator>David Schmitt</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Kolab Sync]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://dasz.at/?p=357</guid>
		<description><![CDATA[We are proud to announce the first developer preview for Kolab sync clients for both Android and Outlook. Both are licensed under the GPLv3.
Using this software you will be able synchronize your contacts and calendar to any IMAP folder. Every item is saved in a separate Email using the Kolab Storage Format. This allows for [...]]]></description>
			<content:encoded><![CDATA[<p>We are proud to announce the first developer preview for <a href="http://www.kolab.org/">Kolab</a> sync clients for both <a href="http://www.android.com/">Android</a> and <a href="http://office.microsoft.com/en-us/outlook/default.aspx">Outlook</a>. Both are licensed under the <a href="http://opensource.org/licenses/gpl-3.0.html">GPLv3</a>.</p>
<p>Using this software you will be able synchronize your contacts and calendar to any IMAP folder. Every item is saved in a separate Email using the <a href="http://www.kolab.org/doc/kolabformat-2.0rc7-html/index.html">Kolab Storage Format</a>. This allows for interoperability with <a href="http://www.kolab.org/about-kolab-clients.html">other Kolab Clients</a>.</p>
<p>Please join us on the Google code projects for the <a href="http://code.google.com/p/kolab-android/">Android</a> and the <a href="http://code.google.com/p/kolab-outlook/">Outlook</a> connectors.</p>
<p>Since there are still quite a few rough edges, this is only a developer preview to publish the already done work. Read on for a more detailed status of the development so far.</p>
<p><span id="more-357"></span></p>
<h3>Status</h3>
<ul>
<li><strong>Sync Infrastructure:</strong> although the two projects are written in Java and C#, they share the basic algorithms and principles of operation. This groundwork is also shared between the addressbook and contacts synchronizers of each project. This is already stable. Some edge cases still require a second synchronization run to converge.</li>
<li><strong>Addressbook Synchronization:</strong> being the easier part of the two, this is mostly finished and working.</li>
<li><strong>Calendar Synchronization:</strong> Arthur is currently implementing the last piece here: reading and writing of recurrences.</li>
<li><strong>Managing Edit Collisions:</strong> If two copies of the same item are edited and then synchronized, there is no easy way to automatically manage the merge. On the Android the server item always wins. For the Outlook plugin we plan on implementing a conflict resolution dialog where the user can pick and choose from the conflicting items.</li>
<li><strong>Managing Duplicates:</strong> When starting to use synchronization tools, users often end up with multiple copies of the same entries (especially in the addressbook) when multiple data sources are added. Currently the only way to work around this problem is to use a third-party duplicate-detector or wipe all but one device clean before synchronizing. A way to handle this could be added similar to a edit conflict resolver.</li>
<li><strong>Multiple Calendars, multiple IMAP Folders:</strong> planned.</li>
<li><strong>Testing:</strong> Currently there are only manual test routines.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://dasz.at/index.php/2010/02/kolab-sync-android-outlook-developer-preview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building a simple MSBuild Task</title>
		<link>http://dasz.at/index.php/2010/02/building-a-simple-msbuild-task/</link>
		<comments>http://dasz.at/index.php/2010/02/building-a-simple-msbuild-task/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 23:19:09 +0000</pubDate>
		<dc:creator>David Schmitt</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://dasz.at/?p=332</guid>
		<description><![CDATA[On the &#8220;Using Studio’s “Custom Tool” in MSBuild&#8221; question, I was prompted to share the code. Here is a stripped down skeleton where I removed the actual calls to the custom tool. Since it is open source I didn&#8217;t really need to access the Visual Studio&#8217;s registry keys.



    using Microsoft.Build.Framework;
   [...]]]></description>
			<content:encoded><![CDATA[<p>On the &#8220;<a href="http://stackoverflow.com/questions/435037/using-studios-custom-tool-in-msbuild">Using Studio’s “Custom Tool” in MSBuild</a>&#8221; question, I was prompted to share the code. Here is a stripped down skeleton where I removed the actual calls to the custom tool. Since it is open source I didn&#8217;t really need to access the Visual Studio&#8217;s registry keys.<br />
<span id="more-332"></span></p>
<pre class="brush: c#; ">

    using Microsoft.Build.Framework;
    using Microsoft.Build.Utilities;

    public class ArebisGenTask
        : Task
    {
        [Required]
        public ITaskItem[] Templates { get; set; }

        [Output]
        public ITaskItem[] GeneratedFiles { get; set; }

        public override bool Execute()
        {
            var generatedFileNames = new List&lt;string&gt;();
            foreach (var task in this.Templates)
            {
                string inputFileName = task.ItemSpec;
                string outputFileName = Path.ChangeExtension(inputFileName, &quot;.Designer.cs&quot;);
                string result;

                try
                {
                    // Build code string
                    result = Builder.CreateCode(inputFileName);

                    using (var destination = new FileStream(outputFileName, FileMode.Create))
                    {
                        var bytes = Encoding.UTF8.GetBytes(result);
                        destination.Write(bytes, 0, bytes.Length);
                    }
                    generatedFileNames.Add(outputFileName);
                }
                catch (Exception ex)
                {
                    Log.LogError(&quot;Error while compiling [{0}]&quot;, inputFileName);
                    Log.LogErrorFromException(ex, true, true, inputFileName);
                }
            }
            GeneratedFiles = generatedFileNames.Select(name =&gt; new TaskItem(name)).ToArray();
            Log.LogMessage(&quot;Finished Generation&quot;);
            return !Log.HasLoggedErrors;
        }
    }
</pre>
]]></content:encoded>
			<wfw:commentRss>http://dasz.at/index.php/2010/02/building-a-simple-msbuild-task/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gendarme Integration for VS2008</title>
		<link>http://dasz.at/index.php/2010/01/gendarme-integration-for-vs2008/</link>
		<comments>http://dasz.at/index.php/2010/01/gendarme-integration-for-vs2008/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 20:33:42 +0000</pubDate>
		<dc:creator>David Schmitt</dc:creator>
				<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://dasz.at/?p=207</guid>
		<description><![CDATA[Ever since setting up our CruiseControl.NET server for our internal projects, I wanted to integrate a Gendarme run to catch all those nasty little things that slip through, like not checking arguments for null.
Now that I finally found some tuits to do it, the next problem became obvious: doing a quick commit often lead to [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since setting up our <a href="http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET">CruiseControl.NET</a> server for our internal projects, I wanted to integrate a <a href="http://www.mono-project.com/Gendarme">Gendarme</a> run to catch all those nasty little things that slip through, like not checking arguments for null.</p>
<p>Now that I finally found some tuits to do it, the next problem became obvious: doing a quick commit often lead to a quick build fail. Gendarme would have no use if it didn&#8217;t find anything, no? So the missing piece was integration into Visual Studio. Arthur hacked together a little XSLT+PowerShell and voila, Gendarme now runs on every build right from the studio and populates the &#8220;Error List&#8221; window with properly linked entries. Yay!</p>
<p>Read on for the details of the implementation. The complete source is downloadable at the end of the article.</p>
<p><span id="more-207"></span></p>
<p>First, the XSLT (&#8220;gendarme.xslt&#8221;), transforming Gendarme&#8217;s XML to properly formatted text.</p>
<pre class="brush: xml; ">

&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;xsl:stylesheet
  xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;
  version=&quot;2.0&quot;&gt;
  &lt;xsl:output method=&quot;text&quot;/&gt;

  &lt;xsl:template match=&quot;/&quot;&gt;
    &lt;xsl:call-template name=&quot;rules&quot;&gt;
      &lt;xsl:with-param name=&quot;detailnodes&quot; select=&quot;//results/rule&quot;/&gt;
    &lt;/xsl:call-template&gt;
  &lt;/xsl:template&gt;

  &lt;xsl:template name=&quot;rules&quot;&gt;
    &lt;xsl:param name=&quot;detailnodes&quot;/&gt;
    &lt;xsl:for-each select=&quot;$detailnodes&quot;&gt;
      &lt;xsl:call-template name=&quot;defects&quot;&gt;
        &lt;xsl:with-param name=&quot;detailnodes&quot; select=&quot;target/defect&quot;/&gt;
      &lt;/xsl:call-template&gt;
    &lt;/xsl:for-each&gt;
  &lt;/xsl:template&gt;

  &lt;xsl:template name=&quot;defects&quot;&gt;
    &lt;xsl:param name=&quot;detailnodes&quot;/&gt;
    &lt;xsl:for-each select=&quot;$detailnodes&quot;&gt;
      &lt;xsl:value-of select=&quot;@Source&quot;/&gt;: error :[gendarme] &lt;xsl:value-of select=&quot;../../problem&quot;/&gt; Target: &lt;xsl:value-of select=&quot;../@Name&quot;/&gt;.
    &lt;/xsl:for-each&gt;
  &lt;/xsl:template&gt;

&lt;/xsl:stylesheet&gt;
</pre>
<p>Second, the powershell fragment to execute gendarme and transform the output (&#8220;gendarme.ps1&#8243;).</p>
<pre class="brush: php; ">

param($SolutionDir)

function Convert-WithXslt($xmlFilePath, $xsltFilePath, $outputFilePath)
{
    $xsltFilePath = resolve-path $xsltFilePath
    $xmlFilePath = resolve-path $xmlFilePath
    $outputFilePath = resolve-path $outputFilePath

    $xslt = new-object system.xml.xsl.xslcompiledtransform
    $xslt.load( $xsltFilePath )
    $xslt.Transform( $xmlFilePath, $outputFilePath )
}

if(-not $SolutionDir)
{
	$SolutionDir = &quot;.&quot;;
}

&quot;.&quot; &gt; $SolutionDir\bin\gendarme.txt
gendarme.exe -config $SolutionDir\gendarmerules.xml --xml $SolutionDir\bin\gendarme.xml $SolutionDir\bin\Debug\blahblah.exe
convert-withxslt $SolutionDir\bin\gendarme.xml $SolutionDir\gendarme.xslt $SolutionDir\bin\gendarme.txt
(get-content $SolutionDir\bin\gendarme.txt) -replace &#039;\(\D?(\d+)\)&#039;, &#039; ($1,1)&#039; | set-content $SolutionDir\bin\gendarme.txt
exit 0
</pre>
<p>Instead of <code>blahblah.exe</code>, put your own assemblies you want to check.</p>
<p>And last but not least, the post build step to actually run the whole thing.</p>
<p><code>powershell -command $(SolutionDir)gendarme.ps1 -SolutionDir:$(SolutionDir)<br />
type $(SolutionDir)bin\gendarme.txt<br />
</code></p>
<p>This can be added in your project properties on the &#8220;Build Events&#8221; tab, as &#8220;Post-build event command line&#8221;. In our project this is executed in one of the unit-test projects which has dependencies on all other projects and thus builds last.</p>
<p>Don&#8217;t forget to enable the <code>RemoteSigned</code> execution policy of the powershell; either by running</p>
<p><code>set-executionpolicy -executionPolicy RemoteSigned<br />
</code></p>
<p>from a Administrator&#8217;s shell or by adding one or both of the powershell.executionpolicy.reg and powershell.executionpolicy.wow6432.reg files to your registry.</p>
<p>You can find all files in <a href='http://dasz.at/wp-content/uploads/2010/01/gendarme-integration.zip'>this ZIP archive</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://dasz.at/index.php/2010/01/gendarme-integration-for-vs2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AppDomainUnloadedException with NUnit, a ServiceHost and several other technologies</title>
		<link>http://dasz.at/index.php/2010/01/appdomainunloadedexception-when-using-nunit-with-servicehost-and-similar-technologies/</link>
		<comments>http://dasz.at/index.php/2010/01/appdomainunloadedexception-when-using-nunit-with-servicehost-and-similar-technologies/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 16:03:01 +0000</pubDate>
		<dc:creator>David Schmitt</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[StackOverflow]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://dasz.at/index.php/2010/01/appdomainunloadedexception-when-using-nunit-with-servicehost-and-similar-technologies/</guid>
		<description><![CDATA[All tests ok, but still a NUnit failure?
Seeing unexplicable &#8220;System.AppDomainUnloadedException: Attempted to access an unloaded AppDomain.&#8221; errors?
You might be a victim of nunit&#8217;s bug #423611.
See also here, here and here.
A typical error message looks like this:

Unhandled exceptions:
1)  : System.AppDomainUnloadedException: Attempted to access an unloaded AppDomain.
I&#8217;ve uploaded a minimal solution exhibiting the problem to the [...]]]></description>
			<content:encoded><![CDATA[<p>All tests ok, but still a NUnit failure?</p>
<p>Seeing unexplicable &#8220;System.AppDomainUnloadedException: Attempted to access an unloaded AppDomain.&#8221; errors?</p>
<p>You might be a victim of <a href="https://bugs.launchpad.net/nunitv2/+bug/423611">nunit&#8217;s bug #423611</a>.</p>
<p>See also <a href="http://stackoverflow.com/questions/561402/cassini-webserver-webdev-nunit-and-appdomainunloadedexception">here</a>, <a href="http://haacked.com/archive/2006/12/12/Using_WebServer.WebDev_For_Unit_Tests.aspx">here</a> and <a href="http://blogs.dovetailsoftware.com/blogs/kmiller/archive/2007/11/07/unit-testing-a-web-service.aspx">here</a>.</p>
<p>A typical error message looks like this:</p>
<blockquote><p>
Unhandled exceptions:<br />
1)  : System.AppDomainUnloadedException: Attempted to access an unloaded AppDomain.</p></blockquote>
<p>I&#8217;ve uploaded a minimal solution exhibiting the problem to the bugreport and I hope that&#8217;ll help clearing the issue up.</p>
]]></content:encoded>
			<wfw:commentRss>http://dasz.at/index.php/2010/01/appdomainunloadedexception-when-using-nunit-with-servicehost-and-similar-technologies/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CruiseControl.NET and other open source stuff</title>
		<link>http://dasz.at/index.php/2010/01/cruisecontrol-net/</link>
		<comments>http://dasz.at/index.php/2010/01/cruisecontrol-net/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 11:49:23 +0000</pubDate>
		<dc:creator>David Schmitt</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://dasz.at/index.php/2010/01/cruisecontrol-net/</guid>
		<description><![CDATA[Recently I&#8217;ve spent some time setting up a CruiseControl.NET instance for our internal projects. Using this project, we have an automatic and immediate feedback whether our checkins work without having to waste developer time waiting on the full unit test suite.
To improve response times of the server running CC.Net while integrating, I&#8217;ve applied the ProcessPriority [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve spent some time setting up a <a href="http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET">CruiseControl.NET</a> instance for our internal projects. Using this project, we have an automatic and immediate feedback whether our checkins work without having to waste developer time waiting on the full unit test suite.</p>
<p>To improve response times of the server running CC.Net while integrating, I&#8217;ve applied the ProcessPriority patch from <a href="http://jira.public.thoughtworks.org/browse/CCNET-504">CCNET-504</a> and now run all processes at <code>BelowNormal</code>. Now there is no noticeable impact on other services on the server while a build is running. Since the patch didn&#8217;t apply cleanly to the newest CC.Net version, I updated the patch to current HEAD and posted it in the bugtracker. Thanks to Craig Sutherland the patch is now applied in the HEAD and will be released with 1.5. Having already wet my feet, I <a href="http://groups.google.com/group/ccnet-devel/browse_thread/thread/7ec6aa7d1bd878db#">proposed</a> a refactoring for the Tasks to move all common properties to the <code>BaseExecutableTask </code>class, thereby removing ~300 lines of code and unifying the diverse set of properties currently in the wild. This will have to wait for the next release in order to not interfere with a timely 1.5 release.</p>
<p>Currently CC.Net builds the projects from <a href="http://subversion.tigris.org/">subversion</a>, runs all unit tests with <a href="http://www.nunit.org/index.php">NUnit</a> and checks code quality with <a href="http://www.mono-project.com/Gendarme">Gendarme</a>.</p>
<p>While integrating Gendarme in our build process, I found and reported <a href="https://bugzilla.novell.com/show_bug.cgi?id=567817">two</a> <a href="https://bugzilla.novell.com/show_bug.cgi?id=567995">bugs</a> in the rules, which triggered false positives on our code. Thanks to Sebastien Pouliot both appear to be already fixed and slated for release with the next Gendarme (2.8).</p>
]]></content:encoded>
			<wfw:commentRss>http://dasz.at/index.php/2010/01/cruisecontrol-net/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>MSSQL doesn&#8217;t (completely) support IEEE754 floating points</title>
		<link>http://dasz.at/index.php/2009/12/sql-and-ieee754-support-for-nan-infinity/</link>
		<comments>http://dasz.at/index.php/2009/12/sql-and-ieee754-support-for-nan-infinity/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 11:00:44 +0000</pubDate>
		<dc:creator>David Schmitt</dc:creator>
				<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://dasz.at/index.php/2009/12/sql-and-ieee754-support-for-nan-infinity/</guid>
		<description><![CDATA[After looking for quite a while (it is unbelievable, no?) I have to accept that Microsoft&#8217;s SQL Server 2000, 2005 and 2008 do not fully support IEEE-754 floating point numbers. Specifically NaN (Not-a-Number) and +/- Infinity are not allowed. While the 2000 Server seemingly allows such values to be inserted, but breaks badly afterwards, the [...]]]></description>
			<content:encoded><![CDATA[<p>After looking for quite a while (it is unbelievable, no?) I have to accept that Microsoft&#8217;s SQL Server 2000, 2005 and 2008 do not fully support IEEE-754 floating point numbers. Specifically NaN (Not-a-Number) and +/- Infinity are not allowed. While the 2000 Server seemingly allows such values to be inserted, but breaks badly afterwards, the newer versions disallow inserting such values. Here is the <a href="http://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=239674">MS Connect article requesting the feature</a>. There is also the documentation about <a href="http://msdn.microsoft.com/en-us/library/ms187912.aspx">float data</a> and a read-between-the-lines hint in the documentation for <a href="http://msdn.microsoft.com/en-us/library/ms172002.aspx">XPath numbers</a>. The article describing floats is very circumspect about this:</p>
<blockquote><p>The behavior of float and real <strong>follows</strong> the IEEE 754 specification on approximate numeric data types.</p></blockquote>
<p> [emphasis mine]</p>
<p>The <a href="http://msdn.microsoft.com/en-us/library/ms172002.aspx">XPath article</a> states it clearly:</p>
<blockquote><p>However, float(53) is not exactly IEEE 754. For example, neither NaN (Not-a-Number) nor infinity is used.</p></blockquote>
<p>.</p>
<p>For completeness, here&#8217;s a little review about other DMBS&#8217; support for NaNs and Infinity:</p>
<ul>
<li>MySQL does what it always does if it encounters &#8220;strange&#8221; values: according to <a href="http://dev.mysql.com/doc/refman/5.5/en/numeric-types.html">this comment by Carl Fischer</a> (bottom of the page), MySQL transforms the special values quietly to zero when writing them into the table.</li>
<li><a href="http://www.oracle-base.com/articles/10g/PlsqlEnhancements10g.php#new_ieee_floating_point_types">Oracle (starting at version 10g) supports all IEEE754 single and double precision values</a> and provides constants for NaN and Infinity in its SQL implementation. This is implemented using the BINARY_FLOAT and BINARY_DOUBLE data types.</li>
<li><a href="http://www.postgresql.org/docs/8.4/interactive/datatype-numeric.html#DATATYPE-FLOAT">PostgreSQL</a> uses the underlying system&#8217;s float representation and allows input of NaN and infinite values.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://dasz.at/index.php/2009/12/sql-and-ieee754-support-for-nan-infinity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
