<?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-5578844894313070179</id><updated>2012-03-03T07:55:33.080-08:00</updated><title type='text'>Whatever</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default?start-index=101&amp;max-results=100'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>521</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-5918153241731444585</id><published>2012-03-03T07:55:00.000-08:00</published><updated>2012-03-03T07:55:33.087-08:00</updated><title type='text'>ildasm</title><content type='html'>...is a tool for viewing the contents of an assembly. http://www.dotnetuncle.com/Framework/39_assembly_ILDASM.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-5918153241731444585?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/5918153241731444585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/03/ildasm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5918153241731444585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5918153241731444585'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/03/ildasm.html' title='ildasm'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-8523839690466910376</id><published>2012-03-02T22:12:00.002-08:00</published><updated>2012-03-02T22:12:37.530-08:00</updated><title type='text'>If you get "Cannot redirect after HTTP headers have been sent" from a Response.Redirect it means that a different Response.Redirect has happened upstream in code.</title><content type='html'>&lt;p&gt;See: &lt;a href="http://stackoverflow.com/questions/159523/why-do-i-get-cannot-redirect-after-http-headers-have-been-sent-when-i-call-res" target="_blank"&gt;This!&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-8523839690466910376?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/8523839690466910376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/03/if-you-get-cannot-redirect-after-http.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8523839690466910376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8523839690466910376'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/03/if-you-get-cannot-redirect-after-http.html' title='If you get &quot;Cannot redirect after HTTP headers have been sent&quot; from a Response.Redirect it means that a different Response.Redirect has happened upstream in code.'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-1180517178345128171</id><published>2012-03-02T21:19:00.002-08:00</published><updated>2012-03-02T21:24:12.007-08:00</updated><title type='text'>allow for the passing of HTML in form fields with ASP.NET MVC projects</title><content type='html'>&lt;p&gt;&lt;a href="http://www.cryer.co.uk/brian/mswinswdev/ms_vbnet_server_error_potentially_dangerous.htm" target="_blank"&gt;This&lt;/a&gt; post I found suggests putting this in the system.web section of a Web.config file:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;&amp;lt;httpRuntime requestValidationMode="2.0"/&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;...in the name of allowing one to send HTML in form fields in C# 4.0 MVC projects. That said, you will still also need to color methods which return ActionResults that would process such requests with:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;[ValidateInput(false)]&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-1180517178345128171?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/1180517178345128171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/03/allow-for-passing-of-html-in-form.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/1180517178345128171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/1180517178345128171'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/03/allow-for-passing-of-html-in-form.html' title='allow for the passing of HTML in form fields with ASP.NET MVC projects'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-3337054739799167319</id><published>2012-03-02T20:13:00.002-08:00</published><updated>2012-03-02T20:13:34.287-08:00</updated><title type='text'>JsonRequestBehavior.AllowGet</title><content type='html'>&lt;p&gt;&lt;a href="http://forums.asp.net/t/1483387.aspx" target="_blank"&gt;http://forums.asp.net/t/1483387.aspx&lt;/a&gt; explains that in order to allow GET Json requests in MVC 2 or greater that one needs to add JsonRequestBehavior.AllowGet to Action calls like so:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;return Json(new { isAdmin = isVerifiedAdministrator() }, JsonRequestBehavior.AllowGet);&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-3337054739799167319?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/3337054739799167319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/03/jsonrequestbehaviorallowget.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3337054739799167319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3337054739799167319'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/03/jsonrequestbehaviorallowget.html' title='JsonRequestBehavior.AllowGet'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-7975230002806977322</id><published>2012-03-02T18:47:00.000-08:00</published><updated>2012-03-02T18:47:04.584-08:00</updated><title type='text'>SQL Server Express Local Connection String</title><content type='html'>&lt;font style="color:#FFFFFF;"&gt;server=.\sqlexpress;database=&lt;/font&gt;&lt;font style="color:#000000;"&gt;NAMEOFYOURDATABASE&lt;/font&gt;&lt;font style="color:#FFFFFF;"&gt;;Integrated Security=true;&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-7975230002806977322?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/7975230002806977322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/03/sql-server-express-local-connection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/7975230002806977322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/7975230002806977322'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/03/sql-server-express-local-connection.html' title='SQL Server Express Local Connection String'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-3251433478370296046</id><published>2012-03-02T15:02:00.002-08:00</published><updated>2012-03-02T15:02:54.674-08:00</updated><title type='text'>read from the App_Data folder</title><content type='html'>&lt;font style="color:#FFFFFF;"&gt;AttachDBFilename=|DataDirectory|Whatever.MDF&lt;/font&gt; is the bit of a connection string that will allow for reading a .MDF in the App_Data folder.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-3251433478370296046?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/3251433478370296046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/03/read-from-appdata-folder.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3251433478370296046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3251433478370296046'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/03/read-from-appdata-folder.html' title='read from the App_Data folder'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-6871769794131106121</id><published>2012-03-01T19:29:00.001-08:00</published><updated>2012-03-01T19:29:05.860-08:00</updated><title type='text'>localStorage</title><content type='html'>&lt;p&gt;&lt;a href="http://paperkilledrock.com/2010/05/html5-localstorage-part-one/" target="_blank"&gt;This&lt;/a&gt; posting suggests that one may interface with HTML localStorage like so via jQuery:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;localStorage.setItem("name", "Hello World!");&lt;br /&gt;&lt;br /&gt;document.write(localStorage.getItem("name"));&lt;br /&gt;&lt;br /&gt;localStorage.removeItem("name");&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I went to the geek lunch today and part of the conversation at my table had to do with localStorage. One may keep cookies in localStorage and one may rely on localStorage in the event of a loss of connectivity in an SOAesque failover sort of way.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-6871769794131106121?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/6871769794131106121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/03/localstorage.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/6871769794131106121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/6871769794131106121'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/03/localstorage.html' title='localStorage'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-1076728964355409455</id><published>2012-03-01T19:10:00.000-08:00</published><updated>2012-03-01T19:10:18.664-08:00</updated><title type='text'>a nonclustered index in MSSQL</title><content type='html'>&lt;p&gt;I took the SQL I wrote &lt;a href="http://tom-jaeschke.blogspot.com/2012/01/views-vs-solr.html" target="_blank"&gt;here&lt;/a&gt; and put a nonclustered index (an index that does NOT require unique values) on the Name column in the Person table like so:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;CREATE NONCLUSTERED INDEX myindex ON [Person] ( [Name] ASC ) ON [PRIMARY]&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I could then use it like so:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;SELECT * FROM Person WITH (INDEX (myindex))&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I could eventually wash my hands of it like this:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;DROP INDEX myindex ON [Person]&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Some helpful links:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.sqlauthority.com/2010/01/06/sql-server-unique-nonclustered-index-creation-with-ignore_dup_key-on-a-transactional-behavior/" target="_blank"&gt;http://blog.sqlauthority.com/2010/01/06/sql-server-unique-nonclustered-index-creation-with-ignore_dup_key-on-a-transactional-behavior/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://sqlskills.com/BLOGS/KIMBERLY/category/Nonclustered-Indexes.aspx" target="_blank"&gt;http://sqlskills.com/BLOGS/KIMBERLY/category/Nonclustered-Indexes.aspx&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms176118.aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/ms176118.aspx&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-1076728964355409455?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/1076728964355409455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/03/nonclustered-index-in-mssql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/1076728964355409455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/1076728964355409455'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/03/nonclustered-index-in-mssql.html' title='a nonclustered index in MSSQL'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-6669459491146933764</id><published>2012-02-29T15:10:00.002-08:00</published><updated>2012-02-29T15:10:29.602-08:00</updated><title type='text'>finally</title><content type='html'>&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;try {&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;catch {&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;finally {&lt;br /&gt;&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Remember the finally. This is a good place to close that SqlConnection you opened.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-6669459491146933764?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/6669459491146933764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/finally.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/6669459491146933764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/6669459491146933764'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/finally.html' title='finally'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-3282487861733584021</id><published>2012-02-29T09:44:00.001-08:00</published><updated>2012-02-29T09:44:39.591-08:00</updated><title type='text'>classes, delegates, and interfaces are reference types</title><content type='html'>http://msdn.microsoft.com/en-us/library/490f96s2(v=vs.80).aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-3282487861733584021?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/3282487861733584021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/classes-delegates-and-interfaces-are.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3282487861733584021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3282487861733584021'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/classes-delegates-and-interfaces-are.html' title='classes, delegates, and interfaces are reference types'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-404589737740156751</id><published>2012-02-28T23:09:00.004-08:00</published><updated>2012-02-28T23:09:48.363-08:00</updated><title type='text'>I wish I still had my "Udi Dahan" notes.</title><content type='html'>&lt;p&gt;In 2008 I took an SOA training taught by Udi Dahan. I wish I could find my notes. I think they are sitting on a server Headspring has probably gotten rid of. :(&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Udi's NServiceBus wraps MSMQ (Microsoft Message Queuing) and takes the pain out of using it. I say that having never used NServiceBus myself.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.udidahan.com/2010/11/08/logical-and-physical-architecture/" target="_blank"&gt;Here&lt;/a&gt; I found a link to &lt;a href="http://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computing" target="_blank"&gt;here&lt;/a&gt; listing the 8 fallacies of distributed computing:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;The network is reliable.&lt;/li&gt;&lt;li&gt;Latency is zero.&lt;/li&gt;&lt;li&gt;Bandwidth is infinite.&lt;/li&gt;&lt;li&gt;The network is secure.&lt;/li&gt;&lt;li&gt;Topology doesn't change.&lt;/li&gt;&lt;li&gt;There is one administrator.&lt;/li&gt;&lt;li&gt;Transport cost is zero.&lt;/li&gt;&lt;li&gt;The network is homogeneous.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.udidahan.com/wp-content/uploads/soa_distilled_uml_china.pdf" target="_blank"&gt;This&lt;/a&gt; goes into the five types of coupling:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Afferent (if X depends on Y, Y is afferently coupled to X)&lt;/li&gt;&lt;li&gt;Efferent (if X depends on Y, X is efferently coupled to Y)&lt;/li&gt;&lt;li&gt;Platform&lt;/li&gt;&lt;li&gt;Temporal&lt;/li&gt;&lt;li&gt;Spatial&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-404589737740156751?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/404589737740156751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/i-wish-i-still-had-my-udi-dahan-notes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/404589737740156751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/404589737740156751'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/i-wish-i-still-had-my-udi-dahan-notes.html' title='I wish I still had my &quot;Udi Dahan&quot; notes.'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-6512528721622517739</id><published>2012-02-28T22:35:00.002-08:00</published><updated>2012-02-28T22:36:35.189-08:00</updated><title type='text'>searching folders in Windows 7</title><content type='html'>&lt;p&gt;&lt;a href="http://answers.microsoft.com/en-us/windows/forum/windows_7-files/how-do-i-search-a-folder-with-its-subfolders-in/6a84640e-b266-4402-b4ca-2aeb0e805096" target="_blank"&gt;This&lt;/a&gt; touches on searching folders in Windows 7 and in particular suggests that you go to:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;Organize &amp;gt; Folder and search options &amp;gt; Search&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;...from the Orgainize button on the file view for a given folder to tweak search settings.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-6512528721622517739?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/6512528721622517739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/searching-folders-in-windows-7.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/6512528721622517739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/6512528721622517739'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/searching-folders-in-windows-7.html' title='searching folders in Windows 7'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-2982696939773984818</id><published>2012-02-28T07:47:00.003-08:00</published><updated>2012-02-28T07:50:34.128-08:00</updated><title type='text'>more of mutable, immutable, stack, and heap</title><content type='html'>&lt;p&gt;Again: Value types are immutable (they cannot change) while reference types are mutable, and value types go on the stack and reference types go on the heap.&lt;/p&gt;&lt;p&gt;&lt;a href="http://stackoverflow.com/questions/79923/what-and-where-are-the-stack-and-heap" target="_blank"&gt;http://stackoverflow.com/questions/79923/what-and-where-are-the-stack-and-heap&lt;/a&gt; asserts:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;em&gt;THE STACK&lt;/em&gt; is the memory set aside as scratch space for a thread of execution. When a function is called, a block is reserved on the top of the stack for local variables and some bookkeeping data.&lt;/li&gt;&lt;li&gt;&lt;em&gt;THE HEAP&lt;/em&gt; is memory set aside for dynamic allocation. Unlike the stack, there's no enforced pattern to the allocation and deallocation of blocks from the heap; you can allocate a block at any time and free it at any time.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/yz2be5wk.aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/yz2be5wk.aspx&lt;/a&gt; goes into boxing and unboxing which has to do with converting a value type to an object or, in the case of unboxing, an object back to a value type. An example of boxing:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF"&gt;int i = 123;&lt;br /&gt;&lt;br /&gt;object o = i;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;...of unboxing:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF"&gt;o = 123;&lt;br /&gt;&lt;br /&gt;i = (int)o;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This image shows how another piece of memory is allocated in the boxing process. Hence, there are some performance issues with boxing as a value type on the stack gets copied to the heap as it is boxed. (That said, you are very likely better off worrying about how to optimize database integration in the name of reducing lag instead of having angst over boxing and unboxing.)&lt;/p&gt;&lt;img src="http://i.msdn.microsoft.com/dynimg/IC97798.gif" style="border: 2px solid #FFFFFF;" /&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Value objects are not always just simple types:&lt;/p&gt;&lt;p&gt;&lt;a href="http://tom-jaeschke.blogspot.com/2011/12/entities-have-both-state-and-lifecycle.html" target="_blank"&gt;http://tom-jaeschke.blogspot.com/2011/12/entities-have-both-state-and-lifecycle.html&lt;/a&gt; has my notes from when I saw Paul Rayner speak on DDD. He suggested that Eric Evans suggests that objects which are not entities (and thus do not have a lifecycle) should be (if not DTOs) value types. Examples given of value domain objects that one might speak about in ubiquitous language were:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Warranty (no lifecycle, once it's set its dates and conditions are not going to change)&lt;/li&gt;&lt;li&gt;Terms &amp; Conditions (same thing)&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-2982696939773984818?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/2982696939773984818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/more-of-mutable-immutable-stack-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2982696939773984818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2982696939773984818'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/more-of-mutable-immutable-stack-and.html' title='more of mutable, immutable, stack, and heap'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-8687082215541825130</id><published>2012-02-27T15:42:00.000-08:00</published><updated>2012-02-27T15:42:06.321-08:00</updated><title type='text'>mutable, immutable, stack, and heap</title><content type='html'>value types are immutable (they cannot change) while reference types are mutable &lt;br /&gt;&lt;br /&gt;value types go on the stack and reference types go on the heap &lt;br /&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/79923/what-and-where-are-the-stack-and-heap" target="_blank"&gt;http://stackoverflow.com/questions/79923/what-and-where-are-the-stack-and-heap&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-8687082215541825130?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/8687082215541825130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/mutable-immutable-stack-and-heap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8687082215541825130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8687082215541825130'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/mutable-immutable-stack-and-heap.html' title='mutable, immutable, stack, and heap'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-4676420927012543448</id><published>2012-02-27T15:29:00.000-08:00</published><updated>2012-02-27T15:29:15.113-08:00</updated><title type='text'>of architecture</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee658117.aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/ee658117.aspx&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.m.wikipedia.org/wiki/Event-driven_architecture" target="_blank"&gt;http://en.m.wikipedia.org/wiki/Event-driven_architecture&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-4676420927012543448?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/4676420927012543448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/of-architecture.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4676420927012543448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4676420927012543448'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/of-architecture.html' title='of architecture'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-8152359331102027216</id><published>2012-02-26T18:42:00.002-08:00</published><updated>2012-02-26T18:42:29.911-08:00</updated><title type='text'>Jake Folio knows CSS3</title><content type='html'>&lt;a href="http://speakerdeck.com/u/jakefolio/p/css-selectors-the-next-generation" target="_blank"&gt;http://speakerdeck.com/u/jakefolio/p/css-selectors-the-next-generation&lt;/a&gt; is the slide deck from a very informative talk.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-8152359331102027216?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/8152359331102027216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/jake-folio-knows-css3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8152359331102027216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8152359331102027216'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/jake-folio-knows-css3.html' title='Jake Folio knows CSS3'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-5986425148179878543</id><published>2012-02-26T18:33:00.001-08:00</published><updated>2012-02-26T18:34:19.570-08:00</updated><title type='text'>http://www.w3schools.com/html5/html5_intro.asp</title><content type='html'>&lt;a href="http://www.w3schools.com/html5/html5_intro.asp" target="_blank"&gt;http://www.w3schools.com/html5/html5_intro.asp&lt;/a&gt; is the w3schools.com overview of HTML 5. As modern as this may be, it still comes with an .asp extension!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-5986425148179878543?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/5986425148179878543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/httpwwww3schoolscomhtml5html5introasp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5986425148179878543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5986425148179878543'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/httpwwww3schoolscomhtml5html5introasp.html' title='http://www.w3schools.com/html5/html5_intro.asp'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-9046458695874168306</id><published>2012-02-26T18:17:00.001-08:00</published><updated>2012-02-26T18:18:52.199-08:00</updated><title type='text'>CSS3 drop down menus</title><content type='html'>&lt;p&gt;&lt;a href="http://www.htmlgoodies.com/html5/tutorials/create-drop-down-menus-with-css3.html#fbid=LCLjK-3H7T9" target="_blank"&gt;http://www.htmlgoodies.com/html5/tutorials/create-drop-down-menus-with-css3.html#fbid=LCLjK-3H7T9&lt;/a&gt; shows off making drop down menus without the need for JavaScript to hide and unhide things. Use logic like this:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;.drop-menu:hover .sub-menu {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;display: inline-block;&lt;br /&gt;&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-9046458695874168306?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/9046458695874168306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/css3-drop-down-menus.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/9046458695874168306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/9046458695874168306'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/css3-drop-down-menus.html' title='CSS3 drop down menus'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-4978864068046653458</id><published>2012-02-26T18:11:00.000-08:00</published><updated>2012-02-26T18:11:04.544-08:00</updated><title type='text'>css selectors</title><content type='html'>&lt;a href="http://www.456bereastreet.com/archive/200601/css_3_selectors_explained/" target="_blank"&gt;http://www.456bereastreet.com/archive/200601/css_3_selectors_explained/&lt;/a&gt; is a good cheatsheet on CSS3 selectors.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-4978864068046653458?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/4978864068046653458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/css-selectors.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4978864068046653458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4978864068046653458'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/css-selectors.html' title='css selectors'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-4277488661109276524</id><published>2012-02-24T22:53:00.003-08:00</published><updated>2012-02-24T22:54:31.905-08:00</updated><title type='text'>How to deal with phone number hyperlinks???</title><content type='html'>&lt;p&gt;I found &lt;a href="http://stackoverflow.com/questions/3736807/remove-styling-of-telephone-numbers" target="_blank"&gt;this posting&lt;/a&gt; on getting rid of phone number hyperlinks. It suggests turning them off like so:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;&amp;lt;meta name="format-detection" content="telephone=no"&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;...and on like so:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;&amp;lt;a href="tel:1-408-555-5555"&amp;gt;1-408-555-5555&amp;lt;/a&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I have yet to try it.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-4277488661109276524?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/4277488661109276524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/how-to-deal-with-phone-number.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4277488661109276524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4277488661109276524'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/how-to-deal-with-phone-number.html' title='How to deal with phone number hyperlinks???'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-512399764681512098</id><published>2012-02-23T20:32:00.000-08:00</published><updated>2012-02-23T20:32:22.053-08:00</updated><title type='text'>of hero knowledge</title><content type='html'>&lt;a href="http://www.rational-scrum.com/2010/02/why-heroes-are-bad/" target="_blank"&gt;http://www.rational-scrum.com/2010/02/why-heroes-are-bad/&lt;/a&gt; is a blog posting on why being saved by a hero really isn't a good thing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-512399764681512098?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/512399764681512098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/of-hero-knowledge.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/512399764681512098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/512399764681512098'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/of-hero-knowledge.html' title='of hero knowledge'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-5337044241457690994</id><published>2012-02-23T19:57:00.000-08:00</published><updated>2012-02-23T19:57:18.858-08:00</updated><title type='text'>Thank you AMD!</title><content type='html'>...for six months of wonderful employment. I'm sad that today was my last. I've learned much on our project! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-5337044241457690994?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/5337044241457690994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/thank-you-amd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5337044241457690994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5337044241457690994'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/thank-you-amd.html' title='Thank you AMD!'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-1065238976167525973</id><published>2012-02-23T15:49:00.002-08:00</published><updated>2012-02-23T15:50:11.631-08:00</updated><title type='text'>use .ContainsKey to check for an existing key in a Dictionary in C#</title><content type='html'>&lt;p&gt;&lt;a href="http://www.dotnetperls.com/dictionary" target="_blank"&gt;This&lt;/a&gt; told me about this:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;if (!Foo.ContainsKey(person.Id.ToString()))&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Foo.Add(person.Id.ToString(), person.Name);&lt;br /&gt;&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-1065238976167525973?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/1065238976167525973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/use-containskey-to-check-for-existing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/1065238976167525973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/1065238976167525973'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/use-containskey-to-check-for-existing.html' title='use .ContainsKey to check for an existing key in a Dictionary in C#'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-8793588363199467016</id><published>2012-02-23T14:34:00.002-08:00</published><updated>2012-02-23T14:34:44.669-08:00</updated><title type='text'>using .Concat() with .Distinct() to get a list of T from two sources without duplicates</title><content type='html'>&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;var allBazes = Foo.GetBazes(qux).Concat(Bar.GetBazes(qux)).Distinct().ToList();&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-8793588363199467016?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/8793588363199467016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/using-concat-with-distinct-to-get-list.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8793588363199467016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8793588363199467016'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/using-concat-with-distinct-to-get-list.html' title='using .Concat() with .Distinct() to get a list of T from two sources without duplicates'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-8858235306696373825</id><published>2012-02-23T08:38:00.001-08:00</published><updated>2012-02-23T08:38:27.618-08:00</updated><title type='text'>no duplicates in a C# HashSet!</title><content type='html'>&lt;a href="http://stackoverflow.com/questions/5778719/hashset-net4-isnt-ignoring-duplicates-in-c-sharp" target="_blank"&gt;I added stuff to a HashSet&amp;lt;Guid&amp;gt; and it ignored the duplicates!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-8858235306696373825?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/8858235306696373825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/no-duplicates-in-c-hashset.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8858235306696373825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8858235306696373825'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/no-duplicates-in-c-hashset.html' title='no duplicates in a C# HashSet!'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-1021404873422071049</id><published>2012-02-22T19:58:00.001-08:00</published><updated>2012-02-22T19:58:43.758-08:00</updated><title type='text'>phone number hyperlinks irritate me</title><content type='html'>http://www.petefreitag.com/item/751.cfm touches on getting rid of the ones imposed by Skype.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-1021404873422071049?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/1021404873422071049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/phone-number-hyperlinks-irritate-me.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/1021404873422071049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/1021404873422071049'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/phone-number-hyperlinks-irritate-me.html' title='phone number hyperlinks irritate me'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-3045155084166828501</id><published>2012-02-22T19:26:00.000-08:00</published><updated>2012-02-22T19:26:04.920-08:00</updated><title type='text'>hexagons!</title><content type='html'>I figured out how to make an endless grid of hexagons spiral outwards from a central point: see: http://www.damisam.com/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-3045155084166828501?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/3045155084166828501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/hexagons.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3045155084166828501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3045155084166828501'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/hexagons.html' title='hexagons!'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-6429668034056771540</id><published>2012-02-22T17:26:00.001-08:00</published><updated>2012-02-22T17:26:26.728-08:00</updated><title type='text'>web safe fonts</title><content type='html'>&lt;a href="http://www.w3schools.com/cssref/css_websafe_fonts.asp" target="_blank"&gt;http://www.w3schools.com/cssref/css_websafe_fonts.asp&lt;/a&gt; is a good cheatsheet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-6429668034056771540?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/6429668034056771540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/web-safe-fonts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/6429668034056771540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/6429668034056771540'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/web-safe-fonts.html' title='web safe fonts'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-4977280078551954850</id><published>2012-02-22T11:51:00.001-08:00</published><updated>2012-02-22T11:53:37.093-08:00</updated><title type='text'>when ReSharper hot keys stop working...</title><content type='html'>If ReSharper isn't working, go to &lt;font style="color:#FFFFFF;"&gt;ReSharper &amp;gt; Options... &amp;gt; Visual Studio Integration&lt;/font&gt; and make appropriate changes there. Press the "Apply Scheme" changes when finished. In the worst case scenario go to &lt;a href="http://www.jetbrains.com/resharper/" target="_blank"&gt;www.jetbrains.com/resharper/&lt;/a&gt; to reinstall ReSharper.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-4977280078551954850?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/4977280078551954850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/when-resharper-hot-keys-stop-working.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4977280078551954850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4977280078551954850'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/when-resharper-hot-keys-stop-working.html' title='when ReSharper hot keys stop working...'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-7311025972717339645</id><published>2012-02-21T12:00:00.001-08:00</published><updated>2012-02-21T12:00:18.745-08:00</updated><title type='text'>MSSQL Triggers and @@IDENTITY and SCOPE_IDENTITY()</title><content type='html'>&lt;p&gt;I took the SQL &lt;a href="http://tom-jaeschke.blogspot.com/2012/01/views-vs-solr.html" target="_blank"&gt;here&lt;/a&gt; and added this to it:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;CREATE TRIGGER dbo.AddressTrigger&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ON dbo.Address&lt;br /&gt;&lt;br /&gt;AFTER INSERT&lt;br /&gt;&lt;br /&gt;AS&lt;br /&gt;&lt;br /&gt;INSERT INTO Person (PersonId, Name, AddressId)&lt;br /&gt;&lt;br /&gt;VALUES (NEWID(),'I need a name','1ba51989-84fb-4a61-8c35-9e6a007bc0fb')&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;In doing so I created a trigger that will fire whenever a row is inserted into the Address table. The trigger will make a new row in the Person table. I wanted the process to assign the Person the Address of the Address just created, but I find in hard to know what the uniqueidentifier most recently used is. :(&lt;/p&gt;&lt;p&gt;I found this stuff in Googling to figure out the above:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=5zyQIt-8NRQ" target="_blank"&gt;http://www.youtube.com/watch?v=5zyQIt-8NRQ&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.kodyaz.com/articles/sql-trigger-example-in-sql-server-2008.aspx" target="_blank"&gt;http://www.kodyaz.com/articles/sql-trigger-example-in-sql-server-2008.aspx&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/42648/best-way-to-get-identity-of-inserted-row" target="_blank"&gt;http://stackoverflow.com/questions/42648/best-way-to-get-identity-of-inserted-row&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.kodyaz.com/articles/sql-trigger-example-in-sql-server-2008.aspx" target="_blank"&gt;http://www.kodyaz.com/articles/sql-trigger-example-in-sql-server-2008.aspx&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://vyaskn.tripod.com/retrieve_guid_value_like_identity.htm" target="_blank"&gt;http://vyaskn.tripod.com/retrieve_guid_value_like_identity.htm&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Some of the above touches on &lt;font style="color:#FFFFFF;"&gt;@@IDENTITY&lt;/font&gt; and &lt;font style="color:#FFFFFF;"&gt;SCOPE_IDENTITY()&lt;/font&gt; would have been handy for solving the problem above if I were using ints for ids instead of guids.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-7311025972717339645?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/7311025972717339645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/mssql-triggers-and-identity-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/7311025972717339645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/7311025972717339645'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/mssql-triggers-and-identity-and.html' title='MSSQL Triggers and @@IDENTITY and SCOPE_IDENTITY()'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-6804647933587115907</id><published>2012-02-21T08:09:00.002-08:00</published><updated>2012-02-21T08:36:54.509-08:00</updated><title type='text'>It's OK to feel conflicted.</title><content type='html'>&lt;img src="http://img.photobucket.com/albums/v629/Kuruni/Store/leng-trap.jpg" style="float: right; margin-left: 5px; margin-bottom: 2px;" /&gt;&lt;br /&gt;&lt;p&gt;It's very often best to just admit that you're not 100% sure you want what you think you want. If you have a voice inside saying "I think I want that glowy grabme, but I wish I also had a way to change my mind once I put my hands on it" such a thought is not only normal, but healthy. The nature of the Agile process allows one to push big commitments as far down the pipe as possible to allow all parties involved to have some time to chew on whether or not they really want to do a specific thing. In building a jigsaw puzzle, when one picks up a given puzzle piece, rotates it in hand, and chews on if he/she really wants to use it, typically one has the benefit of surveying how all of the other pieces have come together to date and thus the current shape of things effects the decision at hand more than any other factor might. It is good to have all of the information possible to make an informed decision and it is good to a make decisions that will allow you to make such informed decisions. Running a project with an Agile process will allow one to make informed decisions a lot more so than a Waterfall process.&lt;/p&gt;&lt;p&gt;We are just now starting an Agile process. We are fighting our way through some of the pain points, such as not baking enough story points. We are doing better. We are in a second leg of our project.&lt;/p&gt;&lt;p&gt;In the first leg: A liaison (middleman) between our team and the product owners had written a huge functional spec around what he felt the users wanted and we were trying to jam hunks of the Word document into stories and we were... pretending to have an Agile process around the pseudostories.&lt;/p&gt;&lt;p&gt;There is not an Agile process without stakeholder feedback however. We were chipping away at the functional spec in a Waterfall manner.&lt;/p&gt;&lt;p&gt;Eventually the middleman's management style caught up to him and he felt the need to quit. In his absence we started doing things the right way. We are now interfacing directly with the customers that we had been "protected from."&lt;/p&gt;&lt;p&gt;That said, plenty of time has been wasted in going down tangents:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;We were to build an autonaming feature for a particular object. We spent time planning for it and debating it. It turns out that the stakeholders didn't want it at all. It was an imposition by the middleman.&lt;/li&gt;&lt;li&gt;We abstracted the name for another object out to a separate database table in the name of... well, I don't understand why we did it. I think it had to do with making sure that no two objects have an identical name. It doesn't really make sense. The middleman wanted it. It was in the functional spec.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I've now seen firsthand, on the same project, the difference between Waterfall and Agile. I wanted to share my tale. The lesson: Don't try to have all of the answers upfront.&lt;/p&gt;&lt;p&gt;It's OK to feel conflicted.&lt;/p&gt;&lt;div style="height: 400px;"&gt;&lt;div style="margin-left:-180px; position:absolute; z-index: 5;"&gt;&lt;img src="http://a.yfrog.com/img404/6053/ty34.jpg" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-6804647933587115907?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/6804647933587115907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/its-ok-to-feel-conflicted.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/6804647933587115907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/6804647933587115907'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/its-ok-to-feel-conflicted.html' title='It&apos;s OK to feel conflicted.'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-2400250647470495844</id><published>2012-02-21T07:59:00.001-08:00</published><updated>2012-02-21T07:59:51.935-08:00</updated><title type='text'>Closures</title><content type='html'>&lt;p&gt;&lt;a href="http://tom-jaeschke.blogspot.com/2012/01/closures-in-javascript.html" target="_blank"&gt;My previous understand of Closures is bad.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://lostechies.com/derekgreer/2012/02/17/javascript-closures-explained/" target="_blank"&gt;Derek Greer's is much better.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Some of his code:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF"&gt;var createGreeting = function(greeting) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return function (name) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;document.write(greeting + ', ' + name + '.');&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br /&gt;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;helloGreeting = createGreeting("Hello");&lt;br /&gt;&lt;br /&gt;howdyGreeting = createGreeting("Howdy");&lt;/font&gt;&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;td nowrap&gt;&lt;br /&gt;&lt;p&gt;&lt;font style="color:#FFFFFF"&gt;helloGreeting("John");&lt;br /&gt;&lt;br /&gt;helloGreeting("Sally");&lt;br /&gt;&lt;br /&gt;howdyGreeting("John");&lt;br /&gt;&lt;br /&gt;howdyGreeting("Sally");&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;td nowrap&gt;&lt;br /&gt;&lt;p&gt;&lt;font style="color:#000000"&gt;// Hello, John.&lt;br /&gt;&lt;br /&gt;// Hello, Sally.&lt;br /&gt;&lt;br /&gt;// Howdy, John.&lt;br /&gt;&lt;br /&gt;// Howdy, Sally&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-2400250647470495844?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/2400250647470495844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/closures.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2400250647470495844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2400250647470495844'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/closures.html' title='Closures'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-8342514266318009440</id><published>2012-02-20T06:04:00.001-08:00</published><updated>2012-02-20T06:04:24.397-08:00</updated><title type='text'>hand in settings for options in "newing up" a jasmine-jquery widget</title><content type='html'>&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;$(document).ready(function () {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var target = $('#portletwrapper');&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var widget = target.Portlet({&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foo: "bar",&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;baz: "qux"&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&lt;br /&gt;});&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-8342514266318009440?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/8342514266318009440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/hand-in-settings-for-options-in-newing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8342514266318009440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8342514266318009440'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/hand-in-settings-for-options-in-newing.html' title='hand in settings for options in &quot;newing up&quot; a jasmine-jquery widget'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-3523390379693889132</id><published>2012-02-20T05:15:00.001-08:00</published><updated>2012-02-20T05:15:48.081-08:00</updated><title type='text'>wire a click event to a child element within a jasmine-jquery widget</title><content type='html'>&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;setup: function (defaultStateIsOpen) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.options.stateIsOpen = defaultStateIsOpen;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.options.container = self.element;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.definePortletHeader(self.options.container.children(":nth-child(1)"));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.definePortletContent(self.options.container.children(":nth-child(2)"));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.alterAppearanceBasedOnOpenState();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.options.portletHeader.click(function () {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.toggle();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.reveal();&lt;br /&gt;&lt;br /&gt;},&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-3523390379693889132?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/3523390379693889132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/wire-click-event-to-child-element.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3523390379693889132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3523390379693889132'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/wire-click-event-to-child-element.html' title='wire a click event to a child element within a jasmine-jquery widget'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-2130353917738141703</id><published>2012-02-20T04:07:00.001-08:00</published><updated>2012-02-20T04:07:33.125-08:00</updated><title type='text'>using options with jasmine-jquery widgets</title><content type='html'>&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;setup: function (defaultStateIsOpen) {&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var self = this;&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.options.stateIsOpen = defaultStateIsOpen;&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.options.container = self.element;&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.definePortletHeader(self.options.container.children(":nth-child(1)"));&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.definePortletContent(self.options.container.children(":nth-child(2)"));&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.alterAppearanceBasedOnOpenState();&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.reveal();&lt;br/&gt;&lt;br /&gt;},&lt;br/&gt;&lt;br /&gt;alterAppearanceBasedOnOpenState: function () {&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var self = this;&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (self.options.stateIsOpen) {&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.options.portletHeader.children("span").removeClass('ui-icon-plusthick');&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.options.portletHeader.children("span").addClass('ui-icon-minusthick');&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.options.portletContent.removeClass('hide');&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.options.portletHeader.children("span").addClass('ui-icon-plusthick');&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.options.portletHeader.children("span").removeClass('ui-icon-minusthick');&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;self.options.portletContent.addClass('hide');&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br/&gt;&lt;br /&gt;},&lt;br/&gt;&lt;br /&gt;options: {&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;stateIsOpen: false, //REQUIRED&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;stateIsPersisted: false&lt;br/&gt;&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-2130353917738141703?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/2130353917738141703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/using-options-with-jasmine-jquery.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2130353917738141703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2130353917738141703'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/using-options-with-jasmine-jquery.html' title='using options with jasmine-jquery widgets'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-2866628415665520247</id><published>2012-02-20T02:58:00.000-08:00</published><updated>2012-02-20T02:58:35.148-08:00</updated><title type='text'>a better posting on method calling with jasmine-jquery</title><content type='html'>&lt;p&gt;&lt;a href="http://tom-jaeschke.blogspot.com/2012/01/how-one-calls-methods-and-passes.html" target="_blank"&gt;This post&lt;/a&gt; on jasmine-jquery method calling was a little confusing for me when I tried to use it for my own reference. So, instead see the following:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;var target = $('#portletwrapper');&lt;br /&gt;&lt;br /&gt;var widget = target.Portlet();&lt;br /&gt;&lt;br /&gt;var act = widget.Portlet('setup', false);&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br/&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;That calls this method:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;setup: function (defaultStateIsOpen) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var self = this;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font style="color:#000000;"&gt;more code here...&lt;/font&gt;&lt;font style="color:#FFFFFF;"&gt;&lt;br /&gt;&lt;br /&gt;},&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-2866628415665520247?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/2866628415665520247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/better-posting-on-method-calling-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2866628415665520247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2866628415665520247'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/better-posting-on-method-calling-with.html' title='a better posting on method calling with jasmine-jquery'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-6901471262734942984</id><published>2012-02-19T14:32:00.000-08:00</published><updated>2012-02-19T14:32:00.513-08:00</updated><title type='text'>test to see if a class exists in a jasmine-jquery widget</title><content type='html'>&lt;p&gt;&lt;a href="https://github.com/velesin/jasmine-jquery" target="_blank"&gt;https://github.com/velesin/jasmine-jquery&lt;/a&gt; offers that one may use this trick to see if an element has a class or not:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;expect($('#foo')).not.toHaveClass('hide');&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-6901471262734942984?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/6901471262734942984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/test-to-see-if-class-exists-in-jasmine.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/6901471262734942984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/6901471262734942984'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/test-to-see-if-class-exists-in-jasmine.html' title='test to see if a class exists in a jasmine-jquery widget'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-6693774846957584976</id><published>2012-02-19T14:09:00.001-08:00</published><updated>2012-02-19T14:09:08.390-08:00</updated><title type='text'>latch onto the first two divs within a div in a jasmine-jquery widget using jQUery's nth-child</title><content type='html'>&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;self.options.container = container;&lt;br /&gt;&lt;br /&gt;self.definePortletHeader(self.options.container.children(":&lt;a href="http://api.jquery.com/nth-child-selector/" target="_blank"&gt;nth-child&lt;/a&gt;(1)"));&lt;br /&gt;&lt;br /&gt;self.definePortletContent(self.options.container.children(":&lt;a href="http://api.jquery.com/nth-child-selector/" target="_blank"&gt;nth-child&lt;/a&gt;(2)"));&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-6693774846957584976?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/6693774846957584976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/latch-onto-first-two-divs-within-div-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/6693774846957584976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/6693774846957584976'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/latch-onto-first-two-divs-within-div-in.html' title='latch onto the first two divs within a div in a jasmine-jquery widget using jQUery&apos;s nth-child'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-5934621710251072610</id><published>2012-02-19T13:38:00.001-08:00</published><updated>2012-02-19T13:38:57.635-08:00</updated><title type='text'>noolog.com</title><content type='html'>...will allow you to cast a url to sort of a barcode image and Google Googles will allow you to get it back into url format.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-5934621710251072610?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/5934621710251072610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/noologcom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5934621710251072610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5934621710251072610'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/noologcom.html' title='noolog.com'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-1059440360326855096</id><published>2012-02-17T06:08:00.001-08:00</published><updated>2012-02-17T06:08:11.398-08:00</updated><title type='text'>What is long polling?</title><content type='html'>&lt;p&gt;I fished the following out of &lt;a href="http://www.quora.com/What-is-long-polling-in-a-web-framework" target="_blank"&gt;here&lt;/a&gt;:&lt;/p&gt;&lt;p&gt;In web programming, it is an emulation of pushing data, implemented by repeated polling with delayed response.For instance, data may be "pushed" to an HTTP client by using a long-standing HTTP request with protracted response, hence the term "long poll".  A true push data model is not otherwise available to the client because it cannot receive incoming HTTP connections.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-1059440360326855096?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/1059440360326855096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/what-is-long-polling.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/1059440360326855096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/1059440360326855096'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/what-is-long-polling.html' title='What is long polling?'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-8510634520633748258</id><published>2012-02-16T12:17:00.001-08:00</published><updated>2012-02-16T12:17:35.439-08:00</updated><title type='text'>at startup</title><content type='html'>&lt;p&gt;Try to get around the problem in which an inappropriate project defaults to be the starup project in a solution with:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;Tools &amp;gt; Options... &amp;gt; Environment &amp;gt; Startup &amp;gt; At startup:&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-8510634520633748258?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/8510634520633748258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/at-startup.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8510634520633748258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8510634520633748258'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/at-startup.html' title='at startup'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-5781084048784086529</id><published>2012-02-16T08:28:00.001-08:00</published><updated>2012-02-16T08:28:35.521-08:00</updated><title type='text'>FOUC</title><content type='html'>...stands for flash of unstyled content&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-5781084048784086529?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/5781084048784086529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/fouc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5781084048784086529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5781084048784086529'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/fouc.html' title='FOUC'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-4302518746655211119</id><published>2012-02-15T11:59:00.001-08:00</published><updated>2012-02-15T11:59:17.818-08:00</updated><title type='text'>http://pastie.org/</title><content type='html'>...seems cool&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-4302518746655211119?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/4302518746655211119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/httppastieorg.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4302518746655211119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4302518746655211119'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/httppastieorg.html' title='http://pastie.org/'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-4896569895274218101</id><published>2012-02-15T07:51:00.001-08:00</published><updated>2012-02-15T07:51:15.209-08:00</updated><title type='text'>jQuery width</title><content type='html'>&lt;p&gt;&lt;a href="http://api.jquery.com/outerWidth/" target="_blank"&gt;outerWidth(true)&lt;/a&gt; is wider than &lt;a href="http://api.jquery.com/outerWidth/" target="_blank"&gt;outerWidth&lt;/a&gt; is wider than &lt;a href="http://api.jquery.com/innerWidth/" target="_blank"&gt;innerWidth&lt;/a&gt; is wider than &lt;a href="http://api.jquery.com/width/" target="_blank"&gt;width&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Widths are gagued without regard to whitespace. One has to use the &amp;amp;nbsp; hack to account for whitespace.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-4896569895274218101?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/4896569895274218101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/jquery-width.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4896569895274218101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4896569895274218101'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/jquery-width.html' title='jQuery width'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-4937848891270442204</id><published>2012-02-15T07:33:00.001-08:00</published><updated>2012-02-15T07:33:14.801-08:00</updated><title type='text'>Craig suggests...</title><content type='html'>If you desire a new build to run, you don't need change code to make this happen. Go to the "Team Explorer" and select builds and "Queue Build".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-4937848891270442204?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/4937848891270442204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/craig-suggests.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4937848891270442204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4937848891270442204'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/craig-suggests.html' title='Craig suggests...'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-8449068091370652832</id><published>2012-02-15T07:31:00.001-08:00</published><updated>2012-02-15T07:31:47.138-08:00</updated><title type='text'>Chosen JavaScript plugin</title><content type='html'>&lt;a href="http://harvesthq.github.com/chosen/" target="_blank"&gt;http://harvesthq.github.com/chosen/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-8449068091370652832?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/8449068091370652832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/chosen-javascript-plugin.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8449068091370652832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8449068091370652832'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/chosen-javascript-plugin.html' title='Chosen JavaScript plugin'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-252293045551267680</id><published>2012-02-15T06:46:00.001-08:00</published><updated>2012-02-15T06:47:33.106-08:00</updated><title type='text'>default in C#</title><content type='html'>&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;&lt;a href="http://www.dotnetperls.com/default" target="_blank"&gt;default&lt;/a&gt;(Foo)&lt;/font&gt; gives the default configuration for the type of Foo. I don't understand it yet.&lt;/p&gt;&lt;p&gt;http://weblogs.asp.net/avnerk/archive/2006/05/21/Non_2D00_generic-default-values-in-C_23003F00_-Why-not_3F002100_.aspx&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-252293045551267680?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/252293045551267680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/default-in-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/252293045551267680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/252293045551267680'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/default-in-c.html' title='default in C#'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-8071853657011678263</id><published>2012-02-15T05:21:00.001-08:00</published><updated>2012-02-15T05:21:50.681-08:00</updated><title type='text'>Joel suggests...</title><content type='html'>&lt;p&gt;Serializing using a stream should side step any default string size limitations. You can do it like this:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;var serializer = new Newtonsoft.Json.JsonSerializer();&lt;br /&gt;&lt;br /&gt;var writer = new StringWriter();&lt;br /&gt;&lt;br /&gt;serializer.Serialize(writer, obj);&lt;br /&gt;&lt;br /&gt;writer.Flush();&lt;br /&gt;&lt;br /&gt;string serializedObject = writer.GetStringBuilder().ToString();&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-8071853657011678263?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/8071853657011678263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/joel-suggests.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8071853657011678263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8071853657011678263'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/joel-suggests.html' title='Joel suggests...'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-3955020303428977417</id><published>2012-02-14T16:02:00.001-08:00</published><updated>2012-02-14T16:02:02.287-08:00</updated><title type='text'>how to find something in an .edmx without scrolling around in hopes of stumbling upon it</title><content type='html'>&lt;ol&gt;&lt;li&gt;double-clicking on the .edmx in the Solution Explorer should open the .edmx in the Model Browser&lt;/li&gt;&lt;li&gt;expand the Entity Types folder&lt;/li&gt;&lt;li&gt;right-click on the desired entity and select "Show in Designer"&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-3955020303428977417?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/3955020303428977417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/how-to-find-something-in-edmx-without.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3955020303428977417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3955020303428977417'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/how-to-find-something-in-edmx-without.html' title='how to find something in an .edmx without scrolling around in hopes of stumbling upon it'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-133837120938342214</id><published>2012-02-14T14:14:00.001-08:00</published><updated>2012-02-14T14:14:06.939-08:00</updated><title type='text'>call stack</title><content type='html'>&lt;p&gt;Open call stack (while debugging) from: Debug &amp;gt; Windows &amp;gt; Call Stack&lt;/p&gt;&lt;p&gt;Use it to see what method is invoking the method which is failing.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-133837120938342214?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/133837120938342214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/call-stack.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/133837120938342214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/133837120938342214'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/call-stack.html' title='call stack'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-3726096810192015106</id><published>2012-02-14T11:37:00.001-08:00</published><updated>2012-02-14T11:37:46.288-08:00</updated><title type='text'>Green Arrow</title><content type='html'>When one sets a breakpoint in Visual Studio and one reaches the breakpoint in executing code, one will notice a green arrow within the breakpoint. The arrow may be dragged upwards to lines of code above the breakpoint and from the green arrow one may step back through code previously run again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-3726096810192015106?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/3726096810192015106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/green-arrow.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3726096810192015106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3726096810192015106'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/green-arrow.html' title='Green Arrow'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-7865258640323190775</id><published>2012-02-10T07:43:00.000-08:00</published><updated>2012-02-10T07:43:03.080-08:00</updated><title type='text'>I monkey with Func</title><content type='html'>&lt;p&gt;I wrote this class:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;using System;&lt;br /&gt;&lt;br /&gt;namespace FuncExperiment.Models&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public class SomethingFunky&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private Func&amp;lt;string&amp;gt; _whatever;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private Func&amp;lt;Int16&amp;gt; _flapdoodle;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public SomethingFunky()&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_whatever = () =&amp;gt; "just getting started";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_flapdoodle = () =&amp;gt; 7;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public string SprayFunc()&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return _whatever();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void PushInStringValue(string value)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_whatever = () =&amp;gt; value;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void PushInIntegerValue(Int16 digit)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_flapdoodle = () =&amp;gt; digit;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void MakeStringFromInteger()&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_whatever = () =&amp;gt; TryToGiveGermanNameForSingleDigit(_flapdoodle());&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private static string TryToGiveGermanNameForSingleDigit(Int16 digit)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;a href="http://tom-jaeschke.blogspot.com/2011/09/trying-to-understand-func.html" target="_blank"&gt;//follow this link to see the guts of this method&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;...and got it under test like so:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;using FuncExperiment.Models;&lt;br /&gt;&lt;br /&gt;using Microsoft.VisualStudio.TestTools.UnitTesting;&lt;br /&gt;&lt;br /&gt;namespace FuncExperiment.Tests&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestClass]&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public class TestsForSomethingFunky&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod]&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void test_constructor()&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SomethingFunky skunk = new SomethingFunky();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreEqual(skunk.SprayFunc(), "just getting started");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod]&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void test_changing_string()&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SomethingFunky skunk = new SomethingFunky();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;skunk.PushInStringValue("this is new");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreEqual(skunk.SprayFunc(), "this is new");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod]&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void test_goofy_German_translation()&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SomethingFunky skunk = new SomethingFunky();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;skunk.PushInIntegerValue(2);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;skunk.MakeStringFromInteger();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreEqual(skunk.SprayFunc(), "zwei");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod]&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void must_explicity_call_integer_to_string_translation()&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SomethingFunky skunk = new SomethingFunky();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;skunk.PushInIntegerValue(2);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreNotEqual(skunk.SprayFunc(), "zwei");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-7865258640323190775?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/7865258640323190775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/i-monkey-with-func.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/7865258640323190775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/7865258640323190775'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/i-monkey-with-func.html' title='I monkey with Func'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-3721220986012919225</id><published>2012-02-09T16:05:00.000-08:00</published><updated>2012-02-09T16:05:06.298-08:00</updated><title type='text'>I'm not going to change my last blog posting (don't have time) but I realize I've botched the name of the class in it.</title><content type='html'>Should not have "Summation" in the name. This was appropriate only before I started refactoring. :P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-3721220986012919225?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/3721220986012919225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/im-not-going-to-change-my-last-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3721220986012919225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3721220986012919225'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/im-not-going-to-change-my-last-blog.html' title='I&apos;m not going to change my last blog posting (don&apos;t have time) but I realize I&apos;ve botched the name of the class in it.'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-7783658356790281485</id><published>2012-02-09T15:55:00.001-08:00</published><updated>2012-02-09T15:56:38.449-08:00</updated><title type='text'>testing private methods in C# with reflection</title><content type='html'>&lt;p&gt;I wrote this class...&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;namespace PrivateMethodTesting.Models&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public class SummationScienceExperiment&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public int DependentVariable { get; private set; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public int IndependentVariable { get; private set; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public double? DivisionCalculation  { get; private set; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public SummationScienceExperiment(int ofStone, int ofClay)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DependentVariable = ofStone;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IndependentVariable = ofClay;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DivisionCalculation = craftDecimal(ofStone, ofClay);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void Update(int ofClay)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IndependentVariable = ofClay;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DivisionCalculation = craftDecimal(DependentVariable, ofClay);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private double? craftDecimal(int ofStone, int ofClay)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (ofClay == 0) return null;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return (double)ofStone/(double)ofClay;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;...and then I wrote the following four tests around it. The last test uses reflection to test the private method.&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;using System;&lt;br /&gt;&lt;br /&gt;using System.Reflection;&lt;br /&gt;&lt;br /&gt;using Microsoft.VisualStudio.TestTools.UnitTesting;&lt;br /&gt;&lt;br /&gt;using PrivateMethodTesting.Models;&lt;br /&gt;&lt;br /&gt;namespace PrivateMethodTesting.Tests&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestClass]&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public class SummationScienceExperimentTests&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod]&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void constructor_should_craft_a_decimal()&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SummationScienceExperiment foo = new SummationScienceExperiment(5,2);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreEqual(5, foo.DependentVariable);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreEqual(2, foo.IndependentVariable);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreEqual(2.5, foo.DivisionCalculation);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod]&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void update_should_craft_a_decimal()&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SummationScienceExperiment foo = new SummationScienceExperiment(5, 2);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foo.Update(4);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreEqual(5, foo.DependentVariable);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreEqual(4, foo.IndependentVariable);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreEqual(1.25, foo.DivisionCalculation);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod]&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void may_divide_zero()&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SummationScienceExperiment foo = new SummationScienceExperiment(0, 2);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreEqual(0, foo.DependentVariable);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreEqual(2, foo.IndependentVariable);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreEqual(0, foo.DivisionCalculation);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod]&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void may_not_divide_by_zero()&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Type type = typeof(SummationScienceExperiment);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var infos = type.GetMethods(BindingFlags.NonPublic|BindingFlags.Instance);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MethodInfo info = infos[3];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SummationScienceExperiment foo = new SummationScienceExperiment(5, 2);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.AreEqual(info.Invoke(foo, new object[] { foo.DependentVariable, 0 }),null);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-7783658356790281485?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/7783658356790281485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/testing-private-methods-in-c-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/7783658356790281485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/7783658356790281485'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/testing-private-methods-in-c-with.html' title='testing private methods in C# with reflection'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-7188189594375351888</id><published>2012-02-09T12:01:00.001-08:00</published><updated>2012-02-09T12:01:15.559-08:00</updated><title type='text'>.Except</title><content type='html'>&lt;p&gt;I stole the following from &lt;a href="http://msdn.microsoft.com/en-us/library/bb300779.aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;double[] numbers1 = { 2.0, 2.1, 2.2, 2.3, 2.4, 2.5 };&lt;br /&gt;&lt;br /&gt;double[] numbers2 = { 2.2 };&lt;br /&gt;&lt;br /&gt;IEnumerable&amp;lt;double&amp;gt; onlyInFirstSet = numbers1.Except(numbers2);&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-7188189594375351888?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/7188189594375351888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/except.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/7188189594375351888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/7188189594375351888'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/except.html' title='.Except'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-292894817760942821</id><published>2012-02-09T08:34:00.000-08:00</published><updated>2012-02-09T08:34:05.010-08:00</updated><title type='text'>Tuple</title><content type='html'>...is a general purpose data shape in ASP.NET (http://www.dotnetperls.com/tuple)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-292894817760942821?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/292894817760942821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/tuple.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/292894817760942821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/292894817760942821'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/tuple.html' title='Tuple'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-909127449289775172</id><published>2012-02-08T15:13:00.001-08:00</published><updated>2012-02-08T15:13:42.706-08:00</updated><title type='text'>Joel's definition of snake case</title><content type='html'>Snake case: punctuation is removed and spaces are replaced by single underscores. Normally the letters share the same case (either UPPER_CASE_EMBEDDED_UNDERSCORE or lower_case_embedded_underscore) but the case can be mixed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-909127449289775172?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/909127449289775172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/joels-definition-of-snake-case.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/909127449289775172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/909127449289775172'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/joels-definition-of-snake-case.html' title='Joel&apos;s definition of snake case'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-444613136449907341</id><published>2012-02-08T12:29:00.001-08:00</published><updated>2012-02-08T12:29:48.268-08:00</updated><title type='text'>cast string to enum</title><content type='html'>&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;Colors colorValue = (Colors) Enum.Parse(typeof(Colors), colorString);&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-444613136449907341?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/444613136449907341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/cast-string-to-enum.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/444613136449907341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/444613136449907341'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/cast-string-to-enum.html' title='cast string to enum'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-7401550646400018397</id><published>2012-02-08T08:17:00.001-08:00</published><updated>2012-02-08T08:17:08.072-08:00</updated><title type='text'>what to do when a file is not associated with Team Foundation Server</title><content type='html'>&lt;ol&gt;&lt;li&gt;right-click on the file in the Soultion Explorer and select "Exclude From Project"&lt;/li&gt;&lt;li&gt;right-click on the file in the Soultion Explorer and select "Include In Project" (if the file does not appear in the Solution Explorer to select: try using the "Show All Files" toggle, an icon, at the top of the Solution Explorer)&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-7401550646400018397?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/7401550646400018397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/what-to-do-when-file-is-not-associated.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/7401550646400018397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/7401550646400018397'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/what-to-do-when-file-is-not-associated.html' title='what to do when a file is not associated with Team Foundation Server'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-8304409261067645208</id><published>2012-02-07T10:34:00.001-08:00</published><updated>2012-02-07T10:40:13.353-08:00</updated><title type='text'>Joel's DynamicCommandInvoker magic to empower wormholes</title><content type='html'>&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;using System;&lt;br /&gt;&lt;br /&gt;using System.Dynamic;&lt;br /&gt;&lt;br /&gt;using System.Diagnostics;&lt;br /&gt;&lt;br /&gt;using System.Linq;&lt;br /&gt;&lt;br /&gt;using OurApp.Core.Repositories;&lt;br /&gt;&lt;br /&gt;using OurApp.Core.Services;&lt;br /&gt;&lt;br /&gt;namespace OurApp.Web.UI.CommandProcessing&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;[DebuggerStepThrough]&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public class DynamicCommandInvoker: DynamicObject, IDynamicCommandInvoker&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private readonly string CommandsNamespace = "";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public DynamicCommandInvoker(string commandNamespace = "")&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.CommandsNamespace = commandNamespace;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;out object result)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result = default(object);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var processorName = BuildCommandProcessorName(binder.Name);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var type = Type.GetType(processorName);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font style="color:#000000;"&gt;//ensure processor type exists and is present in local assembly&lt;/font&gt;&lt;font style="color:#FFFFFF;"&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (type == null) throw new Exception(string.Format("please make sure your&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;command processor class exists and is in the {0} namespace)",&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CommandsNamespace));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var processor = Activator.CreateInstance(type, args);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ResolveDependencies(processor);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font style="color:#000000;"&gt;//ensure processor is an ActionCommand&lt;/font&gt;&lt;font style="color:#FFFFFF;"&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (processor == null || !(processor is CommandBase)) throw new Exception("please&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;make sure your command processor inherits from ActionCommand");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result = ((CommandBase)processor).Process();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return true;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private void ResolveDependencies(object command)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var type = command.GetType();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var props = type.GetProperties(System.Reflection.BindingFlags.Public |&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.Reflection.BindingFlags.Instance).Where(prop =&amp;gt; prop.CanWrite &amp;&amp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;prop.PropertyType.GetInterfaces().Any(iface =&amp;gt; iface == typeof(IRepository) ||&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iface == typeof(IService)));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;props.ForEach(prop =&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var value = ServiceLocator.Get(prop.PropertyType);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (value != null) prop.SetValue(command, value, null);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private string BuildCommandProcessorName(string methodName)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string formatString = CommandsNamespace + ".{0}Command";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return string.Format(formatString, methodName);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public interface IDynamicCommandInvoker&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;}&lt;/font&gt;&lt;p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-8304409261067645208?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/8304409261067645208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/joels-dynamiccommandinvoker-magic-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8304409261067645208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8304409261067645208'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/joels-dynamiccommandinvoker-magic-to.html' title='Joel&apos;s DynamicCommandInvoker magic to empower wormholes'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-1069066384316195579</id><published>2012-02-07T06:53:00.000-08:00</published><updated>2012-02-07T06:53:17.544-08:00</updated><title type='text'>change the title tag of a page with JavaScript</title><content type='html'>&lt;font style="#FFFFFF;"&gt;document.title = "The new title goes here.";&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-1069066384316195579?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/1069066384316195579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/change-title-tag-of-page-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/1069066384316195579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/1069066384316195579'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/change-title-tag-of-page-with.html' title='change the title tag of a page with JavaScript'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-1606776379809379654</id><published>2012-02-06T11:49:00.000-08:00</published><updated>2012-02-06T11:49:16.299-08:00</updated><title type='text'>casting strings to integers or decimals with JavaScript</title><content type='html'>&lt;a href="http://www.javascripter.net/faq/convert2.htm" target="_blank"&gt;http://www.javascripter.net/faq/convert2.htm&lt;/a&gt; touches on casting strings to both decimal and integer values with JavaScript. &lt;font style="color:#FFFFFF;"&gt;parseFloat(&lt;em&gt;string&lt;/em&gt;)&lt;/font&gt; and &lt;font style="color:#FFFFFF;"&gt;parseInt(&lt;em&gt;string&lt;/em&gt;)&lt;/font&gt; do the needed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-1606776379809379654?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/1606776379809379654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/casting-strings-to-integers-or-decimals.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/1606776379809379654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/1606776379809379654'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/casting-strings-to-integers-or-decimals.html' title='casting strings to integers or decimals with JavaScript'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-8522197654003189283</id><published>2012-02-06T09:54:00.001-08:00</published><updated>2012-02-06T09:54:28.060-08:00</updated><title type='text'>JavaScript redirect</title><content type='html'>&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;window.location = "/home/unsupportedbrowser/";&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-8522197654003189283?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/8522197654003189283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/javascript-redirect.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8522197654003189283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8522197654003189283'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/javascript-redirect.html' title='JavaScript redirect'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-4390881180362704362</id><published>2012-02-06T09:41:00.001-08:00</published><updated>2012-02-06T09:41:51.291-08:00</updated><title type='text'>how to sniff browser specifications with jQuery</title><content type='html'>&lt;p&gt;My last blog posting is terrible. Use this instead:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;&amp;lt;div id="badbrowserspecifications"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script src="/Scripts/jquery-latest.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var ua = $.browser;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var txt = "&amp;lt;p&amp;gt;The browser you are using: ";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (ua.mozilla) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;txt += "Firefox";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (ua.msie) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;txt += "Internet Explorer";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (ua.safari) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ua.chrome = /chrome/.test(navigator.userAgent.toLowerCase());&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (ua.chrome) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;txt += "Chrome";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;txt += "Safari";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (ua.opera) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;txt += "Opera";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;txt += "not Firefox, IE, Safari, Chrome, or Opera";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;txt += "&amp;lt;br /&amp;gt;...versioned at: " + jQuery.browser.version + "&amp;lt;/br&amp;gt;";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;txt += "......is insufficient for our application.&amp;lt;/p&amp;gt;";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;document.getElementById("badbrowserspecifications").innerHTML = txt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Sources for my change of heart:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://api.jquery.com/jQuery.browser/" target="_blank"&gt;http://api.jquery.com/jQuery.browser/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.tutorials2learn.com/2010/10/scripts/detect-browser-version-jquery/" target="_blank"&gt;http://www.tutorials2learn.com/2010/10/scripts/detect-browser-version-jquery/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/3303858/distinguish-chrome-from-safari-using-jquery-browser" target="_blank"&gt;http://stackoverflow.com/questions/3303858/distinguish-chrome-from-safari-using-jquery-browser&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-4390881180362704362?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/4390881180362704362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/how-to-sniff-browser-specifications_06.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4390881180362704362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4390881180362704362'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/how-to-sniff-browser-specifications_06.html' title='how to sniff browser specifications with jQuery'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-2329795758272898667</id><published>2012-02-06T08:53:00.001-08:00</published><updated>2012-02-06T08:53:27.991-08:00</updated><title type='text'>how to sniff browser specifications with JavaScript</title><content type='html'>&lt;p&gt;&lt;a href="http://www.w3schools.com/js/js_browser.asp" target="_blank"&gt;http://www.w3schools.com/js/js_browser.asp&lt;/a&gt; taught me that I may sniff my browser's specifications with JavaScript like so:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;&amp;lt;div id="badbrowserspecifications"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var txt = "&amp;lt;p&amp;gt;The browser you are using: " + navigator.appName + "&amp;lt;br /&amp;gt;";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;txt += "...codenamed " + navigator.appCodeName;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;txt += " and versioned at: " + navigator.appVersion + "&amp;lt;/br&amp;gt;";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;txt += "......is insufficient for our application.&amp;lt;/p&amp;gt;";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;document.getElementById("badbrowserspecifications").innerHTML = txt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-2329795758272898667?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/2329795758272898667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/how-to-sniff-browser-specifications.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2329795758272898667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2329795758272898667'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/how-to-sniff-browser-specifications.html' title='how to sniff browser specifications with JavaScript'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-2076612741104831151</id><published>2012-02-06T08:27:00.000-08:00</published><updated>2012-02-06T08:27:13.150-08:00</updated><title type='text'>how to get rid of the influence of the master page in a Razor view</title><content type='html'>&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;@{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ViewBag.Title = "Unsupported Browser";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Layout = null;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&amp;lt;h1&amp;gt;@ViewBag.Title&amp;lt;/h1&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-2076612741104831151?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/2076612741104831151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/how-to-get-rid-of-influence-of-master.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2076612741104831151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2076612741104831151'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/how-to-get-rid-of-influence-of-master.html' title='how to get rid of the influence of the master page in a Razor view'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-5299373908084919287</id><published>2012-02-06T08:05:00.001-08:00</published><updated>2012-02-06T08:05:44.200-08:00</updated><title type='text'>Request.UserAgent</title><content type='html'>It looks like you may sniff what browser you are using on the C# side with &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.httprequest.useragent.aspx" target="_blank"&gt;Request.UserAgent&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-5299373908084919287?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/5299373908084919287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/requestuseragent.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5299373908084919287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5299373908084919287'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/requestuseragent.html' title='Request.UserAgent'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-7423880171804098745</id><published>2012-02-03T15:07:00.001-08:00</published><updated>2012-02-03T15:07:04.989-08:00</updated><title type='text'>what is this thing called?</title><content type='html'>&lt;p&gt;I wish I understood the &lt;font style="color:#FFFFFF;"&gt;= () =&amp;gt;&lt;/font&gt; operator one uses with Func in C#. I don't even know what it is called. It seems that you may prep a Func within a class (in this case DateHelper) like so:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;public static Func&amp;lt;DateTime&amp;gt; Now = () =&amp;gt; DateTime.UtcNow;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;...and then sort of override it by way of a monkey patch like so in another situation (in this case in a test):&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;DateHelper.Now = () =&amp;gt; new DateTime(2000, 1, 1);&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-7423880171804098745?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/7423880171804098745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/what-is-this-thing-called.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/7423880171804098745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/7423880171804098745'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/what-is-this-thing-called.html' title='what is this thing called?'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-6611305320037004535</id><published>2012-02-03T14:09:00.001-08:00</published><updated>2012-02-03T14:10:42.070-08:00</updated><title type='text'>boilerplate for command processor command tests</title><content type='html'>&lt;img src="http://www.jzmcbride.com/blog/wp-content/uploads/2010/05/Boiler_plate-s-300x201.jpg" /&gt;&lt;br /&gt;&lt;p&gt;&lt;font&gt;using System;&lt;br /&gt;&lt;br /&gt;using System.Web.Mvc;&lt;br /&gt;&lt;br /&gt;using OurApp.Core.Entities;&lt;br /&gt;&lt;br /&gt;using OurApp.Web.UI.CommandProcessing;&lt;br /&gt;&lt;br /&gt;using OurApp.Web.UI.CommandProcessing.Commands;&lt;br /&gt;&lt;br /&gt;using OurApp.Web.UI.Models.InputModels.Orders;&lt;br /&gt;&lt;br /&gt;using Microsoft.VisualStudio.TestTools.UnitTesting;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;namespace OurApp.Tests.Unit.UI.CommandProcessing.Commands&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestClass]&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public class OrderCommandTestsTemplate : CommandTestBase&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[TestMethod]&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void boiler_plate_testing_skeleton_sample()&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//input model&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var inputModel = new OrderInputModel();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//output model&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var order = new Order();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//mock your behaviors&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MocksRegistry.OrderRepositoryMock.Setup(x =&amp;gt; x.Save(order));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Func&amp;lt;ActionResult&amp;gt; success = () =&amp;gt; new ViewResult();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Func&amp;lt;ActionResult&amp;gt; fail = () =&amp;gt; new ViewResult();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//build target&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var command = new EditOrderCommand(inputModel,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new Actions(null).OnSuccess(success).OnFailure(fail));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//excersise sut&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;command.Process();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//expectations&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert.IsFalse(inputModel.Processed);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-6611305320037004535?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/6611305320037004535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/boilerplate-for-command-processor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/6611305320037004535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/6611305320037004535'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/boilerplate-for-command-processor.html' title='boilerplate for command processor command tests'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-2799086788322514208</id><published>2012-02-03T10:42:00.001-08:00</published><updated>2012-02-03T10:42:12.307-08:00</updated><title type='text'>dive into a wormhole</title><content type='html'>&lt;p&gt;This is how you would call our Command Processor from a controller action and dive into a &lt;a href="http://tom-jaeschke.blogspot.com/2012/02/wormholes.html" target="_blank"&gt;wormhole&lt;/a&gt;:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;[HttpPost]&lt;br /&gt;&lt;br /&gt;public ActionResult Edit(OrderInputModel inputModel)&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return CommandProcessor.EditOrder(inputModel, Actions&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.OnSuccess(() =&amp;gt; RedirectToAction("Index"))&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.OnFailure(() =&amp;gt; View("Edit", BuildSelectListsForModel(inputModel))));&lt;br /&gt;&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-2799086788322514208?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/2799086788322514208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/dive-into-wormhole.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2799086788322514208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2799086788322514208'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/dive-into-wormhole.html' title='dive into a wormhole'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-3049085915094470246</id><published>2012-02-03T07:44:00.001-08:00</published><updated>2012-02-03T07:44:13.051-08:00</updated><title type='text'>forbidden URL characters</title><content type='html'>&lt;a href="http://www.moss2007.be/blogs/vandest/archive/2007/12/27/illegal-characters-in-site-url.aspx" target="_blank"&gt;# % &amp;amp; * { } \ : &amp;lt; &amp;gt; ? / +&lt;/a&gt; are not too healthy for URLs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-3049085915094470246?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/3049085915094470246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/forbidden-url-characters.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3049085915094470246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3049085915094470246'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/forbidden-url-characters.html' title='forbidden URL characters'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-3674267482194511553</id><published>2012-02-02T21:39:00.001-08:00</published><updated>2012-02-02T21:39:41.947-08:00</updated><title type='text'>Quartz.NET</title><content type='html'>Joel mentioned today that &lt;a href="http://quartznet.sourceforge.net/" target="_blank"&gt;Quartz.NET&lt;/a&gt; is an enterprise job scheduling engine that we will start to use for, amongst other things, sending out notifications. Apparently it can do things like send out periodic notifications in a manner such that the notification rate will exponentially decay.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-3674267482194511553?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/3674267482194511553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/quartznet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3674267482194511553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3674267482194511553'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/quartznet.html' title='Quartz.NET'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-495970359839574068</id><published>2012-02-02T21:35:00.001-08:00</published><updated>2012-02-02T21:35:37.688-08:00</updated><title type='text'>PUT with REST</title><content type='html'>Joel mentioned today that the appropriate way to do rest is via the PUT verb and that ASP.NET MVC does not approach REST in this manner. To use PUT in ASP.NET MVC you have to either empower it at IIS or Web.config.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-495970359839574068?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/495970359839574068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/put-with-rest.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/495970359839574068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/495970359839574068'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/put-with-rest.html' title='PUT with REST'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-2618740476412067362</id><published>2012-02-02T21:33:00.001-08:00</published><updated>2012-02-02T21:33:09.378-08:00</updated><title type='text'>comet</title><content type='html'>Joel mentioned today that comet is the code name for asynchronous http requests and that such an approach will eventually become depreciated once web sockets become more prevalent.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-2618740476412067362?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/2618740476412067362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/comet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2618740476412067362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2618740476412067362'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/comet.html' title='comet'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-815076645482086915</id><published>2012-02-02T21:23:00.001-08:00</published><updated>2012-02-02T21:24:24.481-08:00</updated><title type='text'>wormholes</title><content type='html'>&lt;p&gt;Joel Holder hosted an informative meeting today on an approach to architecture that he has put together with Rafael Torres. Wormholes are key term in the new vision for the objects to come in our app. The way that CRUD around objects has materialized in our application has been unsophisticated so far and has come with a lot of problems. Going forward, as we start to build out the richer objects with lifecycles (the sort of objects that Eric Evans would consider entities) we want to get things right, and in particular we want to make things easier to test. Joel, pictured here, started the meeting by explaining why it was painful to have controllers interact directly with repositories in the DAL (Data Access Layer) within a &lt;a href="http://jeffreypalermo.com/blog/the-onion-architecture-part-1/" target="_blank"&gt;Palermo Onion&lt;/a&gt;.&lt;/p&gt;&lt;div style="margin-left:-250px; padding-bottom: 10px;"&gt;&lt;img src="http://a.yfrog.com/img36/6857/2fbs.jpg" /&gt;&lt;/div&gt;&lt;p&gt;This is the traditional way to build an ASP.NET MVC app, but it is proving &lt;a href="http://tom-jaeschke.blogspot.com/2012/02/getting-used-to-automapper.html" target="_blank"&gt;hard to test&lt;/a&gt;. Controllers are making calls to repositories and handing repository references down into models. Testing a controller requires going on a spelunking expedition for the things one needs to mock just in the name of getting a would-be test to the point where it fails instead of throwing an exception. Instead, Joel feels that controllers should have no collaborators that are managed objects (no repository references). He models his MVC approach on what he sees as a growing trend away from having controller do more than routing and he mentioned that in the node.js framework called &lt;a href="http://expressjs.com/" target="_blank"&gt;Express&lt;/a&gt; that controllers were eventually renamed to be "routers" in a wise move. He feels a layer for Command Processors &lt;font style="color:#FFFFFF;"&gt;&lt;em&gt;(light circles below)&lt;/em&gt;&lt;/font&gt; should sit between the rest of our onion and the Controllers &lt;font style="color:#000000;"&gt;&lt;em&gt;(darker circles below)&lt;/em&gt;&lt;/font&gt; and that communication should occur through wormholes &lt;font style="color:#FF0000;"&gt;&lt;em&gt;(red item below)&lt;/em&gt;&lt;/font&gt;.&lt;/p&gt;&lt;div style="margin-left:-250px; padding-bottom: 10px;"&gt;&lt;img src="http://a.yfrog.com/img11/6126/qyrv.jpg" /&gt;&lt;/div&gt;&lt;p&gt;The Command Processors will in turn "talk" to service layers in our onion which will "talk" to the DAL and back. The wormholes make our Command Processors different than the &lt;a href="http://tom-jaeschke.blogspot.com/2011/10/ghost-of-patterns-past.html" target="_blank"&gt;Command Processors of Headspring&lt;/a&gt; which were baked before the dynamic objects of C# 4.0. The wormhole analogy suggests putting something into a tunnel and knowing that it will emerge from the tunnel somewhere, but not being able to see where from the entry point. Using the dynamic feature of C# 4.0, Joel has empowered the ability to call a method of any name on a Command Processor's DynamicCommandInvoker. If one calls .EditOrder for example, our app will try to find a file dubbed "EditOrderCommand.cs" to find an appropriate class for the "method" called, but to the controller doing the calling calls .EditOrder blind to as much. The controller calling .EditOrder basically asserts a desire to:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;invoke action x&lt;/li&gt;&lt;li&gt;with model y&lt;/li&gt;&lt;li&gt;and then redirect to z&lt;/li&gt;&lt;/ol&gt;&lt;div style="margin-left:-250px; padding-bottom: 10px;"&gt;&lt;img src="http://a.yfrog.com/img193/8964/xzx5.jpg" /&gt;&lt;/div&gt;&lt;p&gt;ProcessCommand(), shown above, is the method inside any one particular command file that will do the deed and will be the one method to really test, test, test.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-815076645482086915?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/815076645482086915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/wormholes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/815076645482086915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/815076645482086915'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/wormholes.html' title='wormholes'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-3000758778490870366</id><published>2012-02-02T12:07:00.001-08:00</published><updated>2012-02-02T12:07:32.208-08:00</updated><title type='text'>TempData is for redirects, and redirects only.</title><content type='html'>&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;TempData["foo"] = "bar";&lt;/font&gt;&lt;/p&gt;&lt;p&gt;...is not going to linger as long as...&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;Session["foo"] = "bar";&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://stackoverflow.com/questions/1500402/when-to-use-tempdata-vs-session-in-asp-net-mvc" target="_blank"&gt;http://stackoverflow.com/questions/1500402/when-to-use-tempdata-vs-session-in-asp-net-mvc&lt;/a&gt; suggests it is "for redirects, and redirects only."&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-3000758778490870366?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/3000758778490870366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/tempdata-is-for-redirects-and-redirects.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3000758778490870366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3000758778490870366'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/tempdata-is-for-redirects-and-redirects.html' title='TempData is for redirects, and redirects only.'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-7640629593802648116</id><published>2012-02-02T08:30:00.001-08:00</published><updated>2012-02-02T08:31:03.336-08:00</updated><title type='text'>things that don't suck</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;a href="http://jquery.malsup.com/block/" target="_blank"&gt;http://jquery.malsup.com/block/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://sandbox.timbenniks.com/projects/jquery-notice/" target="_blank"&gt;http://sandbox.timbenniks.com/projects/jquery-notice/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-7640629593802648116?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/7640629593802648116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/things-that-dont-suck.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/7640629593802648116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/7640629593802648116'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/things-that-dont-suck.html' title='things that don&apos;t suck'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-5481883056050416411</id><published>2012-02-01T15:05:00.000-08:00</published><updated>2012-02-01T15:05:09.252-08:00</updated><title type='text'>I wish there was a better way to see if a ViewBag variable existed in ASP.NET MVC 3 and 4 beyond a null check.</title><content type='html'>&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;@if (ViewBag.ShouldShowSuccessMessage != null)&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ViewBag.ShouldShowSuccessMessage = null;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;showSuccess("Your changes have been saved!");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-5481883056050416411?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/5481883056050416411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/i-wish-there-was-better-way-to-see-if.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5481883056050416411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5481883056050416411'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/i-wish-there-was-better-way-to-see-if.html' title='I wish there was a better way to see if a ViewBag variable existed in ASP.NET MVC 3 and 4 beyond a null check.'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-1143950575248092179</id><published>2012-02-01T10:55:00.000-08:00</published><updated>2012-02-01T10:55:23.199-08:00</updated><title type='text'>It startled me to see a class in our app with numerous constructor signatures today.</title><content type='html'>I have not seen that in some time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-1143950575248092179?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/1143950575248092179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/it-startled-me-to-see-class-in-our-app.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/1143950575248092179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/1143950575248092179'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/it-startled-me-to-see-class-in-our-app.html' title='It startled me to see a class in our app with numerous constructor signatures today.'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-904739449947704032</id><published>2012-02-01T09:01:00.001-08:00</published><updated>2012-02-01T09:01:58.981-08:00</updated><title type='text'>{ get; private set; } sabotages MVC model bindings</title><content type='html'>:(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-904739449947704032?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/904739449947704032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/get-private-set-sabotages-mvc-model.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/904739449947704032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/904739449947704032'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/get-private-set-sabotages-mvc-model.html' title='{ get; private set; } sabotages MVC model bindings'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-3998400900868908851</id><published>2012-02-01T06:23:00.001-08:00</published><updated>2012-02-01T06:23:08.903-08:00</updated><title type='text'>getting used to AutoMapper</title><content type='html'>AutoMapper really helps makes the classes it maps to light and thus easy to test. Whenever I make a method in a class and then struggle to test it due to the fact that I cannot bridge the constructor in the class without mocking 101 things it is really frustrating. This is the sort of noise that does not make me want to write tests. AutoMapper helps alleviate this problem. That said, I wonder if I really should be placing a method inside of a DTO and then marveling at how easy it is to test. I probably should do the same work in a .ResolveUsing rule and just set a get-setter at the DTO, huh? I'll pick Rafael's brain when he gets in...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-3998400900868908851?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/3998400900868908851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/getting-used-to-automapper.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3998400900868908851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3998400900868908851'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/02/getting-used-to-automapper.html' title='getting used to AutoMapper'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-4045489173472572982</id><published>2012-01-31T12:22:00.001-08:00</published><updated>2012-01-31T12:22:34.405-08:00</updated><title type='text'>using .ResolveUsing with AutoMapper</title><content type='html'>&lt;p&gt;If you had an AutoMapper map like so:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;Mapper.CreateMap&amp;lt;Person, PersonInputModel&amp;gt;().ForMember(personInputModel =&amp;gt; personInputModel.FullName, person =&amp;gt; person.ResolveUsing&amp;lt;PersonNameResolver&amp;gt;());&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;.ResolveUsing would allow you to reach out to another method to undertake a tricky translation.&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;using System.Linq;&lt;br /&gt;&lt;br /&gt;using OurApp.Core.Entities;&lt;br /&gt;&lt;br /&gt;using AutoMapper;&lt;br /&gt;&lt;br /&gt;namespace OurApp.Web.UI.Config.AutoMapper.Resolvers&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public class OrderStatusReasonResolver : ValueResolver&amp;lt;Person, string&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;protected override string ResolveCore(Person source)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var fullName = source.FirstName + " " + source.LastName;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return fullName.Trim();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-4045489173472572982?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/4045489173472572982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/using-resolveusing-with-automapper.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4045489173472572982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4045489173472572982'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/using-resolveusing-with-automapper.html' title='using .ResolveUsing with AutoMapper'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-2661409272003922760</id><published>2012-01-30T14:33:00.000-08:00</published><updated>2012-01-30T14:34:24.220-08:00</updated><title type='text'>sabotage the ability to tab to a control with tabindex="-1"</title><content type='html'>&lt;p&gt;If you are doing something hacky and you need an "invisible" HTML input that is:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;not a hidden input type&lt;/li&gt;&lt;li&gt;not hidden by a style of &lt;font style="color:#FFFFFF;"&gt;display: none;&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;You can always move the control off the page's edge with a style of &lt;font style="color:#FFFFFF;"&gt;margin-left:-9999px;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;...but, yes, the control is accessible by way of tabbing unless you take steps to sabotage the ability to tab to the control with: &lt;a href="http://www.velocityreviews.com/forums/t157832-using-tabindex-to-remove-from-tab-order.html" target="_blank"&gt;tabindex="-1"&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-2661409272003922760?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/2661409272003922760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/sabotage-ability-to-tab-to-control-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2661409272003922760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2661409272003922760'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/sabotage-ability-to-tab-to-control-with.html' title='sabotage the ability to tab to a control with tabindex=&quot;-1&quot;'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-3962594518555581004</id><published>2012-01-30T08:19:00.001-08:00</published><updated>2012-01-30T08:19:01.423-08:00</updated><title type='text'>only show something in a Razor view if debugging</title><content type='html'>&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;@if (Context.IsDebuggingEnabled)&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font style="color:#000000;"&gt;whatever&lt;/font&gt;&lt;font style="color:#FFFFFF;"&gt;&lt;br /&gt;&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-3962594518555581004?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/3962594518555581004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/only-show-something-in-razor-view-if.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3962594518555581004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3962594518555581004'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/only-show-something-in-razor-view-if.html' title='only show something in a Razor view if debugging'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-5740336528448565087</id><published>2012-01-29T18:19:00.000-08:00</published><updated>2012-01-29T18:19:06.001-08:00</updated><title type='text'>data-whatever</title><content type='html'>&lt;a href="http://html5doctor.com/html5-custom-data-attributes/" target="_blank"&gt;http://html5doctor.com/html5-custom-data-attributes/&lt;/a&gt; is a article on using data-anythingyoudlike parameters in HTML5.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-5740336528448565087?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/5740336528448565087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/data-whatever.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5740336528448565087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5740336528448565087'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/data-whatever.html' title='data-whatever'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-988163408310773266</id><published>2012-01-27T15:23:00.001-08:00</published><updated>2012-01-27T15:25:18.921-08:00</updated><title type='text'>Here is some interesting AJAX we started to roll and then abandoned today!</title><content type='html'>&lt;p&gt;This controller action...&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;public RenderJsonResult Foo(Guid id)&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var program = ProgramRepository.GetById(id);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var ppMap = new Dictionary&amp;lt;ProgramPlan, string&amp;gt;();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;program.ProgramPlans.ForEach(pp =&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ppMap.Add(pp, pp.NameStaticAttribute.GetSelectedValue(pp.Id).ToString());&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var result = ppMap.Keys.Select(pp =&amp;gt; new&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Id = pp.Id,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Name = ppMap[pp],&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Offerings = pp.ProgramOfferings.Select(po =&amp;gt; new { po.Id, po.Name })&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return RenderJson(result);&lt;br /&gt;&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;...made some new objects and returned them as JSON which kind of looked like this:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;{\"PreventCyclicRedundancy\":false,\"Result\":[{\"Plan\":{\"Id\":\"01583ab6-3b8a-4af7-ac68-9fe500ec99a0\",\"Name\":\"alpha\",\"Offerings\":[{\"Id\":\"2660ce9a-73b2-406a-9ff6-9fe500ee6617\",\"Name\":\"one\"},{\"Id\":\"294eac05-83d2-42a6-9cdf-9fe500ee9f17\",\"Name\":\"two\"},{\"Id\":\"80c4ac8b-b2b8-4043-8207-9fe500eef13d\",\"Name\":\"three\"}]}},{\"Plan\":{\"Id\":\"bdf3d257-573d-4685-88d5-9fe500ecaffc\",\"Name\":\"beta\",\"Offerings\":[]}},{\"Plan\":{\"Id\":\"926cf94f-c546-4ec4-a860-9fe500ed8e9a\",\"Name\":\"gamma\",\"Offerings\":[{\"Id\":\"4e729423-3ff9-4abc-bb3c-9fe500ef8ffc\",\"Name\":\"four\"},{\"Id\":\"c3879ef4-80ed-40f9-8a7d-9fe500efc899\",\"Name\":\"five\"}]}}]}&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;There was a Razor view like this...&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;&amp;lt;div class="contentBlock" id="qux"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script src="/whatever.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var programId = '@Model.Program.Id';&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var planLinksContainerSelector = 'qux';&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;bar(programId, planLinksContainerSelector);&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;...which reached out to a .js file which called on the Controller Action:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;function bar(programId, containerSelector) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;$.ajax({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url: '/Program/Foo',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data: 'id=' + programId,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;success: function (result) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var container = $(planLinksContainerSelector);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_.each(result, function (plan) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var planLink = $('&amp;lt;a /&amp;gt;');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;planLink.attr('href', '/programplan/edit/?programId=' + programId + '&amp;id=' + plan.Id);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;planLink.text(plan.Name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;container.append(planLink);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_.each(plan.Offerings, function (offering) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//do offs here&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;error: function (a, b, c) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-988163408310773266?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/988163408310773266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/here-is-some-interesting-ajax-we.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/988163408310773266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/988163408310773266'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/here-is-some-interesting-ajax-we.html' title='Here is some interesting AJAX we started to roll and then abandoned today!'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-4986428079964396146</id><published>2012-01-26T21:10:00.001-08:00</published><updated>2012-01-26T21:14:23.541-08:00</updated><title type='text'>demystify NuGet error messages</title><content type='html'>&lt;p&gt;Today Jorge and I encountered this really vague NuGet error in Visual Studio:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;Error 7 The command ""C:\AMD\trunk\src\Tools\nuget" update -self&lt;br /&gt;"C:\AMD\trunk\src\Tools\nuget" install "C:\AMD\trunk\src\AMD.Avalanche.Web.UI\packages.config" -o "C:\AMD\trunk\src\Packages" -source file://BUILDS/nuget-lib" exited with code 1. AMD.Avalanche.Web.UI&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Jorge suggested I open a command window and paste in the contents of the outer most quotes, namely:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;"C:\AMD\trunk\src\Tools\nuget" update -self&lt;br /&gt;"C:\AMD\trunk\src\Tools\nuget" install "C:\AMD\trunk\src\AMD.Avalanche.Web.UI\packages.config" -o "C:\AMD\trunk\src\Packages" -source file://BUILDS/nuget-lib&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This revealed better error messages:&lt;/p&gt;&lt;div style="margin-left: -120px; padding-bottom: 10px;" &gt;&lt;img src="http://a.yfrog.com/img828/2185/byrf.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-left: -120px;" &gt;&lt;img src="http://a.yfrog.com/img571/478/02sz.jpg" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;I'm not that in love with NuGet. I would prefer just keeping the needed .dlls in the lib folder. Rafael did mention that, when installing some .dlls, that NuGet will doctor up a Web.config file as is appropriate to be accommodating. I guess that is one thing in favor of the automation. I'm mostly turned off however. :(&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-4986428079964396146?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/4986428079964396146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/demystify-nuget-error-messages.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4986428079964396146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4986428079964396146'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/demystify-nuget-error-messages.html' title='demystify NuGet error messages'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-606775220597350275</id><published>2012-01-26T16:38:00.001-08:00</published><updated>2012-01-26T16:38:32.596-08:00</updated><title type='text'>of what bubbles up from repositories</title><content type='html'>&lt;p&gt;The beauty of the typical repository pattern is you know if something has been "popped off" (forgive my injection of SMTP slang) when you encounter it in another layer. For example consider going into a method and finding:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;var bars = foo.Bars;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If foo is handed in from another method and Bars is a collection of Bar objects on foo, how can we know if the Bars have been lazy loaded by NHibernate yet or not. We can't. We have to start walking upstream to see if there is any place previously in code where foo.Bars was used. Grrr. If there is a policy in which everything that comes over from repositories has already been loaded, then this isn't a problem. A variation of this problem can happen with IQueryable too. When IQueryables are allowed into other layers from the repositories, one does not know, when looking at many spots in code, if an IQueryable had been popped off to a list or not somewhere upstream of the line of code at hand. To counter this pattern, it is probably best to only have objects already cast to lists come over the wall from repositories.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-606775220597350275?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/606775220597350275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/of-what-bubbles-up-from-repositories.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/606775220597350275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/606775220597350275'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/of-what-bubbles-up-from-repositories.html' title='of what bubbles up from repositories'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-564977587453184438</id><published>2012-01-26T12:46:00.001-08:00</published><updated>2012-01-26T12:46:43.313-08:00</updated><title type='text'>keep ids unique with Razor</title><content type='html'>&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;&amp;lt;div class="contentBlock" id="@{&amp;lt;text&amp;gt;PlansFor&amp;lt;/text&amp;gt;@Model.Program.Id}"&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;...makes...&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;&amp;lt;div id="PlansFora9c7326d-1006-4d0e-ac37-9fe30142aab6" class="contentBlock"&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-564977587453184438?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/564977587453184438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/keep-ids-unique-with-razor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/564977587453184438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/564977587453184438'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/keep-ids-unique-with-razor.html' title='keep ids unique with Razor'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-3734279704194860719</id><published>2012-01-26T08:15:00.001-08:00</published><updated>2012-01-26T08:15:35.969-08:00</updated><title type='text'>see all files that have changed in a changeset in TFS</title><content type='html'>&lt;ol&gt;&lt;li&gt;in Visual Studio go to Team Explorer and click on Source Control&lt;/li&gt;&lt;li&gt;in Source Control Explorer right-click on the trunk and select View History&lt;/li&gt;&lt;li&gt;right-click on a changeset to see any one file that has changed&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-3734279704194860719?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/3734279704194860719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/see-all-files-that-have-changed-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3734279704194860719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3734279704194860719'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/see-all-files-that-have-changed-in.html' title='see all files that have changed in a changeset in TFS'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-8545844355453645334</id><published>2012-01-26T07:29:00.001-08:00</published><updated>2012-01-26T07:29:50.403-08:00</updated><title type='text'>uninstall and reinstall NuGet</title><content type='html'>&lt;p&gt;At Tools &amp;gt; Extension Manager... in Visual Studio, you should be able to see &lt;a href="http://docs.nuget.org/docs/start-here/installing-nuget" target="_blank"&gt;Nuget&lt;/a&gt; and uninstall it.&lt;/p&gt;&lt;p&gt;Go right back to the Extension Manager to reinstall NuGet. Go to the "Online Gallery" and "Sort by" the highest ranked.&lt;/p&gt;&lt;p&gt;Restart Visual Studio after an install or uninstall&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-8545844355453645334?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/8545844355453645334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/uninstall-and-reinstall-nuget.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8545844355453645334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8545844355453645334'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/uninstall-and-reinstall-nuget.html' title='uninstall and reinstall NuGet'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-5839504334638576262</id><published>2012-01-25T13:23:00.001-08:00</published><updated>2012-01-25T13:24:32.726-08:00</updated><title type='text'>some CSS3</title><content type='html'>&lt;p&gt;For every even table row in the table body of a table with an id of "listingTable" make the background color #eaf0f7 unless the "detail" class is applied to the row.&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;table#listingTable tbody tr:nth-child(even):not(.detail) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;background-color:#eaf0f7;&lt;br /&gt;&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;For every input in "foo" that is not a checkbox, radio button, or a file control, add a pixel of padding to the top and bottom.&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;#foo input:not([type="checkbox"]):not([type="radio"]):not([type="file"])&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding-top:1px;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;padding-bottom:1px;&lt;br /&gt;&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-5839504334638576262?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/5839504334638576262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/some-css3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5839504334638576262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5839504334638576262'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/some-css3.html' title='some CSS3'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-5068499490673942734</id><published>2012-01-25T12:31:00.001-08:00</published><updated>2012-01-25T12:31:07.040-08:00</updated><title type='text'>event.which == 13</title><content type='html'>&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;$(".submitButton").keydown(function (event) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (event.which == 13) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;window.location = "/program/Edit?id=@Model.Program.Id";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;});&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-5068499490673942734?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/5068499490673942734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/eventwhich-13.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5068499490673942734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/5068499490673942734'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/eventwhich-13.html' title='event.which == 13'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-1290115070393751978</id><published>2012-01-25T05:50:00.001-08:00</published><updated>2012-01-25T05:51:31.700-08:00</updated><title type='text'>pull in the HTML from an ASP.NET MVC partial into a view by way of jQuery AJAX</title><content type='html'>&lt;p&gt;What if I had a controller like this?&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;using System.Web.Mvc;&lt;br /&gt;&lt;br /&gt;namespace GenericPartialScrappingTest.Controllers&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public class LambController : Controller&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public ActionResult Index()&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return View();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public ActionResult _TwelveCells()&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return PartialView();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The Index view looks like this:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;&amp;lt;h2&amp;gt;Lamb Page&amp;lt;/h2&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;p&amp;gt;This is a page with a partial:&amp;lt;/p&amp;gt;&lt;br /&gt;&lt;br /&gt;@Html.Partial("_TwelveCells")&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The Index view pulls in this partial:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;&amp;lt;table&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;tr&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;td&amp;gt;Mary&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;td&amp;gt;had&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;td&amp;gt;a&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/tr&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;tr&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;td&amp;gt;lit-&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;td&amp;gt;tell&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;td&amp;gt;lamb&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/tr&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;tr&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;td&amp;gt;lit-&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;td&amp;gt;tell&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;td&amp;gt;lamb&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/tr&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;tr&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;td&amp;gt;lit-&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;td&amp;gt;tell&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;td&amp;gt;lamb&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/tr&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;In a different view, summoned by a different controller, I may pull in the partial by way of jQuery AJAX:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;&amp;lt;h2&amp;gt;Home Page&amp;lt;/h2&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;p&amp;gt;The div below should be filled by way of AJAX.&amp;lt;/p&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div id="whatever"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var actionURL = '@Url.Action("_TwelveCells", "Lamb")';&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;$.ajax({&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type: "POST",&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url: actionURL,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;data: "",&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;success: function (r) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$("#whatever").html(r);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;complete: function () {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;error: function (req, status, error) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$("#whatever").html(error);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-1290115070393751978?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/1290115070393751978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/pull-in-html-from-aspnet-mvc-partial.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/1290115070393751978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/1290115070393751978'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/pull-in-html-from-aspnet-mvc-partial.html' title='pull in the HTML from an ASP.NET MVC partial into a view by way of jQuery AJAX'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-7799654521584499431</id><published>2012-01-24T14:49:00.001-08:00</published><updated>2012-01-24T14:49:10.340-08:00</updated><title type='text'>display a partial in Razor</title><content type='html'>&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;@Html.Partial("_Whatever")&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-7799654521584499431?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/7799654521584499431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/display-partial-in-razor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/7799654521584499431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/7799654521584499431'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/display-partial-in-razor.html' title='display a partial in Razor'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-9038066987973224570</id><published>2012-01-24T06:35:00.003-08:00</published><updated>2012-01-24T06:35:51.375-08:00</updated><title type='text'>I like AJAX... and it is getting easier :P</title><content type='html'>&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;$.ajax({&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;url: '/SiliconSampleDefinition/GetLinkableDefinitions',&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;type: "POST",&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;dataType: "json",&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;data: { id: '@(Model.SiliconSampleDefinition.Id)', query: request.term },&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;success: function (data) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response($.map(data, function (item) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;id: item.Id,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;label: item.DisplayName,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;firstShipDate: item.FirstShipDate,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;firstExternalShipDate: item.FirstExternalShipDate,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lastShipDate: item.LastShipDate&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;});&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-9038066987973224570?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/9038066987973224570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/i-like-ajax-and-it-is-getting-easier-p.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/9038066987973224570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/9038066987973224570'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/i-like-ajax-and-it-is-getting-easier-p.html' title='I like AJAX... and it is getting easier :P'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-3192964502161011790</id><published>2012-01-23T14:25:00.001-08:00</published><updated>2012-01-23T14:25:52.008-08:00</updated><title type='text'>the better POST fix</title><content type='html'>&lt;p&gt;The POST AJAX implementation &lt;a href="http://tom-jaeschke.blogspot.com/2012/01/post-fix.html" target="_blank"&gt;here&lt;/a&gt; should really be like the following. The problem with what I had before was that I was STILL passing too much gunk in the URL line. Duh.&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;var url = "@ViewBag.WhereAmI";&lt;br /&gt;&lt;br /&gt;url = url + "/home/validate";&lt;br /&gt;&lt;br /&gt;var data = "value=" + content;&lt;br /&gt;&lt;br /&gt;data = data + "&amp;isRequired=true";&lt;br /&gt;&lt;br /&gt;data = data + "&amp;maxSize=5000";&lt;br /&gt;&lt;br /&gt;var message = $.ajax({&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;type: "POST",&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;url: url,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;data: data,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;async: false&lt;br /&gt;&lt;br /&gt;}).responseText;&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-3192964502161011790?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/3192964502161011790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/better-post-fix.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3192964502161011790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/3192964502161011790'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/better-post-fix.html' title='the better POST fix'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-8630329934997558532</id><published>2012-01-23T08:41:00.001-08:00</published><updated>2012-01-23T08:41:18.877-08:00</updated><title type='text'>break up a big GET AJAX call into chunks</title><content type='html'>&lt;p&gt;Here is another solution for the problem described &lt;a href="http://tom-jaeschke.blogspot.com/2012/01/problem-i-am-chewing-on.html" target="_blank"&gt;here&lt;/a&gt;. In this approach I am breaking a GET AJAX call up into chunks. Hmmm. I'm realizing that I went about my &lt;a href="http://tom-jaeschke.blogspot.com/2012/01/another-example-of-post-ajax-call.html" target="_blank"&gt;POST AJAX&lt;/a&gt; call the wrong way as I was still crafting a URL line. Ah, but I digress. Does it seem silly to even use an AJAX call to an MVC action? For this code, it sure does. I'm assuming that the code that my friend is working does more sanity checking than I am doing and that the action call by way of AJAX is just needed, but then there is an old joke about the word &lt;a href="http://www.youtube.com/watch?v=6hrLj8QEAgI" target="_blank"&gt;assume&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;&amp;lt;form id="SubmissionFacilitator" method="POST"&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;action="/home/successfulsubmission/"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;textarea name="BlobOfCopy"&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div id="ErrorHint" style="color: #CC0000;"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;input type="submit" value="submit"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(function () {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var wrapper = $('#SubmissionFacilitator');&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var textarea = wrapper.find('textarea[name=BlobOfCopy]');&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(textarea).keyup(function () {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var junkbool = assesssanityconcerns($.trim(textarea.val()));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$('#SubmissionFacilitator').submit(function () {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return assesssanityconcerns($.trim(textarea.val()));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;function assesssanityconcerns(content) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var maxsize = 5000;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (content.length &amp;gt; maxsize) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gap = content.length - maxsize;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var error = "There are " + gap + " too many characters.";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$('#ErrorHint').html(error);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return false;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (content.length &amp;gt; 1000) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var one = "";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var two = "";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var three = "";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var four = "";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var five = "";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (i = 0; i &amp;lt; 1000; i++) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;one = one + content.charAt(i);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (i = 1000; i &amp;lt; 2000; i++) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (i &amp;lt; content.length) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;two = two + content.charAt(i);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (content.length &amp;gt; 2000) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (i = 2000; i &amp;lt; 3000; i++) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (i &amp;lt; content.length) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;three = three + content.charAt(i);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (content.length &amp;gt; 3000) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (i = 3000; i &amp;lt; 4000; i++) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (i &amp;lt; content.length) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;four = four + content.charAt(i);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (content.length &amp;gt; 4000) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (i = 4000; i &amp;lt; 5000; i++) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (i &amp;lt; content.length) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;five = five + content.charAt(i);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var url = "@ViewBag.WhereAmI";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "/home/validate?value=" + one;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "&amp;isRequired=true";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "&amp;maxSize=" + maxsize;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var message = $.ajax({&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url: url,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;async: false&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}).responseText;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = "@ViewBag.WhereAmI";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "/home/validate?value=" + two;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "&amp;isRequired=true";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "&amp;maxSize=" + maxsize;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var messagealt = $.ajax({&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url: url,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;async: false&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}).responseText;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (message != messagealt) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (message == "good") {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;message = messagealt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (three != "") {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = "@ViewBag.WhereAmI";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "/home/validate?value=" + three;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "&amp;isRequired=true";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "&amp;maxSize=" + maxsize;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;messagealt = $.ajax({&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url: url,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;async: false&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}).responseText;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (message != messagealt) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (message == "good") {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;message = messagealt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (four != "") {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = "@ViewBag.WhereAmI";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "/home/validate?value=" + four;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "&amp;isRequired=true";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "&amp;maxSize=" + maxsize;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;messagealt = $.ajax({&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url: url,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;async: false&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}).responseText;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (message != messagealt) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (message == "good") {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;message = messagealt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (five != "") {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = "@ViewBag.WhereAmI";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "/home/validate?value=" + five;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "&amp;isRequired=true";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "&amp;maxSize=" + maxsize;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;messagealt = $.ajax({&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url: url,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;async: false&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}).responseText;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (message != messagealt) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (message == "good") {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;message = messagealt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (message == "good") {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$('#ErrorHint').html("");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return true;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$('#ErrorHint').html(message);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return false;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var url = "@ViewBag.WhereAmI";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "/home/validate?value=" + content;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "&amp;isRequired=true";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "&amp;maxSize=" + maxsize;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var message = $.ajax({&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url: url,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;async: false&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}).responseText;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (message == "good") {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$('#ErrorHint').html("");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return true;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$('#ErrorHint').html(message);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return false;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-8630329934997558532?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/8630329934997558532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/break-up-big-get-ajax-call-into-chunks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8630329934997558532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/8630329934997558532'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/break-up-big-get-ajax-call-into-chunks.html' title='break up a big GET AJAX call into chunks'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-4897457918628910463</id><published>2012-01-22T17:57:00.001-08:00</published><updated>2012-01-22T17:57:14.095-08:00</updated><title type='text'>another example of a POST .ajax call</title><content type='html'>&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;$.ajax({&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;type: "POST",&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;url: '/session/set',&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;context: self,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;data: "key=" + id + "&amp;payload=" + sobj,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;success: dfr.resolve,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;error: function (a, b, c) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;debugger;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert(b);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;});&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-4897457918628910463?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/4897457918628910463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/another-example-of-post-ajax-call.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4897457918628910463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/4897457918628910463'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/another-example-of-post-ajax-call.html' title='another example of a POST .ajax call'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578844894313070179.post-2046377845999242926</id><published>2012-01-22T17:46:00.001-08:00</published><updated>2012-01-22T17:47:59.313-08:00</updated><title type='text'>the POST fix</title><content type='html'>&lt;p&gt;It seems that one potential solution for the problem described &lt;a href="http://tom-jaeschke.blogspot.com/2012/01/problem-i-am-chewing-on.html" target="_blank"&gt;here&lt;/a&gt; is to make the AJAX call use POST instead of GET. I'm not sure if it will work or not. I am having trouble reproducing the environment my friend has. I can't get IE to fail in Cassini and in IIS environments IIS itself seems to have a problem with the length of the call before IE specifically does. Maybe my theory is wrong. Code for a potential fix:&lt;/p&gt;&lt;p&gt;&lt;font style="color:#FFFFFF;"&gt;&amp;lt;form id="SubmissionFacilitator" method="POST"&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;action="/home/successfulsubmission/"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;textarea name="BlobOfCopy"&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;div id="ErrorHint" style="color: #CC0000;"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;input type="submit" value="submit"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(function () {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var wrapper = $('#SubmissionFacilitator');&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var textarea = wrapper.find('textarea[name=BlobOfCopy]');&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(textarea).keyup(function () {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var junkbool = assesssanityconcerns($.trim(textarea.val()));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$('#SubmissionFacilitator').submit(function () {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return assesssanityconcerns($.trim(textarea.val()));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;function assesssanityconcerns(content) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var url = "@ViewBag.WhereAmI";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "/home/validate?value=" + content;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "&amp;isRequired=true";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url = url + "&amp;maxSize=5000";&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var message = $.ajax({&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;type: "POST",&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;url: url,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;async: false&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}).responseText;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (message == "good") {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$('#ErrorHint').html("");&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return true;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$('#ErrorHint').html(message);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return false;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5578844894313070179-2046377845999242926?l=tom-jaeschke.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tom-jaeschke.blogspot.com/feeds/2046377845999242926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/post-fix.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2046377845999242926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578844894313070179/posts/default/2046377845999242926'/><link rel='alternate' type='text/html' href='http://tom-jaeschke.blogspot.com/2012/01/post-fix.html' title='the POST fix'/><author><name>jaeschke</name><uri>http://www.blogger.com/profile/16531497359452918889</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='23' src='http://1.bp.blogspot.com/-mBeZcdS2AbY/Te4jkdBj3GI/AAAAAAAAAAQ/XmdxTVCpZhk/s1600/woodrow-wilson-008.jpg'/></author><thr:total>0</thr:total></entry></feed>
