<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom">
  <title>Sneal</title>
  <link rel="alternate" type="text/html" href="http://www.sneal.net/blog/" />
  <link rel="self" href="http://www.sneal.net/blog/SyndicationService.asmx/GetAtom" />
  <icon>favicon.ico</icon>
  <updated>2010-01-03T23:15:41.7517678-08:00</updated>
  <author>
    <name>Shawn Neal</name>
  </author>
  <subtitle>The development of Shawn Neal</subtitle>
  <id>http://www.sneal.net/blog/</id>
  <generator uri="http://dasblog.info/" version="2.1.8102.813">DasBlog</generator>
  <entry>
    <title>MonoDevelop is getting there</title>
    <link rel="alternate" type="text/html" href="http://www.sneal.net/blog/2010/01/04/MonoDevelopIsGettingThere.aspx" />
    <id>http://www.sneal.net/blog/PermaLink,guid,858f6ac8-b802-49ed-8bf0-0c7d0b321292.aspx</id>
    <published>2010-01-03T23:15:41.7517678-08:00</published>
    <updated>2010-01-03T23:15:41.7517678-08:00</updated>
    <category term="Linux" label="Linux" scheme="http://www.sneal.net/blog/CategoryView,category,Linux.aspx" />
    <category term="Mono" label="Mono" scheme="http://www.sneal.net/blog/CategoryView,category,Mono.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've been using MonoDevelop on Ubuntu this weekend, because it just doesn't feel right
to use it on Windows. If you have Windows and need to write C# code, I'm sorry you're
going to use Visual Studio, period.
</p>
        <p>
Sun VirtualBox (VBox) has been instrumental in getting a Mono environment setup. VBox
just rocks, but I did have one hickup. Initially I started with Suse Linux 11.2 because
that's officially supported by MonoDevelop, but it kept throwing segmentation faults
on bootup when trying to load the NIC driver. I tried several reinstalls, 32 bit,
64 bit, KDE, Gnome, different NICs inside VBox; nothing worked, so I gave up and went
back to my tried and true friend Ubuntu. I never did figure out the root cause. 
</p>
        <p>
Instead of compiling MonoDevelop from SVN or from the latest release tarballs (like
I did last time) I just grabbed the latest and gratest version of MonoDevelop (v 2.0)
out of the multiverse, which to my surprise is pretty new. This took a LOT less effort
and was much more stable. 
</p>
        <p>
I was actually able to make some changes to my command line library and for the most
part get the tests to pass in Linux/Mono. The SVN integration worked perfectly. The
MonoDevelop usability was pretty good. No hard crashes. No super strange compilation
errors, everything pretty much worked right out of the gates. 
</p>
        <p>
I did have a few issues: 
</p>
        <ul>
          <li>
Rename method or property fails and shows an exception dialog.</li>
          <li>
Adding a NUnit test class automatically references the NUnit.Core and NUnit.Framework
Mono package - which causes a compilation error: Duplicate TestFixture attributes.
Removing the auto added NUnit package references fixes this, but this was less than
obvious.</li>
          <li>
Find Usages works most of the time, but also displays the declaration in the results.</li>
          <li>
Go to declaration doesn't always appear on a method.</li>
          <li>
No (obvious) way to interactively debug an NUnit test. Maybe there's a way to do this,
but the only way I could find was to create a console app which runs an NUnit suite.</li>
          <li>
The syntax highlighting is pretty monotone (at least the default scheme)</li>
          <li>
The ability to automatically add a using statement when a used type isn't imported
would be super handy. I've been using Re# far too long to NOT have this.</li>
        </ul>
        <p>
