<?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-16213456</id><updated>2012-01-12T20:07:48.215-07:00</updated><category term='firefox'/><category term='formatting'/><category term='tabs and spaces'/><category term='budget'/><category term='programs'/><category term='ORM'/><category term='Entity Framework'/><category term='useful'/><category term='tech support'/><category term='svn'/><category term='subversion'/><category term='google'/><title type='text'>Agile Musings</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default?start-index=101&amp;max-results=100'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>106</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-16213456.post-401313481487715435</id><published>2011-12-09T08:56:00.001-07:00</published><updated>2011-12-09T09:02:02.003-07:00</updated><title type='text'>Start an embedded YouTube video at a certain timestamp</title><content type='html'>From &lt;a href="http://www.mattcutts.com/blog/start-youtube-video-minutes-seconds/"&gt;http://www.mattcutts.com/blog/start-youtube-video-minutes-seconds/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=8tMuSVVljg8#t=17m08s"&gt;http://www.youtube.com/watch?v=8tMuSVVljg8#t=17m08s&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #111111; display: inline !important; float: none; font-family: Verdana, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 22px; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;The “#t=17m08s” takes you to 17 minutes and 8 seconds in a video.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Embedded code.&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&amp;lt;object height="385" width="640"&amp;gt;&amp;lt;param name="movie" value="http://www.youtube.com/v/8tMuSVVljg8&amp;amp;hl=en_US&amp;amp;start=1028"&amp;gt;&amp;lt;/param&amp;gt;&amp;lt;param name="allowscriptaccess" value="always"&amp;gt;&amp;lt;/param&amp;gt;&amp;lt;embed src="http://www.youtube.com/v/8tMuSVVljg8&amp;amp;hl=en_US&amp;amp;start=1028" type="application/x-shockwave-flash" allowscriptaccess="always" width="640" height="385"&amp;gt;&amp;lt;/embed&amp;gt;&amp;lt;/object&amp;gt;&lt;/blockquote&gt;&lt;a href="http://richalger.blogspot.com/2011/12/ive-always-been-able-to-count-on-you.html"&gt;See here&lt;/a&gt; for the example working.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-401313481487715435?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/401313481487715435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=401313481487715435' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/401313481487715435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/401313481487715435'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2011/12/start-embedded-youtube-video-at-certain.html' title='Start an embedded YouTube video at a certain timestamp'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-8566927538556452028</id><published>2011-12-02T15:42:00.001-07:00</published><updated>2011-12-02T15:45:19.400-07:00</updated><title type='text'>Easy and Free Screen Sharing</title><content type='html'>I have used other screen sharing software before. &amp;nbsp;&lt;a href="http://join.me/"&gt;Join.Me&lt;/a&gt; is easy and secure. &lt;br /&gt;&lt;br /&gt;Who ever wants to share their screen goes to Join.Me and clicks share. &amp;nbsp;A program is downloaded. &amp;nbsp;I don't think it requires admin permission to install. &amp;nbsp;A little window at the top appears with three numbers separated by dashes.&lt;br /&gt;&lt;br /&gt;To view the screen the sharer tells the viewer these numbers. &amp;nbsp;The viewer types it into the join box and you are done.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-8566927538556452028?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/8566927538556452028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=8566927538556452028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/8566927538556452028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/8566927538556452028'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2011/12/easy-and-free-screen-sharing.html' title='Easy and Free Screen Sharing'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-3705628752337919519</id><published>2011-04-27T12:09:00.000-07:00</published><updated>2011-04-27T12:09:13.706-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Entity Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='ORM'/><title type='text'>Reducing Sleeping Dragons</title><content type='html'>A few weeks ago I added a column to a SQL table DateCreated. &amp;nbsp;I wanted to track when the records were getting created. &amp;nbsp;I provided a value for the existing columns and then made it not nullable and provided getdate() as its default. &amp;nbsp;I have done this quite often in the past and in the other frameworks I was in it never was a problem.&lt;br /&gt;&lt;br /&gt;This time it was. &amp;nbsp;I had made other changes to the database the project used. &amp;nbsp;I updated the edmx file for the data access layer so it would refresh my object model for my code. &amp;nbsp;I did not pay close enough attention to the fact that it now added code to account for the new DateCreated column. &lt;br /&gt;&lt;br /&gt;Yesterday we got an error. &amp;nbsp;When looking at the SQL trace I saw that Entity Framework was passing in a '0001-01-01 00:00:00' for the date value because the code giving the values was not providing it a value. &amp;nbsp;I was counting on the app (including the data layer) to not provide a value. &amp;nbsp;The database definition would provide getdate().&lt;br /&gt;&lt;br /&gt;Entity Framework did only half the job that needed doing. &amp;nbsp;The presentation layer, or service layer or business layer should have been updated to provide a value if the data layer gets updated with the DateCreated column.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I am glad that we are getting away from using ORM solutions. &amp;nbsp;We are instead relying on lightweight utilities to create a data layer using only ADO.NET. &amp;nbsp;My&amp;nbsp;colleague, Sam started this with &lt;a href="http://restcake.net/Loef/"&gt;LOEF&lt;/a&gt;. &amp;nbsp;He is now developing NOEF (No Entity Framwork perhaps with a better name). &amp;nbsp;This will reduce the sleeping dragons we have to deal with.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-3705628752337919519?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/3705628752337919519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=3705628752337919519' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/3705628752337919519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/3705628752337919519'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2011/04/reducing-sleeping-dragons.html' title='Reducing Sleeping Dragons'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-1421404579165651956</id><published>2010-12-18T09:38:00.000-07:00</published><updated>2010-12-18T09:38:21.639-07:00</updated><title type='text'>OpenDNS Internet Filtering</title><content type='html'>We have been using OpenDNS for several months to protect our home computer network from pornography.&amp;nbsp; We had been using BSecure but it did not have an easy way to protect our whole network, and it sometimes caused problems on the computers we installed it on.&amp;nbsp; OpenDNS can be configured on your router and so there is no need to install or configure anything on any device connected to your router.&lt;br /&gt;&lt;br /&gt;See a &lt;a href="http://agilemusings.blogspot.com/2008/01/minimum-online-configuration.html"&gt;previous post&lt;/a&gt; for more info.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-1421404579165651956?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/1421404579165651956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=1421404579165651956' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1421404579165651956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1421404579165651956'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2010/12/opendns-internet-filtering.html' title='OpenDNS Internet Filtering'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-5437735423417795111</id><published>2010-11-29T13:01:00.000-07:00</published><updated>2010-11-29T13:01:05.367-07:00</updated><title type='text'>The Way Things Go + The Case Against Teaching</title><content type='html'>&lt;object style="height: 390px; width: 640px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/qXu_jQq_Tbw?version=3"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/qXu_jQq_Tbw?version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-5437735423417795111?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/5437735423417795111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=5437735423417795111' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5437735423417795111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5437735423417795111'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2010/11/way-things-go-case-against-teaching.html' title='The Way Things Go + The Case Against Teaching'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-5401649601536719947</id><published>2010-10-27T09:08:00.001-07:00</published><updated>2011-01-12T13:18:34.071-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='useful'/><title type='text'>Change Firefox awesome bar search engine</title><content type='html'>I have gotten used to just typing in whatever in the Google Chrome omnibar to search.&amp;nbsp; I also use Firefox, and the awesome bar does not work the same by default.&amp;nbsp; &lt;a href="http://cnettv.cnet.com/8301-13415_53-10294098-11.html"&gt;Change Firefox awesome bar search engine&lt;/a&gt; at cnet shows how to change it.&lt;br /&gt;&lt;br /&gt;- Go to "about:config" in firefox&lt;br /&gt;- Double click on the keyword.URL setting.&amp;nbsp; Save the setting in case you want to go back.&amp;nbsp; Mine was "http://www.google.com/search?ie=UTF-8&amp;amp;oe=UTF-8&amp;amp;sourceid=navclient&amp;amp;gfns=1&amp;amp;q=" &lt;br /&gt;- Change it to the value you want I changed mine to "http://www.google.com/search?q="&lt;br /&gt;&lt;br /&gt;That changed it so it uses the vanilla settings of Google.&lt;br /&gt;&lt;br /&gt;UPDATE 2011-01-12: This does not seem to work any more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-5401649601536719947?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/5401649601536719947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=5401649601536719947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5401649601536719947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5401649601536719947'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2010/10/change-firefox-awesome-bar-search.html' title='Change Firefox awesome bar search engine'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-5844683655896430136</id><published>2010-09-03T12:38:00.000-07:00</published><updated>2010-09-03T12:38:04.881-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='formatting'/><title type='text'>Visual Studio Formatting Settings</title><content type='html'>Here is a list of formatting settings that I like in Visual Studio.&lt;br /&gt;&lt;br /&gt;Place open brace on new line for functions and control blocks&lt;br /&gt;In Visual Studio, click Tools -&amp;gt; Options. In the Options dialog on the left pane select Text editor -&amp;gt; JScript -&amp;gt; Formatting&lt;br /&gt;See &lt;a href="http://blogs.iis.net/webdevelopertips/archive/2009/03/30/tip-49-did-you-know-how-to-set-the-editor-to-always-place-open-braces-on-new-line-for-functions-in-jscript.aspx"&gt;here &lt;/a&gt;for a picture.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-5844683655896430136?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/5844683655896430136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=5844683655896430136' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5844683655896430136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5844683655896430136'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2010/09/visual-studio-formatting-settings.html' title='Visual Studio Formatting Settings'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-7264345185521721026</id><published>2010-06-24T15:12:00.002-07:00</published><updated>2010-06-24T15:17:59.533-07:00</updated><title type='text'>Tight internal cohesion and Loose external coupling</title><content type='html'>&lt;div&gt;&lt;blockquote&gt;This basically means that each method in a class should have one task and the class as a whole should have one major responsibility (tight internal cohesion) and that other classes should not depend on the inner workings of this class but should be designed to the "interface" of the class (loose external coupling).&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;Alan Shalloway from &lt;a href="http://www.c2.com/cgi/wiki?CouplingAndCohesion"&gt;http://www.c2.com/cgi/wiki?CouplingAndCohesion&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-7264345185521721026?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/7264345185521721026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=7264345185521721026' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7264345185521721026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7264345185521721026'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2010/06/tight-internal-cohesion-and-loose.html' title='Tight internal cohesion and Loose external coupling'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-6643150661754207636</id><published>2010-05-27T11:27:00.001-07:00</published><updated>2010-05-27T11:28:51.552-07:00</updated><title type='text'>Attaching debugger to w3wp.exe using nice and easy keyboard shortcut</title><content type='html'>&lt;div&gt;&lt;a href="http://blogs.msdn.com/b/jannemattila/archive/2008/10/30/attaching-debugger-to-w3wp-exe-using-nice-and-easy-keyboard-shortcut.aspx"&gt;Attaching debugger to w3wp.exe using nice and easy keyboard shortcut&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I followed this article to have a much faster way to start debugging in VS 2010.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-6643150661754207636?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/6643150661754207636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=6643150661754207636' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/6643150661754207636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/6643150661754207636'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2010/05/attaching-debugger-to-w3wpexe-using.html' title='Attaching debugger to w3wp.exe using nice and easy keyboard shortcut'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-2500469260293835571</id><published>2010-05-17T11:47:00.003-07:00</published><updated>2010-12-09T16:15:02.518-07:00</updated><title type='text'>PowerCommands for Visual Studio 2010</title><content type='html'>PowerCommands adds new items to the context menu when you are in the solution explorer like opening a command prompt for the directory of the file or folder you are in. &amp;nbsp;You also get the "Transform Templates" context menu for folders with .tt file in them&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/e5f41ad9-4edc-4912-bca3-91147db95b99"&gt;PowerCommands for Visual Studio 2010&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Add it by going to Tools\Extension Manger and search for PowerCommands&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-2500469260293835571?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/2500469260293835571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=2500469260293835571' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2500469260293835571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2500469260293835571'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2010/05/powercommands-for-visual-studio-2010.html' title='PowerCommands for Visual Studio 2010'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-4957428143711135479</id><published>2010-05-10T14:43:00.002-07:00</published><updated>2010-05-10T14:47:16.844-07:00</updated><title type='text'>Numbers are Beautiful</title><content type='html'>&lt;object width="544" height="306"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9953368&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=ffffff&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=9953368&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=ffffff&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="544" height="306"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;"A short movie inspired on numbers, geometry and nature"&lt;br /&gt;http://www.etereaestudios.com/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-4957428143711135479?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/4957428143711135479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=4957428143711135479' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/4957428143711135479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/4957428143711135479'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2010/05/numbers-are-beautiful.html' title='Numbers are Beautiful'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-5864480716848277488</id><published>2010-05-05T13:34:00.003-07:00</published><updated>2010-05-05T13:40:31.952-07:00</updated><title type='text'>Enable AHCI Hard Drive</title><content type='html'>On my machine I have enabled AHCI drives&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I changed a registry setting to 0&lt;/div&gt;&lt;div&gt;HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msahci\Start&lt;/div&gt;&lt;div&gt;&lt;a href="http://support.microsoft.com/default.aspx/kb/922976?p=1"&gt;http://support.microsoft.com/default.aspx/kb/922976?p=1&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the bios I had to enable SATA AHCI as well as SATA AHCI Legacy &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now it seems to have increased HD speed 50%.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-5864480716848277488?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/5864480716848277488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=5864480716848277488' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5864480716848277488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5864480716848277488'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2010/05/enable-ahci-hard-drive.html' title='Enable AHCI Hard Drive'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-7426919549562978883</id><published>2010-05-01T17:09:00.001-07:00</published><updated>2010-05-01T17:12:04.799-07:00</updated><title type='text'>The Great Robot Race</title><content type='html'>&lt;object width="512" height="296 "&gt;&lt;param name="movie" value="http://www.hulu.com/embed/JS9IdugujG9_RZ7pYB2gvg"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.hulu.com/embed/JS9IdugujG9_RZ7pYB2gvg" type="application/x-shockwave-flash" allowfullscreen="true" width="512" height="296"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;From Nova:&lt;br /&gt;&lt;blockquote&gt;Twenty-three bizarre looking vehicles line up at the gate of the DARPA Grand Challenge with one thing in common: there's nobody behind the wheel. With names like Terramax, Ghostrider, and Stanley, these vehicles are armed with cutting-edge technology.&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-7426919549562978883?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/7426919549562978883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=7426919549562978883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7426919549562978883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7426919549562978883'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2010/05/great-robot-race.html' title='The Great Robot Race'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-8225699728814048154</id><published>2010-04-12T14:37:00.003-07:00</published><updated>2010-04-12T14:56:12.346-07:00</updated><title type='text'>Daylight Savings Notice</title><content type='html'>Our office does not observe Daylight Savings.  I wanted to display a notice on our order form to make users aware when daylight savings was changing.  After spending hours not finding a way, I found code &lt;a href="http://codingsense.wordpress.com/2010/02/03/getdaylightchanges-with-timezoneinfo/"&gt;here&lt;/a&gt; . I added a method to it adapted from his code.  I just wanted the dates daylight saving start and ends for a given TimeZone.  I had already tried:&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;/code&gt;&lt;/div&gt;&lt;code&gt;&lt;div&gt;DaylightTime daylight = TimeZone.CurrentTimeZone.GetDaylightChanges(DateTime.Today.Year);&lt;/div&gt;&lt;/code&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But that only gives it for the time zone of the server.  I needed to get a System.Globalization.DaylightTime for a timezone that observes Daylight Saving.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;/code&gt;&lt;/div&gt;&lt;code&gt;&lt;div&gt;  public static DaylightTime GetDaylightChanges(TimeZoneInfo InTimeZoneInfo, int InYear)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;TimeZoneInfo.AdjustmentRule ruleFound = null;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;TimeZoneInfo.AdjustmentRule[] adjustments = InTimeZoneInfo.GetAdjustmentRules();&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;if (adjustments.Length == 0)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;throw new Exception(InTimeZoneInfo.StandardName + " has no adjustment rules");&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;//Find the correct adjustment rule&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;foreach (TimeZoneInfo.AdjustmentRule adjustment in adjustments)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;if (adjustment.DateStart.Year &lt;= InYear &amp;amp;&amp;amp; adjustment.DateEnd.Year &gt;= InYear)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;ruleFound = adjustment;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;if (ruleFound == null)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;throw new Exception("No TimeZoneInfo.AdjustmentRule found for TimeZoneInfo " &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;+ InTimeZoneInfo.StandardName +" for year " + InYear);&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;DaylightTime outDaylightTime = new DaylightTime(&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;  GetDateTime(InYear, ruleFound.DaylightTransitionStart)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;, GetDateTime(InYear, ruleFound.DaylightTransitionEnd)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;, ruleFound.DaylightDelta);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;return outDaylightTime;&lt;/div&gt;&lt;/code&gt;&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;Here is the usage.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;/code&gt;&lt;/div&gt;&lt;code&gt;&lt;div&gt;TimeZoneInfo PacificTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");&lt;/div&gt;&lt;div&gt;DaylightTime daylight = CustomTimeZone.GetDaylightChanges(PacificTimeZone, 2010);&lt;/div&gt;&lt;div&gt;Console.WriteLine("daylight.Start = " + daylight.Start);&lt;/div&gt;&lt;div&gt;Console.WriteLine("daylight.End = " + daylight.End);&lt;/div&gt;&lt;div&gt;Console.WriteLine("daylight.Delta = " + daylight.Delta);&lt;/div&gt;&lt;/code&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&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/16213456-8225699728814048154?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/8225699728814048154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=8225699728814048154' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/8225699728814048154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/8225699728814048154'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2010/04/daylight-savings-notice.html' title='Daylight Savings Notice'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-4647990685395160968</id><published>2010-01-09T15:06:00.002-07:00</published><updated>2010-01-09T15:19:08.759-07:00</updated><title type='text'>Setting Up Gmail and Outlook on iPod Touch</title><content type='html'>On the iPod Touch, you can only set up one Exchange account.  It is this kind of account Google recommends you set up to synch your contacts with the iPod.  I want to be able to access both my Gmail and my work Exchange accounts on my iPod.  I also want my Gmail contacts on the iPod.  This is how I did it.&lt;br /&gt;&lt;br /&gt;I created a sub folder named "Personal Contacts" to my contacts in Outlook.  Following &lt;a href="http://office.microsoft.com/en-us/outlook/HA102220481033.aspx"&gt;these steps &lt;/a&gt;I exported my Gmail contacts to a file and then imported them into "Personal Contacts".  On my iPod, I set up Gmail as an IMAP account and my work email as my Exchange account.&lt;br /&gt;&lt;br /&gt;I now have both email accounts and both sets of contacts available in my iPod.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-4647990685395160968?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/4647990685395160968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=4647990685395160968' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/4647990685395160968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/4647990685395160968'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2010/01/setting-up-gmail-and-outlook-on-ipod.html' title='Setting Up Gmail and Outlook on iPod Touch'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-7702466423609311300</id><published>2009-12-22T12:18:00.007-07:00</published><updated>2010-09-03T12:34:58.686-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='formatting'/><category scheme='http://www.blogger.com/atom/ns#' term='tabs and spaces'/><title type='text'>Tabs or Spaces</title><content type='html'>&lt;div&gt;Some programmers have strong opinions about whether to use tabs or spaces to indent code.&lt;/div&gt;&lt;div&gt;This is what I use. In Visual Studio 2010 choose&lt;br /&gt;Tools\Options\Text Editor\All Languages&lt;br /&gt;Select Smart Indenting&lt;br /&gt;Tab size and Indent size = 4&lt;br /&gt;Select "Keep Tabs" &lt;/div&gt;&lt;div&gt;If you use Shift+Tab when in front of 4 spaces, it will delete the 4 spaces the same as if you press backspace in front of a tab character.&lt;/div&gt;&lt;div&gt;To convert a file one way or another there is "Tabify Selected Lines" and "Untabify Selected Lines" under the Edit\Advanced menu.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-7702466423609311300?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/7702466423609311300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=7702466423609311300' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7702466423609311300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7702466423609311300'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/12/tabs-or-spaces.html' title='Tabs or Spaces'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-2254786691388662924</id><published>2009-12-22T10:51:00.004-07:00</published><updated>2010-09-03T12:35:08.017-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='formatting'/><category scheme='http://www.blogger.com/atom/ns#' term='tabs and spaces'/><title type='text'>View White Space</title><content type='html'>Use the following Menu in Visual Studio to view the white space characters&lt;br /&gt;Edit-&amp;gt;Advanced-&amp;gt;View White Space&lt;br /&gt;This allows you to see whether the white space is tabs or spaces.&lt;br /&gt;&lt;br /&gt;For me these characters are too prominent.  So I dim them by choosing&lt;br /&gt;Tools-&amp;gt;Options-&amp;gt;&lt;br /&gt;Environment-&amp;gt;Fonts and Colors&lt;br /&gt;Select "Visible White Space" from the Display Items.&lt;br /&gt;Select Silver.  Then Click the Custom Button and use the darkness scale to choose the right amount of darkness.&lt;br /&gt;&lt;br /&gt;In Beyond Compare you can select the following from the View menu:&lt;br /&gt;Show White Space&lt;br /&gt;Ignore Unimportant Differences&lt;br /&gt;&lt;br /&gt;They are useful when dealing with differences in white space.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-2254786691388662924?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/2254786691388662924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=2254786691388662924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2254786691388662924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2254786691388662924'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/12/view-white-space.html' title='View White Space'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-851981317936802216</id><published>2009-12-16T23:35:00.007-07:00</published><updated>2010-08-02T11:57:52.430-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='tech support'/><title type='text'>Tech Support Cheat Sheet</title><content type='html'>From &lt;a href="http://xkcd.com/627/"&gt;xkcd&lt;/a&gt;, here is one great secret to computer tech support.  Click on the picture to enlarge the flowchart.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_i4FBh0i-sSM/SynSWo1lu_I/AAAAAAAAAGU/ByC3GsGK9pI/s1600-h/tech_support_cheat_sheet.png"&gt;&lt;img style="cursor: pointer; width: 356px; height: 400px;" src="http://3.bp.blogspot.com/_i4FBh0i-sSM/SynSWo1lu_I/AAAAAAAAAGU/ByC3GsGK9pI/s400/tech_support_cheat_sheet.png" alt="" id="BLOGGER_PHOTO_ID_5416091313250876402" border="0" /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have written out some of the diagram so I can more easily find this post when I need it.&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;Google the name of the program plus a few words related to what you want to do.  Follow any instructions.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-851981317936802216?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/851981317936802216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=851981317936802216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/851981317936802216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/851981317936802216'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/12/tech-support-cheat-sheet.html' title='Tech Support Cheat Sheet'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_i4FBh0i-sSM/SynSWo1lu_I/AAAAAAAAAGU/ByC3GsGK9pI/s72-c/tech_support_cheat_sheet.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-5985447509267623308</id><published>2009-11-19T10:53:00.000-07:00</published><updated>2009-11-19T10:55:07.219-07:00</updated><title type='text'>Covariance and Contravariance</title><content type='html'>My colleague directed me to some programming terms, covariance and contravariance.&lt;br /&gt;&lt;br /&gt;Eric Lippert &lt;a href="http://blogs.msdn.com/ericlippert/archive/tags/Covariance+and+Contravariance/default.aspx?p=2"&gt;describes&lt;/a&gt; them quite well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-5985447509267623308?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/5985447509267623308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=5985447509267623308' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5985447509267623308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5985447509267623308'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/11/covariance-and-contravariance.html' title='Covariance and Contravariance'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-3611418806625956523</id><published>2009-11-04T11:24:00.003-07:00</published><updated>2009-11-04T11:29:49.597-07:00</updated><title type='text'>Reporting Services 2008 Custom Security</title><content type='html'>In MS SQL Server Reporting Services 2008 there is no longer an easy way to allow for anonymous access.  I followed the steps &lt;a href="http://msftrsprodsamples.codeplex.com/wikipage?title=SS2008%21Security%20Extension%20Sample"&gt;here&lt;/a&gt; to get a custom security implemented.  I modified it further to integrate with our existing security model.&lt;br /&gt;&lt;br /&gt;You could also modify it to achieve &lt;a href="http://blogs.msdn.com/jameswu/archive/2008/07/15/anonymous-access-in-sql-rs-2008.aspx"&gt;anonymous access&lt;/a&gt; to your report server&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-3611418806625956523?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/3611418806625956523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=3611418806625956523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/3611418806625956523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/3611418806625956523'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/11/reporting-services-2008-custom-security.html' title='Reporting Services 2008 Custom Security'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-2568782242861560084</id><published>2009-10-23T15:23:00.003-07:00</published><updated>2009-10-23T15:30:50.135-07:00</updated><title type='text'>Exception-Driven Development</title><content type='html'>One of the first things I like doing when coding is ensuring a stable error logging and notification system.  I like to know about problems as soon as or sooner than my customers.  And detailed logging really helps in reproducing and fixing the bug.  Jeff Atwood calls this &lt;a href="http://www.codinghorror.com/blog/archives/001239.html"&gt;exception-driven development&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Today I found &lt;a href="http://code.google.com/p/elmah/"&gt;ELMAH&lt;/a&gt;.  In a little more than an hour I implemented it in a ASP.NET app that did not have any exception handling implemented.  It logs, emails and has a error log viewer.  The &lt;a href="http://code.google.com/p/elmah/wiki/WebBase"&gt;screencast&lt;/a&gt; made this so easy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-2568782242861560084?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/2568782242861560084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=2568782242861560084' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2568782242861560084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2568782242861560084'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/10/exception-driven-development.html' title='Exception-Driven Development'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-5758641997547369140</id><published>2009-10-22T20:36:00.001-07:00</published><updated>2009-10-22T20:36:00.987-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='useful'/><title type='text'>Keeping my Monster Mash</title><content type='html'>My wife used &lt;a href="http://sendables.jibjab.com"&gt;JibJab&lt;/a&gt; to create &lt;a href="http://stephandrichalger.blogspot.com/2009/10/monster-mashing.html"&gt;monster mashups&lt;/a&gt; of our family.  I wanted to make sure we could keep the videos.  I used &lt;a href="http://camstudio.org/"&gt;CamStudio&lt;/a&gt; to capture the video and audio into avi files.  I used &lt;a href="http://www.mediacoderhq.com/dlfull.htm"&gt;MediaCoder&lt;/a&gt; to convert the avi to mp4 so I don't have to keep the very large avi files.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-5758641997547369140?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/5758641997547369140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=5758641997547369140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5758641997547369140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5758641997547369140'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/10/keeping-my-monster-mash.html' title='Keeping my Monster Mash'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-4035759038627309374</id><published>2009-10-22T15:52:00.002-07:00</published><updated>2009-10-22T16:01:21.422-07:00</updated><title type='text'>type="button"</title><content type='html'>I just spent a long time figuring out a bug.   Normally I use ASP.NET server controls.  I have been working with a more JavaScript.  I had a button HTML element on the page.  I narrowed it down to the fact that the page submitted and reloaded when it was not supposed to.&lt;br /&gt;&lt;br /&gt;After I added a type="button" to the button element, it stopped refreshing.  After finding &lt;a href="http://stackoverflow.com/questions/469059/button-vs-input-typebutton-which-to-use"&gt;this article&lt;/a&gt; on StackOverflow, I have decided to use an input element specifying type="button"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-4035759038627309374?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/4035759038627309374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=4035759038627309374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/4035759038627309374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/4035759038627309374'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/10/typebutton.html' title='type=&quot;button&quot;'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-3525181574657485839</id><published>2009-10-07T13:15:00.002-07:00</published><updated>2009-10-07T13:20:10.670-07:00</updated><title type='text'>Using JQuery UI Dialog with ASP.Net and AJAX Update Panel</title><content type='html'>I ran into an issue using an ASP.NET UpdatePanel and the JQuery UI Dialog.  I found the solution &lt;a href="http://blog.roonga.com.au/2009/07/using-jquery-ui-dialog-with-aspnet-and.html"&gt;here&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;When I put an update panel in the dialog, it stopped posting back to the server.  It seems that JQuery moves the containing div of the dialog by appending it to the body.  This puts it as the last element of the body, outside of the form element.&lt;br /&gt;&lt;br /&gt;The fix was to use JQuery to append the dialog to the form.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-3525181574657485839?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/3525181574657485839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=3525181574657485839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/3525181574657485839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/3525181574657485839'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/10/using-jquery-ui-dialog-with-aspnet-and.html' title='Using JQuery UI Dialog with ASP.Net and AJAX Update Panel'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-906170191575438430</id><published>2009-09-23T17:10:00.006-07:00</published><updated>2009-09-23T17:32:56.091-07:00</updated><title type='text'>How to get Javascript Intellisense in VS 2008</title><content type='html'>I like to have JavaScript IntelliSense in Visual Studio.  Using the ~ has not worked though.  With permission of my friend, I am putting the email thread for later reference.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;From: Stephen Walther&lt;br /&gt;Sent: Wednesday, September 23, 2009 7:43 AM&lt;br /&gt;To: Meacham, Samuel @ Tempe&lt;br /&gt;Subject: RE: Javascript include problem that could easily be fixed for .NET 4.0&lt;br /&gt;&lt;br /&gt;Hi Sam,&lt;br /&gt;&lt;br /&gt;My favorite method of handling this issue is to use the Page.ResolveUrl method in the master page like:&lt;br /&gt;&lt;br /&gt;&amp;lt;%= ResolveUrl( “~/Scripts/MyScript.js” ) %&amp;gt;&lt;br /&gt;&lt;br /&gt;The ResolveUrl() method replaces the tilde ~ with the name of your application so that you can move your website without breaking the paths.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Another approach to solving this problem is to use the server ScriptManager (which also resolves the tilde ~ automatically) like this:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;asp:ScriptManager id="sm" runat="Server"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;Scripts&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;asp:ScriptReference Path="~/JScript1.js" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Scripts&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/asp:ScriptManager&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I agree that it is a little inconsistent that the &amp;lt;head runat=”server”&amp;gt; control resolves the tilde ~ for &amp;lt;link&amp;gt; tags but not other tags like &amp;lt;img&amp;gt; and &amp;lt;script&amp;gt;.  But, you always have the option of using ResolveUrl in the &amp;lt;head&amp;gt; tag.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- Stephen&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;From: Scott Guthrie&lt;br /&gt;Sent: Tuesday, September 22, 2009 12:56 PM&lt;br /&gt;To: Meacham, Samuel @ Tempe; Stephen Walther&lt;br /&gt;Subject: RE: Javascript include problem that could easily be fixed for .NET 4.0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Stephen – any thoughts on this?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Scott&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;From: Meacham, Samuel @ Tempe&lt;br /&gt;Sent: Tuesday, September 22, 2009 12:40 PM&lt;br /&gt;To: Scott Guthrie&lt;br /&gt;Subject: Javascript include problem that could easily be fixed for .NET 4.0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sorry for emailing directly, but the art of feature requests and suggestions, while obviously important to both producers and consumers, has always been a dark one.  I’m never sure where the appropriate forum is to make sure my idea gets read.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Master pages are great, and solved a lot of problems, like making sure the same css document gets included in every page in your whole app.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Having this in the master page:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;head runat="server"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;link rel="stylesheet" type="text/css" href="~/css/default.css" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Renders this for a page at the app’s root:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;link rel="stylesheet" type="text/css" href="css/ErrorLoggerStyle.css" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And this for a page in a subdirectory of the root:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;link rel="stylesheet" type="text/css" href="../css/ErrorLoggerStyle.css" /&amp;gt;&lt;br /&gt;&lt;br /&gt;Basically, the magic ~ solves all your problems.  This doesn’t work for &amp;lt;script&amp;gt; tags, which leaves me 3 choices:&lt;br /&gt;&lt;br /&gt;·         Absolute URLs (“http://...”)&lt;br /&gt;&lt;br /&gt;·         URLs relative to the domain root (“/css/file.css”)&lt;br /&gt;&lt;br /&gt;·         URLs relative to the current directory (“css/file.css”, no leading “/”).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Obviously, each method has it’s pros and cons.  With completely absolute URLs, the files will always be found (as long as they are there), but this doesn’t work well when you have multiple deployments, such as production, staging, and development, that require different versions of js files.  Relative URLs fail when you have web content pages in subdirectories that use master pages in the app’s root (all of the paths break).  URLs relative to the domain root (“/css/file.css”) don’t work when you don’t (or can’t) know the name of the app virtual directory, or if it changes depending on which deployment of the site you’re using (“mydomain.com/myapp” vs “mydomain.com/myapp_dev”).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Our solution here has been to put an &amp;lt;asp:Literal&amp;gt; in the &amp;lt;head&amp;gt; element, and the master page’s Page_Load() writes all the &amp;lt;script&amp;gt; tags to that literal element at runtime, with the paths properly processed.  We could probably create a UserControl that did the same thing, but the end result would be the same:  No js intellisense at design time.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;None of the above options are particularly appealing.  Do you think it’s a possibility to have VS2010/.NET 4.0 support the ~ for &amp;lt;script src=”~/js/file.js”&amp;gt;?  It would solve a lot of headaches for a lot of people…&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sam Meacham&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It is nice to see such prompt response from a software development team.  Here are some other helpful hints.&lt;br /&gt;&lt;br /&gt;If you are updating the documentation of your JavaScript functions you may use the Update JScript IntelliSense command (Ctrl+Shift+J) from the Edit/Intellisense menu.&lt;br /&gt;&lt;br /&gt;Using Javascript in a User Control can be problematic since you don't know where in the file structure it may be used.  The following code will enable JavaScript Intellisense at design time.  The "if (false)" will ensure it is not run in the browser.&lt;br /&gt;&lt;br /&gt;&amp;lt;% if (false) { %&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script language="javascript" type="text/javascript" src="../js/util.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;% } %&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-906170191575438430?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/906170191575438430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=906170191575438430' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/906170191575438430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/906170191575438430'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/09/how-to-get-javascript-intellisense-in.html' title='How to get Javascript Intellisense in VS 2008'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-3250080171386290076</id><published>2009-09-07T10:42:00.002-07:00</published><updated>2009-09-07T10:47:05.796-07:00</updated><title type='text'>Delete Stuck Print Job</title><content type='html'>Our printer was stuck on a print job.  It would not delete.  She was editing a photo and wanted to be able to undo what she was doing.  Rebooting would have lost this state.&lt;br /&gt;&lt;br /&gt;We followed the steps &lt;a href="http://www.windowsnetworking.com/kbase/WindowsTips/WindowsNT/AdminTips/Print/DeleteStuckPrintJob.html"&gt;here&lt;/a&gt;.  It successfully reset our print queue&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-3250080171386290076?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/3250080171386290076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=3250080171386290076' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/3250080171386290076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/3250080171386290076'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/09/delete-stuck-print-job.html' title='Delete Stuck Print Job'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-5668219334915782835</id><published>2009-08-31T08:47:00.002-07:00</published><updated>2009-08-31T09:00:35.604-07:00</updated><title type='text'>"Mommy, where do ideas come from?"</title><content type='html'>I just read &lt;a href="http://www.cooper.com/journal/2009/08/mommy_where_do_ideas_come_from.html"&gt;Mommy, where do ideas come from?&lt;/a&gt;  It was insightful.  Here are a few quotes I found interesting.&lt;br /&gt;&lt;blockquote&gt;Experiencing real people in their actual environments fuels our senses of empathy and intuition that helps to guide us towards the ideas that make people happy, successful (and even better looking). Plus, the research phase affords us the opportunity to be fully immersed in the users and the domain for a few weeks at the start of the project, which in addition to providing rich data and empathy, also gives our brains boot-up time to start noodling on the problem and explore possible solutions in the background.&lt;br /&gt;&lt;/blockquote&gt;I am particularly satisfied when a solution I have created has made someone else work easier.  I makes it more real when I talked with them or interacted in some other way.&lt;br /&gt;&lt;h3&gt;&lt;/h3&gt;&lt;blockquote&gt;&lt;h3&gt;Sometimes, words are  worth 1,000 pictures&lt;/h3&gt;  The first step in our design ideation process comes before any “official” sketching is done: we describe the users’ ideal experience in words. The scenarios we develop at this stage are forward-looking and technology-agnostic, focusing on the personas and how they think, feel and behave rather than on specific interface elements or technical implementations.&lt;br /&gt;&lt;/blockquote&gt;I am convinced that if we invest some time in describing in words the experience we want our users to have it will pay dividends.&lt;br /&gt;&lt;blockquote&gt;There’s something special about the process of sketching - even jotting down some really bad ideas helps us learn about the tensions on the problem and gets us closer to a workable solution.&lt;br /&gt;&lt;/blockquote&gt;I love having the large jotting paper available to us since our move to our new office. &lt;br /&gt;&lt;h3&gt;&lt;/h3&gt;&lt;blockquote&gt;&lt;h3&gt;The power of paired  designing&lt;/h3&gt;  &lt;p&gt;Because we work in pairs, Cooper designers often can’t say for sure where one person’s idea ends and the other’s begins. But what we do know is that our design partners are a major source of inspiration and design ideas. We come up with ideas while we’re talking through the problem with our partners, or while listening to them talk through it with us. We piggyback on each others’ ideas, zeroing in on what’s good about our partner’s proposed solution and tweaking what’s not working, buoyed by the collective energy in the room. And just having someone there to call b.s. when we’ve gone too far off the reservation frees us up to explore novel and even downright crazy solutions that may yield useful insights or contain aspects that can be applied to a more practical design approach.&lt;/p&gt;  &lt;p&gt;As Richard Buchanan (Emma’s grad school professor) used to say, “Ideas don’t live in your brain or my brain but in the collective space between our brains.”&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;I know that one of the successes of MOS was the paired designing Sam and I did.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;h3&gt;Don’t be afraid to  stare out the window&lt;/h3&gt;  &lt;p&gt;One of the benefits our designers enjoy is that we are typically assigned to only one project at a time, which means that our design problems not only get our focused attention during work hours, but also find their way into our background brain cycles outside of the office. Oftentimes, ideas come in the shower, on a run or bike ride, or while washing dishes - any time that our minds are given the freedom to wander. Even here in the studio, you’ll often see designers staring out the window, watching a ship come into port or commuter-ants scurry through the crowded streets below. Taking some quiet time for woolgathering helps to reduce stress, while also distracting the judging part of our brains. After letting our minds meander for a bit, we can often corral some of those fragmented thoughts into a useful idea.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;I am amazed at the amount of inspiration and motivation I get when I am mowing the lawn, working in my garden or just walking.  Maybe there is something to the physical movement.  Something about a simple task that doesn't take my brain power. &lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-5668219334915782835?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/5668219334915782835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=5668219334915782835' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5668219334915782835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5668219334915782835'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/08/mommy-where-do-ideas-come-from.html' title='&quot;Mommy, where do ideas come from?&quot;'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-5279874946744876463</id><published>2009-08-26T10:47:00.002-07:00</published><updated>2009-08-26T10:55:44.308-07:00</updated><title type='text'>Modify Your Command Prompt Settings</title><content type='html'>I was just shown how to change some settings of the windows command prompt.  This is what I changed.&lt;br /&gt;&lt;br /&gt;Open your command prompt.  Right click on the title bar and choose properties.&lt;br /&gt;&lt;br /&gt;- Under the Options tab in the Edit Options section I checked QuickEdit Mode.  This allows you to select text and hit enter to copy text to the clipboard.&lt;br /&gt;- Under the Layout tab, I changed the Screen buffer width to 100 and the height to 500.  I changed the Window width to 100 and the height to 35&lt;br /&gt;&lt;br /&gt;When you click OK, you tell it to "save properties for future windows with the same title".  If you open your command prompt from a short cut you choose "Modify shortcut that started this window".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-5279874946744876463?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/5279874946744876463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=5279874946744876463' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5279874946744876463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5279874946744876463'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/08/modify-your-command-prompt-settings.html' title='Modify Your Command Prompt Settings'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-1544012250694546048</id><published>2009-08-20T14:50:00.001-07:00</published><updated>2009-08-20T14:54:07.693-07:00</updated><title type='text'>Dependency Injection</title><content type='html'>&lt;a href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2009/08/10/rough-notes-on-unity.aspx"&gt;Here&lt;/a&gt; is a good explanation on dependency injection looking at &lt;a href="http://www.codeplex.com/unity/"&gt;Unity&lt;/a&gt; specifically.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-1544012250694546048?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/1544012250694546048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=1544012250694546048' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1544012250694546048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1544012250694546048'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/08/dependency-injection.html' title='Dependency Injection'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-804500550794554873</id><published>2009-07-22T19:41:00.000-07:00</published><updated>2009-07-22T19:42:10.484-07:00</updated><title type='text'>UDF to summarize data by the week</title><content type='html'>&lt;span style="font-size:85%;"&gt;There have been a few times I wanted to summarize MS SQL Server records by the week. There is not any built in function in T-SQL that I know that does that. The code here is a simple example of how you could create a user defined function that will encapsulate this logic so you can more readably use it in a SQL query.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/*BEGIN Proof of concept script of a user defined function&lt;br /&gt;This script will clean up after itself&lt;br /&gt;&lt;br /&gt;Written by Rich Alger 2009-07-22&lt;br /&gt;*/&lt;br /&gt;IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MyTable]') AND type in (N'U'))&lt;br /&gt;DROP TABLE [dbo].[MyTable]&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;SET ANSI_NULLS ON&lt;br /&gt;GO&lt;br /&gt;SET QUOTED_IDENTIFIER ON&lt;br /&gt;GO&lt;br /&gt;IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MyTable]') AND type in (N'U'))&lt;br /&gt;BEGIN&lt;br /&gt;CREATE TABLE [dbo].[MyTable](&lt;br /&gt;   [Id] [int] IDENTITY(1,1) NOT NULL,&lt;br /&gt;   [DateCreated] [datetime] NOT NULL,&lt;br /&gt;CONSTRAINT [PK_MyTable] PRIMARY KEY CLUSTERED&lt;br /&gt;(&lt;br /&gt;   [Id] ASC&lt;br /&gt;)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]&lt;br /&gt;) ON [PRIMARY]&lt;br /&gt;END&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[udf_WeekOf]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))&lt;br /&gt;DROP FUNCTION [dbo].[udf_WeekOf]&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;SET ANSI_NULLS ON&lt;br /&gt;GO&lt;br /&gt;SET QUOTED_IDENTIFIER ON&lt;br /&gt;GO&lt;br /&gt;IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[udf_WeekOf]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))&lt;br /&gt;BEGIN&lt;br /&gt;execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[udf_WeekOf](@InDate DATETIME)&lt;br /&gt;RETURNS DATETIME&lt;br /&gt;AS&lt;br /&gt;/* Return the 12:00 am of Sunday before the date passed in */&lt;br /&gt;BEGIN&lt;br /&gt; DECLARE @DatePartOfInDate DATETIME&lt;br /&gt; SET @DatePartOfInDate = CAST(CONVERT(VARCHAR(10), @InDate, 120) AS DATETIME)&lt;br /&gt;&lt;br /&gt; DECLARE @WeekdayOfInDate INT&lt;br /&gt; SET @WeekdayOfInDate = DATEPART(weekday, @InDate)&lt;br /&gt;&lt;br /&gt; RETURN DATEADD(DAY, (-1 * (@WeekdayOfInDate-1) ), @DatePartOfInDate)&lt;br /&gt;END&lt;br /&gt;'&lt;br /&gt;END&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;INSERT INTO MyTable (DateCreated) VALUES ('2008-12-30 08:32:27')&lt;br /&gt;INSERT INTO MyTable (DateCreated) VALUES ('2009-01-02 12:17:16')&lt;br /&gt;INSERT INTO MyTable (DateCreated) VALUES ('2009-01-06 09:02:43')&lt;br /&gt;INSERT INTO MyTable (DateCreated) VALUES ('2009-01-13 16:53:02')&lt;br /&gt;INSERT INTO MyTable (DateCreated) VALUES ('2009-01-14 11:12:34')&lt;br /&gt;INSERT INTO MyTable (DateCreated) VALUES ('2009-01-15 13:38:23')&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECT&lt;br /&gt; Id&lt;br /&gt; ,DateCreated&lt;br /&gt; , dbo.udf_WeekOf(DateCreated) AS WeekOf&lt;br /&gt;FROM MyTable&lt;br /&gt;&lt;br /&gt;SELECT&lt;br /&gt;   COUNT(*) AS RecordInWeekOf&lt;br /&gt; , dbo.udf_WeekOf(DateCreated) AS WeekOf&lt;br /&gt;FROM MyTable&lt;br /&gt;GROUP BY dbo.udf_WeekOf(DateCreated)&lt;br /&gt;&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;/* This will drop the objects*/&lt;br /&gt;IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[udf_WeekOf]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))&lt;br /&gt;DROP FUNCTION [dbo].[udf_WeekOf]&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MyTable]') AND type in (N'U'))&lt;br /&gt;DROP TABLE [dbo].[MyTable]&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;/*END Proof of concept */&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;The following script will only add the user defined function&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[udf_WeekOf]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))&lt;br /&gt;DROP FUNCTION [dbo].[udf_WeekOf]&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;CREATE FUNCTION [dbo].[udf_WeekOf](@InDate DATETIME)&lt;br /&gt;RETURNS DATETIME&lt;br /&gt;AS&lt;br /&gt;/* Return the 12:00 am of Sunday before the date passed in */&lt;br /&gt;BEGIN&lt;br /&gt; DECLARE @DatePartOfInDate DATETIME&lt;br /&gt; SET @DatePartOfInDate = CAST(CONVERT(VARCHAR(10), @InDate, 120) AS DATETIME)&lt;br /&gt;&lt;br /&gt; DECLARE @WeekdayOfInDate INT&lt;br /&gt; SET @WeekdayOfInDate = DATEPART(weekday, @InDate)&lt;br /&gt;&lt;br /&gt; RETURN DATEADD(DAY, (-1 * (@WeekdayOfInDate-1) ), @DatePartOfInDate)&lt;br /&gt;END&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-804500550794554873?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/804500550794554873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=804500550794554873' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/804500550794554873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/804500550794554873'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/07/udf-to-summarize-data-by-week.html' title='UDF to summarize data by the week'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-5812222037309917190</id><published>2009-06-11T13:45:00.001-07:00</published><updated>2009-06-11T13:46:58.375-07:00</updated><title type='text'>Enabling Concurrent Remote Desktop Sessions on Windows XP SP3</title><content type='html'>Very useful from &lt;a href="http://alonbilu.wordpress.com/2008/05/17/enabling-multiple-concurrent-remote-sessions-on-windows-xp-sp3-patched-file-included/"&gt;The Boiling Mind&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;If you have multiple users on your Windows XP machine, you might have heard it is possible to patch the terminal services service, to support multiple concurrent remote desktop connection (via RDP) to your computer.&lt;br /&gt;...&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-5812222037309917190?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/5812222037309917190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=5812222037309917190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5812222037309917190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5812222037309917190'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/06/enabling-concurrent-remote-desktop.html' title='Enabling Concurrent Remote Desktop Sessions on Windows XP SP3'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-5577337506486410196</id><published>2009-06-09T05:29:00.003-07:00</published><updated>2009-06-09T05:59:13.238-07:00</updated><title type='text'>Telecommuting</title><content type='html'>Jonathan Weber &lt;a href="http://www.thebigmoney.com/features/making-payroll/2009/06/08/virtual-insanity"&gt;said&lt;/a&gt;&lt;blockquote&gt;I firmly believe that you should expect employees to show up for work, whenever possible, no matter what kind of company. &lt;p&gt;The reasons for this have nothing to do with checking that people are actually working. It's about efficient communications, building company culture and camaraderie, and sharing the daily bits of work and personal experiences that create a shared sense of purpose.&lt;/p&gt;&lt;/blockquote&gt;For over 9 months, I have been telecommuting 2 days a week.  3 other people in my team have also been telecommuting 2 days a week.  One other telecommutes full time.&lt;br /&gt;&lt;br /&gt;There are things that have not been communicated, or grown in the last while for us.  That being said, I do love the freedom it brings me.  It allows for more time with my family.  I have less driving and lots of other benefits.  I have more loyalty for my employer.  Why would I want to leave and not have the benefit of working from home two days?  I think my employer has made a good decision by allowing us to work from home.&lt;br /&gt;&lt;br /&gt;We have been thinking about what we can do as a group to improve our collaboration.  This is much more natural when you are all sitting in the same room.  Conversations start.  You show each other what you are working on.  Expressing frustrations are an easy open into offering assistance.  Input into design and best practices are shared.&lt;br /&gt;&lt;br /&gt;We are moving towards a more formal software development methodology.  A little more structured.  Three goals so far are to design in pairs, do side by side code reviews, and have quicker iterations in our cycle.  I hope that by following some structured guidelines, we will foster collaboration that happened easier when we all sat next to each other 5 days a week.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-5577337506486410196?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/5577337506486410196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=5577337506486410196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5577337506486410196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5577337506486410196'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/06/telecommuting.html' title='Telecommuting'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-6828294691508849872</id><published>2009-05-07T14:36:00.004-07:00</published><updated>2009-05-07T14:44:50.637-07:00</updated><title type='text'>The Development Abstraction Layer</title><content type='html'>I just heard my manager talk about some "business stuff" I usually don't hear about.  It reminded me of this story in a Joel Spolsky &lt;a href="http://www.joelonsoftware.com/articles/DevelopmentAbstraction.html"&gt;article&lt;/a&gt;.&lt;br /&gt;&lt;blockquote&gt;Programmers need a Subversion repository. Getting a Subversion repository means you need a network, and a server, which has to be bought, installed, backed up, and provisioned with uninterruptible power, and that server generates a lot of heat, which means it need to be in a room with an extra air conditioner, and that air conditioner needs access to the outside of the building, which means installing an 80 pound fan unit on the wall outside the building, which makes the building owners nervous, so they need to bring their engineer around, to negotiate where the air conditioner unit will go (decision: on the outside wall, up here on the 18th floor, at the most inconvenient place possible), and the building gets their lawyers involved, because we're going to have to sign away our firstborn to be allowed to do this, and then the air conditioning installer guys show up with rigging gear that wouldn't be out of place in a Barbie play-set, which makes our construction foreman nervous, and he doesn't allow them to climb out of the 18th floor window in a Mattel harness made out of 1/2" pink plastic, I [swear] it could be Disco Barbie's belt, and somebody has to call the building agent again and see [why] they suddenly realized, 12 weeks into a construction project, that another contract amendment is going to be needed for [this] air conditioner that they knew about before Christmas and they only just figured it out, and if your programmers even spend one minute thinking about this that's one minute too many.&lt;br /&gt;&lt;br /&gt;To the software developers on your team, this all needs to be abstracted away as typing svn commit on the command line.&lt;br /&gt;&lt;br /&gt;That's why you have management.&lt;br /&gt;&lt;/blockquote&gt;I am thankful for the development abstraction layer I have at work.&lt;br /&gt;&lt;img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAUCAYAAACJfM0wAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAAB90RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgOLVo0ngAAAAWdEVYdENyZWF0aW9uIFRpbWUAMDQvMDQvMDhrK9wWAAACA0lEQVQ4jbXVz0sUYRjA8e+u6xqlKJUaBZuUh6AfhyCEpUN/QIR0skMh6iHwsKe6lFu4HjpJhy5BS1CsZtDSrYMYdPHUZauDbhcpi7bEH2DOtjvP83aY3dFxxi1hfeAd3nlhPu/zPjPvOyHgKnsQEQDz60kaaKuTuRpqHxqMAKBWvVCoJOjAxqqj60Q1Y3fg05dWki/OMjt3+L+A+KklRvs+cia2VhtOTsYpN5wgl4nReTCM6s7o96UyA6kFkpNK9tZMEFx0B2bnO8hlYky/L5N9V2TDsinbgohi207fFqGxwZDoO0T67nEu9FseAyAMODWuNqC9LczUTBGrKIgqqgYRQdSgqogovy2b8YkCxzqiBBlOxuJ/earqIqqKbMfVsLYuGGMIMnb8KkTUk60HNwapTOqGCYLVDzdGDH9Km1mKiDOBMe4qmqJbl+g1wu5gtQGFZWHw8gFam/GXoILubwpxf+go336WCDJ8pYh35xkYayZ9J8aVi52+lZgt18VCif7RBeLd+X+XItX7nJHXyvkb6wD8eHOOqekVEuNffZM4icyR6s34SuGDTx/Jk715D4CTIy959XaFB0/n+Tw2TMu+jUDcMby3vg2yPW4/WuTxtYe0RJd9D9eKmodQT1eOxKVn9HR9qJZ1l3DABgGYuD7sdGR36CZsrFXqeNADhNijX9NfAyI+Sz1Sug0AAAAASUVORK5CYII=" style="position: absolute; visibility: hidden; z-index: 2147483647; left: 353px; top: 2px;" id="kosa-target-image" /&gt;&lt;div menubottom="0" menuright="0" menutop="0" menuleft="0" activeid="-1" expanded="0" style="display: none;" id="divCleekiAttrib"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-6828294691508849872?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/6828294691508849872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=6828294691508849872' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/6828294691508849872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/6828294691508849872'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/05/development-abstraction-layer.html' title='The Development Abstraction Layer'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-5217029613508765169</id><published>2009-05-07T13:28:00.002-07:00</published><updated>2009-05-07T13:33:26.114-07:00</updated><title type='text'>Folder Filters in Beyond Compare</title><content type='html'>We use subversion and ReSharper at work.  Using wildcards on folder names in &lt;a href="http://www.scootersoftware.com/"&gt;Beyond Compare&lt;/a&gt; lets me exclude the svn and ReSharper folders when comparing two working directories.&lt;br /&gt;&lt;br /&gt;This is how my filter shows up in the text box: "-*_svn\;-*_ReSharper*\"&lt;br /&gt;&lt;div menubottom="0" menuright="0" menutop="0" menuleft="0" activeid="-1" expanded="0" style="display: none;" id="divCleekiAttrib"&gt;&lt;/div&gt;&lt;img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAUCAYAAACJfM0wAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAAB90RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgOLVo0ngAAAAWdEVYdENyZWF0aW9uIFRpbWUAMDQvMDQvMDhrK9wWAAACA0lEQVQ4jbXVz0sUYRjA8e+u6xqlKJUaBZuUh6AfhyCEpUN/QIR0skMh6iHwsKe6lFu4HjpJhy5BS1CsZtDSrYMYdPHUZauDbhcpi7bEH2DOtjvP83aY3dFxxi1hfeAd3nlhPu/zPjPvOyHgKnsQEQDz60kaaKuTuRpqHxqMAKBWvVCoJOjAxqqj60Q1Y3fg05dWki/OMjt3+L+A+KklRvs+cia2VhtOTsYpN5wgl4nReTCM6s7o96UyA6kFkpNK9tZMEFx0B2bnO8hlYky/L5N9V2TDsinbgohi207fFqGxwZDoO0T67nEu9FseAyAMODWuNqC9LczUTBGrKIgqqgYRQdSgqogovy2b8YkCxzqiBBlOxuJ/earqIqqKbMfVsLYuGGMIMnb8KkTUk60HNwapTOqGCYLVDzdGDH9Km1mKiDOBMe4qmqJbl+g1wu5gtQGFZWHw8gFam/GXoILubwpxf+go336WCDJ8pYh35xkYayZ9J8aVi52+lZgt18VCif7RBeLd+X+XItX7nJHXyvkb6wD8eHOOqekVEuNffZM4icyR6s34SuGDTx/Jk715D4CTIy959XaFB0/n+Tw2TMu+jUDcMby3vg2yPW4/WuTxtYe0RJd9D9eKmodQT1eOxKVn9HR9qJZ1l3DABgGYuD7sdGR36CZsrFXqeNADhNijX9NfAyI+Sz1Sug0AAAAASUVORK5CYII=" style="position: absolute; visibility: hidden; z-index: 2147483647; left: 684px; top: -16px;" id="kosa-target-image" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-5217029613508765169?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/5217029613508765169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=5217029613508765169' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5217029613508765169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5217029613508765169'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/05/folder-filters-in-beyond-compare.html' title='Folder Filters in Beyond Compare'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-1076708562637534212</id><published>2009-04-23T11:54:00.004-07:00</published><updated>2009-06-21T13:07:19.725-07:00</updated><title type='text'>Pidgin: Cannot connect to Yahoo - "connection refused" error</title><content type='html'>Recently my Pidgin, version 2.5.5, stopped connecting to the yahoo im service with a "connection refused message"  I &lt;a href="http://developer.pidgin.im/ticket/8853#comment:5"&gt;found&lt;/a&gt; that this was a recent issue with a work around.&lt;br /&gt;&lt;br /&gt;I created a batch file to do this work-around if this happens again.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;REM flush dns so pidgin will work with yahoo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;REM  see &lt;/span&gt;&lt;a href="http://developer.pidgin.im/ticket/8853#comment:5"&gt;&lt;span style="font-family:courier new;"&gt;http://developer.pidgin.im/ticket/8853#comment:5&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ping scs.msg.yahoo.com&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ipconfig /flushdns&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ping scs.msg.yahoo.com&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;pause&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;UPDATE 2009-06-21&lt;br /&gt;&lt;br /&gt;There are further issues with this that showed up last week, or maybe just more yahoo servers are upgraded.  Pidgin 2.5.7 works for me so far and I flushed my dns a couple of times.&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://developer.pidgin.im/ticket/8853#comment:77"&gt;http://developer.pidgin.im/ticket/8853#comment:77&lt;/a&gt;&lt;br /&gt;&lt;div menubottom="0" menuright="0" menutop="0" menuleft="0" activeid="-1" expanded="0" style="display: none;" id="divCleekiAttrib"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-1076708562637534212?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/1076708562637534212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=1076708562637534212' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1076708562637534212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1076708562637534212'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/04/pidgin-cannot-connect-to-yahoo.html' title='Pidgin: Cannot connect to Yahoo - &quot;connection refused&quot; error'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-4204053995143891004</id><published>2009-04-07T14:08:00.002-07:00</published><updated>2009-04-07T14:20:51.419-07:00</updated><title type='text'>SQL Server Reporting Services 2008 Custom Assembly Error</title><content type='html'>&lt;blockquote&gt;Error while loading code module: ‘RS_funcs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null’. Details: Could not load file or assembly 'RS_funcs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.&lt;br /&gt;&lt;/blockquote&gt;Last fall I was getting this error when trying to get our reporting projects created in VS 2005 to work in VS 2008.  I found &lt;a href="http://forums.asp.net/t/1010780.aspx"&gt;this&lt;/a&gt; post showing where to put your custom assembly in order for the VS designed to work.  I post it here so as not to forget again.  In VS 2008, the path is "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-4204053995143891004?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/4204053995143891004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=4204053995143891004' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/4204053995143891004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/4204053995143891004'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/04/sql-server-reporting-services-2008.html' title='SQL Server Reporting Services 2008 Custom Assembly Error'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-6642988929084785839</id><published>2009-01-21T12:03:00.002-07:00</published><updated>2009-01-21T12:06:41.364-07:00</updated><title type='text'>Generics Review</title><content type='html'>I have had some practical experience with generics.  &lt;a href="http://www.ondotnet.com/pub/a/dotnet/2004/05/17/liberty.html?page=2"&gt;Here&lt;/a&gt; is a nice explanation, from ondotnet.com, of the problem generics solves.  I particularly like this summary statement, "&lt;span id="intelliTxt"&gt;Generics thus allow you to create type-safe collections without having to duplicate code. &lt;/span&gt;"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-6642988929084785839?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/6642988929084785839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=6642988929084785839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/6642988929084785839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/6642988929084785839'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/01/generics-review.html' title='Generics Review'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-118387066551249623</id><published>2009-01-13T12:48:00.002-07:00</published><updated>2009-01-13T12:50:38.085-07:00</updated><title type='text'>How to find Windows uptime?</title><content type='html'>From &lt;a href="http://support.microsoft.com/kb/555737"&gt;MS Help and Support&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;    1.  Go to "&lt;strong&gt;Start&lt;/strong&gt;" -&gt; "&lt;strong&gt;Run&lt;/strong&gt;".&lt;br /&gt;&lt;br /&gt;    2.  Write "&lt;strong&gt;CMD&lt;/strong&gt;" and press on "&lt;strong&gt;Enter&lt;/strong&gt;" key.&lt;br /&gt;&lt;br /&gt;    3.  Write the command "&lt;strong&gt;net statistics server&lt;/strong&gt;" and press on "&lt;strong&gt;Enter&lt;/strong&gt;" key.&lt;br /&gt;&lt;br /&gt;    4.  The line that start with "&lt;strong&gt;Statistics since …&lt;/strong&gt;" provides the time that the server was up from.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;  The command "&lt;strong&gt;net stats srv&lt;/strong&gt;" can be use instead.&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/16213456-118387066551249623?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/118387066551249623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=118387066551249623' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/118387066551249623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/118387066551249623'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2009/01/how-to-find-windows-uptime.html' title='How to find Windows uptime?'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-2673877969367174894</id><published>2008-12-16T10:31:00.002-07:00</published><updated>2008-12-16T10:32:13.636-07:00</updated><title type='text'>10 Useful Techniques To Improve Your User Interface Designs</title><content type='html'>&lt;a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/"&gt;Here&lt;/a&gt; is an article a friend at work forwarded to me.  They are worth remembering.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-2673877969367174894?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/2673877969367174894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=2673877969367174894' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2673877969367174894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2673877969367174894'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/12/10-useful-techniques-to-improve-your.html' title='10 Useful Techniques To Improve Your User Interface Designs'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-6865156246011305506</id><published>2008-12-06T10:23:00.009-07:00</published><updated>2008-12-06T11:30:53.792-07:00</updated><title type='text'>Holy Handywoman!</title><content type='html'>or "My Breakthrough in Handymanliness"&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have serious issues about not being an adequate handyman.  Often I get frustrated and/or overwhelmed and then avoid it.   &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Last summer, our clothes washer (Whirlpool Model #LSQ9544KQ0) would stop in the spin cycle.  We figured out that we could put a detergent bottle on the lid and it would continue.  The number of bottles and people required to make it finish mounted until it refused to work a few days ago.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I first thought of how much money we would have to spend on buying a new one.  I completely avoided the thought of repairing it.  It is over 7 years old and I thought it may just be time.  Stephanie remembered that we had the same problem some time ago and had a repairman out to fix it.  She found the part that he used to fix it.  This encouraged me.  Thursday evening I researched where to buy it and yesterday morning I stopped by &lt;a href="http://appliancepartscompany.com/locations.php"&gt;Appliance Parts Co&lt;/a&gt; and bought a &lt;a href="http://www.appliancepartspros.com/part_details.aspx?part_id=3710181&amp;amp;pn_=3949247"&gt;lid switch assembly&lt;/a&gt; for $42.64.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This morning I planned on fixing it together.  I am more confident when she is there to support (show me) me.  I got our tools out and started looking for things to take apart.  Steph looked up&lt;a href="http://www.repair-help.com/kb/index.php?article=177"&gt; instructions and diagrams&lt;/a&gt; on how to open up the washer.  We found an illuminating &lt;a href="http://www.youtube.com/watch?v=vogysB7XOc8"&gt;video&lt;/a&gt; that gave us an idea of how to get it open.  Steph figured out I had taken out the wrong screws.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_i4FBh0i-sSM/STrDDqs-YxI/AAAAAAAAADk/sNdXGdRELlA/s1600-h/WhirlpoolScrewLocation.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_i4FBh0i-sSM/STrDDqs-YxI/AAAAAAAAADk/sNdXGdRELlA/s400/WhirlpoolScrewLocation.jpg" alt="" id="BLOGGER_PHOTO_ID_5276744381187908370" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Once we took the correct screws out we were able to flip up the control panel, pop off the clamps and open the front of the washer following the great how-to &lt;a href="http://www.youtube.com/watch?v=vogysB7XOc8"&gt;video&lt;/a&gt; we found.  It was relatively simple to take off the switch assembly and put in the new one.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It turned out that Steph was the one doing all the handy-work and I handed her tools.  It reminded me of when I was a boy helping out my dad.  It is kind of like when we are explaining the rules of a game.  She doesn't want to start.  I get going and then she finishes.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The whole experience was small on frustration and large on satisfaction.  We saved several hundred dollars and my handy-ego has been boosted. I am going to do all my handy-work with her from now on.  (Like I ever do it at all).&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-6865156246011305506?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/6865156246011305506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=6865156246011305506' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/6865156246011305506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/6865156246011305506'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/12/holy-handywoman.html' title='Holy Handywoman!'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_i4FBh0i-sSM/STrDDqs-YxI/AAAAAAAAADk/sNdXGdRELlA/s72-c/WhirlpoolScrewLocation.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-4957904404802894835</id><published>2008-12-06T06:06:00.004-07:00</published><updated>2009-06-05T13:21:19.320-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><title type='text'>TortoiseSVN ignore-on-commit</title><content type='html'>I wanted to be able to have my web.config in the repository but not have certain working copies commit.  I found "ignore-on-commit" at &lt;a href="http://tortoisesvn.tigris.org/tsvn_1.5_releasenotes.html"&gt;http://tortoisesvn.tigris.org/tsvn_1.5_releasenotes.html&lt;/a&gt;.  I think this will work best for me.&lt;br /&gt;&lt;br /&gt;I have also used the strategy at &lt;a href="http://subversion.tigris.org/faq.html#ignore-commit"&gt;http://subversion.tigris.org/faq.html#ignore-commit&lt;/a&gt;.  It ensures all working copy web.config files never get committed.   You have to manually copy the contents of the renamed, unversioned web.config to the versioned template.&lt;br /&gt;&lt;br /&gt;** Update 2009-03-26 **&lt;br /&gt;&lt;br /&gt;I tried to use this again and forgot how to do it.  The change list &lt;a href="http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-changelists.html"&gt;help page&lt;/a&gt; clearly states that you do a context menu on the file you want to add to a change list &lt;span style="font-weight: bold; font-style: italic;"&gt;within&lt;/span&gt; the commit or check-for-modifications dialog box.  I kept trying to see it in the window folder context menu for the file I wanted to add to a change list.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-4957904404802894835?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/4957904404802894835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=4957904404802894835' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/4957904404802894835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/4957904404802894835'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/12/tortoisesvn-ignore-on-commit.html' title='TortoiseSVN ignore-on-commit'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-4418675968592916551</id><published>2008-11-27T11:18:00.001-07:00</published><updated>2008-11-27T11:19:55.163-07:00</updated><title type='text'>Change the number of rings</title><content type='html'>This is how you change the number of rings before your phone goes to voice mail for Cox phone service in Phoenix.&lt;br /&gt;&lt;br /&gt;Press *78.  Then press the number of ring you want till is goes to voice mail.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-4418675968592916551?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/4418675968592916551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=4418675968592916551' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/4418675968592916551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/4418675968592916551'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/11/change-number-of-rings.html' title='Change the number of rings'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-814298824474916638</id><published>2008-11-14T12:36:00.003-07:00</published><updated>2008-11-14T13:31:04.004-07:00</updated><title type='text'>What does Agile mean?</title><content type='html'>This sums up what I think of when think of Agile software development, "Agile is about creating better products, and making the process less painful along the way".  I found it in the cooper.com article &lt;a href="http://www.cooper.com/journal/2008/11/the_missing_piece.html"&gt;The missing piece: How interaction design can add to Agile&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It reminds me of a conversation I had with another developer.  We were talking about creating some kind of job tracking system so we can more accurately identify how much each widget costs.  The conversation came down to, "Make it painless yet required".  You don't want to tax the time of your producers, yet you want to more accurately capture costs per widget.&lt;br /&gt;&lt;br /&gt;That is the idea of continuous integration.  Whenever your code is committed, the unit tests on the build machine start running.  They soon let you know if your changes broke any existing tests.&lt;br /&gt;&lt;br /&gt;Some other quotes I like from the article:&lt;br /&gt;&lt;br /&gt;"Agile helps people focus on the value the product delivers to real people"&lt;br /&gt;&lt;br /&gt;"A focus on working code helps Agile projects stay honest."&lt;br /&gt;&lt;br /&gt;"The Agile process does not provide tools to define key business or user experience objectives"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-814298824474916638?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/814298824474916638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=814298824474916638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/814298824474916638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/814298824474916638'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/11/what-does-agile-mean.html' title='What does Agile mean?'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-6740444911683910446</id><published>2008-10-28T00:58:00.005-07:00</published><updated>2008-10-28T12:52:43.046-07:00</updated><title type='text'>Dominant, Expressive, Analytical and Amiable</title><content type='html'>In July, I attended a personality seminar run by &lt;a href="http://www.persogenics.com/"&gt;Persogenics&lt;/a&gt;.  I have done several personality, self helpy things in my life.  Sometimes I get a little wary of this kind of thing.  There are a few things I found useful from the seminar.&lt;br /&gt;&lt;br /&gt;The workshop focused on improving the communication between people with very different styles.  There are four patterns people use to communicate: Dominant, Expressive, Analytical and Amiable.  Most people have a primary and secondary way of communicating.&lt;br /&gt;&lt;br /&gt;One of the best stories was one the facilitator told of a rafting trip they went on as a company.  It was a hoot to hear how the people of the different styles interacted with each other.&lt;br /&gt;&lt;br /&gt;The bottom line for me were two things to remember per communication style.  One was what the person of the style was to remember.  The other was what others could keep in mind when communicating with the person.  This is what I remember:&lt;br /&gt;&lt;br /&gt;A dominant communicator should remember to ask not tell.  Others should remember to take them seriously but not personally.&lt;br /&gt;&lt;br /&gt;An expressive communicator should let others know when they are talking out loud.  Others should restate what they heard them say.  If appropriate, touch them to let them know you understand what they said.  Paraphrase, playback.&lt;br /&gt;&lt;br /&gt;An analytical communicator should let others know when they are thinking, "Let me think for a moment".  Others should give them time (5-10 seconds) after asking them a question.&lt;br /&gt;&lt;br /&gt;An amiable communicator should remember to speak up now, sooner is better than later.  Others should ask to ask, "May I ask you something?"&lt;br /&gt;&lt;br /&gt;This came up for my wife and I last night.  It has helped us to avoid misunderstandings.  It may help me at work too.  It will serve me to remember these lessons.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-6740444911683910446?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/6740444911683910446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=6740444911683910446' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/6740444911683910446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/6740444911683910446'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/10/dominant-expressive-analytical-and.html' title='Dominant, Expressive, Analytical and Amiable'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-2918535381072792852</id><published>2008-10-09T01:01:00.001-07:00</published><updated>2008-10-09T01:02:16.971-07:00</updated><title type='text'>Great Zip Code Map Site</title><content type='html'>Here is a great mapping site that shows you zip codes.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://maps.huge.info/zip.htm"&gt;http://maps.huge.info/zip.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-2918535381072792852?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/2918535381072792852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=2918535381072792852' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2918535381072792852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2918535381072792852'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/10/great-zip-code-map-site.html' title='Great Zip Code Map Site'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-8290535171256878417</id><published>2008-09-24T12:47:00.002-07:00</published><updated>2008-09-24T12:48:28.872-07:00</updated><title type='text'>View HTML Color</title><content type='html'>Occasionally, I need to see what an HTML color looks like.  This site was useful.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.colorschemer.com/online.html"&gt;http://www.colorschemer.com/online.html&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-8290535171256878417?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/8290535171256878417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=8290535171256878417' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/8290535171256878417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/8290535171256878417'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/09/view-html-color.html' title='View HTML Color'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-1190372861908430042</id><published>2008-09-19T13:43:00.002-07:00</published><updated>2008-09-19T13:51:38.913-07:00</updated><title type='text'>Google Chrome is an Operating System</title><content type='html'>&lt;div&gt;I generally liked the look and feel of Google's Chrome browser when I first tried it.  Today I found the &lt;a href="http://www.megaleecher.net/Google_Chrome_Tips"&gt;Google Chrome Task Manager&lt;/a&gt;. There is more at &lt;a href="http://lifehacker.com/5045164/google-chromes-full-list-of-special-about-pages"&gt;Google Chrome's Full List of Special about: Pages&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There is a good introductory video at &lt;a href="http://www.youtube.com/watch?v=Xlh8gSF_hhE"&gt;10 Features of Google Chrome&lt;/a&gt;.  Quite impressive.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-1190372861908430042?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/1190372861908430042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=1190372861908430042' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1190372861908430042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1190372861908430042'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/09/google-chrome-is-operating-system.html' title='Google Chrome is an Operating System'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-7323112247248733253</id><published>2008-09-17T10:28:00.002-07:00</published><updated>2008-09-17T12:07:23.191-07:00</updated><title type='text'>Solar Noon</title><content type='html'>I have an uncommon interest in timezones and solar patterns.  A while ago I wondered where in the MST does the timezone time and the solar time match.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One way to find out is to find the location where is it solar noon on an equinox day.  A friend of mine used &lt;a href="http://www.solar-noon.com/"&gt;solar-noon.com&lt;/a&gt; to figure out that &lt;a href="http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=+35.094311,+-106.670000&amp;amp;ie=UTF8&amp;amp;ll=35.09435,-106.670036&amp;amp;spn=0.103655,0.145054&amp;amp;z=13&amp;amp;iwloc=addr"&gt;Albuquerque&lt;/a&gt; is where solar noon and MST noon are the same (&lt;a href="http://www.solar-noon.com/sn_calc.php?Location=MST+Solar+Noon&amp;amp;LatDec=35.094311&amp;amp;LatNS=N&amp;amp;LongDec=106.670000&amp;amp;LongEW=W&amp;amp;TimeZone=105&amp;amp;Type=SolarNoon"&gt;see chart&lt;/a&gt;).  Kind of funny that is always daylight savings on the equinox days.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I just noticed that the spring equinox is not noon.  I am not sure what that means.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-7323112247248733253?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/7323112247248733253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=7323112247248733253' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7323112247248733253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7323112247248733253'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/09/solar-noon.html' title='Solar Noon'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-492591936465315385</id><published>2008-08-27T11:13:00.004-07:00</published><updated>2008-08-27T11:59:18.227-07:00</updated><title type='text'>Delete Temporary ASP.NET Files</title><content type='html'>IIS caches the dlls my ASP.NET project references.   On my development box sometimes it does not copy the new files over.  To ensure that IIS is using your latest files&lt;br /&gt;&lt;br /&gt;- From command line issue a "IISReset /stop" command to stop IIS&lt;br /&gt;- Delete the C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ folder&lt;br /&gt;- Start IIS with "IISReset"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-492591936465315385?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/492591936465315385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=492591936465315385' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/492591936465315385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/492591936465315385'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/08/delete-temporary-aspnet-files.html' title='Delete Temporary ASP.NET Files'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-2103095811798208793</id><published>2008-08-22T06:23:00.002-07:00</published><updated>2008-08-22T06:25:44.830-07:00</updated><title type='text'>View Message Source in Outlook 2003</title><content type='html'>&lt;a href="http://thelazyadmin.com/blogs/thelazyadmin/archive/2006/09/01/View-Message-Source-in-Outlook-2003.aspx"&gt;The Lazy Admin&lt;/a&gt; was useful to me today&lt;br /&gt;&lt;blockquote&gt;The other day I wrote how to view message headers in OWA, and recieved a lot of mail asking if this can be done it Outlook as well. If you have ever used Outlook Express, you might be familiar with the View --&gt; Source option. In Outlook this feature does not exist.&lt;br /&gt;&lt;br /&gt;Outlook gives you the option to View --&gt; Options which will display the e-mail header. To enable the View --&gt; Source functionality in Outlook 2003 open up regedit and drill down to:&lt;br /&gt;&lt;br /&gt;HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Options\Mail&lt;br /&gt;&lt;br /&gt;Create a new Reg_DWORD called SaveAllMIMENotJustHeaders and give it a value of 1. This will enalbe the View --&gt; Source option in Outlook 2003 but there are a few exceptions. It will only work for messages received after the change has been made and will not work with MAPI connections (i.e. Exchange mailboxes). You will only have this option for mail received from Internet transports (i.e. POP3)&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-2103095811798208793?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/2103095811798208793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=2103095811798208793' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2103095811798208793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2103095811798208793'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/08/view-message-source-in-outlook-2003.html' title='View Message Source in Outlook 2003'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-3002983985277543044</id><published>2008-08-22T05:51:00.006-07:00</published><updated>2008-08-22T06:15:18.781-07:00</updated><title type='text'>Where is the rawurlencode of ASP.NET?</title><content type='html'>&lt;p&gt;&lt;span style="font-size:85%;"&gt;I could not find a function in ASP.NET that behaves like PHP's rawurlencode. System.Web.HttpUtility and HttpServerUtility both have UrlEncode and UrlPathEncode. So I created the function below to extend UrlEncode to manually encode the characters that kept the the filenames from working as an &amp;lt;a href path&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;p&gt;&lt;br /&gt;/// &amp;lt;summary&amp;gt;&lt;br /&gt;/// HttpUtility.UrlEncode() and Server.UrlEncode()&lt;br /&gt;/// do not urlencode some special characters.&lt;br /&gt;/// This procedure ensures that the file part of the&lt;br /&gt;/// url returned is properly encoded&lt;br /&gt;/// Used &lt;a href="http://www.voormedia.com/en/tools/url-encoder-php-asp-urlencode.php"&gt;http://www.voormedia.com/en/tools/url-encoder-php-asp-urlencode.php&lt;/a&gt;&lt;br /&gt;/// to see what characters urlencode to&lt;br /&gt;/// Also &lt;a href="http://en.wikipedia.org/wiki/Url_encoding"&gt;http://en.wikipedia.org/wiki/Url_encoding&lt;/a&gt;&lt;br /&gt;/// &amp;lt;/summary&amp;gt;&lt;br /&gt;/// &amp;lt;param name="Filename"&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;public static string GetUrlEncodedFilename(string Filename)&lt;br /&gt;{&lt;br /&gt;string FileNameEncoded = "";&lt;br /&gt;if (Filename != null)&lt;br /&gt;{ FileNameEncoded = HttpUtility.UrlEncode(Filename);&lt;br /&gt;//UrlEncode encodes spaces to pluses. &lt;a href="http://forums.asp.net/t/1231078.aspx"&gt;http://forums.asp.net/t/1231078.aspx&lt;/a&gt;&lt;br /&gt;FileNameEncoded = FileNameEncoded.Replace("+", "%20");&lt;br /&gt;//Encode ' so the href specification does not terminate&lt;br /&gt;FileNameEncoded = FileNameEncoded.Replace("'", "%27");&lt;br /&gt;} return FileNameEncoded;&lt;br /&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.opinionatedgeek.com/DotNet/Tools/HTMLEncode/Encode.aspx"&gt;Here&lt;/a&gt; is an online HTML encoder I used to be able to format the code to show up correctly.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-3002983985277543044?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/3002983985277543044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=3002983985277543044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/3002983985277543044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/3002983985277543044'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/08/where-is-rawurlencode-of-aspnet.html' title='Where is the rawurlencode of ASP.NET?'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-30713536797718165</id><published>2008-08-03T08:15:00.003-07:00</published><updated>2008-12-09T18:21:25.712-07:00</updated><title type='text'>Wireless Mastered!</title><content type='html'>I recently split up my two computers at home.  One upstairs and one down.  I decided to set up a wireless network.  It has been frustrating.  I ended buying a new wireless router and a new wireless network card.  I did get a better signal, but my wireless machine would not connect automatically.&lt;br /&gt;&lt;br /&gt;The solution that finally worked was to disable the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;LinkSys&lt;/span&gt; software managing the network card.  Use Windows to manage the connection.&lt;br /&gt;&lt;br /&gt;Right click on your network adapter and choose view available network connections.  From that screen pick the manage preferred networks.  You get the follow dialogs.  Manually enter the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SSID&lt;/span&gt; and other information like your wireless router has them.  Bingo, my wireless machine connects automatically, every time.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_i4FBh0i-sSM/SJXNx3yCFQI/AAAAAAAAADI/yR77PiONOHI/s1600-h/LinksysWMP110_on_Lenovo2008AtHome.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_i4FBh0i-sSM/SJXNx3yCFQI/AAAAAAAAADI/yR77PiONOHI/s400/LinksysWMP110_on_Lenovo2008AtHome.png" alt="" id="BLOGGER_PHOTO_ID_5230312798931784962" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-30713536797718165?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/30713536797718165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=30713536797718165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/30713536797718165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/30713536797718165'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/08/wireless-mastered.html' title='Wireless Mastered!'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_i4FBh0i-sSM/SJXNx3yCFQI/AAAAAAAAADI/yR77PiONOHI/s72-c/LinksysWMP110_on_Lenovo2008AtHome.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-6903408094853561007</id><published>2008-07-09T10:40:00.003-07:00</published><updated>2008-07-09T10:57:08.321-07:00</updated><title type='text'>Use your wings, try it again</title><content type='html'>It has been nearly 3 years since I wrote &lt;a href="http://agilemusings.blogspot.com/2005/09/use-your-wings.html"&gt;Use your wings&lt;/a&gt;.  There is a new guy working here.  We have been considering actually implementing unit tests, continuous integration.  This kind of work requires front loading the process.  He said something that caught my attention, "Pay the price to reduce the friction".&lt;br /&gt;&lt;br /&gt;I have had reticence.  I have been resisting this kind of change.  I am nearing the end of a long project.  I am not in the frame of mind to start this kind of investment in time and brain power.&lt;br /&gt;&lt;br /&gt;In many ways for the last three years I have wondered and the power of using my wings.  I have even these more effective processes a bit.  Many times I have given up and walked home.&lt;br /&gt;&lt;br /&gt;I still believe there is large improvements that can be made in my software development methodology.  I commit to doing my best to suspend my disbelief.  To incrementally start using units tests then continuous integration.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-6903408094853561007?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/6903408094853561007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=6903408094853561007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/6903408094853561007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/6903408094853561007'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/07/use-your-wings.html' title='Use your wings, try it again'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-7635691696946691610</id><published>2008-07-02T15:50:00.006-07:00</published><updated>2008-12-09T18:21:25.867-07:00</updated><title type='text'>I get an exception until I delete my *.suo file</title><content type='html'>A colleague of mine just found the solution to a particularly hard kind of exception raised in Visual Studio 2008.  He merged a branch he had made in SVN into the main dev branch.  All of a sudden, the project threw an exception, but only in debug mode.&lt;br /&gt;&lt;br /&gt;He figured it out by copying file by file from the working folder of his branch to the working folder of the merged branch.  Everything was the same except the *.suo file.  Once he copied it, it was fine.&lt;br /&gt;&lt;br /&gt;It ended up being an option he had set in the "Break when an exception is" dialog box.  You get to this from the Debug/Exceptions menu.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_i4FBh0i-sSM/SGwa-E09jwI/AAAAAAAAAAk/5jj7qa1__E8/s1600-h/VS_BreakWhenAnExceptionIs.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_i4FBh0i-sSM/SGwa-E09jwI/AAAAAAAAAAk/5jj7qa1__E8/s400/VS_BreakWhenAnExceptionIs.jpg" alt="" id="BLOGGER_PHOTO_ID_5218575721965653762" border="0" /&gt;&lt;/a&gt;Some time beforehand, he had the check box  thrown checked for "Common Language Runtime Exceptions".  So in debug mode, he was seeing an exception in the .NET runtime that was handled in a try block.  You can F5 through the exception because it is handled.  If you are not used to seeing handled exceptions this will throw you off.&lt;br /&gt;&lt;br /&gt;The problem here is that anyone searching for this error would have to know the solution before being able to find it.  Normally you Google the exception text.  That could be anything.&lt;br /&gt;&lt;br /&gt;So beware!  Use the VS 2008 "Break when an exception is" dialog with caution.  And then revert back to the default settings as soon as you are done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-7635691696946691610?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/7635691696946691610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=7635691696946691610' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7635691696946691610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7635691696946691610'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/07/i-get-exception-until-i-delete-my-suo.html' title='I get an exception until I delete my *.suo file'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_i4FBh0i-sSM/SGwa-E09jwI/AAAAAAAAAAk/5jj7qa1__E8/s72-c/VS_BreakWhenAnExceptionIs.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-7170984020666215297</id><published>2008-06-18T10:13:00.008-07:00</published><updated>2008-06-18T12:45:12.124-07:00</updated><title type='text'>Getting Null Values into the database by Stored Procedures</title><content type='html'>This is how I got null values into the database using MS-SQL Server, C# 3.5 and the System.Data.SqlClient.SqlCommand.&lt;br /&gt;&lt;br /&gt;CREATE TABLE [dbo].[UserInfo](&lt;br /&gt;   [UserID] [int] IDENTITY(1,1) NOT NULL,&lt;br /&gt;   [FNAME] [nvarchar](50) NULL&lt;br /&gt;...&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CREATE PROCEDURE usp_UserInfo_Add&lt;br /&gt;  @UserID int&lt;br /&gt; ,@FNAME nvarchar(50)&lt;br /&gt;AS&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;private void AddUserInfo(int UserId, string FName&lt;br /&gt;           , ...)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand();&lt;br /&gt;...&lt;br /&gt;command.Parameters.Add("@FName", SqlDbType.NVarChar, 50);&lt;br /&gt;command.Parameters["@FName"].Value = FName ?? (object)DBNull.Value;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It check for a null value and sends in the required DBNull.Value instead. This what I originally had in AddUserInfo&lt;br /&gt;&lt;br /&gt;command.Parameters["@FName"].Value = FName;&lt;br /&gt;&lt;br /&gt;If I pass in a null value in FName into AddUserInfo, it sends the following to the SQL Server&lt;br /&gt;&lt;br /&gt;exec usp_UserInfo_Add @UserID = 801678,  @FName = default&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;&lt;span style=";font-family:'Courier New';font-size:10;"  &gt;&lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;There is no default defined on the stored procedure so it fails saying you did not provide a value for a required parameter.&lt;br /&gt;&lt;br /&gt;Another solution would have been to define a default value in the stored procedure as follows.&lt;br /&gt;&lt;br /&gt;CREATE PROCEDURE usp_UserInfo_Add&lt;br /&gt;  @UserID int&lt;br /&gt; ,@FNAME nvarchar(50) = NULL&lt;br /&gt;AS&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;Then I could pass a null value in FName into AddUserInfo, the stored procedure would provide NULL as the default.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-7170984020666215297?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/7170984020666215297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=7170984020666215297' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7170984020666215297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7170984020666215297'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/06/getting-null-values-into-database-by.html' title='Getting Null Values into the database by Stored Procedures'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-7510631101202348199</id><published>2008-05-24T12:23:00.003-07:00</published><updated>2008-05-24T12:54:30.245-07:00</updated><title type='text'>Home Network with XP Home Edition</title><content type='html'>I asked our network admin from work if he would help me connect my two computers at home.&lt;br /&gt;&lt;br /&gt;One is a XP Home Edition and the other is XP Proferssional.  I have a netgear router hooked to the computer.  The router is hooked to the cable modem.  I want to share files between them and be able to get to the printer from both.  He offer a few settings to look at.  I ended up using only two tips to get this accomplished.&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-style: italic;"&gt;Put both machines in the same workgroup.&lt;/span&gt;  I think this is what allowed them to ping each other.&lt;br /&gt;&lt;br /&gt;At this point I could connect from the Home Edition to the Professional.  I could then get to C$ after logging in as a admin user of the Pro machine.  I could not however, get to the Home machine from the Pro one.&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-style: italic;"&gt;Go through the Network Setup Wizard on the Home Edition PC.&lt;/span&gt;  This is found at  Start | All Programs | Accessories | Communications | Network Setup Wizard.  See &lt;a href="http://www.practicallynetworked.com/sharing/xp_ics/networksetupwiz.htm"&gt;Practically Networked&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The only catch is that I have to explicitly add folders to my SharedDocs folder on the Home Edition in order for them to be available on the Pro.&lt;br /&gt;&lt;br /&gt;I dragged the printer I wanted from Home Edition to Pro.  Now I can print from the Pro machine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-7510631101202348199?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/7510631101202348199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=7510631101202348199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7510631101202348199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7510631101202348199'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/05/home-network-with-xp-home-edition.html' title='Home Network with XP Home Edition'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-1710759343096837348</id><published>2008-05-23T15:14:00.002-07:00</published><updated>2008-05-23T15:17:38.134-07:00</updated><title type='text'>Beyond Compare File Filters</title><content type='html'>I don't know why I did not know this before.  I use Subversion and I always want Beyond Compare to ignore the _svn folder in my working copies. &lt;br /&gt;&lt;br /&gt;Go to the Session\File Filters menu.  Add "_svn" to the Exclude folders text box.&lt;br /&gt;&lt;br /&gt;Now I never have to see_svn folders in beyond compare again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-1710759343096837348?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/1710759343096837348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=1710759343096837348' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1710759343096837348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1710759343096837348'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/05/beyond-compare-file-filters.html' title='Beyond Compare File Filters'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-5269807783430143525</id><published>2008-05-21T14:07:00.002-07:00</published><updated>2009-03-05T15:09:30.689-07:00</updated><title type='text'>Tab Delimited Results From SQL Server</title><content type='html'>&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Here is how you can export your SQL Server 2005 Management Studio results to a tab delimited file, including the column names.&lt;br /&gt;&lt;br /&gt;Navigate to Tools | Options | Query Results | SQL Server | Results to Text&lt;br /&gt;&lt;br /&gt;The settings only apply to new query windows opened.&lt;br /&gt;&lt;br /&gt;From&lt;br /&gt;&lt;a href="http://www.mssqltips.com/tip.asp?tip=1105"&gt;http://www.mssqltips.com/tip.asp?tip=1105&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-5269807783430143525?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/5269807783430143525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=5269807783430143525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5269807783430143525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5269807783430143525'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/05/tab-delimited-results-from-sql-server.html' title='Tab Delimited Results From SQL Server'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-8760829466643182901</id><published>2008-05-21T11:55:00.001-07:00</published><updated>2008-05-21T11:56:56.667-07:00</updated><title type='text'>Server Up Time</title><content type='html'>For a windows machine,&lt;br /&gt;&lt;br /&gt;"The 'net statistics workstation' command will tell you the last time your&lt;br /&gt;computer was rebooted."&lt;br /&gt;&lt;br /&gt;From&lt;br /&gt;&lt;a href="http://www.itnewsgroups.net/group/microsoft.public.windows.server.general/topic8056.aspx"&gt;http://www.itnewsgroups.net/group/microsoft.public.windows.server.general/topic8056.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-8760829466643182901?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/8760829466643182901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=8760829466643182901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/8760829466643182901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/8760829466643182901'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/05/server-up-time.html' title='Server Up Time'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-605254680443484039</id><published>2008-05-14T02:43:00.003-07:00</published><updated>2008-05-14T03:59:05.978-07:00</updated><title type='text'>Improve My Software Delivery Commitments</title><content type='html'>In Oct 07 I first read about the &lt;a href="http://www.joelonsoftware.com/items/2007/10/26.html"&gt;Evidence Based Scheduling&lt;/a&gt; feature of FogBugz.  I like reading Joel Spolsky because he seems to tell it straight regardless of the subject.  This time, it stung.  Software projects are chronically late.  Most projects I have been on in the last 9 years are no exception.  When I read this article, I took up courage to ask a co-worker about it.  He was excited about using something like this.&lt;br /&gt;&lt;br /&gt;Well we took the plunge.  We tried &lt;a href="http://www.fogcreek.com/FogBugz/"&gt;FogBugz&lt;/a&gt; for a month in January and then bought some licenses.  I recently got a new supervisor.  She seems willing to try out FogBugz as our software project management tool. &lt;br /&gt;&lt;br /&gt;From &lt;a href="http://www.joelonsoftware.com/items/2007/10/26.html"&gt;Evidence Based Scheduling&lt;/a&gt;,&lt;br /&gt;&lt;blockquote&gt;Why won’t developers make schedules? Two reasons. One: it’s a pain in the butt. Two: nobody believes the schedule is realistic. Why go to all the trouble of working on a schedule if it’s not going to be right?&lt;br /&gt;&lt;br /&gt;Over the last year or so at Fog Creek we’ve been developing a system that’s so easy even our grouchiest developers are willing to go along with it. And as far as we can tell, it produces extremely reliable schedules. It’s called Evidence-Based Scheduling, or EBS. You gather evidence, mostly from historical timesheet data, that you feed back into your schedules. What you get is not just one ship date: you get a confidence distribution curve, showing the probability that you will ship on any given date. It looks like this:&lt;br /&gt;&lt;br /&gt;The steeper the curve, the more confident you are that the ship date is real.&lt;br /&gt;&lt;/blockquote&gt;&lt;a href="http://www.joelonsoftware.com/items/2007/10/24austindemo.html"&gt;Here&lt;/a&gt; is a 70 minute video Joel Spolsky made in Oct 07 that explains the Evidence Based Scheduling feature of Fogbugz.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.joelonsoftware.com/items/2006/12/05.html"&gt;Frederick P. Brooks&lt;/a&gt; in 1987,&lt;br /&gt;&lt;blockquote&gt;Not only are there no silver bullets now in view, the very nature of software makes it unlikely that there will be any—no inventions that will do for software productivity, reliability, and simplicity what electronics, transistors, and large-scale integration did for computer hardware.... I believe the hard part of building software to be the specification, design, and testing of this conceptual construct, not the labor of representing it and testing the fidelity of the representation.... If this is true, building software will always be hard. There is inherently no silver bullet.&lt;br /&gt;&lt;/blockquote&gt;Fogbugz is not the golden goose that will solve all software development problems.  As I persist in my discipline to use it, it will help me make more accurate delivery estimates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-605254680443484039?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/605254680443484039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=605254680443484039' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/605254680443484039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/605254680443484039'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/05/improve-my-software-delivery.html' title='Improve My Software Delivery Commitments'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-2917301442741559880</id><published>2008-04-02T09:50:00.014-07:00</published><updated>2008-04-02T12:41:49.173-07:00</updated><title type='text'>"An order of magnitude better"</title><content type='html'>We have been looking for one of the best programmers at my work.  Since my supervisor no longer can do the leg work of phone screening and setting up interviews, I have volunteered to take this hat.  It has been a revealing exercise.&lt;br /&gt;&lt;br /&gt;There is a consensus in the software development industry that the best programmers are "an &lt;a href="http://en.wikipedia.org/wiki/Orders_of_magnitude"&gt;order of magnitude&lt;/a&gt; better than the average ones" &lt;a href="http://www.joelonsoftware.com/articles/fog0000000067.html"&gt;Spolsky&lt;/a&gt;.&lt;br /&gt;&lt;a href="http://blog.revsys.com/2007/08/a-guide-to-hiri.html"&gt;&lt;/a&gt;&lt;blockquote&gt;&lt;a href="http://blog.revsys.com/2007/08/a-guide-to-hiri.html"&gt;A Guide to Hiring Programmers: The High Cost of Low Quality&lt;/a&gt;, revsys.com&lt;br /&gt;&lt;br /&gt;"there is at least an order of magnitude of skill difference between the average programmer and the best programmer, and maybe even two orders of magnitude"  &lt;a href="http://codecraft.info/index.php/archives/78/"&gt;Barnes&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;"many studies have shown order of magnitude differences in the quality of the programs written, the sizes of the programs written, and the productivity of the programmers" &lt;a href="http://www.codinghorror.com/blog/archives/000072.html"&gt;McConnell&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"[Bill] Curtis observed order of magnitude differences among the   programmers" &lt;a href="http://stevemcconnell.com/ieeesoftware/bp14.htm"&gt;McConnell&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codinghorror.com/blog/archives/000072.html"&gt;Skill Disparities in Programming&lt;/a&gt;.  Atwood.&lt;br /&gt;&lt;/blockquote&gt;I am by no means one of the best programmers.  I generously consider myself in the upper end of average.  One of the things I remember from my interview with &lt;a href="http://web.archive.org/web/20000229094022/www.vitrix.com/employment.htm"&gt;Vitrix&lt;/a&gt; years ago was that they wanted to hire people smarter than themselves.&lt;br /&gt;&lt;br /&gt;With the help of another programmer and a few resources on the web, I have gathered a list of interview questions that discover the skills and qualities of a developer.  I am sure we will find a match with someone passionate about effective software development.&lt;br /&gt;&lt;a href="http://jobview.monster.com/GetJob.aspx?JobID=69874313&amp;amp;AVSDM=2008-03-18%2012:56:00&amp;amp;WT.mc_n=RSS2005_JSR"&gt;&lt;br /&gt;Here&lt;/a&gt; is our job posting, by the way.  If you think you fit the drive, curiosity and skills to join us, come on!  Even if you think you are shy on experience, take a plunge.  We will be gentle.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-2917301442741559880?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/2917301442741559880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=2917301442741559880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2917301442741559880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2917301442741559880'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/04/order-of-magnitude-better.html' title='&quot;An order of magnitude better&quot;'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-2925760908468986340</id><published>2008-04-01T15:20:00.002-07:00</published><updated>2008-04-01T15:27:58.555-07:00</updated><title type='text'>C# XML documentation</title><content type='html'>We are using sandcastle to generate help documents from xml comments of our code.&lt;br /&gt;&lt;br /&gt;Remember, /// will get you started.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/ansonh/archive/2006/09/11/750056.aspx"&gt;C# XML documentation comments FAQ&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-2925760908468986340?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/2925760908468986340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=2925760908468986340' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2925760908468986340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2925760908468986340'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/04/c-xml-documentation.html' title='C# XML documentation'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-1602543799931683451</id><published>2008-04-01T13:41:00.003-07:00</published><updated>2008-04-01T14:03:09.709-07:00</updated><title type='text'>MS Windows Workflow Foundation</title><content type='html'>Someone as work mentioned that we might consider MS Windows &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Workflow&lt;/span&gt; Foundation after hearing us describe the project we have been creating for the last many months.  Following are some notes I took in my introduction to it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.odetocode.com/Articles/465.aspx"&gt;&lt;span&gt;&lt;span class="Article_Title"&gt;ASP.NET and Windows &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Workflows&lt;/span&gt; Foundation&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://searchwindevelopment.techtarget.com/tip/0,289483,sid8_gci1271300,00.html"&gt;Manage application processes with Windows &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Workflow&lt;/span&gt; Foundation&lt;/a&gt; Brian Noyce&lt;br /&gt;&lt;br /&gt;&lt;a href="http://download.microsoft.com/download/4/a/3/4a3c7c55-84ab-4588-84a4-f96424a7d82d/NET35_Namespaces_Poster_LORES.pdf"&gt;Link&lt;/a&gt; to a poster of Microsoft .NET Framework 3.5 update to the Commonly Used Types and Namespaces.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Notes from &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://www.dnrtv.com/default.aspx?showID=21"&gt;Michael &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Stiefel&lt;/span&gt; on Windows &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Workflow&lt;/span&gt; Foundation&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1 of 4&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;"&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Workflow&lt;/span&gt; is the automated processes of a Business Process" Reliable Software&lt;br /&gt;&lt;br /&gt;6:21&lt;br /&gt;Reusable Business Activities&lt;br /&gt;Separate &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Workflow&lt;/span&gt; from Activity&lt;br /&gt;&lt;br /&gt;This &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;workflow&lt;/span&gt; is hosted somewhere.  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Sharepoint&lt;/span&gt;?&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Workflow&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;runtime&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;9:50&lt;br /&gt;Concept of Host&lt;br /&gt;Concept of Activity&lt;br /&gt;Concept of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Workflow&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;10:30&lt;br /&gt;The dream is these activities will be manipulated by Business Analysts in a drag and drop way.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2 of 4&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5:30&lt;br /&gt;Activities are not small atomic.  These are long processes.&lt;br /&gt;Programmers cannot stay in the back room.  You are not of high value.  You are just a coder.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-1602543799931683451?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/1602543799931683451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=1602543799931683451' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1602543799931683451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1602543799931683451'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/04/ms-windows-workflow-foundation.html' title='MS Windows Workflow Foundation'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-6324700650507520506</id><published>2008-03-25T12:25:00.002-07:00</published><updated>2008-03-25T12:32:16.496-07:00</updated><title type='text'>Just Do It</title><content type='html'>After having a conversation with a collegue where we turned grandiose in our plans, he became frustrated because of the obstacles in our company.  I said, "do get some code working and you'll feel better".  Joel had this to say in &lt;a href="http://www.joelonsoftware.com/articles/fog0000000332.html"&gt;Getting Things Done When You're Only a Grunt&lt;/a&gt;.&lt;br /&gt;&lt;blockquote&gt;A lot can be done to improve the project just by one person doing it. Don't have  a daily build server? Make one. Set your own machine up with a scheduled job to  make builds at night and send out email results. Does it take too many steps to  make the build? Write the makefile. Nobody does usability tests? Do your own  hallway usability tests on the mailroom folks with a piece of paper or a VB  prototype.&lt;br /&gt;&lt;/blockquote&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-6324700650507520506?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/6324700650507520506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=6324700650507520506' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/6324700650507520506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/6324700650507520506'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/03/just-do-it.html' title='Just Do It'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-1021592612158806809</id><published>2008-03-25T10:18:00.002-07:00</published><updated>2008-03-25T10:35:36.177-07:00</updated><title type='text'>Outbound Filter or Inbound Filter</title><content type='html'>I have had three occasions to remember Joel's &lt;a href="http://www.joelonsoftware.com/printerFriendly/items/2007/07/20.html"&gt;reference&lt;/a&gt; to tact filters.  He said&lt;br /&gt;&lt;blockquote&gt;there's always some person without an outbound filter who feels compelled to tell you about how he uses Opera, so he doesn't have this problem, although, frankly, I could care less what Anonymous uses. He's not even human to me, he's anonymous.&lt;br /&gt;&lt;/blockquote&gt;Joel refers to Jeff &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Bigler's&lt;/span&gt; &lt;a href="http://www.mit.edu/%7Ejcb/tact.html"&gt;description&lt;/a&gt; of Tact Filters.  Here is Jeff's entire post.&lt;br /&gt;&lt;blockquote&gt;I came up with this idea several years ago in a conversation with a friend at MIT, who was regularly finding herself upset by other people who worked in her lab. The analogy worked so well in helping her to understand her co-workers that I decided to write it up and put it on the web. I've gotten quite a few email messages since then from other people who have also found it helpful.&lt;br /&gt;&lt;br /&gt;All people have a "tact filter", which applies tact in one direction to everything that passes through it. Most "normal people" have the tact filter positioned to apply tact in the outgoing direction. Thus whatever normal people say gets the appropriate amount of tact applied to it before they say it. This is because when they were growing up, their parents continually drilled into their heads statements like, "If you can't say something nice, don't say anything at all!"&lt;br /&gt;&lt;br /&gt;"Nerds," on the other hand, have their tact filter positioned to apply tact in the incoming direction. Thus, whatever anyone says to them gets the appropriate amount of tact added when they hear it. This is because when nerds were growing up, they continually got picked on, and their parents continually drilled into their heads statements like, "They're just saying those mean things because they're jealous. They don't really mean it."&lt;br /&gt;&lt;br /&gt;When normal people talk to each other, both people usually apply the appropriate amount of tact to everything they say, and no one's feelings get hurt. When nerds talk to each other, both people usually apply the appropriate amount of tact to everything they hear, and no one's feelings get hurt. However, when normal people talk to nerds, the nerds often get frustrated because the normal people seem to be dodging the real issues and not saying what they really mean. Worse yet, when nerds talk to normal people, the normal people's feelings often get hurt because the nerds don't apply tact, assuming the normal person will take their blunt statements and apply whatever tact is necessary.&lt;br /&gt;&lt;br /&gt;So, nerds need to understand that normal people have to apply tact to everything they say; they become really uncomfortable if they can't do this. Normal people need to understand that despite the fact that nerds are usually tactless, things they say are almost never meant personally and shouldn't be taken that way. Both types of people need to be extra patient when dealing with someone whose tact filter is backwards relative to their own.&lt;/blockquote&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-1021592612158806809?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/1021592612158806809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=1021592612158806809' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1021592612158806809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1021592612158806809'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/03/outbound-filter-or-inbound-filter.html' title='Outbound Filter or Inbound Filter'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-2079854379940131214</id><published>2008-03-21T06:58:00.007-07:00</published><updated>2008-03-21T07:37:13.336-07:00</updated><title type='text'>MST, MDT, MT or Mountain Time</title><content type='html'>I have had an uncommon interest in time zones ever since I developed software to handle them in &lt;a href="http://www.nettimesolutions.com/"&gt;NetTime&lt;/a&gt;.  Living in Arizona has added to this.  We buck the daylight savings system most states follow in the USA.&lt;br /&gt;&lt;br /&gt;So this morning I was prompted by a pet peeve.  When referring to a time zone which one is most appropriate to use?&lt;br /&gt;MST (Mountain Standard Time)&lt;br /&gt;MDT (Mountain Daylight Time)&lt;br /&gt;MT (Mountain Time)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://grammar.quickanddirtytips.com/grammar-daylight.aspx"&gt;Grammar Girl&lt;/a&gt; says,&lt;br /&gt;&lt;blockquote&gt;"It seems to me that people often don't even know whether it is standard time or daylight-saving time. It doesn't hurt to use EST or PST, but I've certainly seen people write PST when it is daylight-saving time, so I think it's fine to say just eastern time or Pacific time. It's better to leave off a detail than to get it wrong!"&lt;br /&gt;&lt;/blockquote&gt;I agree with grammar girl.  If you have the discipline to use CST or CDT accurately, go ahead.   Otherwise, you should play it safe.  For March 20, 2008, use "The server issue was resolved at approximately 6:30 AM Central Time".  Grammar Girl continues to describe a frustration that Arizonans can relate to.&lt;br /&gt;&lt;blockquote&gt;"Also, after living in Arizona and missing enough meetings because of time-zone confusion, I like to spell things out as clearly as possible, so I appreciate it when people say something like "We're meeting at 1:00 p.m. eastern time -- that's 10:00 a.m. your time." (Of course, then you need to make sure you do the conversion right.)"&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-2079854379940131214?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/2079854379940131214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=2079854379940131214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2079854379940131214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2079854379940131214'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/03/mst-mdt-mt-or-mountain-time.html' title='MST, MDT, MT or Mountain Time'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-741534586377654626</id><published>2008-03-20T15:33:00.002-07:00</published><updated>2010-03-24T08:47:33.503-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='budget'/><title type='text'>Budgets</title><content type='html'>&lt;p&gt;We have been navigating the red tape in our company to get some software tools we want to be effective.  This &lt;a href="http://en.wikiquote.org/wiki/Milton_Friedman" target="_blank"&gt;quote&lt;/a&gt; from Milton Friedman kept coming to my mind.&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;There are four ways in which you can spend money. You can spend your own money on yourself. When you do that, why then you really watch out what you're doing, and you try to get the most for your money. Then you can spend your own money on somebody else. For example, I buy a birthday present for someone. Well, then I'm not so careful about the content of the present, but I'm very careful about the cost. Then, I can spend somebody else's money on myself. And if I spend somebody else's money on myself, then I'm sure going to have a good lunch! Finally, I can spend somebody else's money on somebody else. And if I spend somebody else's money on somebody else, I'm not concerned about how much it is, and I'm not concerned about what I get.&lt;br /&gt;&lt;/blockquote&gt;&lt;a href="http://www.youtube.com/watch?v=VXL6DP1nwv4" target="_blank"&gt;Here&lt;/a&gt; is a video of Milton Friedman about this.  &lt;a href="http://www.freetochoose.net/book4.html" target="_blank"&gt;Here&lt;/a&gt; is a chart of the quadrants he talks about.&lt;br /&gt;&lt;br /&gt;We have been working in quadrant III. Trying to get our company to spend their money on tools we need. We had to convince them that they will get a timely return on their investment.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Key words: budget&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-741534586377654626?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/741534586377654626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=741534586377654626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/741534586377654626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/741534586377654626'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/03/budgets.html' title='Budgets'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-7791611320298624189</id><published>2008-03-19T13:41:00.025-07:00</published><updated>2011-08-30T13:18:55.977-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programs'/><category scheme='http://www.blogger.com/atom/ns#' term='useful'/><title type='text'>Programs I use at work</title><content type='html'>Here is a list of programs I like to use at work.  Someday I may need this list to install some of my favorite apps. &lt;br /&gt;&lt;div&gt;&lt;b&gt;Updated 2011-08-30&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;MS Visual Studio &lt;strike&gt;2005 and&lt;/strike&gt; 2008&lt;br /&gt;MS &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SQL&lt;/span&gt; Server Tools&lt;br /&gt;&lt;a href="http://notepad-plus.sourceforge.net/uk/site.htm"&gt;Notepad++&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.crimsoneditor.com/"&gt;Crimson Editor&lt;/a&gt; 3.70 - Has column mode editing [Edit/Column Mode Alt+C ] and it is open source&lt;br /&gt;Also has Convert Tab to Spaces (Document/Tabs &amp;amp; Spaces/...)&lt;br /&gt;&lt;a href="http://www.cygwin.com/install.html"&gt;Cygwin&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dualitysoft.com/dsclock/?about&amp;amp;version=1.6"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;DS&lt;/span&gt; Clock&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.scootersoftware.com/"&gt;Beyond Compare&lt;/a&gt;&lt;br /&gt;&lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt;&lt;br /&gt;- &lt;strike&gt;&lt;a href="http://ankhsvn.open.collab.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;AnkhSVN&lt;/span&gt;&lt;/a&gt;&lt;/strike&gt;&lt;br /&gt;- &lt;a href="http://tortoisesvn.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;TortoiseSVN&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&amp;amp;displaylang=en"&gt;Log Parser 2.2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://richalger.googlepages.com/neoshooter4setup.exe"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;NeoShooter&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://richalger.googlepages.com/neoshooter4setup.exe"&gt;4.0.3b&lt;/a&gt;*&lt;br /&gt;&lt;a href="http://pidgin.im/"&gt;Pidgin&lt;/a&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;IM&lt;/span&gt;&lt;br /&gt;&lt;strike&gt;&lt;a href="http://juicereceiver.sourceforge.net/"&gt;Juice&lt;/a&gt;&lt;/strike&gt;&lt;br /&gt;&lt;a href="http://weitz.de/regex-coach/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Regex&lt;/span&gt; Coach&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gregorybraun.com/Calendar.html"&gt;Calendar 2000&lt;/a&gt;&lt;br /&gt;&lt;strike&gt;&lt;a href="http://www.winamp.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Winamp&lt;/span&gt;&lt;/a&gt;&lt;/strike&gt;&lt;br /&gt;&lt;strike&gt;&lt;a href="http://www.rarlab.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;WinRAR&lt;/span&gt;&lt;/a&gt;&lt;/strike&gt;, &lt;a href="http://richalger.googlepages.com/wrar351.exe"&gt;3.51*&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://www.7-zip.org/"&gt;7-Zip&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ccollomb.free.fr/unlocker/#download"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Unlocker&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.cutepdf.com/Products/CutePDF/writer.asp"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;CutePDF&lt;/span&gt; Writer&lt;/a&gt;&lt;br /&gt;&lt;strike&gt;&lt;a href="http://www.freedownloadmanager.org/"&gt;Free Download Manager&lt;/a&gt;&lt;/strike&gt;&lt;br /&gt;&lt;strike&gt;&lt;a href="http://www.ie7pro.com/"&gt;IE7Pro&lt;/a&gt;&lt;/strike&gt;&lt;br /&gt;&lt;a href="http://simple-adblock.com/"&gt;Simple-Adblock.com&lt;/a&gt; (Ad Blocking for Internet Explorer)&lt;br /&gt;FireFox Add-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;ons&lt;/span&gt;&lt;br /&gt;- &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1865"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Adblock&lt;/span&gt; Plus&lt;/a&gt;&lt;br /&gt;- &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/60"&gt;&lt;s&gt;Web Developer&lt;/s&gt;&lt;/a&gt;&lt;br /&gt;- &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1843"&gt;Firebug&lt;/a&gt;&lt;br /&gt;- &lt;strike&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1249"&gt;Restart &lt;/a&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1249"&gt;Firefox&lt;/a&gt;&lt;/span&gt;&lt;/strike&gt;&lt;br /&gt;&lt;strike&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;&amp;nbsp;&lt;/span&gt;&lt;/strike&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt; &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/restart-firefox-10749/"&gt;Restart Firefox&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;- &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/10869/"&gt;JSONView&lt;/a&gt;&lt;/div&gt;&lt;div&gt;- &lt;a href="https://www.fiddler2.com/fiddler2/addons/fiddlerhook/"&gt;FiddlerHook&lt;/a&gt; &lt;br /&gt;- &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/memory-restart/"&gt;Memory Restart&lt;/a&gt;&lt;br /&gt;- &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/multiple-tab-handler/"&gt;Multiple Tab Handler&lt;/a&gt;&lt;br /&gt;- &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/tab-utilities/"&gt;Tab Utilities&lt;/a&gt; &lt;br /&gt;If your menu toolbar is not visible you get to these settings by clicking on the "Firefox orange button in the title bar and then choose AddOns.&lt;br /&gt;&lt;br /&gt;Change the Alt+Tab behavior to the FF and Chrome default. In the "Tab Opening" tab, uncheck Location under the "Open new tabs for".  This will allow the same behavior as before where Alt+enter opens in a new tab.&lt;br /&gt;&lt;br /&gt;Adjust the appearance given to unread tabs.&amp;nbsp; Under the Appearance button, choose Tabs.&amp;nbsp; In the Tab Highlighting section, click Unread.&amp;nbsp; Uncheck enabled. I do not need to be so distracted just because one of my tabs refreshed itself. &amp;nbsp;For the "Current" Tab uncheck the color. &amp;nbsp;It is also distracting.&lt;br /&gt;&lt;br /&gt;- &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/omnibar/" style="text-decoration: line-through;"&gt;Omnibar&lt;/a&gt;&amp;nbsp;&amp;nbsp;Instead of Omnibar, customize what is shown in the navigation tool bar. Right-Click in the tool bar and choose customize. &amp;nbsp;Drag the items you do not want into the Customize toolbar dialog. &amp;nbsp;I drag everything except the address bar, the refresh button, the stop button, Ad-Block Plus and favorites. &amp;nbsp;The address bar in FF seems to behave like the omnibar in Chrome. &amp;nbsp;There is no need for the search box.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nirsoft.net/utils/fastresolver.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;FastResolver&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.nirsoft.net/utils/internet_explorer_cookies_view.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;IECookiesView&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Blank screen saver&lt;br /&gt;- path "C:\WINDOWS\system32\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;scrnsave&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;scr&lt;/span&gt;"&lt;br /&gt;- Shortcut key &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;Ctrl&lt;/span&gt;+Shift+F&lt;br /&gt;- Put the shortcut on your desktop and you can always hit the shortcut to quickly eliminate the screen and the distraction while on a phone call and then instantly return to your work.&lt;br /&gt;&lt;a href="http://desktop.google.com/"&gt;Google Desktop&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.realvnc.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;RealVNC&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://richalger.googlepages.com/vnc-4_1_2-x86_win32.exe"&gt;4.12&lt;/a&gt;*&lt;br /&gt;&lt;a href="http://www.fogcreek.com/FogBugz/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;FogBugz&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.foxitsoftware.com/pdf/rd_intro.php"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;Foxit&lt;/span&gt; Reader&lt;/a&gt; (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;PDF&lt;/span&gt;), &lt;a href="http://richalger.googlepages.com/Foxit_Reader.msi"&gt;2.0&lt;/a&gt;*&lt;br /&gt;&lt;div&gt;&lt;a href="http://users.csc.calpoly.edu/~bfriesen/software/dropper.shtml"&gt;Dropper&lt;/a&gt; - get the color of any pixel on the screen&lt;br /&gt;&lt;br /&gt;* Older or hard to find version.  I may have to login to &lt;a href="http://pages.google.com/"&gt;pages.google.com&lt;/a&gt; to get these through a web filter.&lt;/div&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/16213456-7791611320298624189?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/7791611320298624189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=7791611320298624189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7791611320298624189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7791611320298624189'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/03/programs-i-use-at-work.html' title='Programs I use at work'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-6796094435265289453</id><published>2008-03-17T14:03:00.006-07:00</published><updated>2008-03-17T15:02:49.089-07:00</updated><title type='text'>"8 billion existing web pages be damned"</title><content type='html'>"8 billion existing web pages be damned" is my favorite one-liner from the &lt;a href="http://www.joelonsoftware.com/items/2008/03/17.html"&gt;latest&lt;/a&gt; article on JoelOnSoftware.com.  It is was the idealists said when they said IE8 needed to be strict when rendering web pages.&lt;br /&gt;&lt;br /&gt;It is a good description of the chasm between idealistic engineers and compliance with the standards and pragmatists who want to make the software work with the existing customer base.&lt;br /&gt;&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;There is no solution&lt;/em&gt;. Each solution is terribly wrong. Eric Bangeman  at &lt;em&gt;ars technica&lt;/em&gt; &lt;a href="http://arstechnica.com/news.ars/post/20071219-ie8-goes-on-an-acid2-trip-beta-due-in-first-half-of-2008.html"&gt;writes&lt;/a&gt;,  “The IE team has to walk a fine line between tight support for W3C standards and  making sure sites coded for earlier versions of IE still display correctly.”  This is incorrect. It’s not a fine line. It’s a line of negative width. There is  no place to walk. They are damned if they do and damned if they don’t.&lt;/p&gt; &lt;p&gt;That’s why I can’t take sides on this issue and I’m not going to. But every  working software developer should understand, at least, how standards work, how  standards should work, how we got into this mess, so I want to try to explain a  little bit about the problem here, and you’ll see that it’s the same reason  Microsoft Vista is selling so poorly, and it’s the same issue I &lt;a href="http://www.joelonsoftware.com/articles/APIWar.html"&gt;wrote about&lt;/a&gt; when I  referred to the Raymond Chen camp (pragmatists) at Microsoft vs. the MSDN camp  (idealists), the MSDN camp having won, and now nobody can figure out where their  favorite menu commands went in Microsoft Office 2007, and nobody wants Vista,  and it’s all the same debate: whether you are an Idealist (”red”) or a  Pragmatist (”blue”).&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;_&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-6796094435265289453?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/6796094435265289453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=6796094435265289453' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/6796094435265289453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/6796094435265289453'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/03/8-billion-existing-web-pages-be-damned.html' title='&quot;8 billion existing web pages be damned&quot;'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-283363138058757510</id><published>2008-02-15T11:29:00.002-07:00</published><updated>2008-02-15T11:35:55.734-07:00</updated><title type='text'>TIOBE Programming Community Index</title><content type='html'>I looked at &lt;a href="http://www.tiobe.com/tpci.htm"&gt;this&lt;/a&gt; several years ago.  It is interesting to see the long term trends of programming languages.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;The TIOBE Programming Community index gives an indication of the popularity  of programming languages. The index is updated once a month. The ratings are  based on the world-wide availability of skilled engineers, courses and third  party vendors. The popular search engines Google, MSN, Yahoo!, and YouTube are  used to calculate the ratings. Observe that the TIOBE index is not about the  &lt;i&gt;best&lt;/i&gt; programming language or the language in which &lt;i&gt;most lines of  code&lt;/i&gt; have been written.&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;It has a nice graph displaying the trends.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-283363138058757510?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/283363138058757510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=283363138058757510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/283363138058757510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/283363138058757510'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/02/tiobe-programming-community-index.html' title='TIOBE Programming Community Index'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-2508253450884956383</id><published>2008-02-14T15:07:00.001-07:00</published><updated>2008-02-14T16:06:56.289-07:00</updated><title type='text'>Could not load type error in VS 2005 Web Application</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;Occurring in an existing project&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Occasionally I get an error like &lt;/span&gt;&lt;pre&gt;&lt;div&gt;&lt;span&gt;Could not load type 'MOS5.MOSLinks'&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt; &lt;p&gt;&lt;span&gt;when editing a web page. I have seen a lot of posts that address this  error. For MOS5 it has always come down to case sensitivity.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span&gt;I end up comparing the existing version to a previous one. Today I  noticed that the MOSLinks.aspx.vb had this at the top of the file.&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;div&gt;&lt;span&gt;Imports MOS5.mosLinks&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt; &lt;p&gt;&lt;span&gt;I edited this line in MOSLinks.aspx&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;div&gt;&lt;span&gt;Inherits="MOS5.MOSLinks" &lt;/span&gt;&lt;/div&gt;&lt;/pre&gt; &lt;p&gt;&lt;span&gt;to this&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;div&gt;&lt;span&gt;Inherits="MOS5.mosLinks" &lt;/span&gt;&lt;/div&gt;&lt;/pre&gt; &lt;p&gt;&lt;span&gt;After compiling, the error went away.&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:130%;"&gt;&lt;a name="heading1"&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Occurring in a newly published project&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;p&gt;&lt;span&gt;Make sure the folder you are publishing to is a virtual  directory.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-2508253450884956383?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/2508253450884956383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=2508253450884956383' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2508253450884956383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2508253450884956383'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/02/could-not-load-type-error-in-vs-2005.html' title='Could not load type error in VS 2005 Web Application'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-6165134289041408657</id><published>2008-02-14T14:51:00.003-07:00</published><updated>2008-02-14T16:04:43.724-07:00</updated><title type='text'>Repeat a String n Times</title><content type='html'>I was looking to repeat a string n times using only T-SQL.  My friend found it in &lt;a href="http://en.wikibooks.org/wiki/SQL_dialects_reference/Functions_and_expressions/String_functions"&gt;this&lt;/a&gt; article.  This reference may prove useful later.&lt;br /&gt;&lt;br /&gt;From SQL BOL 2000:&lt;br /&gt;Replicate - Repeats a character expression for a specified number of times.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikibooks.org/wiki/SQL_dialects_reference/Functions_and_expressions/String_functions"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-6165134289041408657?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/6165134289041408657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=6165134289041408657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/6165134289041408657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/6165134289041408657'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/02/repeat-string-n-times.html' title='Repeat a String n Times'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-113065508170306516</id><published>2008-02-13T10:56:00.001-07:00</published><updated>2008-02-13T10:58:39.911-07:00</updated><title type='text'>Keyboard Shortcuts in Gmail</title><content type='html'>http://mail.google.com/support/bin/answer.py?answer=6594&lt;br /&gt;&lt;br /&gt;c = Compose&lt;br /&gt;/ = put cursor in Search box&lt;br /&gt;&lt;br /&gt;Maybe these will save me time&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-113065508170306516?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/113065508170306516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=113065508170306516' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/113065508170306516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/113065508170306516'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/02/keyboard-shortcuts-in-gmail.html' title='Keyboard Shortcuts in Gmail'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-195157129614700233</id><published>2008-02-12T12:07:00.000-07:00</published><updated>2008-02-12T12:21:10.918-07:00</updated><title type='text'>Beyond Compare File Comparison Rules</title><content type='html'>I was comparing two versions of my code.  The right side of my comparison had tabs the left had spaces.  Visual Studio 2005 must have put them in there.  &lt;a href="http://www.scootersoftware.com/moreinfo.php"&gt;Beyond Compare&lt;/a&gt; (BC), highlighted the differences.&lt;br /&gt;&lt;br /&gt;I made BC ignore leading whitespace in the "Everything Else" rule set by going to the Tools/Edit Current Rules/ menu.  In the importance tab check "Leading whitespace".  The right side was much more indented than the left.  I fixed this my going to the General tab and choosing 4 characters = tab stops.&lt;br /&gt;&lt;br /&gt;Now BC shows me only the important differences in my code versions.&lt;br /&gt;&lt;br /&gt;You can pick rules by using the Tools/Pick Rules menu.  I don't know why it did not pick VB when I was comparing two *.vb  files.&lt;br /&gt;&lt;br /&gt;I am using Beyond Compare version 2.4.3 (build 243).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-195157129614700233?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/195157129614700233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=195157129614700233' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/195157129614700233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/195157129614700233'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/02/beyond-compare-file-comparison-rules.html' title='Beyond Compare File Comparison Rules'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-4977700133611747517</id><published>2008-01-29T11:33:00.016-07:00</published><updated>2010-12-18T09:33:59.965-07:00</updated><title type='text'>Minimum Online Configuration</title><content type='html'>I recently looked at my sister in law's computer.  They said it was running slow.  My brother had a similar problem several months ago.  Following is my minimum configuration for a windows computer connected to the Internet.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Automatic updates&lt;/span&gt; - Windows update is usually configured properly to download and install updates automatically.  I have found with two XP installations that I had to manually get SP2 installed first.  You can check yours in Start/Control Panel/Automatic Updates.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Anti virus&lt;/span&gt; - In both cases I had to get an anti virus running first before I could get SP2 to install.  Maybe the viruses that were found where desperately fighting to keep the  exterminator from getting in. &lt;strike&gt; My cousin mentioned AVG Anti-Virus Free Edition.  It seems to work fine.  You will have to be careful when you install it.  It tries to get you to install a free trial of the non-free version.  This is a common practice for providers of free software.  Just read the notices as you download and install.&amp;nbsp;&lt;/strike&gt;&lt;br /&gt;UPDATE Dec 2010: Instead of AVG you should install &lt;a href="http://www.microsoft.com/security_essentials/"&gt;MS Security Essentials&lt;/a&gt;.&amp;nbsp; It is free and from Microsoft.&amp;nbsp; I have run it on one of my computers for several months now.&lt;strike&gt;&lt;br /&gt;&lt;/strike&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Firewall&lt;/span&gt; - Hardware or software.  Basic users will be fine with &lt;a href="http://www.zonealarm.com/store/content/catalog/products/sku_list_za.jsp"&gt;ZoneAlarm® Free Firewall&lt;/a&gt; or something similar.  Wikipedia &lt;a href="http://en.wikipedia.org/wiki/Firewall"&gt;gives&lt;/a&gt; a comprehensive description.  It will close the doors and windows you are using in your computer.  It will ask you for permission when a program asks to get to the Internet.  You can let it remember which programs you trust.&lt;br /&gt;&lt;br /&gt;UPDATE Dec 2010: I don't use a firewall any more.&amp;nbsp; I have a router between my cable modem and my network.&amp;nbsp; It blocks much of the bad people trying to access your network.&amp;nbsp; You may want to install one if you have people that aren't careful on your network.&amp;nbsp; It will stop malware that you have mistakenly installed to try and phone home. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Internet filter&lt;/span&gt; - There are those on the Internet that want to sell you on unsavory things.&lt;strike&gt;  &lt;a href="http://www.bsafehome.com/"&gt;BSafe Online&lt;/a&gt; is the one we use.&lt;/strike&gt;  It has a firewall included.  It uses server side filtering.  Putting your computer in a public place in your home is another practical and necessary step to keeping you and your family safe.  Active parenting has no substitute. &lt;strike&gt; This is the only one I have not found a satisfactory free option.  It is worth the service.&lt;/strike&gt;&lt;br /&gt;&lt;br /&gt;UPDATE Dec 2010: OpenDNS &lt;a href="http://www.opendns.com/start/"&gt;has a free option&lt;/a&gt; and it will protect your whole network, if you set it up on your router.&amp;nbsp; It pays for itself with ads.&amp;nbsp; Whenever you hit a site that is blocked a OpenDNS page it shown with ads.&amp;nbsp; You can choose a paid for option and eliminate the ads and increase your log retention to I think 2 years.&amp;nbsp; &lt;a href="http://www.opendns.com/support/article/116"&gt;Here&lt;/a&gt; is how you set it up&lt;strike&gt;.&lt;/strike&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Defragment&lt;/span&gt; - In XP you can schedule the defragmenter to run as a scheduled task.  This may improve access time to your hard drive.   Start/Control Panel/Scheduled Tasks/Add Scheduled Task.   Point the wizard to C:\WINDOWS\system32\defrag.exe.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Reduce start up apps&lt;/span&gt; - Programs sometimes are intrusive.  They want you to use them.  They get themselves to start up when you start your computer.  They can slow your system down.   &lt;a href="http://agilemusings.blogspot.com/2007/08/customize-startup-applications.html"&gt;Here&lt;/a&gt; I detail how you can tell your computer what is important to you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-4977700133611747517?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/4977700133611747517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=4977700133611747517' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/4977700133611747517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/4977700133611747517'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/01/minimum-online-configuration.html' title='Minimum Online Configuration'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-2263504431234520999</id><published>2008-01-18T09:15:00.000-07:00</published><updated>2008-01-18T09:22:04.381-07:00</updated><title type='text'>The Five Browser Shortcuts Everyone Should Know</title><content type='html'>&lt;a href="http://www.codinghorror.com/blog/archives/001037.html"&gt;The Five Browser Shortcuts Everyone Should Know&lt;/a&gt; tells of often used keyboard shortcuts in IE7.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;1. Set up a keyboard shortcut to launch your browser&lt;br /&gt;2. Alt+D to navigate to the browser address bar&lt;br /&gt;3. Ctrl+E to navigate to the browser search box&lt;br /&gt;4. Alt+Enter to open searches or websites in a new tab&lt;br /&gt;5. The middle mouse button opens links in a new tab, and also closes tabs &lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-2263504431234520999?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/2263504431234520999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=2263504431234520999' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2263504431234520999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2263504431234520999'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/01/five-browser-shortcuts-everyone-should.html' title='The Five Browser Shortcuts Everyone Should Know'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-9174478893492108430</id><published>2008-01-15T10:16:00.000-07:00</published><updated>2008-01-15T10:18:28.295-07:00</updated><title type='text'>ClearType Tuner PowerToy</title><content type='html'>I just got a new wide screen LCD monitor at work.  I found the MS tool, &lt;a href="http://www.microsoft.com/typography/ClearTypePowerToy.mspx"&gt;ClearType Tuner PowerToy&lt;/a&gt;, made the text much more clear.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-9174478893492108430?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/9174478893492108430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=9174478893492108430' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/9174478893492108430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/9174478893492108430'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/01/cleartype-tuner-powertoy.html' title='ClearType Tuner PowerToy'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-1047889392198008409</id><published>2008-01-10T14:24:00.000-07:00</published><updated>2008-01-18T09:25:18.725-07:00</updated><title type='text'>Where Are the Software Engineers of Tomorrow?</title><content type='html'>A friend sent me this from the Journal of Defense Software Engineering, &lt;a href="http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html"&gt;Computer Science Education: Where Are the Software Engineers of Tomorrow?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If programmers only learn higher levels of software development, who will build the next great operating system? Who will build the compilers for the higher level languages?&lt;br /&gt;&lt;br /&gt;Joel Splosky &lt;a href="http://www.joelonsoftware.com/items/2008/01/08.html"&gt;refers&lt;/a&gt; to this article and suggests creating Bachelor of Fine Arts in Software Development. &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Imagine instead an undergraduate curriculum that consists of 1/3 liberal arts, and 2/3 software development work. The teachers are experienced software developers from industry. The studio operates like a software company. You might be able to major in Game Development and work on a significant game title, for example, and that's how you spend most of your time, just like a film student spends a lot of time actually making films and the dance students spend most of their time dancing.&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-1047889392198008409?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/1047889392198008409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=1047889392198008409' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1047889392198008409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1047889392198008409'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/01/where-are-software-engineers-of.html' title='Where Are the Software Engineers of Tomorrow?'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-3199414791010669856</id><published>2008-01-03T13:41:00.002-07:00</published><updated>2011-09-07T08:21:08.527-07:00</updated><title type='text'>Gmail Edit Link Shortcut Key</title><content type='html'>I love Gmail.  I never have to look at another flashy ad from one of the other webmail providers again.  I feel assaulted when my wife and I are browsing together and she is reading her email.  I hope Google never changes from their non intrusive, text based ads.&lt;br /&gt;&lt;br /&gt;One peeve I have with Gmail is there is no keyboard shortcut to Edit Link.  I use Edit Link often when I compose an email.  I have gotten used to ctrl+k in MS-Word.  IE will open a hyperlink dialog when I use ctrl+k.  Firefox uses ctrl+k to set focus on the search bar.  I wouldn't mind learning to remember another keyboard shortcut if they would only provide it.&lt;br /&gt;&lt;br /&gt;One more thing.  It would be great for it to be the same shortcut key that blogger.com and any other editing tool google has (will have).&lt;br /&gt;&lt;br /&gt;**** Update 2009-10-14 ****&lt;br /&gt;I was hoping that the new Custom Keyboard Shortcuts would allow me to assign a Ctrl+K some other kind of keyboard shortcut to allow me to bring up the "Edit Link" dialog box when I am composing a message alas no.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-3199414791010669856?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/3199414791010669856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=3199414791010669856' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/3199414791010669856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/3199414791010669856'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2008/01/gmail-edit-link-shortcut-key.html' title='Gmail Edit Link Shortcut Key'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-7961309806929469396</id><published>2007-12-04T11:53:00.000-07:00</published><updated>2007-12-04T11:55:39.475-07:00</updated><title type='text'>Clearing the ARP Cache</title><content type='html'>From &lt;a href="http://www.windowsnetworking.com/kbase/WindowsTips/Windows2003/AdminTips/Miscellaneous/ClearingtheARPCache.html"&gt;Chris Sanders&lt;/a&gt; at windowsnetworking.com&lt;br /&gt;&lt;blockquote&gt;You can view your workstations ARP table by typing “arp –a” from a command  prompt. Deleting the ARP cache is just as simple and can be done from a command  prompt by typing “netsh interface ip delete arpcache”.&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-7961309806929469396?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/7961309806929469396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=7961309806929469396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7961309806929469396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7961309806929469396'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2007/12/clearing-arp-cache.html' title='Clearing the ARP Cache'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-8808985623687217508</id><published>2007-11-05T10:13:00.000-07:00</published><updated>2007-11-05T10:14:38.243-07:00</updated><title type='text'>Explore with this as Root, Explorer Hack</title><content type='html'>A friend at work created this registry file that allows you to view a folder as if it is the root. It simplifies the view so you can easily find the files you are currently working with.&lt;br /&gt;&lt;br /&gt;It will add a "Explore with this as root" context (right-click) menu item on folders in Windows Explorer. When you execute it a new Windows Explorer window opens up with the selected folder as root with the folder pane showing.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://richalger.googlepages.com/explore_with_this_as_root.reg"&gt;explore_with_this_as_root.reg&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-8808985623687217508?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/8808985623687217508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=8808985623687217508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/8808985623687217508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/8808985623687217508'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2007/11/explore-with-this-as-root-explorer-hack.html' title='Explore with this as Root, Explorer Hack'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-7834902416396898049</id><published>2007-10-05T10:13:00.000-07:00</published><updated>2007-10-05T10:28:50.002-07:00</updated><title type='text'>A Tiny IDE for JavaScript</title><content type='html'>&lt;a href="http://tide4javascript.com/"&gt;http://tide4javascript.com/&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;A great way to test out small snippets of javascript.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-7834902416396898049?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/7834902416396898049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=7834902416396898049' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7834902416396898049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7834902416396898049'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2007/10/tiny-ide-for-javascript.html' title='A Tiny IDE for JavaScript'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-2504740167494883745</id><published>2007-10-05T09:57:00.001-07:00</published><updated>2008-03-23T07:48:10.802-07:00</updated><title type='text'>Sorting out Sorting</title><content type='html'>I recently found &lt;a href="http://www.codinghorror.com/blog/archives/000957.html"&gt;Everything Is Fast For Small n&lt;/a&gt; on codinghorror.com. Fascinating. It led me to &lt;a href="http://globalnerdy.com/2007/09/24/sorting-out-sorting/"&gt;Sorting out Sorting&lt;/a&gt; and the video below.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Click here to block this object with Adblock Plus" class="abp-objtab-008538654429840409 visible ontop" href="http://video.google.com/googleplayer.swf?docId="&gt;&lt;/a&gt;&lt;embed id="VideoPlayback" style="width: 400px; height: 326px;" src="http://video.google.com/googleplayer.swf?docId=" type="application/x-shockwave-flash" hl="en" flashvars=""&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;br /&gt;&lt;a href="http://video.google.com/videoplay?docid=3970523862559774879"&gt;Click here to see the video at a larger size.&lt;/a&gt;&lt;br /&gt;Video length: 31 minutes, 15 seconds.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=F3oKjPT5Khg"&gt;Here&lt;/a&gt; is an abbreviated version of the video.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-2504740167494883745?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/2504740167494883745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=2504740167494883745' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2504740167494883745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/2504740167494883745'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2007/10/sorting-out-sorting.html' title='Sorting out Sorting'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-7184171950901933423</id><published>2007-08-25T10:38:00.000-07:00</published><updated>2008-01-29T11:03:49.132-07:00</updated><title type='text'>Customize startup applications</title><content type='html'>&lt;span style="font-style: italic;"&gt;Updated 2008-01-29&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Use MSConfig.exe (from start\run) to disable their start up.  Also look in "C:\Documents and Settings\All Users\Start Menu\Programs\Startup" and remove any programs that should start up.  Use google to find out what each process does and why you need it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;MSConfig for Rich&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.bleepingcomputer.com/startups/inetcntrl.exe-2187.html"&gt;InetCntrl&lt;/a&gt; - "&lt;span id="intelliTxt"&gt;Bsafe Online&lt;/span&gt;"&lt;br /&gt;SHSTAT - Network Associates, virus scan&lt;br /&gt;&lt;a href="http://www.neuber.com/taskmanager/process/stsystra.exe.html"&gt;stsystra&lt;/a&gt; - comes with Dell PC,  runs pc audio, need to function correctly&lt;br /&gt;TBMon - Network Associates, virus scan&lt;br /&gt;UdaterUI - Network Associates, virus scan&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;MsConfig I Unchecked&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;a href="http://www.neuber.com/taskmanager/process/ctfmon.exe.html"&gt;ctfmon&lt;/a&gt; - "&lt;/span&gt; Some times my Windows XP is very slow and this file is the responsable&lt;span&gt;"&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;hpcmpmgr - HP for my printer. I will update you if I need you.  Don't steal my memory!&lt;br /&gt;HPWuSchd - HP for my printer.&lt;br /&gt;hpztsb09 - HP for my printer.&lt;br /&gt;isuspm - Install shield update service.  I will update you if I need you.  Don't steal my memory!&lt;br /&gt;issch - Install shield update service.&lt;br /&gt;&lt;a href="http://www.neuber.com/taskmanager/process/jusched.exe.html"&gt;jusched&lt;/a&gt; - Java Runtime engine updater&lt;br /&gt;&lt;a href="http://www.neuber.com/taskmanager/process/nvmctray.dll.html"&gt;MvMcTray&lt;/a&gt; - " runs in system tray, and gives you quick access to display settings."&lt;br /&gt;&lt;a href="http://www.motherboardpoint.com/t85722-what-is-nvcplexe-.html"&gt;NvCpl&lt;/a&gt; - NVIDIA Display Driver Service, "an unecessary service and have had mine disabled for&lt;br /&gt;years"&lt;br /&gt;&lt;a href="http://www.neuber.com/taskmanager/process/nwiz.exe.html"&gt;nwiz&lt;/a&gt; - "the executable for the NVidia options and control panel. You don't need it on startup,uncheck it in msconfig"&lt;br /&gt;&lt;br /&gt;Put the following shortcuts in each user's "C:\Documents and Settings\--username--\Start Menu\Programs\Startup"&lt;br /&gt;&lt;br /&gt;Startup for Rich&lt;br /&gt;Shortcut pointing to ("C:\Program Files\Mozilla Firefox\firefox.exe" http://mail.google.com/mail/)&lt;br /&gt;"C:\Program Files\Google\Google Desktop Search\GoogleDesktop.exe" /startup&lt;br /&gt;Shortcut to dsclock "C:\Program Files\DS Clock\dsclock.exe"&lt;br /&gt;"C:\Program Files\OpenOffice.org 2.0\program\quickstart.exe"&lt;br /&gt;"C:\Program Files\Juice\Juice.exe"&lt;br /&gt;&lt;br /&gt;For Steph only&lt;br /&gt;"C:\Program Files\MSN Messenger\msnmsgr.exe" /background&lt;br /&gt;&lt;br /&gt;For kids&lt;br /&gt;"C:\Program Files\Mozilla Firefox\firefox.exe" http://www.starfall.com/&lt;br /&gt;&lt;br /&gt;Maybe&lt;br /&gt;"C:\Program Files\ClearPlay\ClearPlay Easy Updates\ClearPlayEasyUpdates.exe"&lt;br /&gt;"C:\Program Files\google\GoogleToolbarNotifier\GoogleToolbarNotifier.exe"&lt;br /&gt;&lt;br /&gt;This way, my login does not start up Windows Live Messenger.  And we only have one copy of the utilities running.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-7184171950901933423?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/7184171950901933423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=7184171950901933423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7184171950901933423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7184171950901933423'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2007/08/customize-startup-applications.html' title='Customize startup applications'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-1905863651136666641</id><published>2007-08-06T15:12:00.000-07:00</published><updated>2007-11-26T15:49:04.873-07:00</updated><title type='text'>RegEx trick for sql field names</title><content type='html'>A new guy at work has shown me how powerful regular expressions are. Following is a trick for formatting the columns names of a SQL table.&lt;br /&gt;&lt;br /&gt;Do a query in SQL Query Analyzer on your table like:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT * FROM table WHERE 1=0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Results in&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Column1 Column2 Column3 Column4&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It will return 0 rows. Be sure to return the results as text (ctrl + T), so you can just copy the header row that will have all the field names, separated by a ton of spaces. Paste the results in &lt;a href="http://notepad-plus.sourceforge.net/"&gt;Notepad++&lt;/a&gt;. Open up the replace dialog. Check the "Regular expressions".&lt;br /&gt;&lt;br /&gt;Find \s+&lt;br /&gt;&lt;br /&gt;"\s" means find any white space. "+" means repeat the previous character until you don't find it anymore.&lt;br /&gt;&lt;br /&gt;Replace with \n,&lt;br /&gt;&lt;br /&gt;That is a new line and a comma.&lt;br /&gt;&lt;br /&gt;The final result is&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Column1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;,Column2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;,Column3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;,Column4&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Notepad++ uses the POSIX regular expression language. I look forward to using it more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-1905863651136666641?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/1905863651136666641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=1905863651136666641' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1905863651136666641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1905863651136666641'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2007/08/regex-trick-for-sql-field-names.html' title='RegEx trick for sql field names'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-7076090298524841436</id><published>2007-06-28T12:09:00.000-07:00</published><updated>2007-06-28T13:10:58.226-07:00</updated><title type='text'>VS2005 Super Slow Design Mode ASPX</title><content type='html'>Earlier this year I upgraded my AjaxControlToolkit.dll. I started running into this problem that I found posted in the comments at &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/01/01/a-few-vs-2005-sp1-links-and-information-nuggets.aspx#1395102"&gt;A few VS 2005 SP1 Links and Information Nuggets&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;Friday, January 12, 2007 12:33 PM by Mark &lt;/p&gt;&lt;p&gt;I've run into a problem that started showing up randomly after SP1 was installed:&lt;/p&gt;&lt;p&gt;I attempt to view an aspx page in Design mode and at each control that is getting created takes at least 2 minutes. The window becomes unresponsive and all I see is:&lt;/p&gt;&lt;p&gt;Creating control 'controlName1'&lt;/p&gt;&lt;p&gt;a few minutes later.&lt;/p&gt;&lt;p&gt;Creating control 'controlName2'&lt;/p&gt;&lt;p&gt;After 10 minutes, I have to kill Visual Studio -- any insight into this?&lt;/p&gt;&lt;p&gt;-Mark&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;I eventually got a new working copy of my project from subversion and the issue went away. I must have found something like what was post later in the comments of the same article.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;Thursday, January 25, 2007 5:39 PM by Dave Franke &lt;/p&gt;&lt;p&gt;Hi Scott,&lt;/p&gt;&lt;p&gt;Finally got around the problem. Not sure what it was. I checked my web.config files but did not see anything releated to two competing references. We work with TFS. So in the end I deleted everything in my workspace and retrieved all the source code and the problem was gone. Tried a Force Get latest before that but it did not work either.&lt;/p&gt;&lt;p&gt;Thanks,&lt;br /&gt;Dave&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;I am not sure what it was but this solved it.  It happened again after I upgraded AjaxControlToolkit.dll following the instructions &lt;a href="http://ajax.asp.net/ajaxtoolkit/Walkthrough/Setup.aspx"&gt;here&lt;/a&gt;.  I post it here so I won't forget again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-7076090298524841436?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/7076090298524841436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=7076090298524841436' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7076090298524841436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7076090298524841436'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2007/06/vs2005-super-slow-design-mode-aspx.html' title='VS2005 Super Slow Design Mode ASPX'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-7728063626387583620</id><published>2007-06-14T12:43:00.000-07:00</published><updated>2007-06-14T12:44:55.629-07:00</updated><title type='text'>ASP.NET Cheat Sheets</title><content type='html'>Sam at work sent me this.  It may come in handy someday.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://john-sheehan.com/blog/index.php/new-cheat-sheet-link/"&gt;http://john-sheehan.com/blog/index.php/new-cheat-sheet-link/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-7728063626387583620?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/7728063626387583620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=7728063626387583620' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7728063626387583620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7728063626387583620'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2007/06/aspnet-cheat-sheets.html' title='ASP.NET Cheat Sheets'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-5202629477599266046</id><published>2007-06-12T11:09:00.000-07:00</published><updated>2007-06-12T11:18:36.259-07:00</updated><title type='text'>Clearing the print queue</title><content type='html'>Occasionally our printer at home gets jobs stuck in the print queue. I write this so we can remember what my wife did to clear it.&lt;br /&gt;&lt;br /&gt;We have a HP deskjet 3500, from &lt;a href="http://h10025.www1.hp.com/ewfrf/wc/document?dlc=en&amp;lc=en&amp;amp;product=372330&amp;lang=en&amp;amp;cc=ca&amp;docname=c00027882"&gt;the HP site&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;When print jobs are initiated, they are stored in a print job list (print queue). If the printer does not complete the print job because it is off-line or the print spooler fails, the print jobs stay in the print queue and it becomes backed up.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Clearing the print queue&lt;/strong&gt;&lt;br /&gt;1. Click Start, click Settings, and then click Printers to open the Printer folder.&lt;br /&gt;2. Double-click the Printer to open the print queue.&lt;br /&gt;3. Click Printer in the menu.&lt;br /&gt;4. Select Pause Printing if it is not already selected. This will stop all printing to the&lt;br /&gt;printer.&lt;br /&gt;5. Click Printer again and select Purge Print Documents or Cancel All Documents. Click Yes to confirm the action.&lt;br /&gt;6. If there are any documents left in the queue, restart the print queue. Click Printer and then click Pause Printing to resume printing.&lt;br /&gt;7. Click Printer again, then click Cancel All Documents or Purge Print Documents.&lt;br /&gt;8. If there are still documents in the queue, restart the computer.&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;My wife also pressed and held down the power button on the printer.  This worked to clear the print queue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-5202629477599266046?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/5202629477599266046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=5202629477599266046' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5202629477599266046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/5202629477599266046'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2007/06/clearing-print-queue.html' title='Clearing the print queue'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-7421978001353026986</id><published>2007-03-30T15:16:00.003-07:00</published><updated>2010-05-10T15:43:59.385-07:00</updated><title type='text'>Hot key "Unformatted Text" in MS Word</title><content type='html'>Sometimes I like it when I paste things into MS Word and it retains all the formatting.  Many times, I would rather it just paste it as unformatted text so I can make it merge with the rest of the doc.&lt;br /&gt;&lt;br /&gt;Using MS-Word 2003, this is what I do so I can make Ctrl+Shift+V map to the Paste Special\Unformatted text.&lt;br /&gt;&lt;br /&gt;Copy something off your browser with formatting.&lt;br /&gt;MS-Word Tools\Macros\Record New Macro...&lt;br /&gt;- Name macro PasteUnformatted&lt;br /&gt;- Click the Assign Macro to Keyboard.  Press Ctrl+Shift+V.  Press Assign.&lt;br /&gt;- Go to Edit\Paste Special.  Choose Unformatted Text&lt;br /&gt;- Click the Stop Button&lt;br /&gt;&lt;br /&gt;View and/or edit the macro from the Tools\Macros\Macros... menu item&lt;br /&gt;Select PasteUnformatted and click the edit button.  It should look something like this.&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Sub PasteUnformatted()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;' PasteUnformatted Macro&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;' Macro recorded 3/30/2007 by Rich Alger&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;' this pastes the contents on the clipboard with no formatting&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Selection.PasteAndFormat (wdFormatPlainText)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;End Sub&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;See &lt;a href="http://www.logicaltips.com/LPMArticle.asp?ID=556"&gt;Paste Unformatted Macro&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once you are done you can use the Ctrl+Shift+V hot key to quickly paste in unformatted text.&lt;br /&gt;&lt;br /&gt;UPDATE 2008-08-19&lt;br /&gt;The last several times I had to do this, I always have to edit the macro and make sure it says &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;wdFormatPlainText&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;UPDATE 2010-05-10&lt;br /&gt;I was referring to this to get this to work in Outlook 2007.   I &lt;a href="http://woodygems.wordpress.com/2007/05/25/a-keyboard-shortcut-to-paste-unformatted-text-into-outlook-and-other-microsoft-office-applications/"&gt;just found&lt;/a&gt; that Ctrl+Alt+V brings up the "paste special" dialog box.  You can arrow up and press enter.  No need for a macro anymore.  It works the same in Word 2007.  "Alt, E, S" works in Word and Outlook 2003.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For other applications that do not have paste special you could use an application like &lt;a href="http://www.stevemiller.net/puretext/"&gt;PureText&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-7421978001353026986?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/7421978001353026986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=7421978001353026986' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7421978001353026986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/7421978001353026986'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2007/03/hot-key-unformatted-text-in-ms-word.html' title='Hot key &quot;Unformatted Text&quot; in MS Word'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-8929802182701609465</id><published>2007-03-29T11:38:00.000-07:00</published><updated>2007-03-29T11:41:42.951-07:00</updated><title type='text'>Disable new mail notifications in Trillian</title><content type='html'>I am setting up a new PC and could not remember how to disable trillian from notifying me when a new email comes.&lt;br /&gt;&lt;br /&gt;For Trillian Basic 3.1 build 121: Trillian\TrillianPreferences... menu.&lt;br /&gt;Advanced Preferences&lt;br /&gt;Automation&lt;br /&gt;Uncheck Mail: New Mail&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-8929802182701609465?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/8929802182701609465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=8929802182701609465' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/8929802182701609465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/8929802182701609465'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2007/03/disable-new-mail-notifications-in.html' title='Disable new mail notifications in Trillian'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-86280042874480370</id><published>2007-03-01T08:18:00.000-07:00</published><updated>2007-03-01T10:36:05.367-07:00</updated><title type='text'>Google Maps Traffic</title><content type='html'>I first started using online traffic data to choose my driving home route. I commute from El Mirage, AZ to Tempe, AZ. At the end of 2005 I started using Google Earth. We were experimenting with it at work and considering buying an enterprise solution from them. We figured out how to make an overlay using the &lt;a href="http://www.az511.com/Images/roadwayconditions/rt8x6tm.jpg"&gt;graphic at ADOT &lt;/a&gt;onto the Google Earth surface.&lt;br /&gt;&lt;br /&gt;That worked quite well. The biggest problem I had with it is that it took 45 seconds or more to load Google Earth and to view the overlay. After a while, I stopped using it.&lt;br /&gt;&lt;br /&gt;I then tried using traffic.com. I was intrigued by its stated ability to accept a route and email me if that route was too congested. I found that there were too many false positive reported and I was not always leaving work at the exact same time each day. I stopped using it too.&lt;br /&gt;&lt;br /&gt;I had seen yahoo's traffic but the little dots didn't stand out to me.&lt;br /&gt;&lt;br /&gt;A few months ago, I tried maps.live.com. It shows me stripes like ADOT does. Yet the stripes are only partially opaque, so you can see the street names underneath. It shows accidents, which is the real decider if I should go one way or another. I am able to create a url specifying the exact location and turns traffic on. I use &lt;a href="http://maps.live.com/default.aspx?v=2&amp;cp=33.448129~-112.072477&amp;amp;style=r&amp;lvl=12&amp;amp;amp;tilt=-90&amp;dir=0&amp;amp;alt=-1000&amp;scene=5770965&amp;amp;trfc=1"&gt;this&lt;/a&gt; bookmark to see traffic every day. The final bonus it that is loads fast. It is up in about 7 seconds. Often I have to refresh it once to get the traffic to show, but that is real fast!&lt;br /&gt;&lt;br /&gt;In about 10 - 15 second of looking at the image, I can tell which route to take. I can see any accidents and the resulting backup.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://googlesystem.blogspot.com/2007/02/google-maps-shows-real-time-traffic.html"&gt;Yesterday&lt;/a&gt;, Google maps announced that they have traffic on their site. The most interesting part of their implementation is their coverage. They have data for the Loop 101. I do not know where they get this data from.  &lt;a href="http://www.allpointsblog.com/archives/2557-Whos-Providing-Googles-Traffic-No-ones-telling..html"&gt;Allpointsblog.com&lt;/a&gt; hasn't found out yet either.   I have not been able to find it from &lt;a href="http://www.az511.com/RoadwayConditions/index.php"&gt;ADOT&lt;/a&gt;. Another thing I noticed is that Google displays data I few minutes later than Microsoft.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-86280042874480370?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/86280042874480370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=86280042874480370' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/86280042874480370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/86280042874480370'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2007/03/google-maps-traffic.html' title='Google Maps Traffic'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-1857774585049186834</id><published>2007-01-20T10:35:00.000-07:00</published><updated>2007-01-20T10:48:27.747-07:00</updated><title type='text'>Firefox Settings and Windows Start Up</title><content type='html'>I like &lt;a href="http://flashpeak.com/sbrowser/"&gt;Slimbrowser&lt;/a&gt;.   I have used it for years , mostly for a tabbed Internet Explorer.  I recently got a new computer and decided to try FireFox as my primary browser.&lt;br /&gt;&lt;br /&gt;I wanted it to behave more like Slimbrowser.  I found the following FireFox add-ins,&lt;br /&gt;&lt;a href="https://addons.mozilla.org/firefox/158/"&gt;Tabbrowser Preferences&lt;/a&gt;&lt;br /&gt;&lt;a href="https://addons.mozilla.org/firefox/112/"&gt;LastTab&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www2.blogger.com/Tab%20https://addons.mozilla.org/firefox/28/"&gt;Duplicate&lt;/a&gt;&lt;br /&gt;&lt;a href="http://fasterfox.mozdev.org/"&gt;Faster Fox&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www2.blogger.com/FireFox%20https://addons.mozilla.org/firefox/1249/"&gt;Restart  FireFox&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My wife still uses Internet Explorer as the primary browser.  There are enough sites out there that still do not work well with FireFox that I still want it too.  I wanted to be able to open GMail with FF.  I created a shortcut on my desktop with this target ("C:\Program Files\Mozilla Firefox\firefox.exe" http://mail.google.com/mail/)&lt;br /&gt;&lt;br /&gt;I also was looking to reduce the number of programs running as well as quicken the Windows XP Home Edition login.  I found MSConfig.exe.  Just run from Start/Run and adjust it.  My wife used Windows Live Messenger.  I found in MsConfig where to disable its start up.  I then could add a short cut to it in the StartUp folder of my wife's login.  That way it starts up for her but not for me and the kids login.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-1857774585049186834?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/1857774585049186834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=1857774585049186834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1857774585049186834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/1857774585049186834'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2007/01/firefox-settings-and-windows-start-up.html' title='Firefox Settings and Windows Start Up'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-115765572505524121</id><published>2006-09-07T12:01:00.000-07:00</published><updated>2006-11-14T08:12:04.753-07:00</updated><title type='text'>What does "non-commercial use" mean?</title><content type='html'>&lt;p&gt;&lt;a href="http://www.google.com/intl/en_ALL/help/terms_local.html"&gt;Google Maps Terms of Use&lt;/a&gt;, "For individual users, Google Maps, including local search results, maps, and photographic imagery, is made available for your personal, non-commercial use only. For business users, Google Maps is made available for your internal use only and may not be commercially redistributed, except that map data may be accessed and displayed by using the Google Maps API pursuant to the API terms and conditions" (paragraph 1)&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.google.com/apis/maps/terms.html"&gt;Google Maps API Terms of Use&lt;/a&gt;, "The Service may be used only for services that are generally accessible to consumers without charge" (section 1.4)&lt;/p&gt;&lt;p&gt;The most confusing part comes when I look at the &lt;a href="http://www.google.com/intl/en/terms_of_service.html"&gt;Google Terms of Service&lt;/a&gt;. "The Google Services are made available for your personal, non-commercial use only. You may not use the Google Services to sell a product or service".&lt;/p&gt;&lt;p&gt;What does "non-commercial use" mean? The most concise definition I can find is "Non-commercial means that you are not getting compensated in any form for the products and/or services you develop..." (&lt;a href="http://www.intel.com/cd/software/products/asmo-na/eng/219692.htm"&gt;Intel® Software Development Products&lt;/a&gt;). &lt;/p&gt;&lt;p&gt;Is this the definition of non-commercial? "Non-commercial means that you are not getting compensated in any form for the products and/or services you develop. You cannot use the service to assist you to develop products and/or services that you are compensated for". This definition would mean I cannot use Google to search for programming references.&lt;/p&gt;&lt;p&gt;Perhaps non-commercial means, "you many not use this service to sell a product or service". By this definition employees of the company I work for cannot use Google Maps to sell our products or services. On the other hand, I can use Google Search to find programming references and tutorials.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-115765572505524121?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/115765572505524121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=115765572505524121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/115765572505524121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/115765572505524121'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2006/09/what-does-non-commercial-use-mean.html' title='What does &quot;non-commercial use&quot; mean?'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-114979340551352789</id><published>2006-06-08T12:02:00.000-07:00</published><updated>2006-11-14T08:12:04.665-07:00</updated><title type='text'>How to Setup nUnitAsp for Unit Testing</title><content type='html'>After months I finally set up my first working unit test using nUnitAsp. It is great because it has classes that mimic the ASP.net web controls.&lt;br /&gt;&lt;br /&gt;I ran into a bug that was hard to reproduce. After a day or so of exploratory testing I reproduced it. I did not want to lose this knowledge to I decided to try to implement a testing suite to document it with a test. (See “&lt;a href="http://www.extremeprogramming.org/rules/testfirst.html"&gt;Code the Unit Test First&lt;/a&gt;”)&lt;br /&gt;&lt;br /&gt;After looking into and trying to implement several blends of unit testing frameworks, I chose, &lt;a href="http://nunitasp.sourceforge.net/"&gt;nUnitAsp&lt;/a&gt; which extends &lt;a href="http://nunit.org/"&gt;nUnit&lt;/a&gt; so that you can easily test web controls. I also installed &lt;a href="http://testdriven.net/"&gt;TestDriven.net&lt;/a&gt; so I could more readily run tests from VS 2003.&lt;br /&gt;&lt;br /&gt;This article was the guide that produced results for me, “&lt;a href="http://aspnet.4guysfromrolla.com/articles/012605-1.aspx"&gt;Advanced Techniques with NUnitAsp&lt;/a&gt;” by Tim Stall. I only followed the simple example and then adapted it to reproducing my bug.&lt;br /&gt;&lt;br /&gt;I downloaded nUnitAsp version 1.5.1. I ran the nUnit 2.2.0 installer included with it at \NUnitAsp-1.5.1\bin. I installed TestDriven.net-2.0.1605_Personal.&lt;br /&gt;&lt;br /&gt;Now that I have coding the unit test first, I can fix the bug.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-114979340551352789?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/114979340551352789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=114979340551352789' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/114979340551352789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/114979340551352789'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2006/06/how-to-setup-nunitasp-for-unit-testing.html' title='How to Setup nUnitAsp for Unit Testing'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-114798194229392933</id><published>2006-05-18T12:50:00.000-07:00</published><updated>2006-11-14T08:12:04.571-07:00</updated><title type='text'>The good, fast and cheap triangle</title><content type='html'>&lt;a href="http://www.sixside.com/fast_good_cheap.asp"&gt;The good, fast and cheap triangle&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I saw this on Bernie Mac last night. His general contractor to add on a spare room showed him this triangle.  It rings true.  There are &lt;a href="http://www.agilemanagement.net/Articles/Weblog/GoodFastCheap-Pick3.html"&gt;some&lt;/a&gt; that think you can have all three.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-114798194229392933?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/114798194229392933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=114798194229392933' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/114798194229392933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/114798194229392933'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2006/05/good-fast-and-cheap-triangle.html' title='The good, fast and cheap triangle'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-113406492018971167</id><published>2005-12-08T10:40:00.000-07:00</published><updated>2006-11-14T08:12:04.484-07:00</updated><title type='text'>Pictometry in Virtual Earth</title><content type='html'>I found out from &lt;a href="http://www.allpointsblog.com/archives/895-Live-Local-Goes-Live-This-Morning.html"&gt;All Points Blog&lt;/a&gt; that &lt;a href="http://local.live.com"&gt;http://local.live.com&lt;/a&gt; went live today (was virtual earth).&lt;br /&gt;&lt;br /&gt;I like the new features. You can link to a bird's eye view of some locations, like the &lt;a href="http://local.live.com/default.aspx?v=2&amp;ss=statue%20of%20liberty&amp;amp;cp=40.689792~-74.044833&amp;style=o&amp;amp;lvl=1&amp;scene=1915478&amp;amp;sp=adr.12513%20W%20Sierra%20St%2c%20El%20Mirage%2c%20AZ%2085335~adr.7900%20W%20Bell%20Rd%2c%20Peoria%2c%20AZ%2085382~adr.1600%20W%20Fountainhead%20Pkwy%2c%20Tempe%2c%20AZ%2085282~adr.Central%20Park%20%28park%29%2c%20Birmingham%2c%20Alabama%2c%20United%20States~adr.292%20Madison%20Ave%2c%20New%20York%2c%20NY%2010017~aN.33.403698_-111.966369_Mapping%20Center_1620%20W.%20Fountainhead%20Pkwy%0d%0aSuite%20610%0d%0aTempe%2c%20AZ%2085282~aN.40.776005_-73.972401_The%20Lake%2c%20Central%20Park_~aN.40.689886_-74.045216_Statue%20of%20Liberty_"&gt;statue of liberty&lt;/a&gt;. I also like &lt;a href="http://local.live.com/Help/Mouse.html"&gt;zooming in by drawing a box&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I would like them to get the tiles to load more consistently, and improve their geocoder results.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-113406492018971167?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/113406492018971167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=113406492018971167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/113406492018971167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/113406492018971167'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2005/12/pictometry-in-virtual-earth.html' title='Pictometry in Virtual Earth'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-112974087421195960</id><published>2005-10-19T09:53:00.003-07:00</published><updated>2008-05-14T10:52:16.116-07:00</updated><title type='text'>Idiomatic Pop up Dictionary</title><content type='html'>&lt;div&gt;&lt;span style="font-weight: bold;"&gt;Update 2008-05-14.&lt;/span&gt; This web site no longer has this functionality that I can tell. The principle still continues. I updated the idiomatic URL.  For my future reference the name of the article is  "The Myth of Metaphor" by Alan Cooper June 1995 Originally Published in Visual Basic Programmer's Journal.  The PDF is in my Gmail account.&lt;br /&gt;&lt;br /&gt;Look at &lt;a href="http://www.emedicine.com/derm/topic138.htm"&gt;http://www.emedicine.com/derm/topic138.htm&lt;/a&gt; now highlight a medical term you don’t know. It will pop up a window and look the word up for you. You may need to turn off your pop up blocker. It must use JavaScript to do this. It reminds me of the Wikipedia feature of trillion. It will put a dotted line underneath a word. When you mouse over it, it open a tool tip like window and go an look it up in Wikipedia.&lt;br /&gt;&lt;br /&gt;This is a great example of &lt;a href="http://a.parsons.edu/%7Ejchen/F05/ms/downloads/read/The_Myth_of_Metaphor.pdf"&gt;idiomatic design&lt;/a&gt;. My wife just happened to come across it. She was highlighting a word (I guess to look it up) and the pop up did it for her. She will never forget this feature and no one had to teach it to her. It was so useful that she shared it with me and now I will never forget it.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-112974087421195960?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/112974087421195960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=112974087421195960' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/112974087421195960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/112974087421195960'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2005/10/idiomatic-pop-up-dictionary.html' title='Idiomatic Pop up Dictionary'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-112962923561320104</id><published>2005-10-18T02:51:00.000-07:00</published><updated>2006-11-14T08:12:04.306-07:00</updated><title type='text'>Stay Extreme</title><content type='html'>I have been feeling burnt out.  I just went on a long weekend vacation to Disneyland with my four oldest kids.  I am staying up late and started looking at blogs of those that share my interests.  I found &lt;a href="http://jonconradt.blogspot.com/2004/09/innovation-fatigue.html"&gt;innovation fatigue&lt;/a&gt; and posted a comment.  I found that Jon Conradt is also interested in agile development.  He mentioned &lt;a href="http://www.controlchaos.com/about/"&gt;Scrum&lt;/a&gt;.  I am not sure what it has in addition to XP. &lt;br /&gt;&lt;br /&gt;I am going to initiate a 15 minute meeting every day this week.  I am determined to &lt;a href="http://agilemusings.blogspot.com/2005/09/use-your-wings.html"&gt;use my wings&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-112962923561320104?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/112962923561320104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=112962923561320104' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/112962923561320104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/112962923561320104'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2005/10/stay-extreme.html' title='Stay Extreme'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-112844913697197751</id><published>2005-10-04T11:04:00.000-07:00</published><updated>2006-11-14T08:12:04.219-07:00</updated><title type='text'>Walk away from your desk</title><content type='html'>In Nov 2002 I was laid off.  After a couple of weeks I was hired to finish the last six weeks of a contract.  This was my first introduction to &lt;a href="http://www.extremeprogramming.org/index.html"&gt;extreme programming&lt;/a&gt;.  My supervisor was very into it, especially the small iterations.  I was amazed how much I accomplished.&lt;br /&gt;&lt;br /&gt;I worked by myself.  I occasionally (every 2 or 3 days) be able to check in with my supervisor.  Sometimes I got frustrated.  It was then I realized that I needed to walk away from my desk.&lt;br /&gt;&lt;br /&gt;Not that this is a great new revelation, but to me it was a breakthrough.  I had read &lt;a href="http://www.cooper.com/content/insights/newsletters/2003_08/Origin_of_Personas.asp"&gt;The Origin of Personas&lt;/a&gt; some time before.  I realized that when I was walking, I was working!  I was not loafing.  Of course there is a line you can cross, walking a 10K for instance.  This is where personal character comes in.  &lt;a href="http://www.construx.com/about/press/releases/a2004-0609.php"&gt;Steve McConnell&lt;/a&gt; said personal character is related to superior software.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-112844913697197751?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/112844913697197751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=112844913697197751' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/112844913697197751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/112844913697197751'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2005/10/walk-away-from-your-desk.html' title='Walk away from your desk'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16213456.post-112837802916263737</id><published>2005-10-03T15:19:00.000-07:00</published><updated>2006-11-14T08:12:04.132-07:00</updated><title type='text'>Do the simplest...</title><content type='html'>I did the planning game writing several user stories on note cards.  This took some hours.  After a while I was itching to start designing and getting the most important ones done.  I took two of them and added them to an implementation of &lt;a href="http://www.countersoft.com/Gemini.aspx"&gt;Gemini&lt;/a&gt; I set up a couple weeks ago.  I created a version for Oct 2005 and added the two user stories to it.  I emailed a link of Gemini to my work mates and asked our director if I could sent it to the members of the vision team.  I want to encourage participation from them.&lt;br /&gt;&lt;br /&gt;I also created a stored procedure that reports on the usage of a couple key features of the web application.  I want to find out who is using these features.  I will invite them to participate in the development process.&lt;br /&gt;&lt;br /&gt;Backup plans.  I have worked out a system of backing up the source code I work on.  We do not currently have a source code &lt;a href="http://en.wikipedia.org/wiki/Version_control_system"&gt;version control system&lt;/a&gt;.  I created a backup folder on another set of disk drives to hold backups of the source code.  These disks are backed up monthly.  I created batch files to back up the source code.  I set up monthly ones that will copy the source code several days before the scheduled disk backup.  &lt;a href="http://www.extremeprogramming.org/rules/simple.html"&gt;Do the simplest thing that could possibly work&lt;/a&gt; was my inspiration for this system.&lt;br /&gt;&lt;br /&gt;I may be assisting another programmer this week.  I will take this opportunity to practice &lt;a href="http://www.extremeprogramming.org/rules/pair.html"&gt;pair programming&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16213456-112837802916263737?l=agilemusings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agilemusings.blogspot.com/feeds/112837802916263737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16213456&amp;postID=112837802916263737' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/112837802916263737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16213456/posts/default/112837802916263737'/><link rel='alternate' type='text/html' href='http://agilemusings.blogspot.com/2005/10/do-simplest.html' title='Do the simplest...'/><author><name>Rich Alger</name><uri>http://www.blogger.com/profile/08921970283086332560</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://2.bp.blogspot.com/-BNjwowtEsU4/TY_Sc_-F6pI/AAAAAAAAAKE/BdgI1umoSNQ/s220/FacebookProfile.jpg'/></author><thr:total>0</thr:total></entry></feed>
