<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1643780427825331062</id><updated>2011-12-02T06:33:00.658-05:00</updated><category term='CSA'/><title type='text'>Nerd Words</title><subtitle type='html'>Ramblings of a Nerd</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>40</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-397089782006570599</id><published>2011-07-05T22:48:00.004-04:00</published><updated>2011-07-11T08:29:44.541-04:00</updated><title type='text'>TDI Limited - possible scam</title><content type='html'>A friend of mine was contacted by someone claiming to be from a company called TDI Limited. The job involves: "Transferring payments straight from customers to our free-lancers by means of international money transfer systems"&lt;br /&gt;&lt;br /&gt;It seems like a scam to me. I'm just putting this out there to see if anyone else hits this page looking for similar info.&lt;br /&gt;&lt;br /&gt;Please leave a comment if you are getting something similar.&lt;br /&gt;&lt;br /&gt;UPDATE: So, this is a scam. It is called a payment processing scam. See here for more details: http://www.delphifaq.com/faq/scams/f1057.shtml&lt;br /&gt;&lt;br /&gt;Basically, they will have you set up a bank account, make a fraudulent transfer to your account, then ask you to make transfers out. After a couple days the bank will notice the first fraudulent transfer and go after you for the money. Also, I don't know what the definition of money laundering is, but this seems close.&lt;br /&gt;&lt;br /&gt;Furthermore, if you look up the registration information of their website here:&lt;br /&gt;http://www.whois.net/whois/tdi-limited.com&lt;br /&gt;You will see they only registered the website on June 26, 2011. So, this big international company has only had a web site for 2 weeks.&lt;br /&gt;&lt;br /&gt;Stay away from this scam.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-397089782006570599?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/397089782006570599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=397089782006570599' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/397089782006570599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/397089782006570599'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2011/07/tdi-limited-possible-scam.html' title='TDI Limited - possible scam'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-919746439619989693</id><published>2011-05-07T12:30:00.003-04:00</published><updated>2011-05-07T12:51:42.864-04:00</updated><title type='text'>How Sovereign Bank lost me as a customer with one letter</title><content type='html'>I just got the monthly statement for my Sovereign Bank business checking account. And this lovely notice was on the first page.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-L1aUWCumb4w/TcV4VB1BfaI/AAAAAAAAACc/inKXjsqLo4A/s1600/sovereign.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 329px; height: 424px;" src="http://1.bp.blogspot.com/-L1aUWCumb4w/TcV4VB1BfaI/AAAAAAAAACc/inKXjsqLo4A/s400/sovereign.jpg" alt="" id="BLOGGER_PHOTO_ID_5604017613995867554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you can't read the image, it says: "Beginning in June, non-customers cashing checks drawn on your Sovereign Bank business accounts will be charged a $5.00 fee by Sovereign Bank unless you have agreed to pay some or all of this fee." It then goes on to describe a non-customer as essentially anyone that does not have an account with Sovereign Bank.&lt;br /&gt;&lt;br /&gt;$5 to cash a check? That seems very unreasonable. Is depositing a check into another bank account considered cashing a check? I don't think so, but it isn't entirely clear to me. I'm pretty sure this is aimed at people walking into a bank branch and converting a check to cash.&lt;br /&gt;&lt;br /&gt;I don't actually write many checks. In fact, I think the only checks I write are to myself. So, I'm not going to get hit by this fee, but I've had enough of the large banks and their unreasonable fees. Sovereign Bank you've just lost a customer. Local banking, here I come!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-919746439619989693?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/919746439619989693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=919746439619989693' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/919746439619989693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/919746439619989693'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2011/05/how-sovereign-bank-lost-me-as-customer.html' title='How Sovereign Bank lost me as a customer with one letter'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-L1aUWCumb4w/TcV4VB1BfaI/AAAAAAAAACc/inKXjsqLo4A/s72-c/sovereign.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-5282314669601808539</id><published>2011-02-27T11:05:00.001-05:00</published><updated>2011-02-27T11:13:16.305-05:00</updated><title type='text'>WCF/MSMQ/.Net 4.0 stops processing messages–code fix</title><content type='html'>&lt;p&gt;I recently upgraded a self hosted WCF service to .Net 4.0. Everything seemed to go well, but a few hours after deploying the service messages started piling up in the queue. I check the service host process and it was idle. It was still executing, but the service had stopped pulling messages. After a bit of trial and error I have discovered the problem and hopefully a solution.&lt;/p&gt;  &lt;h4&gt;The problem&lt;/h4&gt;  &lt;p&gt;It seems that .Net 4 has changed the behavior of WCF/MSMQ services slightly. If a problem occurs with the queue, the service host faults and stops.&lt;/p&gt;  &lt;h4&gt;The solution (I think) &lt;/h4&gt;  &lt;p&gt;Here is the code I came up with to address the problem. I wrote a class that creates the &lt;em&gt;ServiceHost&lt;/em&gt; and attaches an event handlers to the &lt;em&gt;Faulted&lt;/em&gt; event. If a fault occurs, I abort the &lt;em&gt;ServiceHost&lt;/em&gt; and restart a new instance. (This is for a self-hosted WCF service – if you are hosting your service in IIS/WAS, I think you need to create a &lt;em&gt;ServiceHostFactory&lt;/em&gt; class.)&amp;#160; Here is my code:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;    &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="rem"&gt;/// In .Net 4, the WCF/MSMQ behavior seems to have changed slightly. Occasionally, the service will fault and not restart causing&lt;/span&gt;&lt;br /&gt;    &lt;span class="rem"&gt;/// messages to get stuck in the queue. This class attempts to abort and re-start the service host in the event of a fault.&lt;/span&gt;&lt;br /&gt;    &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="rem"&gt;/// &amp;lt;typeparam name=&amp;quot;T&amp;quot;&amp;gt;Your service class&amp;lt;/typeparam&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; RestartingServiceHost&amp;lt;T&amp;gt;&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;readonly&lt;/span&gt; log4net.ILog Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);&lt;br /&gt;        ServiceHost _serviceHost;&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Start()&lt;br /&gt;        {&lt;br /&gt;            _serviceHost = &lt;span class="kwrd"&gt;new&lt;/span&gt; ServiceHost(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(T));&lt;br /&gt;            _serviceHost.Faulted += &lt;span class="kwrd"&gt;new&lt;/span&gt; EventHandler(host_Faulted);&lt;br /&gt;            _serviceHost.Open();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Restart()&lt;br /&gt;        {&lt;br /&gt;            _serviceHost.Abort();&lt;br /&gt;            Start();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; host_Faulted(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            Log.Info(&lt;span class="str"&gt;&amp;quot;Host faulted. Restarting service.&amp;quot;&lt;/span&gt;);&lt;br /&gt;            Restart();&lt;br /&gt;        }&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;To use the class, simply create an instance of this class using the type of your service class:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;var host = &lt;span class="kwrd"&gt;new&lt;/span&gt; RestartingServiceHost&amp;lt;MyService&amp;gt;();&lt;br /&gt;host.Start();&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;That’s it. It seems to be working so far.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-5282314669601808539?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/5282314669601808539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=5282314669601808539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/5282314669601808539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/5282314669601808539'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2011/02/wcfmsmqnet-40-stops-processing.html' title='WCF/MSMQ/.Net 4.0 stops processing messages–code fix'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-4878563038611155828</id><published>2011-02-27T01:15:00.000-05:00</published><updated>2011-02-27T01:27:11.808-05:00</updated><title type='text'>Setting up MVC 3 for Azure with a scripted build</title><content type='html'>  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I just spent a little time setting up an Azure project using ASP.Net MVC 3 and a scripted build. I thought I would share the solution. Be warned, I'm not an expert in this stuff -- let me know if you have any ideas on how to improve this.&lt;/p&gt;  &lt;h3&gt;Step 1: Set up the directory structure.&lt;/h3&gt;  &lt;br /&gt;  &lt;p&gt;I like to follow a relatively simple directory structure for my projects. Of course you can use your own structure; I like this one.&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;\ProjectName\src&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;-- source code, project files, etc.      &lt;br /&gt;\ProjectName\lib&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;-- 3rd party libraries       &lt;br /&gt;\ProjectName\tools&amp;#160;&amp;#160; &amp;lt;-- tools (FxCop, 3rd party build tool components, etc)&lt;/font&gt;&lt;/p&gt;  &lt;pre&gt;For this post, I will be using the project name &amp;quot;Gamma&amp;quot;.&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Step 2: Create the VS2010 solution&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Start Visual Studio 2010 and create a new solution. I like to start with a blank solution and add projects as needed. Save as &amp;quot;\Gamma\src\Gamma.sln&amp;quot;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Add a new Windows Azure project. When you are prompted to add roles to the Azure project, skip this step. At the time of this post, the VS templates do not include an Azure MVC 3 project. To get around that problem. Add the empty Azure project to the solution. Then add a new project to the solution and select an MVC 3 project. Then, in the Azure project, add a &amp;quot;web role project in solution...&amp;quot; and select the MVC 3 project.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;So, now you should have \ProjectName\src\ directory with one solution file, a directory for the Azure project, a directory for the MVC project and possibly a directory for the unit test project if you elected to add one.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Step 3: Create command line build scripts &lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I like to have a command line builds, especially for automating your build with a tool like Hudson or Jenkins. I found a post a while back about automating .Net builds and I really liked the approach. I will try to search for a link later to give credit. You create 3 files:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;  &lt;li&gt;a simple MS Build project file that builds your solution, &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;a script file to kick off the build from the command line and &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;a batch file that allows you to double-click on a file in windows explorer to produce a build.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Here are the file's I use:&lt;br /&gt;  &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;build.ps1 -- powershell script for command line builds&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;if ($args)&lt;br /&gt;{&lt;br /&gt;    &amp;amp; $env:systemroot\Microsoft.Net\Framework\v4.0.30319\MSBuild.exe build.proj /t:$args /verbosity:minimal&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;    &amp;amp; $env:systemroot\Microsoft.Net\Framework\v4.0.30319\MSBuild.exe build.proj /verbosity:minimal&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;ClickToBuild.bat -- batch file for kicking off a build from windows explorer&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;PowerShell -Command &amp;quot;.\build.ps1&amp;quot;&lt;br /&gt;pause&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;build.proj -- MSBuild file for building your solution.&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;&amp;lt;Project xmlns=&amp;quot;http://schemas.microsoft.com/developer/msbuild/2003&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;PropertyGroup&amp;gt;&lt;br /&gt;  &amp;lt;ProjectName&amp;gt;Gamma&amp;lt;/ProjectName&amp;gt;&lt;br /&gt;&amp;lt;/PropertyGroup&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;Target Name=&amp;quot;Package&amp;quot; DependsOnTargets=&amp;quot;Clean;DebugBuild&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;Message Text=&amp;quot;Creating Package for $(ProjectName)&amp;quot; Importance=&amp;quot;High&amp;quot; /&amp;gt;&lt;br /&gt;  &amp;lt;MSBuild Projects=&amp;quot;$(ProjectName).sln&amp;quot; &lt;font style="background-color: #ffff00"&gt;Targets=&amp;quot;Publish&amp;quot;&lt;/font&gt; Properties=&amp;quot;Configuration=Debug&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/Target&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;Target Name=&amp;quot;DebugBuild&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;Message Text=&amp;quot;Building $(ProjectName)&amp;quot; Importance=&amp;quot;High&amp;quot; /&amp;gt;&lt;br /&gt;  &amp;lt;MSBuild Projects=&amp;quot;$(ProjectName).sln&amp;quot; Targets=&amp;quot;Build&amp;quot; Properties=&amp;quot;Configuration=Debug&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/Target&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;Target Name=&amp;quot;Clean&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;Message Text=&amp;quot;Cleaning $(ProjectName)&amp;quot; Importance=&amp;quot;High&amp;quot; /&amp;gt;&lt;br /&gt;  &amp;lt;MSBuild Projects=&amp;quot;$(ProjectName).sln&amp;quot; Targets=&amp;quot;Clean&amp;quot; Properties=&amp;quot;Configuration=Debug&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/Target&amp;gt;&lt;br /&gt;&amp;lt;/Project&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;These are relatively simple. I save them the root of the &amp;quot;src&amp;quot; directory. In Visual Studio, I add a solution folder named &amp;quot;build&amp;quot; and add these 3 files to that solution folder.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The important thing to note is the &lt;em&gt;Targets=&amp;quot;Publish&amp;quot;&lt;/em&gt; in the package target of the MSBuild file. The &amp;quot;publish&amp;quot; target is what creates the Azure package files that you need for deployment. By default they will be in the \bin\Debug\Publish\ directory of the Azure project.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Note: Azure does not have the MVC binaries by default. You will need to get these to your Azure instance. There are a couple ways to accomplish this. You can either include all the DLLs in your project and set them to &amp;quot;copy local&amp;quot;, or you can install MVC3 as part of the Azure startup script. Links to come later.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Let me know if this helped. If I find some time I will add some screen shots. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-4878563038611155828?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/4878563038611155828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=4878563038611155828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/4878563038611155828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/4878563038611155828'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2011/02/setting-up-mvc-3-for-azure-with_27.html' title='Setting up MVC 3 for Azure with a scripted build'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-986733958665556130</id><published>2010-11-09T00:27:00.003-05:00</published><updated>2010-11-09T00:55:03.353-05:00</updated><title type='text'>Troubleshooting SQL Mirror errors</title><content type='html'>I was setting up a new database server and I had some difficulty in setting up the mirroring, so I thought I would post here just on the off chance it helps someone. We are still using SQL 2005, but I think the same ideas apply to SQL 2008.&lt;br /&gt;&lt;br /&gt;When I tried to start mirroring I would get an error like this:&lt;br /&gt;&lt;blockquote&gt;The server network address "tcp://[server name]:5022" can not be reached or does not exist. Check the network address name and that the ports for the local and remote endpoints are operational.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;First and foremost the single most important thing I learned was this: &lt;span style="font-weight:bold;"&gt;If you get an error while trying to start mirroring check the application event logs on both servers.&lt;/span&gt; The error messages you get back from the UI are not helpful at all. The event log messages will lead you very quickly to the error.&lt;br /&gt;&lt;br /&gt;In my case, the first error I got was:&lt;br /&gt;&lt;blockquote&gt;Database Mirroring login attempt failed with error: 'Connection handshake failed. There is no compatible encryption algorithm. State 22.'.  [CLIENT: &lt;IP address&gt;]&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;In my case, this error indicated that the two database endpoints did not have the same encryption algorithm selected. I was working with an existing server that has mirroring already running and a new server that did not yet have mirroring running. I didn't pay attention in the mirror setup wizard and did not check the box to indicate that the connection should be encrypted. This left the original server requiring encryption and the new server without encryption. You can check this by running the following query on both servers:&lt;br /&gt;&lt;br /&gt;  &lt;blockquote&gt;SELECT * FROM sys.database_mirroring_endpoints&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Compare the values of the encryption_algorithm_desc column from both servers. In my case I had one server with RC4 and one server with None. They have to match. The solution was to drop the endpoint on the new server ('DROP ENDPOINT Mirroring') and re-run the mirror setup wizard and checking that the mirror server required encryption.&lt;br /&gt;&lt;br /&gt;Once I figured out that error, the second error I got was:&lt;br /&gt;&lt;blockquote&gt;Database Mirroring login attempt by user '&lt;Domain user&gt;' failed with error: 'Connection handshake failed. The login '&lt;Domain user&gt;' does not have CONNECT permission on the endpoint. State 84.'.  [CLIENT: &lt;IP Address&gt;]&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Again, it was a configuration problem. In this situation it was because I had forgotten to set the user that the SQL service was running as. I believe SQL has to be running as the same domain user on both servers or, I believe there is some way to use certificates. In my case, my existing server was using the domain ID, but on the new server the service was running as 'Local System'. You can check this by examining the credentials used by the the 'SQL Server' service in the server administrator tools. Once I set the new server to use the same domain ID, mirroring started up successfully.&lt;br /&gt;&lt;br /&gt;I hope this saves you some time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-986733958665556130?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/986733958665556130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=986733958665556130' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/986733958665556130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/986733958665556130'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2010/11/troubleshooting-sql-mirror-errors.html' title='Troubleshooting SQL Mirror errors'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-7434078820935095129</id><published>2010-10-26T20:50:00.005-04:00</published><updated>2010-10-27T23:30:05.048-04:00</updated><title type='text'>Understanding Mercurial Subrepositories</title><content type='html'>My client has started slowly moving towards using Mercurial for source control. I've only used Hg for small personal projects in the past so it will be interesting to see how things work.&lt;br /&gt;&lt;br /&gt;One hurdle that we hit pretty early was how to best structure our repository. The general recommendation is to avoid one large monolithic repository and break your source into multiple subrepositories. The suggestion is to use one subrepository per "project", but what exactly is a project?&lt;br /&gt;&lt;br /&gt;Our approach is to divide up and organize our source code into medium size groups. Each of the groups can contains several visual studio projects -- some groups will only output one or two assemblies when built, some groups could be as large as 20 or so assemblies. Each group is its own repository. These repositories can be organized into larger main repositories. &lt;br /&gt;&lt;br /&gt;For example, we have some shared assemblies that contain simple POCO objects that represent message classes used in different layers of our application. The visual studio projects for these message classes are in one repository. This repository is cloned as a subrepo to other repositories where needed, for example in the windows client repository, or in the silverlight client.&lt;br /&gt;&lt;br /&gt;The whole concept of subrepositories did not quite make sense to me at first, but I think I am beginning to understand it. You have to think of each subrepository as a completely isolated versioning concept.&lt;br /&gt;&lt;br /&gt;For example, say you have a directory/repository structure somewhat like this:&lt;br /&gt;\client\src\     &lt;-- all your client code lives here&lt;br /&gt;\client\shared\   &lt;-- all sub repositories live here&lt;br /&gt;\client\shared\Messages\  &lt;-- sub repo for POCO messages&lt;br /&gt;&lt;br /&gt;If you make a change to \client\shared\Messages\test.txt&lt;br /&gt;&lt;br /&gt;There are two steps that occur:&lt;br /&gt; 1. You commit the change to the Messaging subrepository.&lt;br /&gt; 2. You commit that the parent repository should point at a new version of the subrepository.&lt;br /&gt;&lt;br /&gt;(This works automatically when you commit from the command line. For some reason, I can't get it to work when using TortoiseHg.)&lt;br /&gt;&lt;br /&gt;Step 2 was the one that was confusing to me at first. The parent repository has a list of all subrepositories and what version of that subrepo is being used. This is in a file called '.hgsubstate'. The hg tooling updates this file for you and this is how the parent repository points to a specific version of the child repository. So when you commit the parent repository in step 2, this is what is being committed. It is a little hidden from you by the tooling.&lt;br /&gt;&lt;br /&gt;Please keep in mind I am not an expert in Mercurial, this is really the first time I am using it in a real scenario. I am still learning and if I have time I will post as we go forward with this change.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-7434078820935095129?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/7434078820935095129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=7434078820935095129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/7434078820935095129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/7434078820935095129'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2010/10/understanding-mercurial-subrepositories.html' title='Understanding Mercurial Subrepositories'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-283997740159790190</id><published>2010-04-02T10:43:00.006-04:00</published><updated>2010-04-02T12:07:00.350-04:00</updated><title type='text'>Best Joke I've been a part of: AromaCard</title><content type='html'>First a little disclaimer: I was not the mastermind behind this joke. I was only barely involved.&lt;br /&gt;&lt;br /&gt;After graduating from college I worked for a consulting company ("sweat shop") and I was placed on a project at large electronics retail company. This was several years ago and a lot of people were not as computer literate as they are today.&lt;br /&gt;&lt;br /&gt;I can't actually remember the name of the person that came up with the joke. (I do remember what he looked like. Does that count?) I think his name was Steve and he was a practical joke genius. Steve was surfing the web one day. He found a picture of one of those tree shaped air fresheners and hatched a brilliant plan.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fEZ5Tx0vOc0/S7YM7FyyvTI/AAAAAAAAAB8/OF1Ruzn17TU/s1600/freshener.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 150px; height: 150px;" src="http://3.bp.blogspot.com/_fEZ5Tx0vOc0/S7YM7FyyvTI/AAAAAAAAAB8/OF1Ruzn17TU/s400/freshener.jpg" alt="" id="BLOGGER_PHOTO_ID_5455562207912967474" border="0"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The joke:&lt;br /&gt;  Step 1: Buy several car air fresheners (pine scented) and hide them in someone's cubicle. &lt;br /&gt;  Step 2: Change the victim's computer background to be the picture of the air freshener.&lt;br /&gt;  Step 3: Leave a note on the victim's desk that he or she had been selected by the IT department to participate in a trial of a new computer technology called an AromaCard. The IT staff would return in a couple weeks and interview the victim about his or her experience with the AromaCard.&lt;br /&gt;&lt;br /&gt;Keep in mind, these car air fresheners come with instructions to only open a small amount of the package covering the air freshener each week. They are very strong. So, imagine a handful of these things fully opened in an standard cubical. The place absolutely reeked.&lt;br /&gt;&lt;br /&gt;As far as I know, this joke was only played on two people. The first person was immediately angry. She called the IT help desk and DEMANDED they come and remove the AromaCard from her computer. I can't even imagine what the guy at the help desk was thinking. So, the first attempt ended quickly. &lt;br /&gt;&lt;br /&gt;The second person was a different story. He was proud to have been selected for this trial. He was proud to the point that he might have been bragging about it a little bit. After a couple days everyone knew about the joke but him. &lt;br /&gt;&lt;br /&gt;The joke went on for several weeks. One day the victim left work early and Steve decided to up the ante a little bit. They swapped all the pine air fresheners in his cubicle with lemon scented ones and changed the picture on his desktop to a yellow air freshener. They left him a note that he had been upgraded to the new lemon scent.&lt;br /&gt;&lt;br /&gt;Several more weeks passed and it was time to let the guy in on the joke. This is where I came in. Because I had an IT email address I was in charge of communicating with this guy. After several unsuccessful attempts to schedule an appointment to "uninstall" his AromaCard, the plan evolved a little more. &lt;br /&gt;&lt;br /&gt;An urgent note from the IT department was left at his desk. He had to immediately uninstall the AromaCard or the cost would be deducted from his pay. The memo then had a bunch of steps, like turning his computer around and unplugging all the wires, etc. For a non-computer person this can be pretty scary. The very last step was to look under his chair.&lt;br /&gt;&lt;br /&gt;This is the voice mail he left me. I've muted out his name and phone number.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dovestar.com/aromacard_censored.mp3"&gt;AromaCard Voice Mail&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, that is the best joke I've ever been remotely involved in. (Very remotely.) I remember writing a little application that would sit in the system tray and allow the victim to adjust the scent volume of the aroma card. However, I don't remember if we ever put it on his computer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-283997740159790190?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/283997740159790190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=283997740159790190' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/283997740159790190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/283997740159790190'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2010/04/best-joke-ive-been-part-of-aromacard.html' title='Best Joke I&apos;ve been a part of: AromaCard'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fEZ5Tx0vOc0/S7YM7FyyvTI/AAAAAAAAAB8/OF1Ruzn17TU/s72-c/freshener.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-1338758303146161269</id><published>2010-03-16T17:37:00.003-04:00</published><updated>2010-03-16T17:47:32.531-04:00</updated><title type='text'>WCF - AccessDeniedException HTTP could not register URL</title><content type='html'>I was fooling around with WCF today and started getting the following exception:&lt;br /&gt;&lt;br /&gt;AddressAccessDeniedException: HTTP could not register URL http://+:8370/TestService/.  Your process does not have access rights to this namespace.&lt;br /&gt;&lt;br /&gt;The problem is pretty simple, but it took me a little while to figure out. To host the WCF service, you need to have the ability to register the URL. I run visual studio as a non-administrator, and this requires administrator privileges.&lt;br /&gt;&lt;br /&gt;But wait just one second, this service was running fine just a couple minutes ago and I didn't have administrator privileges then. How did that work? Well, it seems that VS automatically registers any URLs in the form of http://[server]:[port]/Design_Time_Addresses/[Rest of Service Url] which allows them to be hosted.&lt;br /&gt;&lt;br /&gt;So, I was trying to be too fancy and I was trying to change the URL to get rid of the "Design_Time_Addresses" part of the URL. I added that back to the URL and I was able to host the service again.&lt;br /&gt;&lt;br /&gt;If you want to host the URL without the "Design_Time_Addresses" bit, you will have to register (as admin) the URL. Follow the link in the exception details to see how to register the URL.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-1338758303146161269?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/1338758303146161269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=1338758303146161269' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/1338758303146161269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/1338758303146161269'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2010/03/wcf-accessdeniedexception-http-could.html' title='WCF - AccessDeniedException HTTP could not register URL'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-2319767464915340006</id><published>2010-03-16T17:28:00.003-04:00</published><updated>2010-03-16T17:37:23.284-04:00</updated><title type='text'>WCF blank page - some fixes</title><content type='html'>I was having a bit of trouble getting my WCF service to behave nicely. Specifically, I kept getting a blank page instead of the friendly WCF service page when I used a browser to hit the service. I stumbled on a couple things.&lt;br /&gt;&lt;br /&gt;1. The URL you are using in your browser has to end with a slash, for example http://servername:8080/TestService/ will result in a WCF service page. If you forget the slash at the end, you get a blank page.&lt;br /&gt;&lt;br /&gt;2. In the config file, base addresses and relative addresses in the endpoint do not seem to play nicely. I had to put the full URL (with a slash at the end) in the base address and leave the endpoint address blank (address="").&lt;br /&gt;&lt;br /&gt;I must be missing something. Configuration files should not be this finicky.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-2319767464915340006?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/2319767464915340006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=2319767464915340006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/2319767464915340006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/2319767464915340006'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2010/03/wcf-blank-page-some-fixes.html' title='WCF blank page - some fixes'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-2942892272511042315</id><published>2010-01-29T12:29:00.002-05:00</published><updated>2010-01-29T12:59:23.706-05:00</updated><title type='text'>SQL Server error: Conversion of XML characters</title><content type='html'>I hit an interesting error in SQL Server today. A user had somehow entered a unicode character that could not be converted to ASCII. In a stored procedure, the XML column was being converted to a varchar and this error occurred:&lt;br /&gt;&lt;br /&gt;"Conversion of one or more characters from XML to target collation impossible"&lt;br /&gt;&lt;br /&gt;You can recreate the scenario with the following TSQL code:&lt;br /&gt;&lt;blockquote&gt;DECLARE @xml xml, @nvc nvarchar(64)&lt;br /&gt;SELECT @nvc = '&lt;data&gt;Coptic letter: ' + nchar(997) + '&lt;/data&gt;'&lt;br /&gt;SELECT @nvc as 'before conversion'&lt;br /&gt;SELECT @xml = @nvc&lt;br /&gt;SELECT convert(varchar, @xml) -- fails with conversion error&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The conversion from XML -&gt; varchar fails because the Unicode value could not be represented. There are a couple options here. You can use nvarchar instead of varchar. This would support the unicode value:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;SELECT convert(nvarchar, @xml) as 'xml -&gt; nvarchar conversion'&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;You can also convert it to nvarchar and then to varchar. This results in any non-mappable characters being changed to a question mark, like so:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;SELECT convert(varchar, convert(nvarchar, @xml)) as 'xml -&gt; nvarchar -&gt; varchar conversion'&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;In my particular situation I added some code to clean up the data before it is sent to the database. I specified that the stream reader that was producing the data to be inserted into the XML column should use the ASCII encoding. This results in the non-mappable characters being translated to question marks before it goes to the database. That is just what I did in this particular case. It may not apply in your situation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-2942892272511042315?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/2942892272511042315/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=2942892272511042315' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/2942892272511042315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/2942892272511042315'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2010/01/sql-server-error-conversion-of-xml.html' title='SQL Server error: Conversion of XML characters'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-7937888949840196191</id><published>2010-01-08T00:13:00.002-05:00</published><updated>2010-01-08T00:20:08.973-05:00</updated><title type='text'>EF error: Unable to update the EntitySet 'tablename' because it has a DefiningQuery and no </title><content type='html'>I got a strange Entity Framework error today at runtime. I was trying to insert a new entity/row into the database and I got the following error:&lt;br /&gt;&lt;br /&gt;"Unable to update the EntitySet '[tablename]' because it has a DefiningQuery and no &lt;InsertFunction&gt; element exists in the &lt;ModificationFunctionMapping&gt; element to support the current operation."&lt;br /&gt;&lt;br /&gt;It turns out the table did not have a primary key defined. Whoops. Because of this, EF did something a little different. It basically treated the table as a view and it seemed to use a combination of all the foreign keys in the table as a composite key, I think.&lt;br /&gt;&lt;br /&gt;The solution was to define the primary key for the table and then update the model. This fixed most of the problem, but it also introduced a compile time error about the model. It turned out I then had to go and manually mark the foreign key fields as not part of the primary key.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-7937888949840196191?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/7937888949840196191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=7937888949840196191' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/7937888949840196191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/7937888949840196191'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2010/01/ef-error-unable-to-update-entityset.html' title='EF error: Unable to update the EntitySet &apos;tablename&apos; because it has a DefiningQuery and no &lt;InsertFunction&gt;'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-5336305929634797733</id><published>2009-10-07T16:35:00.003-04:00</published><updated>2009-10-07T16:48:02.562-04:00</updated><title type='text'>EF error: 'Date' is not supported in LINQ to Entities.</title><content type='html'>I got a strange error from EF today. The error was:&lt;br /&gt;&lt;br /&gt;"The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported."&lt;br /&gt;&lt;br /&gt;My query was something like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  from log in context.LogEntries&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  where log.EndDate &gt; DateTime.Now.Date&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  select log;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;It took me a while to figure out what was going on. It was simply that I couldn't use the .Date property on DateTime in the query itself.&lt;br /&gt;&lt;br /&gt;The fix was simple, use a local variable to store the Date value and then use that variable in the query:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;span style="font-weight: bold; font-style: italic;"&gt;DateTime today = DateTime.Now.Date;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  from log in context.LogEntries&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   where log.EndDate &gt; &lt;span style="font-weight: bold; font-style: italic;"&gt;today&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   select log&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;If I had to guess what was going on, I would guess that EF must do some translation of DateTime.Now to the GetDate() method in T-SQL. So, when I tried DateTime.Now.Date, it wasn't able to do the translation to T-SQL. Instead when I used a variable it simply translated that to a T-SQL Server datetime value.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-5336305929634797733?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/5336305929634797733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=5336305929634797733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/5336305929634797733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/5336305929634797733'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2009/10/ef-error-date-is-not-supported-in-linq.html' title='EF error: &apos;Date&apos; is not supported in LINQ to Entities.'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-7942579861525252013</id><published>2009-06-23T23:51:00.007-04:00</published><updated>2009-06-30T22:51:29.297-04:00</updated><title type='text'>Elbow injury - "terrible triad" - Ketamine experience</title><content type='html'>&lt;span style="font-family:georgia;"&gt;This is part 3 of 3 posts I have written about my elbow surgery. You can read them all here:&lt;br /&gt;Part 1: &lt;a href="http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-emergency.html"&gt;The Emergency Room&lt;br /&gt;&lt;/a&gt;Part 2: &lt;a href="http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-surgery-and.html"&gt;Surgery and Recovery&lt;/a&gt;&lt;br /&gt;Part 3: &lt;a href="http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-ketamine.html"&gt;The Ketamine Experience&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;In the Emergency Department&lt;br /&gt;&lt;/span&gt;I was in the emergency department for a broken arm and dislocated elbow.  I was given Propofol for conscious sedation. For some reason, I wasn't completely knocked out by the Propofol and the emergency room staff was not able to reset my elbow. After a couple failed attempts, they decided to give me Ketamine to completely knock me out so they could really yank on my arm. The experience was very intense, so I thought I would describe it.&lt;br /&gt;&lt;br /&gt;The medical staff entered my area in the emergency room, a bed with curtains drawn around it. There were six or seven people in the area. It felt a little crowded.&lt;br /&gt;&lt;br /&gt;They did a safety pause. They said who I was and what procedure they were going to do (an elbow reduction) and what side was going to be worked on. They began to give me the Ketamine and asked me how I was doing. I think I responded once before the Ketamine took effect.&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;My Ketamine experience&lt;/span&gt;&lt;br /&gt;I was knocked out and had no idea what was happening. At a measured pace, I started realizing that normal things just simply were not real. I would think of something, like one of the houses I lived in and as I pictured it in mind, it simply dawned on me that it simply wasn't real. I knew the thing I was picturing simply did not exist, as if it were a figment of my imagination. It was rather matter of fact. Every time I thought of something concrete, in my drugged state, I would realize it was fake. It felt like reality was literally falling away from me. Soon connections between things were falling away. I would picture two locations and how to get from one place to another. Within seconds of thinking of it, it would fall away because I knew it simply was not real. Now, as I realized things were not real, I would forget they even existed.&lt;br /&gt;&lt;br /&gt;I started picturing peoples faces, and they would fall away from reality. I pictured my physical body and that fell away. Nothing I knew was real. Life simply was not real. All I saw was a huge white plain with a grid and light. I had the sense of energy coming from the light and from the point where my non-physical being was. This is what was real and nothing else. Nothing mattered, nothing ever existed and nothing had meaning. I could not even remember anything from the real world. I had no concept of people, of places, of self or even time. None of that ever existed.&lt;br /&gt;&lt;br /&gt;I began to observe my situation.  My first thought was: if this is what it feels like to be schizophrenic, I now completely understand what that feels like. The second, scarier thought I had was: is this what death feels like? Did I die? Did something go wrong during the procedure? I felt fine and happy. I thought if this is death, it's not bad -- I was okay with it. I am not a religious person, but I can see how this could be a moving experience for a religious person.&lt;br /&gt;&lt;br /&gt;Slowly, I started to come down. I started picturing things from my life again. I pictured houses I had lived in, people in my life, and for some reason maps and roads. Even though I could picture them, I didn't know if they were real. It was really confusing and a little bit scary. I remember picturing different things and thinking over and over: "I don't know what's real."  I think I might have even been saying that out loud. This lasted for a little while.&lt;br /&gt;&lt;br /&gt;I was becoming aware of more things. I could hear someone talking to me. It was the nurse. She asked me how I was doing and I think I responded "I don't know what's real anymore." I remember feeling or seeing my bad elbow above my face and thinking that's simply not real. I remember also repeatedly saying in a slow dragged out voice "wowwwwwww". I think the medical staff was getting a kick out of that. I think I remember someone giggling a little bit.&lt;br /&gt;&lt;br /&gt;At this point, I think the staff went to get my girlfriend Kate. She later told me they seemed a little panicked, as if they wanted her in my area as soon as possible. She came in and talked to me. I opened my eyes and saw her and it was great. I was so happy to see her face and know she was real. I was slowly starting to feel grounded again. I was pretty sure Kate was real now, and I knew I was in a room surrounded by a curtain, but I had no idea what was outside of the curtain. I was talking to Kate and the nurse, but for some reason I couldn't really see the nurse's face. It is hard to describe.&lt;br /&gt;&lt;br /&gt;Nothing existed outside of my little curtained space. I now started picturing more physical things in my life and somewhat realizing they were real. I still had doubt in my mind that all these things were simply my imagination and that only that plain of white was real. As I talked to Kate and the nurse more, I came back to the real world again. I felt like I had been gone for an unmeasurable amount of time. It could have been days, but I think I was only out for 5 or 6 minutes. I'm really not sure. I do barely remember at one point having an MRI taken, but I have no idea when that was.&lt;br /&gt;&lt;br /&gt;I'm not really sure, but I think it was several hours before I felt fully grounded in reality. It was as if I had quickly gotten back to 95% reality, but the last 5% took a while.&lt;br /&gt;&lt;br /&gt;Looking back, I think that "white plain of energy" was actually the white drop ceiling of the hospital room. I remember there being a grid in the plain and it was about the same size as the ceiling tiles. That seems rather dumb now.&lt;br /&gt;&lt;br /&gt;Also, the experience was very reminiscent of the Matrix movie. This is not one of my favorite movies, so I really doubt the movie had any influence on my during this experience. If my experience is typical of someone on Ketamine, I would venture a guess that the person who wrote the Matrix was inspired by a Ketamine experience. Really, it seems like the Matrix is a Ketamine trip with a little plot thrown in.&lt;br /&gt;&lt;br /&gt;So, that's my Ketamine experience. It wasn't that bad, but it wasn't that good either. I guess I would say it was unsettling. I wouldn't do it by choice, but if I needed it in a medical emergency I would say yes. When I went in for my surgery a couple days later I asked them to avoid using Ketamine during the procedure if possible -- it was very unlikely, but I wanted to make sure they knew how I felt.&lt;br /&gt;&lt;br /&gt;One final note to end on is that the ER staff mentioned that Ketamine is actually used in children more. Yikes!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;This is part 3 of 3 posts I have written about my elbow surgery. You can read them all here:&lt;br /&gt;Part 1: &lt;a href="http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-emergency.html"&gt;The Emergency Room&lt;br /&gt;&lt;/a&gt;Part 2: &lt;a href="http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-surgery-and.html"&gt;Surgery and Recovery&lt;/a&gt;&lt;br /&gt;Part 3: &lt;a href="http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-ketamine.html"&gt;The Ketamine Experience&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-7942579861525252013?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/7942579861525252013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=7942579861525252013' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/7942579861525252013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/7942579861525252013'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-ketamine.html' title='Elbow injury - &quot;terrible triad&quot; - Ketamine experience'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-2803992515181491681</id><published>2009-06-22T19:05:00.006-04:00</published><updated>2009-06-30T22:50:29.041-04:00</updated><title type='text'>Elbow injury - "terrible triad" - surgery and recovery</title><content type='html'>&lt;span style="font-family:georgia;"&gt;This is part 2 of 3 posts I have written about my elbow surgery. You can read them all here:&lt;br /&gt;Part 1: &lt;a href="http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-emergency.html"&gt;The Emergency Room&lt;br /&gt;&lt;/a&gt;Part 2: &lt;a href="http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-surgery-and.html"&gt;Surgery and Recovery&lt;/a&gt;&lt;br /&gt;Part 3: &lt;a href="http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-ketamine.html"&gt;The Ketamine Experience&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;In my last post I described how I broke my arm/elbow and the experience of the emergency room. This post describes what happened after the emergency room.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:130%;"  &gt;&lt;span style="font-weight: bold;"&gt;After the Emergency Room&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;In the days following the visit to the emergency room, I was drugged up pretty heavily on &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;oxycodone&lt;/span&gt;&lt;span style="font-family:arial;"&gt;. I was also taking some over the counter medication to counteract some of the side effects of the &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;oxycodone&lt;/span&gt;&lt;span style="font-family:arial;"&gt;. &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Oxycodone&lt;/span&gt;&lt;span style="font-family:arial;"&gt; is a diuretic and can cause severe constipation. (I bet your glad you know that now.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;My arm was now pretty stable in a sling and splint made of cast material. The splint wrapped about 3/4 of the way around my upper and lower arm. My elbow was about 90 degrees. If I moved my arm away from my body it would hurt quite a bit, but as long as I didn't move it too much it felt okay. Again, I was on pain killers.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:verdana;font-size:130%;"  &gt;Pre-surgery&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;On Tuesday I went to the hospital to take care of all the &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;pre&lt;/span&gt;&lt;span style="font-family:arial;"&gt;-surgery data. I met with a nurse &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;practitioner&lt;/span&gt;&lt;span style="font-family:arial;"&gt; and she talked with me about what I should expect the day of the surgery. The procedure I was having involved three steps. The surgeon was going to be doing an "open reduction and internal fixation" which from what I understand means that he would be opening my arm to put the elbow back in socket. Also, the surgeon would be reconstruction two ligaments. And finally, the surgeon would examine the end of my radial bone and determine if it needed to be replaced. We also discussed &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;anesthesia&lt;/span&gt;&lt;span style="font-family:arial;"&gt; and that I might get a "block" in my shoulder. From what I understand, it is a numbing agent (maybe &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Novocaine&lt;/span&gt;&lt;span style="font-family:arial;"&gt;, I don't remember) that is injected directly into the nerve that goes to your arm. Essentially, it means you are under less general &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;anesthesia&lt;/span&gt;&lt;span style="font-family:arial;"&gt;, which can be good. The &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;pre&lt;/span&gt;&lt;span style="font-family:arial;"&gt;-surgery meeting was pretty quick and efficient.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:130%;"  &gt;&lt;span style="font-weight: bold;"&gt;Day of surgery&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;My surgery was scheduled for 11AM, I believe. I could not eat or drink after midnight the night before surgery. I think they said I could have clear liquids or coffee, but I just avoided everything.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;My mother went with me to the hospital. We checked in and went to the family waiting room. It was a little isolated from the rest of the hospital, had a pretty big library, televisions, free snacks and side rooms where you could get a little privacy if wanted. They gave us a pager, like you get at a restaurant and told us it would go off when they were ready for me. My mother would get the pager while I was in surgery and she &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;would&lt;/span&gt;&lt;span style="font-family:arial;"&gt; be paged when the surgery was done. I haven't had a lot of experience with surgery in other hospitals, but I was very impressed by the efficiency and thoughtfulness that went into the process. It really made the process a lot more tollerable.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;The pager went off and a tech took me to get ready for surgery. I was brought to a changing room where I changed into a hospital &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;jonny&lt;/span&gt;&lt;span style="font-family:arial;"&gt; and robe. I was taken to &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;pre&lt;/span&gt;&lt;span style="font-family:arial;"&gt;-op. Here, they gave me an IV. I met the &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;anesthesia&lt;/span&gt;&lt;span style="font-family:arial;"&gt; team and circulating nurse for my surgery. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;[My girlfriend works in the operating room at this hospital and she was able to request most of my surgical team. We had wanted a nurse &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;anesthetist&lt;/span&gt;&lt;span style="font-family:arial;"&gt; (we have two friends who are nurse &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;anesthetists&lt;/span&gt;&lt;span style="font-family:arial;"&gt;), but instead I had a resident &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;anesthesiologist&lt;/span&gt;&lt;span style="font-family:arial;"&gt;.] &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;They gave me some drugs and wheeled me into the surgical room. I think they gave me the block in the &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;pre&lt;/span&gt;&lt;span style="font-family:arial;"&gt;-op room, but it is a bit fuzzy. I remember being wheeled into the surgical room and looking around at all the people and equipment in the room. They knocked me out and the next thing I remember is waking up in my hospital room. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:verdana;font-size:130%;"  &gt;Post surgery&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;I don't remember being in post-op at all, but I guess my mom was there briefly to say hi. Obviously, I was still out of it. I woke up in my hospital room and don't remember anything &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;in between&lt;/span&gt;&lt;span style="font-family:arial;"&gt;. It wasn't at all like the experience I had with &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Ketamin&lt;/span&gt;&lt;span style="font-family:arial;"&gt;e, which is good. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;In my room, they gave me a "&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;PCA&lt;/span&gt;&lt;span style="font-family:arial;"&gt;" (patient controlled &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;analgesic&lt;/span&gt;&lt;span style="font-family:arial;"&gt;), also called a pain pump and showed me how to work it. Essentially, I had a button that was hooked up to a machine and I could request more pain &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;meds&lt;/span&gt;&lt;span style="font-family:arial;"&gt; by clicking the button. The machine is programmed to not over medicate and I could get a dose every 7 minutes if I needed it. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;I was very warm in the hospital. I don't know if it was really warm, or if it was because I was on a plastic mattress, or if it was a side effect of the surgery or drugs. Who knows for sure. Anyway, at one point, with the nurse's permission I changed into my boxer shorts and took off my hospital jonny. That made me a lot more comfortable. So, if you're having surgery, I would suggest bringing some shorts or boxers to wear.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Kate, my brother and his Fiancee, and my mom came to visit. I was still in a bit of pain and I probably wasn't too much fun to visit. After a while I decided to get some sleep.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:verdana;font-size:130%;"  &gt;PCA - torture device?&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;So, at first I thought the &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;PCA&lt;/span&gt;&lt;span style="font-family:arial;"&gt; was a great idea. If I was in pain, it would help me out and I had some control over it. My opinion changed later that night. The &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;PCA&lt;/span&gt;&lt;span style="font-family:arial;"&gt; is configured to only &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;dispense once every 7 minutes. I think they do this so you can't easily remember when you can hit the button again. The night after surgery was horrible. Here is what happened all night long. I would hit the button a couple times and get my pain under control. I would then fall asleep for a small amount of time. Then I would wake up from my sleep in severe pain. I would then have to click my PCA&lt;/span&gt;&lt;span style="font-family:arial;"&gt; button and wait seven or 14 minutes to hit the button multiple times. Eventually my pain would be under control and I could fall asleep again only to repeat the process. Sometimes, I would use the pain pump too much and it would start beeping. I would have to page the nurse to get the beeping to stop. I don't remember how many times I went through that process, but it felt like the night took forever to pass.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;The PCA was horrible. I had no information about when I could get another dose. I had no information about how many doses were left, and the doses didn't last long enough for me to get a decent sleep. By the time morning came I wanted to throw that &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;PCA&lt;/span&gt;&lt;span style="font-family:arial;"&gt; thing out the window.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:verdana;font-size:130%;"  &gt;The Morning After&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;The following morning, I was still in a decent amount of pain. The surgeon came and visited me and did some evaluation and explained how the surgery went. It turned out that the end of my raidal bone was broken into so many pieces it was beyond repair. He had to replace it with a fake bone. Because of the pain I was in, he thought I might have to stay another night in the hospital. That was a little disappointing. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;My mom came to visit and said I should ask the nurse if she could do anything for the pain. The nurse took gave me some IV pain killers and started me on some &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;oxycodone&lt;/span&gt;&lt;span style="font-family:arial;"&gt; pills. She took me off the dreaded &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;PCA&lt;/span&gt;&lt;span style="font-family:arial;"&gt; machine. The pain killers kicked in and I felt a lot better. I really started to feel like myself again -- the pain wasn't bothering me at all.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;The occupational therapy person came to show me some exercises and how to take the sling on and off. I said I was thinking about leaving the hospital that day and she said that was fine with her and got the ball rolling to get me released. Kate was getting off from work at 7 that night and my brother was coming to visit at the same time. I was released from the hospital and my brother drove us home.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;I spent the next several days taking my pain &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;meds&lt;/span&gt;&lt;span style="font-family:arial;"&gt; every two hours and sleeping a lot. I spent most of the time in bed or on the couch watching television. My surgery was on Wednesday. I came home on Thursday and did essentially nothing until Monday. I slowly reduced the amount of pain killers I was taking. On Monday I was able to do some work (I work from home) and it made me feel much better to be doing something normal. It also made the time go by much faster.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:georgia;"&gt;This is part 2 of 3 posts I have written about my elbow surgery. You can read them all here:&lt;br /&gt;Part 1: &lt;a href="http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-emergency.html"&gt;The Emergency Room&lt;br /&gt;&lt;/a&gt;Part 2: &lt;a href="http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-surgery-and.html"&gt;Surgery and Recovery&lt;/a&gt;&lt;br /&gt;Part 3: &lt;a href="http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-ketamine.html"&gt;The Ketamine Experience&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-2803992515181491681?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/2803992515181491681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=2803992515181491681' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/2803992515181491681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/2803992515181491681'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-surgery-and.html' title='Elbow injury - &quot;terrible triad&quot; - surgery and recovery'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-2196934864719941133</id><published>2009-06-21T19:46:00.008-04:00</published><updated>2009-06-30T22:49:56.011-04:00</updated><title type='text'>Elbow injury - "terrible triad" - the emergency room</title><content type='html'>&lt;span style="font-family:georgia;"&gt;This is part 1 of 3 posts I have written about my elbow surgery. You can read them all here:&lt;br /&gt;Part 1: &lt;a href="http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-emergency.html"&gt;The Emergency Room&lt;br /&gt;&lt;/a&gt;Part 2: &lt;a href="http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-surgery-and.html"&gt;Surgery and Recovery&lt;/a&gt;&lt;br /&gt;Part 3: &lt;a href="http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-ketamine.html"&gt;The Ketamine Experience&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Three weeks ago I broke my arm/elbow. I thought I would document my experience so far.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:georgia;font-size:130%;"  &gt;&lt;span style="font-weight: bold;"&gt;How it happened&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:georgia;"&gt;I was on my road bike, with my feet clipped in. I was going up onto a curb and had to avoid a fire hydrant on the sidewalk. I was not really paying attention. My rear wheel did not make it onto the sidewalk and slid along the the curb a little bit until my bike abruptly stopped. At this point I tipped over with my feet still clipped in. I put my arm out to break my fall. My hand hit and I immediately felt my arm do something it should not do. I rolled over grabbing my arm and immediately yelled "Call 911" at my girlfriend, Kate, who was biking behind me.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Emergency Response&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:georgia;"&gt;The first couple minutes were not too bad. I laid on the pavement and kept my arm as steady as possible. It was across my stomach. My girlfriend called 911 and after some discussion about what town we were in an ambulance was on it's way. It turned out we were right on the border of Newton and Brookline. They directed the call to Brookline's 911 center and in about 5 minutes the Brookline emergency services showed up.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Everyone was very nice and asked me about 10 times if I had been wearing a helmet -- and I had been. After a couple minutes, they got a stretcher. I got up and walked to the stretcher with no problem. The ride to the hospital was uneventful. The driver and medic made corny jokes the whole way about how fast they were going and if I wanted to drive, etc. I think this is part of their spiel to keep the sick person awake, but I am not really sure. They got me to Brigham and Women's Hospital (by my and Kate's request) and got me right into the Emergency Room.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Emergency Room&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;In the emergency room they started an IV and gave me some pain killers. Up to this point I was only really in pain when my arm moved. After what seemed like a long time, I was taken to get x-ray images of my elbow. The x-ray process proved to be very painful because they needed me to move my arm around to get images from different angles. When the first image was taken, I heard the technician let out a gasp when he saw the picture come up. That is never a good sign. After 2 images were taken and I was in excruciating pain, I thought the technician said she needed to take one more image. I jokingly responded that I was beginning to hate her. She laughed, and said that actually we were all done for now.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;I was wheeled back to my emergency room area. They examined the x-rays and determined that I had dislocated my elbow and that they were going to try to put it back in socket. They also warned me that sometimes these injuries are so bad that they require surgery. Yipes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;font-family:georgia;" &gt;Conscious Sedation&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;They decided they would give me something called conscious sedation with a drug called propofol. Essentially, it would knock me out for only a couple minutes and they would put my arm back in its socket. Once they got the drugs from the pharmacy, they started the process. There were about 6 people in my room and they started giving me the drug. Every so often they would ask "Are you still with us?" and I would respond "yes". Eventually, they decided I wasn't going to go fully unconscious and tried to set my arm while I was still responding. They yanked on my arm and got it back into socket, or so they thought.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;It turns out they had given me enough propofol to knock out a 200 pound person. They were very surprised that I was conscious through the whole thing. I believe I was actually the talk of the E.R. for a brief period. "Did you hear about the guy that talked through propofol?" I heard they even searched on Google to see if they could find something similar. They think it might have been because the blood pressure cuff was on the same arm that they were giving me the propofol. I remember the entire thing, which I guess is unusual. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;font-family:georgia;" &gt;Second Attempt&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;I went back for a second set of x-rays. When they lifted my arm to get an image, I (and the technician) felt my arm slip out of socket. They brought me back to my ER room and tried to put my elbow back in place again. It just wouldn't stay. They decided they would have to really yank on my arm to get it back in place and that I should be really knocked out for that. They decided on giving me Ketamine.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;font-family:georgia;" &gt;Third Attempt&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;The did a safety pause, which I thought was cool and then gave me the Ketamine and I was knocked out. I hallucinated and everything. (I will go into more detail on the Ketamine in another post.) It was very interesting, but not something I would want to do again. While I was knocked out, they put my arm back into socket. They also took CAT scans, which I vaguely remember.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;So, my arm was back in socket, and my arm was in a split made of cast material. I also had a sling to hold my arm. The Ketamine eventually wore off, and I was given some pain meds. I slowly began to recover. Eventually, at 3AM we left the Emergency Room. They told me a doctor would look at my x-rays and CAT scans to see if I needed surgery. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Surgery&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:georgia;"&gt;The next day a doctor told me I would need surgery to fix my elbow and scheduled surgery for Wednesday.&lt;/span&gt; I will go into detail on my surgery in a follow up post.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Of course, it was not a fun thing to go through, but I have to say that everyone involved was very professional and friendly through the whole process. The staff at Brigham and Women's Hospital were great and I really appreciate the work they did. The emergency response crew was also great.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:georgia;"&gt;This is part 1 of 3 posts I have written about my elbow surgery. You can read them all here:&lt;br /&gt;Part 1: &lt;a href="http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-emergency.html"&gt;The Emergency Room&lt;br /&gt;&lt;/a&gt;Part 2: &lt;a href="http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-surgery-and.html"&gt;Surgery and Recovery&lt;/a&gt;&lt;br /&gt;Part 3: &lt;a href="http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-ketamine.html"&gt;The Ketamine Experience&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-2196934864719941133?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/2196934864719941133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=2196934864719941133' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/2196934864719941133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/2196934864719941133'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2009/06/elbow-injury-terrible-triad-emergency.html' title='Elbow injury - &quot;terrible triad&quot; - the emergency room'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-6549254856283908492</id><published>2009-06-21T19:39:00.004-04:00</published><updated>2009-06-21T19:46:13.393-04:00</updated><title type='text'>Triathlon update - broken arm</title><content type='html'>Well, this weekend was the triathlon I was training for. Unfortunately 3 weeks ago, I fell while on my road bike and broke my arm. I'll go into more detail on that in another post.&lt;br /&gt;&lt;br /&gt;So, unfortunately, I couldn't participate in the race. I will have to find a race in the fall that I can enter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-6549254856283908492?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/6549254856283908492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=6549254856283908492' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/6549254856283908492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/6549254856283908492'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2009/06/triathlon-update-broken-arm.html' title='Triathlon update - broken arm'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-622470525608307659</id><published>2009-05-14T23:12:00.000-04:00</published><updated>2009-05-14T23:14:38.517-04:00</updated><title type='text'>Reminder: creating service for svnserve</title><content type='html'>Note to self: To create a windows service to run the subversion svnserve server, use the following command line:&lt;br /&gt;&lt;br /&gt;sc create Subversion binpath= "C:\Program Files\SlikSvn\bin\svnserve.exe --service --root C:\svnreps --listen-host 0.0.0.0" displayname= "Subversion" depend= Tcpip&lt;br /&gt;&lt;br /&gt;(This is for a SlikSvn installation, obviously.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-622470525608307659?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/622470525608307659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=622470525608307659' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/622470525608307659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/622470525608307659'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2009/05/reminder-creating-service-for-svnserve.html' title='Reminder: creating service for svnserve'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-5211323630694018798</id><published>2009-04-07T14:35:00.006-04:00</published><updated>2009-04-07T15:19:52.930-04:00</updated><title type='text'>Capturing context data using log4net</title><content type='html'>It was a little bit of trial and error to get this working, so I thought I would post the code.&lt;br /&gt;&lt;br /&gt;The problem we were trying to solve was this: we wanted to track which batch job was logging the given message. In our situation, each job is a separate class. Each job had its own unique ID number. So, we needed to use some context to determine which job logged the message.&lt;br /&gt;&lt;br /&gt;Here is the solution we came up with. First we created a custom attribute to hold the metadata we needed:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;pre&gt;[AttributeUsage(AttributeTargets.Class)]&lt;br /&gt;public class BatchJobAttribute : Attribute&lt;br /&gt;{&lt;br /&gt;  public int ProcessorId { get; private set; }&lt;br /&gt;  public BatchJobAttribute(int processorId)&lt;br /&gt;  {&lt;br /&gt;    ProcessorId = processorId;&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For each processor class, we add this attribute:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;pre&gt;[Processor(123)]&lt;br /&gt;class SampleProcessor&lt;br /&gt;{&lt;br /&gt; ...&lt;br /&gt;}&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Note: It would be very nice to use an enum instead of magic numbers. This would be a fairly simple change.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then we created a context class. The ToString() method on this class is called each time a message is logged. In this method, the code walks up the stack trace looking for a class that has the custom attribute. Please note, this is using reflection and is called every time a message is logged, so be careful in performance critical situations. This particular situation was for off-line processing, so performance was not as critical.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;pre&gt;class ProcessorContext&lt;br /&gt;{&lt;br /&gt;  private const string UnknownValue = "-1";&lt;br /&gt;&lt;br /&gt;  public override string ToString()&lt;br /&gt;  {&lt;br /&gt;    StackTrace stackTrace = new StackTrace(false);&lt;br /&gt;    foreach (var frame in stackTrace.GetFrames())&lt;br /&gt;    {&lt;br /&gt;      var type = frame.GetMethod().ReflectedType;&lt;br /&gt;      var attributes = type.GetCustomAttributes(typeof(BatchJobAttribute), false);&lt;br /&gt;      if (attributes.Length &gt; 0)&lt;br /&gt;      {&lt;br /&gt;         var procAtt = (ProcessorAttribute)attributes[0];&lt;br /&gt;         return procAtt.ProcessorId.ToString();&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;    return UnknownValue;&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Finally, when configuring log4net at application start, we add the context class as a thread context property. This is what causes log4net to call the ToString() method on each call.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;pre&gt;log4net.Config.XmlConfigurator.Configure();&lt;br /&gt;log4net.ThreadContext.Properties["ProcessorContext"] = new  ProcessorContext();&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;In the configuration of the adapter, we add a pattern layout to display this property:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;layout type="log4net.Layout.PatternLayout"&amp;gt;&lt;br /&gt;  &amp;lt;param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1} %property{ProcessorContext} %m%n" /&amp;gt;&lt;br /&gt;&amp;lt;/layout&amp;gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And there you go. Hopefully this will be helpful to someone else. Please keep in mind there are other solutions that may work better in your specific scenario. One good option would be the context stacks described in &lt;a href="http://logging.apache.org/log4net/release/manual/contexts.html"&gt;this article&lt;/a&gt;. Another option would be to simply use the class name which is already part of the metadata captured by log4net.&lt;br /&gt;&lt;br /&gt;Good luck!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-5211323630694018798?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/5211323630694018798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=5211323630694018798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/5211323630694018798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/5211323630694018798'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2009/04/capturing-context-data-using-log4net.html' title='Capturing context data using log4net'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-3875044935417037292</id><published>2009-04-06T00:42:00.005-04:00</published><updated>2009-04-06T01:16:33.867-04:00</updated><title type='text'>Training Update 2</title><content type='html'>I finally decided on which triathlon I'm going to do. I'm registered for the &lt;a href="http://www.eastmannh.org/tri/main.htm"&gt;Eastman Splash, Mash and Dash Triathlon&lt;/a&gt; in Grantham, New Hampshire. It is a 1/3 mile swim, a 12 mile bike ride and a 5k run.&lt;br /&gt;&lt;br /&gt;The race is 11 weeks away now and I have started a training schedule. I looked around on the interwebs and found a couple training schedules for sprint triathlons. The schedules seemed a little wimpy to me. I don't really consider a sprint triathlon wimpy, but these training programs had training days that would consist of a 12 minute run. Some schedules even worked up to running by including walking days. So, instead I decided to overtrain. I know, I know, overtraining is bad. I'm increasing the chance of injury. I just felt I wanted more of a challenge than the training programs I had found.&lt;br /&gt;&lt;br /&gt;I took a training schedule for an olympic triathlon and adapted it slightly. The schedule was balanced, meaning it did not stress any one of the 3 sports. The only thing I changed was that the swim times seemed quite long, so I halved them. Even halving the swim practices, the shortest swim practice is longer than I think it will take me in the actual race.&lt;br /&gt;&lt;br /&gt;A couple months ago I made up some goals for myself. I really didn't have much to base my goals on, so I found some data on the web and chose average times for my age group. Now that I've been training a little bit, I can get an idea of how close I am to those relatively arbitrary goals.&lt;br /&gt;&lt;br /&gt;My swim goal was to shoot for 1 minute per 50 yards. For 1/3 mile, that is just under 12 minutes. I timed myself in the pool a couple days ago and I swam 1/3 mile in a little over 13 minutes. I tried not to push off too much on the turns, but open water is going to be significantly different. My swim started at a decent pace, but I slowed at the end. With a little more endurance I think the swim goal will be reached, at least in a pool, without people kicking me in the head.&lt;br /&gt;&lt;br /&gt;My bike goal was to average 15 MPH. For a 12 mile course, that would be around 45 minutes. I think this goal is going to be difficult. I went for a ride today and averaged 12 miles an hour. The bike is still quite difficult for me, I don't think I have my bike muscles back yet from the winter.&lt;br /&gt;&lt;br /&gt;My running goal was to run at a pace of 7:30. Right now that seems a little ridiculous. I'm finally feeling like I'm back to my normal speed before taking a break from training over the winter. My last run felt great. The course I ran is quite hilly and longer than the race distance. I averaged an 8:42 pace. I have a serious amount of time to make up if I want to meet my goal.&lt;br /&gt;&lt;br /&gt;Well, at least my goals are stretch goals. I may have to adjust my training as I go. I may swap out a couple swiming sessions for biking or running.&lt;br /&gt;&lt;br /&gt;Okay, that's it for now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-3875044935417037292?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/3875044935417037292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=3875044935417037292' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/3875044935417037292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/3875044935417037292'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2009/04/training-update-2_06.html' title='Training Update 2'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-5153564707146801740</id><published>2009-02-13T00:09:00.006-05:00</published><updated>2009-02-13T00:47:08.625-05:00</updated><title type='text'>MSTest error: The location of the file or directory 'log4net.dll' is not trusted.</title><content type='html'>Today, I upgraded to the latest version of log4net. All my code worked fine, but my unit tests were simply not running. The unit tests were not failing - MSTest was failing to actually run any unit tests. Clicking on the test details led to the following error message:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Failed to queue test run '[test data]': Test Run deployment issue: The location of the file or directory '[path]\log4net.dll' is not trusted.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I did a little research and it turns out Vista has a feature that doesn't allow DLLs to load in certain situations. The strange thing is that my application ran with no problem, but MSTest did not. The solution I found was to unblock the DLL using the file properties dialog.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fEZ5Tx0vOc0/SZUF7c97JCI/AAAAAAAAABo/bmifAwFb7ZY/s1600-h/PropertiesUnblock.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 294px; height: 400px;" src="http://4.bp.blogspot.com/_fEZ5Tx0vOc0/SZUF7c97JCI/AAAAAAAAABo/bmifAwFb7ZY/s400/PropertiesUnblock.jpg" alt="" id="BLOGGER_PHOTO_ID_5302150655244968994" border="0" /&gt;&lt;/a&gt;Unfortunately, no matter how many times I clicked the 'Unblock' button, it just didn't seem to take.&lt;br /&gt;&lt;br /&gt;I'm not exactly sure what the true nature of the problem was, but I think it had to do with the fact the DLL was now under source control. I deleted the DLL, got the latest version (the one I had just checked in) from TFS source control. TFS is still a little clunky to me. A simple 'Get Latest' did not work. I had to use the 'Get Specific Version' option and had to use the option to 'Overwrite all files even if the local version matches the specified version', even thought I had deleted the DLL.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fEZ5Tx0vOc0/SZUG7MQ4tJI/AAAAAAAAABw/8FZ1ywiDZ1w/s1600-h/TFSGetOverwrite.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 239px;" src="http://4.bp.blogspot.com/_fEZ5Tx0vOc0/SZUG7MQ4tJI/AAAAAAAAABw/8FZ1ywiDZ1w/s400/TFSGetOverwrite.png" alt="" id="BLOGGER_PHOTO_ID_5302151750272726162" border="0" /&gt;&lt;/a&gt;At this point I checked out the DLL and used the properties dialog to 'Unblock' the file. This time it worked, and all my tests ran again.&lt;br /&gt;&lt;br /&gt;I find it odd that MSTest was not able to load the DLL, but my application ran fine. I guess MSTest is running in some sort of partial trust mode, but I really don't know.&lt;br /&gt;&lt;br /&gt;I also find it hard to believe that I've download and installed so many things and this is the first time I've had to 'Unblock' a DLL.&lt;br /&gt;&lt;br /&gt;I hope this saves some time for anyone else that has this problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-5153564707146801740?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/5153564707146801740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=5153564707146801740' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/5153564707146801740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/5153564707146801740'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2009/02/mstest-error-location-of-file-or.html' title='MSTest error: The location of the file or directory &apos;log4net.dll&apos; is not trusted.'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_fEZ5Tx0vOc0/SZUF7c97JCI/AAAAAAAAABo/bmifAwFb7ZY/s72-c/PropertiesUnblock.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-1401739069529402283</id><published>2009-01-28T16:10:00.002-05:00</published><updated>2009-01-28T16:18:41.249-05:00</updated><title type='text'>Web design links for the design challenged</title><content type='html'>One thing I am tremendously bad at is making a web site look nice. I recently found some great resources that I think are very useful.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.oswd.org/"&gt;Open Source Web Design&lt;/a&gt;&lt;br /&gt;&lt;a class="moz-txt-link-freetext" href="http://www.oswd.org/"&gt;&lt;/a&gt;This is a big collection of open source site designs. You can use a design as-is, or just browse the designs for ideas.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blueprintcss.org/"&gt;BlueprintCSS&lt;/a&gt;&lt;br /&gt;This is a CSS framework to give your CSS development a jump start. They have a  grid thing which is a little strange, but you can do cool things with  it. Here is a &lt;a href="http://www.blueprintcss.org/tests/parts/sample.html"&gt;sample page&lt;/a&gt;. &lt;br /&gt;The thing that I don't like about the grid is that the layout starts invading your HTML file. I like the idea of separating design an content using CSS and this feels like a little step backwards.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://meyerweb.com/eric/tools/css/reset/"&gt;Reset CSS file&lt;/a&gt;&lt;br /&gt;This is a CSS file that resets all the basic style settings. When you  use this as a starting point for your CSS it will hopefully eliminate  annoying differences among browsers. (This is how I found Blueprint,  which uses the Reset CSS script.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-1401739069529402283?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/1401739069529402283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=1401739069529402283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/1401739069529402283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/1401739069529402283'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2009/01/web-design-links-for-design-challenged.html' title='Web design links for the design challenged'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-3436356797166406462</id><published>2009-01-25T21:37:00.005-05:00</published><updated>2009-01-25T22:41:35.638-05:00</updated><title type='text'>Learning to swim gear list</title><content type='html'>I just started swimming a month or two ago and I'm really enjoying it. I thought it might be interesting to list the equipment I am using.&lt;br /&gt;&lt;br /&gt;(It looks like swimoutlet.com is having some server problems, so the links may or may not work. It's hard for me to believe they are still using plain old ASP to write their site.)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;The essentials:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Swim suit: &lt;a href="http://www.swimoutlet.com/product_p/5446.htm"&gt;TYR Square Leg&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;This swimsuit has been fine. It is a little more modest than brief-type swimsuits, which is good. Every time I see my swim suit I think of the jingle: "who likes short shorts? we like short shorts" (Okay, to be honest, I only know that jingle from the Simpsons, but I'm guessing it was a commercial back in the day.) Long story short: I would get this swimsuit again.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Goggles: &lt;a href="http://www.swimoutlet.com/product_p/1642.htm"&gt;Speedo Vanquisher&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;I haven't had a great experience with these goggles, but it hasn't been all bad. Sometimes I have trouble with leaks. I think I would try a different pair next time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Swim Cap: &lt;a href="http://www.swimoutlet.com/product_p/1253.htm"&gt;Speedo Silicone Swimcap&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;This swim cap has been fine. Originally, I thought I would be going through swim caps pretty frequently. I'm not sure why I thought that. This one has been fine and it's all I've needed. I have a latex cap as well, but I haven't used it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sandals: &lt;a href="http://www.swimoutlet.com/product_p/8245.htm"&gt;Nike Swim Men's First String Slide&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;I am very surprised by these sandals. I bought the cheapest ones that looked decent. I've never had sandals like these before and I was expecting them to be very cheap feeling and uncomfortable. These sandals are actually very comfortable. I highly recommend them. I also count these as essential equipment due to the various forms of foot fungi that are likely covering the locker room and shower floors.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Lock: Pad lock for your locker&lt;/span&gt;&lt;br /&gt;A combination lock might be nice, so you don't have to worry about a key. I only had a key type lock, so I've been using that.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Towel&lt;/span&gt;&lt;br /&gt;I would guess that fancy pools will provide you with a towel. I'm using a towel I got for free.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;The non-essentials:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Bag: &lt;a href="http://www.swimoutlet.com/product_p/1432.htm"&gt;Speedo Mesh Equipment Bag&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;This bag is decent, but the strap is too long. If you put the strap over your shoulder, the bag is down at your shins. It's fairly annoying. Maybe you're not supposed to put the bag over your shoulder.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pull Buoy: &lt;a href="http://www.swimoutlet.com/product_p/1753.htm"&gt;Speedo Pull Buoy&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;I just got this as a gift and have only used it twice. It seems pretty decent so far.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Shampoo: &lt;a href="http://www.swimoutlet.com/product_p/2674.htm"&gt;Ultraswim Shampoo&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;Evidently chlorine can do strange stuff to your hair, so I bought this on advice from my brother. It seems to be doing its job. I haven't noticed any chlorine related strangeness in my hair.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Anti-fog stuff: &lt;a href="http://www.swimoutlet.com/product_p/1202.htm"&gt;TYR Anti-Fog Spray&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;Umm, I'm not really sure if this stuff does anything. My goggles fog up regardless. Maybe if I applied this each time I went swimming it would work. Foggy goggles don't bother me too much when I'm swimming. The only time the fogged up goggles come in to play is when I try to read the clock, which isn't too often.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Soap: Some manly shower gel&lt;br /&gt;&lt;/span&gt;Bringing bar soap into the shower is a bit annoying, so I went and bought some random brand of shower gel.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Stuff I don't have yet:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Travel bottles:&lt;br /&gt;&lt;/span&gt;Carrying the full sized bottles of shampoo and shower gel is a little annoying. It would be nice to have a couple nice flip-top travel bottles.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-3436356797166406462?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/3436356797166406462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=3436356797166406462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/3436356797166406462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/3436356797166406462'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2009/01/learning-to-swim-gear-list.html' title='Learning to swim gear list'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-7364414214438005718</id><published>2009-01-14T15:20:00.003-05:00</published><updated>2009-01-14T15:34:11.867-05:00</updated><title type='text'>Training Update</title><content type='html'>My training is slowing down a bit due to the cold weather. I haven't gone running for a week and a half due to the cold weather and the snow and ice on the ground. I'm wimping out, I know.&lt;br /&gt;&lt;br /&gt;I have been swimming weekly and I went today. At the end of my little workout, I decided to time myself for a couple 50 yard laps. I did one lap fast, almost at a sprint speed for me, and it took me about 50 seconds. I then caught my breath and did one lap at a more reasonable speed and clocked in at 1:05 - 1:10.&lt;br /&gt;&lt;br /&gt;So, that's pretty close to my goal of about 1 minute per 50 yards. Right now, I don't think I could maintain that speed for a 1/2 mile, but at least the goal feels achievable at this point.&lt;br /&gt;&lt;br /&gt;There were very few people at the pool today, so that was quite nice. I had a lane to myself the whole time. I tried to practice a flip turn, but it didn't go well. I ended up doing a full flip and facing the wall again. I need to look into that a little bit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-7364414214438005718?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/7364414214438005718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=7364414214438005718' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/7364414214438005718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/7364414214438005718'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2009/01/training-update.html' title='Training Update'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-6071018103705083081</id><published>2008-12-15T21:53:00.002-05:00</published><updated>2008-12-15T22:12:27.921-05:00</updated><title type='text'>Book Review - Bernard Clayton's New Complete Book of Bread</title><content type='html'>I thought it would be a good idea to do a quick review of one of my bread cookbooks, Bernard Clayton's New Complete Book of Breads.&lt;br /&gt;&lt;br /&gt;I hate to say it, but right now this is one of my least favorite cookbooks. This is the only cookbook I actually edit before I use. There are a couple different methods of making bread: by hand, using a mixer, or a food processor. This cookbook annoyingly combines the three methods in the directions. I actually go through the recipe before I make it and put a line through all the instructions that don't apply, just to make it easier to follow.&lt;br /&gt;&lt;br /&gt;Additionally, the directions are not always clear. Just as an example, the last recipe I made had and instruction to knead the bread for 8 minutes in the mixer, but at what speed? It seems like there would be a pretty significant difference between kneading at high and at low.&lt;br /&gt;&lt;br /&gt;My final complaint about this book is that the ingredients seem a little dated. Several recipes call for shortening, which I don't use. Many recipes call for powdered milk. This has caused me to skip a lot of recipes. I think I will go back and substitute butter for the shortening and milk for the powdered milk, but it seems the recipes are showing their age.&lt;br /&gt;&lt;br /&gt;One more comment about the book... everything is measured in cups. This is probably a personal preference, but I would much prefer measurements by weight. Of course a lot of bread making has to do with the air humidity and the moisture content of the ingredients, so perhaps measurement isn't as important as I think.&lt;br /&gt;&lt;br /&gt;Even with all those complaints, I still use this cookbook. The sheer breadth of recipes is outstanding, and the brief stories that accompany each recipe are nice. It just bothers me when something could so easily be great, but due to flaws, is merely good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-6071018103705083081?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/6071018103705083081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=6071018103705083081' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/6071018103705083081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/6071018103705083081'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2008/12/book-review-bernard-claytons-new.html' title='Book Review - Bernard Clayton&apos;s New Complete Book of Bread'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-2352798840645180483</id><published>2008-12-15T21:21:00.002-05:00</published><updated>2008-12-15T21:53:16.284-05:00</updated><title type='text'>A Bread Winter - Raisin Rye Bread</title><content type='html'>I've decided to bake more bread this winter. I'm going to aim for baking one loaf of bread a week, but I think that will be a difficult goal to meet.&lt;br /&gt;&lt;br /&gt;This week, I decided to make the Raisin Rye Bread from "Bernard Clayton's New Complete Book of Breads".  I'll follow up this post with a brief review of the cookbook.&lt;br /&gt;&lt;br /&gt;I had a little trouble making the dough come together in the mixer. It seemed very wet and I kept adding flour. I shaped the dough into two baguette sized loaves. Next time I think it will be better make shorter, larger in diameter loaves, or perhaps rounds. Also, I forgot the egg wash at the end.&lt;br /&gt;&lt;br /&gt;Aside from those issues, the bread was very good. The texture was great, the flavor was great and the crust was great even without the egg wash. It wasn't all that much effort either. I will definitely make this recipe again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-2352798840645180483?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/2352798840645180483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=2352798840645180483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/2352798840645180483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/2352798840645180483'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2008/12/bread-winter-raisin-rye-bread.html' title='A Bread Winter - Raisin Rye Bread'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-4123082486314572580</id><published>2008-11-19T13:59:00.006-05:00</published><updated>2008-11-19T14:27:42.286-05:00</updated><title type='text'>Ran through my first pair of shoes</title><content type='html'>Last week I was looking at my running log and decided to see how many miles I had accumulated on my running shoes. I did some quick math and realized I was up to 400 miles! I did a quick search on Google and found most people recommended replacing running shoes in the 300 - 500 mile range.&lt;br /&gt;&lt;br /&gt;That is a first for me. I ran through my first pair of shoes. This probably isn't a big deal for most people, but it feels like a big accomplishment to me.&lt;br /&gt;&lt;br /&gt;I went to my local running store, &lt;a href="http://www.marathonsports.com/"&gt;Marathon Sports&lt;/a&gt;, and looked around. My old shoes had been quite good and I was hoping to just get the same model again. Unfortunately, Brooks has since discontinued the model I had. So I got another similar model from Brooks. They are, as the sales guy put it, "very green".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_fEZ5Tx0vOc0/SSRm0YV17XI/AAAAAAAAAA4/LlCFhNOz11Y/s1600-h/defyance+shoe.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 147px;" src="http://1.bp.blogspot.com/_fEZ5Tx0vOc0/SSRm0YV17XI/AAAAAAAAAA4/LlCFhNOz11Y/s320/defyance+shoe.jpg" alt="" id="BLOGGER_PHOTO_ID_5270450514003619186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;You can see more info about them &lt;a href="http://www.brooksrunning.com/prod.php?p=1100371D&amp;amp;k=123205"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So far, the new shoes are working out very well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-4123082486314572580?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/4123082486314572580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=4123082486314572580' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/4123082486314572580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/4123082486314572580'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2008/11/ran-through-my-first-pair-of-shoes.html' title='Ran through my first pair of shoes'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_fEZ5Tx0vOc0/SSRm0YV17XI/AAAAAAAAAA4/LlCFhNOz11Y/s72-c/defyance+shoe.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-4045370008398615819</id><published>2008-10-09T23:39:00.003-04:00</published><updated>2008-10-14T01:29:09.595-04:00</updated><title type='text'>Triathlon goals - shooting for average!</title><content type='html'>Okay, so here are my goals:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The big goal: Finish the sprint triathlon!&lt;/li&gt;&lt;/ul&gt; Secondary goals:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Finish the swim at a pace of 1 minute per 50 yards. If my calculations are correct, that would be about 18 minutes for half a mile.&lt;/li&gt;&lt;li&gt;Finish the bike with an average speed of 15 miles an hour. That would be about 45 minutes of biking for the ~12 mile course.&lt;/li&gt;&lt;li&gt;Finish the run with an average pace of 7:30 minutes per mile. That would be a little over 23 minutes for a 3.1 mile course.&lt;/li&gt;&lt;/ul&gt;If we add 5 minutes for transitions, that would put my overall time for the race at a little over 90 minutes. Of course, the overall time would be different if the race distances vary.&lt;br /&gt;&lt;br /&gt;I really don't know my swimming speed or my biking speed, so I don't have any personal data to use as a basis for those goals. So, here's what I did: I found the results of a fairly large sprint triathlon and used the median result from my age group for each event. (You can see the race results I found &lt;a href="http://www.racecenter.com/kirklandtri/"&gt;here&lt;/a&gt; and &lt;a href="http://www.racecenter.com/results/2008/res_kx08.htm"&gt;here&lt;/a&gt;.)&lt;br /&gt;&lt;br /&gt;The running goal is going to take some effort. Right now, my usual running course is a somewhat hilly 3.5 miles. If I push myself I can run it at a 7:45 min/mile pace. So, my goal for the triathlon is to beat that pace by a decent amount after swimming and biking. I think that is going to require a significant amount of training.&lt;br /&gt;&lt;br /&gt;I am currently running 3 or 4 times a week. If I increase my workout frequency (not necessarily running) I think that will make a big difference in my running pace. I'm thinking about running 3 days a week and increasing my distance to about 5 or 6 miles, swimming 2 days a week and biking 1 day a week. It's just a thought right now, I'll let you know how it goes.&lt;br /&gt;&lt;br /&gt;Wish me luck!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-4045370008398615819?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/4045370008398615819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=4045370008398615819' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/4045370008398615819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/4045370008398615819'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2008/10/triathlon-goals-shooting-for-average.html' title='Triathlon goals - shooting for average!'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-9205981567146078954</id><published>2008-10-09T17:52:00.005-04:00</published><updated>2008-10-09T23:24:40.232-04:00</updated><title type='text'>Triathlon here I come</title><content type='html'>Watching &lt;a href="http://kmacktriguy.blogspot.com/2008/09/normal-0-false-false-false.html"&gt;Kevin finish the Ironman in Wisconsin&lt;/a&gt; and following &lt;a href="http://kenschulz.blogspot.com/2007/07/race-review-ironman-lake-placid-2007.html"&gt;Ken's Ironman&lt;/a&gt; have inspired me to train for a triathlon. I'm not crazy, so I won't be aiming for an Ironman. I'm going to train for a &lt;a href="http://en.wikipedia.org/wiki/Triathlon#Standard_race_distances"&gt;sprint triathlon&lt;/a&gt;. It should be about 1/2 mile swim, a 12 mile bike ride and a 3 mile run.&lt;br /&gt;&lt;br /&gt;It's too late to train for one this season, so I'll have to wait until next year before I can enter a race. I'm trying to get a bunch of people to do it, so if you are interested, just let me know.&lt;br /&gt;&lt;br /&gt;I started consistently running at the beginning of last summer and I have really been enjoying it. Right now, my typical run is about 3.5 miles and I usually go 3 or 4 times a week. I feel very comfortable running, so barring injury, I don't think the run will be a problem.&lt;br /&gt;&lt;br /&gt;All my biking is in the city, running errands, grocery shopping, going to the farmers market and the occasional recreational ride on the &lt;a href="http://www.minutemanbikeway.org/Pages/basics.html"&gt;Minuteman bikeway&lt;/a&gt;. Depending on the race course, the bike portion of the triathlon may be difficult for me. I will need to train on the bike to make sure I am ready for it.&lt;br /&gt;&lt;br /&gt;I don't have a road bike at the moment. I have a nice mountain bike for off road use and a heavy-as-a-tank hybrid bike for city use. I will have to keep my eye on craigslist to see if I can pick up a decent bike. The idea of building a road bike, including the wheels, is appealing. It could be a nice project for the winter, but it would be an expensive project.&lt;br /&gt;&lt;br /&gt;For me, the most difficult part of the triathlon will be the swim. I can keep myself from drowning, but I am not very good at doing the crawl. I have started training for the swim portion of the race and so far I am enjoying it. I think it will be nice to go swimming in the winter when the conditions aren't favorable to running.&lt;br /&gt;&lt;br /&gt;My next post will be my goals for the triathlon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-9205981567146078954?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/9205981567146078954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=9205981567146078954' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/9205981567146078954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/9205981567146078954'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2008/10/triathlon-here-i-come.html' title='Triathlon here I come'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-4299156657584743471</id><published>2008-09-18T14:46:00.002-04:00</published><updated>2008-09-18T15:02:10.334-04:00</updated><title type='text'>Linq2Sql Designer error: Unspecified Error on table rename</title><content type='html'>At work today, we hit an annoying little bug with the Linq2Sql DBML designer in VS 2008 SP1.&lt;br /&gt;&lt;br /&gt;When trying to rename a table in the designer, the rename would fail with the message: Unspecified Error&lt;br /&gt;&lt;br /&gt;I found this &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3738879&amp;amp;SiteID=1&amp;amp;pageid=0"&gt;thread on the MSDN forums&lt;/a&gt; and tried moving all the includes inside of the namespace (what a strange bug/fix) but that did not work.&lt;br /&gt;&lt;br /&gt;So here is our workaround:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Open the DBML file in an editor, not the designer. (Right click on the .dbml file, select "open with" and choose the XML editor.)&lt;/li&gt;&lt;li&gt;Find the table you want to change and change the name attribute of the type element.&lt;/li&gt;&lt;li&gt;Save your change - Visual Studio will regenerate the designer code with the new name.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Hopefully, this will save you some time if you hit the same problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-4299156657584743471?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/4299156657584743471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=4299156657584743471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/4299156657584743471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/4299156657584743471'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2008/09/linq2sql-designer-error-unspecified.html' title='Linq2Sql Designer error: Unspecified Error on table rename'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-9185675489636311054</id><published>2008-07-03T12:30:00.007-04:00</published><updated>2008-07-03T12:54:22.833-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSA'/><title type='text'>CSA: Week 2</title><content type='html'>On Sunday we went and picked up the 2nd week of our CSA share. Again, we got more greens, radishes, strawberries and beets.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_fEZ5Tx0vOc0/SG0ApQiX7DI/AAAAAAAAAAc/9D9ub9dSZqo/s1600-h/CSA_Week2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_fEZ5Tx0vOc0/SG0ApQiX7DI/AAAAAAAAAAc/9D9ub9dSZqo/s320/CSA_Week2.jpg" alt="" id="BLOGGER_PHOTO_ID_5218828252006050866" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;When we pick up our share we walk down a series of tables of vegetables and get to choose which ones we want. For example, last week we were able to choose one item of each type - so they have red beets, and orange beets, and round beets and cylindrical beets.  You choose what you want and shove it in your bag. (We went with the cylindrical beets and radishes this time.)&lt;br /&gt;&lt;br /&gt;Soon they will start distributing the shares in boxes. I think most of the distribution will be done beforehand and we choose a couple items to customize our share, rather than choosing every single item. Right now, with everyone choosing every item, it takes a little while to get your share.&lt;br /&gt;&lt;br /&gt;The share pickup location is next to our favorite bakery and it seems that most people come in twos. One person waits in the line to pick up their CSA share and one person waits in the line to get bread. It reminded me of when I was as a child, being told of people waiting in line for bread in the former Soviet Union.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_fEZ5Tx0vOc0/SG0DCQl3WQI/AAAAAAAAAAk/6IoLC32ASHE/s1600-h/CSA_Week2_line.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_fEZ5Tx0vOc0/SG0DCQl3WQI/AAAAAAAAAAk/6IoLC32ASHE/s320/CSA_Week2_line.jpg" alt="" id="BLOGGER_PHOTO_ID_5218830880540678402" border="0" /&gt;&lt;/a&gt;It is hard to see, but there are 2 lines here. On the left is the line for the CSA. On the right is the line for the bakery.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_fEZ5Tx0vOc0/SG0DZMfyqfI/AAAAAAAAAAs/kizFg7mi9JQ/s1600-h/CSA_Week2_line2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_fEZ5Tx0vOc0/SG0DZMfyqfI/AAAAAAAAAAs/kizFg7mi9JQ/s320/CSA_Week2_line2.jpg" alt="" id="BLOGGER_PHOTO_ID_5218831274578455026" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-9185675489636311054?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/9185675489636311054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=9185675489636311054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/9185675489636311054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/9185675489636311054'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2008/07/csa-week-2.html' title='CSA: Week 2'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_fEZ5Tx0vOc0/SG0ApQiX7DI/AAAAAAAAAAc/9D9ub9dSZqo/s72-c/CSA_Week2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-7863825986646948680</id><published>2008-07-01T23:01:00.004-04:00</published><updated>2008-07-03T12:54:51.168-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSA'/><title type='text'>CSA: Week 1</title><content type='html'>We joined a &lt;a href="http://en.wikipedia.org/wiki/Community-supported_agriculture"&gt;CSA &lt;/a&gt;this year. If you don't know, CSA stands for Community Supported Agriculture. Essentially, you pay a farmer upfront for a share of the crops during the season. You get whatever is in season at that moment. It is a good way of supporting a local farmer and eating locally grown foods.&lt;br /&gt;&lt;br /&gt;We joined the &lt;a href="http://www.stillmansfarm.com/"&gt;Stillmans Farm&lt;/a&gt; CSA. I don't think the farm is 100% organic, but they call it "Conscientiously Grown". We signed up for a half share.&lt;br /&gt;&lt;br /&gt;We have only had 2 weeks of crops so far, but it has been very exciting for us, since we are food nerds. I thought I would post some pictures of what we are getting. Right now the selection is a bit limited because it is early in the season.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_fEZ5Tx0vOc0/SGrzfI5Ok8I/AAAAAAAAAAU/GgL1fxGzhC8/s1600-h/CSA_Week1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_fEZ5Tx0vOc0/SGrzfI5Ok8I/AAAAAAAAAAU/GgL1fxGzhC8/s320/CSA_Week1.jpg" alt="" id="BLOGGER_PHOTO_ID_5218250834551149506" border="0" /&gt;&lt;/a&gt;We got radishes, beets, strawberries, chard, spinach, arugula, lettuce and some greens that I don't recognize.&lt;br /&gt;&lt;br /&gt;I was out of town last week, so Kate had to eat all of this herself!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-7863825986646948680?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/7863825986646948680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=7863825986646948680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/7863825986646948680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/7863825986646948680'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2008/07/csa-week-1.html' title='CSA: Week 1'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_fEZ5Tx0vOc0/SGrzfI5Ok8I/AAAAAAAAAAU/GgL1fxGzhC8/s72-c/CSA_Week1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-7128428712033490647</id><published>2008-06-03T23:48:00.004-04:00</published><updated>2008-06-04T00:14:51.594-04:00</updated><title type='text'>Great resource: Rob Conery's MVC screencasts.</title><content type='html'>In the past couple days I found a great series of blog posts/screencasts. They are from Rob Conery and he is posting an attempt he is making step-by-step to implement a website using the ASP.Net MVC structure with Test Driven Development.&lt;br /&gt;&lt;br /&gt;I found it very interesting to watch him go through this. It is quite a nice break from the typical Microsoft demos which seem to be a little more marketing and less real world experience.&lt;br /&gt;&lt;br /&gt;It is also interesting to see him code something in a different way than I might and to see how things unfold. I guess you could call it one way pair programming.&lt;br /&gt;&lt;br /&gt;Anyway, I would suggest checking it out. Here is a link to his first post in the series:&lt;br /&gt;&lt;a href="http://blog.wekeroad.com/mvc-storefront/mvc-storefront-part-1/"&gt;http://blog.wekeroad.com/mvc-storefront/mvc-storefront-part-1/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And here is the list of posts in the category he has set up in his blog. You'll have to navigate back in this list to find the earlier posts:&lt;a href="http://blog.wekeroad.com/mvc-storefront/"&gt;&lt;br /&gt;http://blog.wekeroad.com/mvc-storefront/&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;I think one of the most interesting ideas I've picked up from his posts so far is the way he is composing filters using the IQueryable&lt;&gt; interface. For example in his data access layer, he has a method called GetCategories() that returns IQueryable&lt;category&gt;. Then instead of adding a separate method to get a category by an id number, like GetCategory(int id), he creates  an extension method, .WithId(int id) that extends IQueryable&lt;category&gt; so the full call looks something like:&lt;br /&gt;Category c = dataLayer.GetCategories().WithId(4);&lt;br /&gt;&lt;br /&gt;And, because LINQ only executes queries when needed and these filters are part of the expression tree, the filters are reflected in the actual query that hits the database. In this example only the category with id = 4 is pulled back -- the filtering is done at the query level.&lt;br /&gt;&lt;br /&gt;It is a very interesting approach. It cleans up the LINQ code a bit and makes it quite readable. I'll have to fool around with the idea in my own code to see how I like it. You can see some of the filter code &lt;a href="http://www.codeplex.com/mvcsamples/SourceControl/FileView.aspx?itemId=102762&amp;amp;changeSetId=4985"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you have some time and you are interested in the ASP.Net MVC project and test driven development/design, I would highly suggest watching his videos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-7128428712033490647?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/7128428712033490647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=7128428712033490647' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/7128428712033490647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/7128428712033490647'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2008/06/great-resource-rob-conerys-mvc.html' title='Great resource: Rob Conery&apos;s MVC screencasts.'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-1089690012421695674</id><published>2008-05-09T13:27:00.003-04:00</published><updated>2008-05-09T14:00:21.046-04:00</updated><title type='text'>Review: Enjoy Barcelona apartment: "The Amparo"</title><content type='html'>A couple weeks ago, we went to Spain on vacation. For the first week we rented &lt;a href="http://www.enjoy-barcelona.com/barcelona-apartments-details-63-The-Amparo-Apartment-in-Barcelona-gb.html"&gt;"The Amparo"&lt;/a&gt; apartment from &lt;a href="http://www.enjoy-barcelona.com/index-gb.html"&gt;Enjoy Barcelona&lt;/a&gt; in the Barceloneta section of the city.&lt;br /&gt;&lt;br /&gt;The week in Barcelona was a lot of fun, but our apartment was not what we thought it would be. The website lists the apartment with 3 stars - I think that is way too generous. Also, the pictures on their web site are a bit misleading.&lt;br /&gt;&lt;br /&gt;The apartment was dirty, smelled of sewer gases and was quite a bit run down. The toilet top was broken. The bathroom sink and shower were very slow to drain. Floor tiles were popping up in the kitchen. The kitchen was not properly stocked with pots and pans. There were cigarette ashes in the silverware drawer. The sheets were clean, but the blankets smelled. In one room the curtains had fallen off the window and were shoved behind the door.&lt;br /&gt;&lt;br /&gt;It was basically the same level of accommodation as a one star hotel or a hostel, maybe a little worse.&lt;br /&gt;&lt;br /&gt;I think this apartment was overpriced for the condition it was in. It is quite unfortunate because the apartment is in a great location, and with a little work the place could be great.&lt;br /&gt;&lt;br /&gt;I would not stay in this apartment again, and I don't think I would use Enjoy Barcelona again. Their employees were friendly, but I think they are misrepresenting this apartment.&lt;br /&gt;&lt;br /&gt;One good thing that came out of the apartment was that every place we stayed in afterward seemed like luxury. ("These blankets don't smell like body odor! Wow, how fancy!")&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-1089690012421695674?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/1089690012421695674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=1089690012421695674' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/1089690012421695674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/1089690012421695674'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2008/05/review-enjoy-barcelona-apartment-amparo.html' title='Review: Enjoy Barcelona apartment: &quot;The Amparo&quot;'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-7783777249188779128</id><published>2008-04-21T13:53:00.002-04:00</published><updated>2008-04-21T13:57:01.860-04:00</updated><title type='text'>Bad picture of Lance in the Boston Marathon</title><content type='html'>I went to the Boston Marathon today and I took this horrible picture of Lance Armstrong. You have to look really closely to find him. He was running in a pack of people and I couldn't pick him out in time to get a good photo.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_fEZ5Tx0vOc0/SAzVNjH8y0I/AAAAAAAAAAM/KwiZe3h0JGA/s1600-h/IMG_1335_2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_fEZ5Tx0vOc0/SAzVNjH8y0I/AAAAAAAAAAM/KwiZe3h0JGA/s400/IMG_1335_2.jpg" alt="" id="BLOGGER_PHOTO_ID_5191758899194940226" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-7783777249188779128?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/7783777249188779128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=7783777249188779128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/7783777249188779128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/7783777249188779128'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2008/04/bad-picture-of-lance-in-boston-marathon.html' title='Bad picture of Lance in the Boston Marathon'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_fEZ5Tx0vOc0/SAzVNjH8y0I/AAAAAAAAAAM/KwiZe3h0JGA/s72-c/IMG_1335_2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-6601339645393248973</id><published>2008-03-10T22:32:00.002-04:00</published><updated>2008-03-10T22:49:41.155-04:00</updated><title type='text'>ClickOnce Error: DeploymentDownloadException File Already Exists</title><content type='html'>ClickOnce is OnceAgain acting up. My project was building and publishing fine, but when I went to run the application, it would fail while downloading the new version. The complete stack trace of the error is:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family: courier new;"&gt;System.Deployment.Application.DeploymentDownloadException (Unknown subtype)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  - Downloading file://[snip].dll.deploy did not succeed.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  - Source: System.Deployment&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  - Stack trace:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;   at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;   at System.Deployment.Application.SystemNetDownloader.DownloadAllFiles()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;   at System.Deployment.Application.FileDownloader.Download(SubscriptionState subState)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;   at System.Deployment.Application.DownloadManager.DownloadDependencies(SubscriptionState subState, AssemblyManifest deployManifest, AssemblyManifest appManifest, Uri sourceUriBase, String targetDirectory, String group, IDownloadNotification notification, DownloadOptions options)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;   at System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory&amp;amp; downloadTemp)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;   at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState&amp;amp; subState, ActivationDescription actDesc)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;   at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;   at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  --- Inner Exception ---&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  System.IO.IOException&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  - The file 'C:\Users\[username]\AppData\Local\Temp\Deployment\[snip].dll' already exists.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  - Source: mscorlib&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;  - Stack trace:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;   at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;I immediately suspected some recent changes involving the deployment settings. A coworker added some project references to the solution for this application. This resulted in some strange compile errors that basically said the referenced assemblies had to be signed to be marked as prerequisites to the project. When checked the application files (project properties -&gt; publish tab -&gt; application files button) and the assemblies were set to "Include (Auto)" like pretty much everything else. I changed them to "Include" and the application built fine.&lt;br /&gt;&lt;br /&gt;The deployment error above was for one of those assemblies. On a whim I decided to create a new "Download Group" in the application files dialog. That seemed to solve the problem. Why that solved this problem, I don't know.&lt;br /&gt;&lt;br /&gt;As much as I like ClickOnce, it seems to be getting more and more finicky.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-6601339645393248973?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/6601339645393248973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=6601339645393248973' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/6601339645393248973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/6601339645393248973'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2008/03/clickonce-error-deploymentdownloadexcep.html' title='ClickOnce Error: DeploymentDownloadException File Already Exists'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-5064721362363535123</id><published>2008-03-10T22:26:00.003-04:00</published><updated>2008-03-10T22:32:42.689-04:00</updated><title type='text'>ClickOnce Error: The signer's certificate is not valid for signing.</title><content type='html'>Today when I was trying to publish a ClickOnce application that we use internally, I got the following error:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The signer's certificate is not valid for signing.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After looking around and some searching on Google, I was able to find the problem and resolve it. My problem was that the certificate I had been using to sign the ClickOnce deployments had expired. You can view the status of your certificate in Visual Studio, in the project properties window, on the signing tab.&lt;br /&gt;&lt;br /&gt;To fix the problem just create a new certificate by clicking the button titled "Create Test Certificate..." It will prompt you for a password, which I left blank. Once you have the new certificate created you should be able to publish once again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-5064721362363535123?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/5064721362363535123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=5064721362363535123' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/5064721362363535123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/5064721362363535123'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2008/03/clickonce-error-signers-certificate-is.html' title='ClickOnce Error: The signer&apos;s certificate is not valid for signing.'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-3629316749255401740</id><published>2008-02-26T18:04:00.001-05:00</published><updated>2008-02-26T18:10:39.239-05:00</updated><title type='text'>Review: Samsung LN-T3735H</title><content type='html'>About a month ago my girlfriend and I decided to buy a new television. We had been thinking about his for a while.&lt;br /&gt;&lt;br /&gt;I researched different sizes and models. I liked the price of the ViewSonic LCD televisions, but there seemed to be quite a few bad reviews on NewEgg.com. We decided to go with Samsung. According to Best Buy employees and Consumer Reports, Samsung has a good reputation for LCD televisions.&lt;br /&gt;&lt;br /&gt;We looked at different size televisions and we decided that a 37 inch diagonal was good enough. More on that a little later. The Samsung T3735H was exactly what we wanted. It has 3 HDMI inputs, which will be handy to plug in a new DVD player or media center. One of the HDMI inputs is on the side not the back. The screen is 720p. 1080p would be nice, but we probably wouldn't be able to see the difference on a 37 inch screen.&lt;br /&gt;&lt;br /&gt;This Samsung model isn't sold in many places. There were only a couple sites online that sold the model and when you considered shipping and handling all the prices were about the same. We decided to buy the TV from &lt;a href="http://www.bestbuy.com/"&gt;BestBuy.com&lt;/a&gt;*. After some trouble, we were able to schedule delivery for the TV and we got a free wall mounting bracket, which is nice. The price for the TV was around $1050 on sale. After shipping and taxes the price came to right around $1200.&lt;br /&gt;&lt;br /&gt;We also bought a new component audio/video cable to connect the DVD player to the TV. We bought the cable from &lt;a href="http://www.monoprice.com/"&gt;monoprice.com&lt;/a&gt; and I am very happy with it. Cables and accessories tend to be high markup items at retailers like Best Buy. The cable I got from monoprice was very cheap and seems to be very high quality.&lt;br /&gt;&lt;br /&gt;The television was delivered. We moved our old 27 inch TV out of the way and put in the new shiny LCD. Both of us had the same initial reaction: Oh no, this TV is way too big. At the store the 37 inches TVs seems a little small. It seems like 40 inches is the middle of the road. Now that the TV is in my living room, I can't imagine getting a TV any larger than 37 inches.&lt;br /&gt;&lt;br /&gt;I am not a TV expert, but I think this TV is great. HD shows look fantastic. Standard TV looks fine to me -- it seems to be a common complaint that standard tv looks horrible on LCDs. Using an antenna made from a coat hanger (really) I was able to pick up several local HD channels -- all the major broadcast networks. I live in an urban area and the antennas are only about 5 miles away according to &lt;a href="http://www.antennaweb.org/"&gt;antennaweb.org&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The on screen menus and controls for the TV are quite easy to use. There are 3 presets for viewing, each tuned for different environments. Dynamic for brightly lit rooms, standard, and movie for watching TV or movies in low light. I think the remote control is decent, if a bit big. I have an Samsung DVD player that came with 2 remotes. One remote had every button, the second remote just had the commonly used buttons. I wish they had provided a smaller remote for the television.&lt;br /&gt;&lt;br /&gt;There are 2 features which are purely cosmetic. There is a sound that plays when you turn the TV on and off. There is also a blue glowing light on the bottom of the TV. The sound is cute at first, but quickly becomes annoying, espeically late at night when you don't want to wake your neighbors. Luckily, both features can be turned off using the menu system.&lt;br /&gt;&lt;br /&gt;The one thing that is a little odd about this TV is that seems to be not well known. There aren't many places selling it and it isn't even really listed on the Samsung website. I'm not sure if the model is being discontinued or if there is something else going on. With the experience I have had so far, I highly recommend this television.&lt;br /&gt;&lt;br /&gt;* The fun part is that many years ago I work as a consultant on the BestBuy.com website. Also, one of my friends worked on the system that was used to schedule the delivery of the TV to my apartment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-3629316749255401740?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/3629316749255401740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=3629316749255401740' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/3629316749255401740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/3629316749255401740'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2008/02/review-samsung-ln-t3735h.html' title='Review: Samsung LN-T3735H'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-2770578111513948575</id><published>2008-01-24T16:06:00.000-05:00</published><updated>2008-01-24T16:24:52.556-05:00</updated><title type='text'>WCF error: The socket connection was aborted.</title><content type='html'>&lt;span style="font-family:arial;"&gt;I got this error when I called my WCF service:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was '00:00:59.9921880'.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;One of the things I've noticed with WCF is that some of the error messages are not very helpful.&lt;br /&gt;&lt;br /&gt;The actual problem here was that the message was too large and it was exceeding the settings for the binding. I updated my bindings and everything is working fine now. In the MSDN docs, it says these settings are to limit denial of service exposure, so maybe that's why the error message isn't very helpful.&lt;br /&gt;&lt;br /&gt;Here are the settings I updated:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;span style="font-family:arial;"&gt;  maxReceivedMessageSize&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;span style="font-family:arial;"&gt;  maxBufferSize&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;span style="font-family:arial;"&gt;  maxBufferPoolSize&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;I updated these settings on the client and server.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Warning:&lt;/span&gt; I have not done any research into these settings to see exactly what they are. It is quite possible that changing only one of these settings will work and it is also possible that changing these settings may have an adverse impact to your system.&lt;br /&gt;&lt;br /&gt;So, here is the section from my new config file:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;binding name="MyCoolBinding" maxreceivedmessagesize="10000000" maxbuffersize="10000000" maxbufferpoolsize="10000000"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Good luck!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-2770578111513948575?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/2770578111513948575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=2770578111513948575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/2770578111513948575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/2770578111513948575'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2008/01/wcf-error-socket-connection-was-aborted.html' title='WCF error: The socket connection was aborted.'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-5106863726240089892</id><published>2008-01-16T11:07:00.000-05:00</published><updated>2008-01-16T11:21:01.643-05:00</updated><title type='text'>Samsung - Not supported mode with DVD player</title><content type='html'>I was trying to connect my DVD player to my new Samsung TV last night and I kept getting a "Not Supported Mode" error. Nothing I found in the user manual or on Google helped me. Well, after a little trial and error I figured out the problem. I had accidentally connected the cables incorrectly. I am using component video cables and I had switched the red and green cables. I swear I'm not color blind.&lt;br /&gt;&lt;br /&gt;I this helps anyone else that has a similar problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-5106863726240089892?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/5106863726240089892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=5106863726240089892' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/5106863726240089892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/5106863726240089892'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2008/01/samsung-not-supported-mode-with-dvd.html' title='Samsung - Not supported mode with DVD player'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1643780427825331062.post-688347678444890125</id><published>2008-01-09T00:02:00.001-05:00</published><updated>2008-01-09T16:47:53.161-05:00</updated><title type='text'>makecert.exe error: Can't create the key of the subject</title><content type='html'>&lt;p&gt;I hit a snag while trying to create a certificate for WCF work today. I was following directions on another blog, but every time I tried to create the certificate I would get this error:&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;Can't create the key of the subject ('&lt;em&gt;&amp;lt;some guid&amp;gt;&lt;/em&gt;')&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Each time I tried, the GUID would change.&lt;/p&gt;  &lt;p&gt;I'm not sure why it is happening, but I did find a workaround. The directions I was following were to create the certificate in the "LocalMachine" certificate store using the following command:&lt;/p&gt; &lt;span style="font-family:Courier;"&gt;&lt;/span&gt;  &lt;p&gt;&lt;span style="font-family:Courier;"&gt;makecert.exe -sr LocalMachine -ss MY -a sha1 -n CN=Client -sky exchange -pe&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;After some trial and error I discovered I was able to create the certificate in the current user store instead using the following command:&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;makecert.exe -sr &lt;strong&gt;&lt;em&gt;CurrentUser&lt;/em&gt;&lt;/strong&gt; -ss MY -a sha1 -n CN=Client -sky exchange -pe&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;I thought I would post this message to hopefully save others the effort. &lt;br /&gt;Note to the makecert developers: Please provide more useful error messages.&lt;/p&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-size:130%;" &gt;UPDATE:&lt;/span&gt;&lt;br /&gt;I discovered the source of the problem! For some reason, I did not have the appropriate permissions to the directory where the certificates are stored. If you are getting the same error that I was getting, try granting your account (or the admin group, etc.) full control permission to the following directory:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;For more information, see &lt;a href="http://support.microsoft.com/kb/278381"&gt;Microsoft KB article Q278381&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1643780427825331062-688347678444890125?l=nerdwords.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nerdwords.blogspot.com/feeds/688347678444890125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1643780427825331062&amp;postID=688347678444890125' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/688347678444890125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1643780427825331062/posts/default/688347678444890125'/><link rel='alternate' type='text/html' href='http://nerdwords.blogspot.com/2008/01/makecertexe-error-can-create-key-of.html' title='makecert.exe error: Can&amp;#39;t create the key of the subject'/><author><name>DM</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