I will continue to use MonoDevelop, because its good enough and runs on Linux. Clearly
it has a ways to go to compete with Visual Studio on Windows or many other Java or
Ruby IDEs, but if you need to write C# code on Linux it'll certainly do. I'm hopeful
the development experience with MonoDevelop will only get better in 2010. 
</p>
        <img width="0" height="0" src="http://www.sneal.net/blog/aggbug.ashx?id=858f6ac8-b802-49ed-8bf0-0c7d0b321292" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Model mismatch</title>
    <link rel="alternate" type="text/html" href="http://www.sneal.net/blog/2009/12/19/ModelMismatch.aspx" />
    <id>http://www.sneal.net/blog/PermaLink,guid,e2a52c99-b516-4046-aeaf-9b3c5b21def5.aspx</id>
    <published>2009-12-19T08:43:04.1551542-08:00</published>
    <updated>2009-12-19T08:43:04.1551542-08:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
A single model cannot be appropriate for reporting, searching, and transactional behaviors.
</p>
        <img width="0" height="0" src="http://www.sneal.net/blog/aggbug.ashx?id=e2a52c99-b516-4046-aeaf-9b3c5b21def5" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Using Expressions in Guard clauses</title>
    <link rel="alternate" type="text/html" href="http://www.sneal.net/blog/2009/12/01/UsingExpressionsInGuardClauses.aspx" />
    <id>http://www.sneal.net/blog/PermaLink,guid,55a96b2a-d368-498b-824b-0fcb003ec387.aspx</id>
    <published>2009-11-30T18:14:31.4600607-08:00</published>
    <updated>2009-11-30T18:14:31.4600607-08:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ruby was the impetus for me to write a Guard clause that automatically get a parameter
name from code. What do I mean by that? This passes:
</p>
        <pre>[Test]
<span style="color: #0000ff">public</span><span style="color: #0000ff">void</span> Expression_guard_can_get_parameter_name_from_expression()
{ <span style="color: #0000ff">object</span> address = <span style="color: #0000ff">null</span>;
Assert.Throws&lt;ArgumentException&gt;(() =&gt; Guard.AgainstNull(() =&gt; address),
"<span style="color: #8b0000">The parameter address must not be null</span>");
}</pre>
        <p>
Notice how I didn’t specify the string “address” anywhere, the Guard.AgainstNull method
got it from the expression () =&gt; address. I’m sure I’ve <em>used</em> constructs
like this in C# before, but I haven’t <em>written</em> any yet. I wonder in what other
ways I can abuse Expressions?
</p>
        <p>
The implementation, that is not well tested by any means:
</p>
        <pre>
          <span style="color: #0000ff">public</span>
          <span style="color: #0000ff">static</span>
          <span style="color: #0000ff">void</span> AgainstNull&lt;T&gt;(Expression&lt;Func&lt;T&gt;&gt;
expression) { AgainstNull(expression, "<span style="color: #8b0000">expression</span>"); <span style="color: #0000ff">string</span> paramName
= "<span style="color: #8b0000"></span>"; var memberExpression = expression.Body <span style="color: #0000ff">as</span> MemberExpression; <span style="color: #0000ff">if</span> (memberExpression
!= <span style="color: #0000ff">null</span>) { paramName = memberExpression.Member.Name;
} T instance = expression.Compile().Invoke(); AgainstNull(instance, paramName); }</pre>
        <img width="0" height="0" src="http://www.sneal.net/blog/aggbug.ashx?id=55a96b2a-d368-498b-824b-0fcb003ec387" />
      </div>
    </content>
  </entry>
  <entry>
    <title>ReSharper 5 won't run unit tests in Visual Studio 2010</title>
    <link rel="alternate" type="text/html" href="http://www.sneal.net/blog/2009/11/07/ReSharper5WontRunUnitTestsInVisualStudio2010.aspx" />
    <id>http://www.sneal.net/blog/PermaLink,guid,50c478ae-ccd3-4260-98a8-4a46e165cf8a.aspx</id>
    <published>2009-11-07T11:59:07.865-08:00</published>
    <updated>2009-11-07T12:00:32.254586-08:00</updated>
    <category term="Visual Studio" label="Visual Studio" scheme="http://www.sneal.net/blog/CategoryView,category,VisualStudio.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've been playing around with Visual Studio 2010, and of course the latest ReSharper,
version 5. Unfortunately my NUnit tests wouldn't run inside the ReSharper runner.
Instead they would spin for a second then turn grey, like nothing happened.
</p>
        <p>
Running the tests under the debugger turned up an interesting exception in the VS
output window: BadImageFormatException. I also noticed a bunch of DLLs being loaded
out of the v2.0 framework GAC, and not .NET 4. Shouldn't my .NET 4 app be using the
.NET 4.0 GAC? 
</p>
Of course it should. There's an easy fix to this. ReSharper shells out to another
exe that actuall runs the unit tests JetBrains.ReSharper.TaskRunner.exe. If we modify
the JetBrains.ReSharper.TaskRunner.exe.config in the ReSharper installation directory
we can force the test runner to run under the .NET 4.0 framework. At the bottom of
the file you'll find the associated startup element already there, just commented
out and with the .NET 4.0 beta 1 framework version. To fix it, just incomment it and
change the version to the .NET beta 2 framework version. 
<p>
&lt;!-- Needed in dev10, not needed in dev9/8 --&gt; &lt;startup&gt; &lt;requiredRuntime
version="v4.0.21006"/&gt; &lt;/startup&gt; 
</p><p>
Now you can run unit tests via ReSharper in VS 2010 beta 2. 
</p><img width="0" height="0" src="http://www.sneal.net/blog/aggbug.ashx?id=50c478ae-ccd3-4260-98a8-4a46e165cf8a" /></div>
    </content>
  </entry>
  <entry>
    <title>Erlang’s sweet spot</title>
    <link rel="alternate" type="text/html" href="http://www.sneal.net/blog/2009/10/19/ErlangsSweetSpot.aspx" />
    <id>http://www.sneal.net/blog/PermaLink,guid,52622b21-310d-4117-b601-498416f98ac1.aspx</id>
    <published>2009-10-19T08:52:56.3334107-07:00</published>
    <updated>2009-10-19T08:52:56.3334107-07:00</updated>
    <category term="Erlang" label="Erlang" scheme="http://www.sneal.net/blog/CategoryView,category,Erlang.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Most every language has a sweet spot, something it does better than any other language
around it.
</p>
        <p>
C and C++ are really good for writing console video games because of its speed, portability,
and deterministic finalization.  Perl is really good at string manipulation.
Java has a gazillion OSS frameworks and application servers. Ruby is damn pretty and
has a couple of really super productive web frameworks.
</p>
        <p>
Erlang has a very succinct and elegant syntax, a syntax that is highly optimized for
writing recursive functions. One could argue that’s just a property of being a functional
language, but I think there’s more too it than just being functional.
</p>
        <p>
C# 3 has a decent functional syntax that is clearly more succinct than Java or C#
2, but it just doesn’t stack up to Erlang.
</p>
        <p>
          <strong>
            <font color="#ffff00">
              <font color="#ff8040">Warning</font>: </font>
            <font color="#000000">don’t
use these code samples in production code! They use Ω(n) extra storage space and are
toy functions.</font>
          </strong>
        </p>
        <p>
For example, take this Erlang quick sort function:
</p>
        <pre>qsort([]) -&gt; [];
qsort([Pivot|T]) -&gt;
	qsort([X || X &lt;- T, X &lt; Pivot])
	++ [Pivot] ++
	qsort([X || X &lt;- T, X &gt;= Pivot]).</pre>
        <p>
That is, IMO, beautiful code.  Small, compact, succinct, powerful, readable.
On the other hand, what does a comparable implementation look like in C# 3?  
</p>
        <pre>
          <span style="color: #0000ff">static</span> IEnumerable&lt;<span style="color: #0000ff">int</span>&gt;
Qsort(IEnumerable&lt;<span style="color: #0000ff">int</span>&gt; list) { <span style="color: #0000ff">if</span> (list.Count()
&lt;= 1) <span style="color: #0000ff">return</span> list; <span style="color: #0000ff">int</span> pivot
= list.First(); var tail = list.Skip(1).Take(list.Count() - 1); var result = <span style="color: #0000ff">new</span> List&lt;<span style="color: #0000ff">int</span>&gt;();
result.AddRange(Qsort(tail.Where(o =&gt; o &lt; pivot))); result.Add(pivot); result.AddRange(Qsort(tail.Where(o
=&gt; o &gt;= pivot))); <span style="color: #0000ff">return</span> result; }</pre>
        <p>
It works, it doesn’t contain any loops and only one if statement (the initial C# 2
version was even longer and uglier), but its still very much lacking in the beautiful
code department.  Did you also notice it was more than twice as long as the Erlang
function? Perhaps you can improve the syntax?
</p>
        <p>
I don’t have numbers to prove this, but the Erlang implementation can also be made
faster with a lot less effort since each recursive call can be run in parallel. 
Try that in C# without writing extra threading code. Even if you did, your threads
are probably going to be a lot slower than the light weight threads in Erlang.
</p>
        <p>
Recursive functions in Erlang are definitely a sweet spot.
</p>
        <img width="0" height="0" src="http://www.sneal.net/blog/aggbug.ashx?id=52622b21-310d-4117-b601-498416f98ac1" />
      </div>
    </content>
  </entry>
  <entry>
    <title>I’m enjoying learning Erlang</title>
    <link rel="alternate" type="text/html" href="http://www.sneal.net/blog/2009/10/09/ImEnjoyingLearningErlang.aspx" />
    <id>http://www.sneal.net/blog/PermaLink,guid,3cd93898-78c8-45dd-b7ff-68ba4f38a3c1.aspx</id>
    <published>2009-10-08T18:09:12.052601-07:00</published>
    <updated>2009-10-08T18:09:12.052601-07:00</updated>
    <category term="Erlang" label="Erlang" scheme="http://www.sneal.net/blog/CategoryView,category,Erlang.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Sometimes you need a paradigm shift, a different way to look at the same set of problems.
Erlang I hope will give me that paradigm shift. Hopefully I can add another a screwdriver
to my toolbox, if not, hopefully something besides a hammer.
</p>
        <p>
I just bought a copy (on PDF) of <em>Programming Erlang Software for a Concurrent
World</em>. I’ve only gotten through the first few pages of chapter 1, and so far
I’m impressed. I guess its no surprise as the book is published by Pragmatic Programmers.
</p>
        <p>
I <em>finally</em> understand why mathematicians like functional languages. 
Its so obvious now, and it has a lot to do with immutability. From the book:
</p>
        <blockquote>
          <p>
When I went to school, my math teacher said, “If there’s an X in several different
parts in the same equation, then all the Xs mean the same thing.” That’s how we can
solve equations: if we know that X+Y=10 and X-Y=2, then X will be 6 and Y will be
4 in both equations. But when I learned my first programming language, we were shown
stuff like this: 
<br />
X = X + 1 
<br />
Everyone protested, saying “you can’t do that!” But the teacher said we were wrong,
and we had to unlearn what we learned in math class. X isn’t a math variable: it’s
like a pigeon hole/little box.... In Erlang, variables are just like they are inmath.When
you associate a value with a variable, you’re making an assertion—a statement of fact.
This variable has that value. And that’s that.
</p>
        </blockquote>
        <p>
I guess mutability is a strange beast for most people when learning to program, forcing
a lot of them to quit while in their first year of CS.  Well, that and pointers.
Its an odd way to think of things for people living in a concrete world. I wonder
if first year CS students wouldn’t have an easier time learning a functional language?
</p>
        <img width="0" height="0" src="http://www.sneal.net/blog/aggbug.ashx?id=3cd93898-78c8-45dd-b7ff-68ba4f38a3c1" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Fluent NUnit Assertions</title>
    <link rel="alternate" type="text/html" href="http://www.sneal.net/blog/2009/10/01/FluentNUnitAssertions.aspx" />
    <id>http://www.sneal.net/blog/PermaLink,guid,59f75922-c05d-4447-8f90-748406fc6cc2.aspx</id>
    <published>2009-09-30T18:19:34.9489057-07:00</published>
    <updated>2009-09-30T18:19:34.9489057-07:00</updated>
    <category term="Testing" label="Testing" scheme="http://www.sneal.net/blog/CategoryView,category,Testing.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
I found another reason to love open source NUnit over MSTest, <a href="http://code.google.com/p/nunitex/wiki/SyntaxOverview">NUnitEx</a>.
NUnitEx provides a fluent DSL to write NUnit assertions where Visual Studio intellisense
is your guiding friend. I’m sure you’re thinking, “Yeah whatever, show me some code.”
</p>
        <p>
        </p>
        <pre>[Test]
<span style="color: #0000ff">public</span><span style="color: #0000ff">void</span> AdjacencyGraph_is_directed_by_default()
{ var graph = <span style="color: #0000ff">new</span> AdjacencyGraph&lt;Task, TaskDependency&gt;(DoNotAllowParallelEdges);
graph.IsDirected.Should().Be.True(); }</pre>
        <p>
Nice eh? graph.IsDirected is the property I want to test.  Everything after that
is the NUnitEx extension methods. I know I find it much more readable than this:
</p>
        <pre>[Test]
<span style="color: #0000ff">public</span><span style="color: #0000ff">void</span> AdjacencyGraph_is_directed_by_default()
{ var graph = <span style="color: #0000ff">new</span> AdjacencyGraph&lt;Task, TaskDependency&gt;(DoNotAllowParallelEdges);
Assert.IsTrue(graph.IsDirected); }</pre>
        <p>
I would also like to add that this syntax is likely to be included in NUnit 3, which
would be excellent!
</p>
        <img width="0" height="0" src="http://www.sneal.net/blog/aggbug.ashx?id=59f75922-c05d-4447-8f90-748406fc6cc2" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Visual Studio webtests hurt my eyes</title>
    <link rel="alternate" type="text/html" href="http://www.sneal.net/blog/2009/09/23/VisualStudioWebtestsHurtMyEyes.aspx" />
    <id>http://www.sneal.net/blog/PermaLink,guid,68a0ce6d-6f97-4cf1-b399-79f63ba2ae23.aspx</id>
    <published>2009-09-22T17:47:31.4547643-07:00</published>
    <updated>2009-09-22T17:47:31.4547643-07:00</updated>
    <category term="Visual Studio" label="Visual Studio" scheme="http://www.sneal.net/blog/CategoryView,category,VisualStudio.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ive spent the last couple of days writing visual studio web tests to create a load
test scenario for a critical section of application. Unfortunately i find it repetitive
and boring.
</p>
        <p>
The web tests recorder in VS doesn't capture everything and additionally it hurts
to look at the produced code. I did find fiddler much better at recording tests but
they still needed serious cleaning up.
</p>
        <p>
I wish there was a more polished tool for this kind of test. I doubt other tools like
JMeter are much better, and for .NET their probably worse because of viewstate and
other platform specifics.
</p>
        <img width="0" height="0" src="http://www.sneal.net/blog/aggbug.ashx?id=68a0ce6d-6f97-4cf1-b399-79f63ba2ae23" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Check for parameter null, more ReSharper goodness</title>
    <link rel="alternate" type="text/html" href="http://www.sneal.net/blog/2009/09/17/CheckForParameterNullMoreReSharperGoodness.aspx" />
    <id>http://www.sneal.net/blog/PermaLink,guid,fd1e03ad-007e-4682-a853-56b68719bea0.aspx</id>
    <published>2009-09-17T08:46:55.0592643-07:00</published>
    <updated>2009-09-17T08:46:55.0592643-07:00</updated>
    <category term="Visual Studio" label="Visual Studio" scheme="http://www.sneal.net/blog/CategoryView,category,VisualStudio.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
I just found another useful thing that resharper does for you, it can generate code
to check for null method parameters.
</p>
        <p>
          <a href="http://www.sneal.net/blog/content/binary/CheckforparameternullmoreReSharpergoodne_79E3/image.png">
            <img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="141" alt="image" src="http://www.sneal.net/blog/content/binary/CheckforparameternullmoreReSharpergoodne_79E3/image_thumb.png" width="428" border="0" />
          </a>
        </p>
        <p>
Just put the cursor on the parameter….
</p>
        <p>
          <a href="http://www.sneal.net/blog/content/binary/CheckforparameternullmoreReSharpergoodne_79E3/image_3.png">
            <img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="96" alt="image" src="http://www.sneal.net/blog/content/binary/CheckforparameternullmoreReSharpergoodne_79E3/image_thumb_3.png" width="576" border="0" />
          </a>
        </p>
        <p>
Nice huh!?
</p>
        <img width="0" height="0" src="http://www.sneal.net/blog/aggbug.ashx?id=fd1e03ad-007e-4682-a853-56b68719bea0" />
      </div>
    </content>
  </entry>
  <entry>
    <title>The singleton that wasn’t</title>
    <link rel="alternate" type="text/html" href="http://www.sneal.net/blog/2009/09/15/TheSingletonThatWasnt.aspx" />
    <id>http://www.sneal.net/blog/PermaLink,guid,3e30d1b1-a5fe-4588-a109-276f0db03fce.aspx</id>
    <published>2009-09-14T18:54:46.4272064-07:00</published>
    <updated>2009-09-14T18:54:46.4272064-07:00</updated>
    <category term="WTF" label="WTF" scheme="http://www.sneal.net/blog/CategoryView,category,WTF.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Its amazing how one single line of code and a bad assumption (or misunderstanding)
can cause all sorts of strange production issues. 
</p>
        <p>
The day started out with static content throwing exceptions that contained our UnitOfWork
in the call stack.  My first question was, why on earth is a static resource
request hitting our begin unit of work.  Well it turns out that we map all requests
through the ASP.NET pipeline because of some nameless .NET document management module. 
Unfortunately we generally don’t have wild card mapping enabled for ASP.NET in our
dev environment because:
</p>
        <ol>
          <li>
We weren’t aware of the requirement.</li>
          <li>
There’s no documentation surrounding proper dev environment setup (e.g. script).</li>
          <li>
Only one dev in our entire organization has ever actively touched this module.</li>
        </ol>
        <p>
Why is the wildcard mapping a big deal?  Because a single page load will create
10, 20, or more HTTP get requests for static content.  If you have a threading
bug in your begin request, they’re much, much more likely to show up with numerous
requests.  
</p>
        <p>
The sad truth of the matter is that because our environment we have a lot of NHibernate
session factories, which is not normal for most applications. All of these session
factories need to be configured and were using Fluent NHibernate to do so.  FNH
is a great tool and makes configuration so much easier for us devs, but the fact remains
FNH is not thread safe.
</p>
        <p>
Seems easy enough, put a lock around the FNH stuff.  Well, we did, but the locker
class was not static, we were relying on AutoFac to ensure that our NHibernate session
factory class (the class with the lock) was a singleton.  Not too hard since
AutoFac defaults to singleton.
</p>
        <p>
Here’s the mistake.  ASP.NET creates not one, but many HttpApplication instances
for each app domain.  I was falsely under the assumption is only ever created
one, maybe two, but only ever kept one around.  Our AutoFac registration was
setup in the Global instance constructor, so each app instance was getting its own
container instance.  Can you guess why this is bad?
</p>
        <p>
Each request had its own NHibernate configuration class with its own instance lock,
thus multiple threads were entering into the critical section at the same time since
they couldn’t see each other.  Lots of weirdness ensued.  We saw all sorts
of the strange Nhibernate and FNH errors, things like property “XYZ” doesn’t exist
on class “ABC".  Odd stuff that definitely smelt of threading.
</p>
        <p>
I was starting to think SELECT was broken (e.g. AutoFac), but soon realized the errors
of my ways with a simple Debug.Assert. Yep, multiple container, produce multiple “singletons”.  
</p>
        <img width="0" height="0" src="http://www.sneal.net/blog/aggbug.ashx?id=3e30d1b1-a5fe-4588-a109-276f0db03fce" />
      </div>
    </content>
  </entry>
</feed>