<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0">
  <channel>
    <title>Ruminations of J.net</title>
    <description>Idle rants and ramblings of a code monkey</description>
    <link>http://www.devbiker.net/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.5.0.7</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://www.devbiker.net/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>J Sawyer</dc:creator>
    <dc:title>Ruminations of J.net</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <geo:lat>29.758799</geo:lat><geo:long>-95.747514</geo:long><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/JdotNet" type="application/rss+xml" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">JdotNet</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>Azure .NET Dojo PPT</title>
      <description>&lt;p&gt;OK … here it is. I know it took too long to get it up here, but better late than never. &lt;/p&gt;  &lt;p&gt;The PPTX file is &lt;a href="http://cid-e45dfecbe9dcc432.skydrive.live.com/self.aspx/Presentations/Presentation-Final.pptx" target="_blank"&gt;here&lt;/a&gt; and the labs and source for the (modified) personal web site starter kit are &lt;a href="http://cid-e45dfecbe9dcc432.skydrive.live.com/self.aspx/Presentations/HOL.zip" target="_blank"&gt;here&lt;/a&gt;. I will be doing a post about the (numerous) things that are wrong with that starter kit.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=oUQ8WMEwr58:6FNkRUWEDd4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=oUQ8WMEwr58:6FNkRUWEDd4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?i=oUQ8WMEwr58:6FNkRUWEDd4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JdotNet/~4/oUQ8WMEwr58" height="1" width="1"/&gt;</description>
      <link>http://www.devbiker.net/post/Azure-NET-Dojo-PPT.aspx</link>
      <author>jsawyer</author>
      <comments>http://www.devbiker.net/post/Azure-NET-Dojo-PPT.aspx#comment</comments>
      <guid>http://www.devbiker.net/post.aspx?id=fef81329-1d72-4f6b-b93a-7a210a4bd013</guid>
      <pubDate>Tue, 07 Jul 2009 15:39:14 -0500</pubDate>
      <dc:publisher>jsawyer</dc:publisher>
      <pingback:server>http://www.devbiker.net/pingback.axd</pingback:server>
      <pingback:target>http://www.devbiker.net/post.aspx?id=fef81329-1d72-4f6b-b93a-7a210a4bd013</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.devbiker.net/trackback.axd?id=fef81329-1d72-4f6b-b93a-7a210a4bd013</trackback:ping>
      <wfw:comment>http://www.devbiker.net/post/Azure-NET-Dojo-PPT.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.devbiker.net/syndication.axd?post=fef81329-1d72-4f6b-b93a-7a210a4bd013</wfw:commentRss>
    </item>
    <item>
      <title>Final (?) Comments on Windows Server 2008 R2 as a desktop</title>
      <description>&lt;p&gt;I know … I keep bringing this up. It’s been a long road and there were still a couple of things that I found that I needed to really, truly, fully replace Vista/Windows 7 client with Windows Server 2008 R2 for my desktop OS … on both my traditional “desktop” machine and my laptop. I think, finally, I’ve got all of them worked out. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Power Management/Sleep/Hibernate Mode&lt;/strong&gt;: I absolutely love sleep mode. I see no need to keep my machine running at 100% power all of the time. And I’m impatient so I don’t like to wait for a full reboot if I don’t have to. I don’t do hibernate too much but that’s also nice to have. As I’m sure you are aware, Windows Server has no problem with the whole power management stuff … until you enable the Hyper-V role (which is one of the biggest reasons that I want to run Server 2008). Once you enable Hyper-V, you lose all power management capabilities. In Windows Server 2008, there was nothing you could do about this. When folks raised this as an issue, Microsoft’s response was … tough. Hyper-V is supposed to be on a server and a server never sleeps. It doesn’t matter if you have VM’s running or not either. A lot of folks came up with workarounds/hacks that “enabled” this, with various degrees of success. Well, apparently there was enough of a hubbub for the Microsoft folks to do something about it. You’ll need to create a new boot entry with BCDEdit and set &lt;em&gt;hypervisorlaunchtype&lt;/em&gt; to off. Full details and step-by-step instructions are on &lt;a href="http://blogs.msdn.com/virtual_pc_guy/archive/2008/04/14/creating-a-no-hypervisor-boot-entry.aspx" target="_blank"&gt;Virtual PC Guy’s WebLog&lt;/a&gt;. You will have to reboot to re-enable Hyper-V (and the hypervisor) but that’s OK for me … I don’t &lt;em&gt;always&lt;/em&gt; run VM’s and I’ll accept the reboot for that. It’s not my &lt;em&gt;ideal&lt;/em&gt; scenario, but it works. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Zune&lt;/strong&gt;: This sucked. I couldn’t get the Zune software to install for anything. Improper version or some such nonsense. Which meant that I couldn’t access my Zune pass and couldn’t sync with my Zune unless I dual booted. Apparently, the Zune folks don’t think that Windows Server is an appropriate platform for Zune. Fortunately, I found a post on &lt;a href="http://blogs.msdn.com/dzazzo/archive/2008/09/16/installing-zune-3-0-on-windows-server-2008.aspx" target="_blank"&gt;David Zazzo’s blog&lt;/a&gt; that takes you through doing this step-by-step. One note: I right-clicked on packages\Zune-x64.msi and clicked on “Troubleshoot Compatability” … which applied the settings “Skip Version Check”. Just running ZuneSetup.exe … even in compatibility mode … didn’t work. &lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=VUYrERBJp7c:K7TUI3jhoro:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=VUYrERBJp7c:K7TUI3jhoro:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?i=VUYrERBJp7c:K7TUI3jhoro:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JdotNet/~4/VUYrERBJp7c" height="1" width="1"/&gt;</description>
      <link>http://www.devbiker.net/post/Final-()-Comments-on-Windows-Server-2008-R2-as-a-desktop.aspx</link>
      <author>jsawyer</author>
      <comments>http://www.devbiker.net/post/Final-()-Comments-on-Windows-Server-2008-R2-as-a-desktop.aspx#comment</comments>
      <guid>http://www.devbiker.net/post.aspx?id=bccc798a-919c-45b0-a636-4a8717ad2a01</guid>
      <pubDate>Mon, 22 Jun 2009 16:35:41 -0500</pubDate>
      <category>Idle Babbling</category>
      <dc:publisher>jsawyer</dc:publisher>
      <pingback:server>http://www.devbiker.net/pingback.axd</pingback:server>
      <pingback:target>http://www.devbiker.net/post.aspx?id=bccc798a-919c-45b0-a636-4a8717ad2a01</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://www.devbiker.net/trackback.axd?id=bccc798a-919c-45b0-a636-4a8717ad2a01</trackback:ping>
      <wfw:comment>http://www.devbiker.net/post/Final-()-Comments-on-Windows-Server-2008-R2-as-a-desktop.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.devbiker.net/syndication.axd?post=bccc798a-919c-45b0-a636-4a8717ad2a01</wfw:commentRss>
    </item>
    <item>
      <title>.NET Dojo: Windows Azure</title>
      <description>&lt;p&gt;Here’s the info on the next .NET Dojo. Did you think it’d be gone? Well, I hope not and I’m working with Zain to transition the program over to him. That said, I will be doing my very first Dojo! The topic is Windows Azure (duh!) and it promises to be a good time for all.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Event Overview&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Windows Azure is the cloud services operating system that serves as the development, service hosting, and service management environment for the Azure Services Platform. Windows Azure provides you on-demand compute &amp;amp; storage to host, scale, and manage Web applications and services on the Internet in Microsoft data centers.&lt;/p&gt;  &lt;p&gt;In this Dojo, we'll dig into how to work with Windows Azure to build applications that run in the cloud ... using the skills you have and the tools that you are familiar with. We'll introduce the key concepts in lecture and then immediately apply those concepts in hands on labs. At the end of the Dojo, you'll be able to create applications to leverage this platform and its functionality, including tables, blobs, queues and, of course, web sites. &lt;/p&gt;  &lt;p&gt;Attendees will be expected to bring their own laptops with the prerequisites (below) to participate in the hands-on labs. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Prerequisites: &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;· Windows Vista SP1 or Windows Server 2008 SP1&lt;/p&gt;  &lt;p&gt;· IIS 7.0 (with ASP.NET, WCF HTTP Activation and optionally CGI)&lt;/p&gt;  &lt;p&gt;· Visual Studio 2008 Professional&amp;#160; (Trial OK)&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=fbee1648-7106-44a7-9649-6d9f6d58056e&amp;amp;displaylang=en"&gt;Visual Studio 2008 SP1&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://www.microsoft.com/express/sql/register/"&gt;Sql Server Express (2005 or 2008)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=59e8fc0c-c399-4ab7-8a93-882d8e74b67a&amp;amp;displaylang=en"&gt;Windows Azure Tools for Microsoft Visual Studio March 2009 CTP&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://code.msdn.microsoft.com/KB967631"&gt;KB967631: Update for Visual Studio 2008 SP1 Debugger&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Dates, Locations and Registration:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032417335&amp;amp;Culture=en-US" target="_blank"&gt;Houston: June 19, 2009 1PM-5PM @ the Houston Microsoft Office&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032417334&amp;amp;Culture=en-US" target="_blank"&gt;Austin: June 26, 2009 1PM-5PM @ the Austin Microsoft Office&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hope to see you there!!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=tPwJYa8MUiU:w_LvCtJIfDo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=tPwJYa8MUiU:w_LvCtJIfDo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?i=tPwJYa8MUiU:w_LvCtJIfDo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JdotNet/~4/tPwJYa8MUiU" height="1" width="1"/&gt;</description>
      <link>http://www.devbiker.net/post/NET-Dojo-Windows-Azure.aspx</link>
      <author>jsawyer</author>
      <comments>http://www.devbiker.net/post/NET-Dojo-Windows-Azure.aspx#comment</comments>
      <guid>http://www.devbiker.net/post.aspx?id=57387482-d873-4859-beb2-7b4411a70cdf</guid>
      <pubDate>Mon, 08 Jun 2009 13:49:58 -0500</pubDate>
      <category>Community</category>
      <category>Events</category>
      <dc:publisher>jsawyer</dc:publisher>
      <pingback:server>http://www.devbiker.net/pingback.axd</pingback:server>
      <pingback:target>http://www.devbiker.net/post.aspx?id=57387482-d873-4859-beb2-7b4411a70cdf</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.devbiker.net/trackback.axd?id=57387482-d873-4859-beb2-7b4411a70cdf</trackback:ping>
      <wfw:comment>http://www.devbiker.net/post/NET-Dojo-Windows-Azure.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.devbiker.net/syndication.axd?post=57387482-d873-4859-beb2-7b4411a70cdf</wfw:commentRss>
    </item>
    <item>
      <title>Life After Microsoft</title>
      <description>&lt;p&gt;Yes, there is “Life After Microsoft”. As I said, I’ve been taking something of a break but I’m getting back into the swing of things. Not that it was really much of a “vacation” … I just couldn’t stay off the computer or dev stuff, but it was light and nothing serious. &lt;/p&gt;  &lt;p&gt;So what’s next? Well, after some discussion, I’ll be working with &lt;a href="http://www.eps-software.com/" target="_blank"&gt;EPS Software&lt;/a&gt; on several different projects and initiatives. I’ll also be working with my old friend Dana on building out &lt;a href="http://www.kinetikhosts.com/" target="_blank"&gt;KinetikHosts&lt;/a&gt;&amp;#160; and a startup web site that I won’t detail here. The biggest part, however, will be working with Markus and the EPS family and I’m very excited about that. I’ve known the folks there for quite some time and it’s a great environment – challenging, but relaxed and fun. &lt;/p&gt;  &lt;p&gt;So … there you have it! &lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=Zocua1o-5t8:6l3QJZ0N3Yk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=Zocua1o-5t8:6l3QJZ0N3Yk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?i=Zocua1o-5t8:6l3QJZ0N3Yk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JdotNet/~4/Zocua1o-5t8" height="1" width="1"/&gt;</description>
      <link>http://www.devbiker.net/post/Life-After-Microsoft.aspx</link>
      <author>jsawyer</author>
      <comments>http://www.devbiker.net/post/Life-After-Microsoft.aspx#comment</comments>
      <guid>http://www.devbiker.net/post.aspx?id=464f926d-646f-47d1-b481-aaafca97a0ab</guid>
      <pubDate>Mon, 08 Jun 2009 13:40:20 -0500</pubDate>
      <dc:publisher>jsawyer</dc:publisher>
      <pingback:server>http://www.devbiker.net/pingback.axd</pingback:server>
      <pingback:target>http://www.devbiker.net/post.aspx?id=464f926d-646f-47d1-b481-aaafca97a0ab</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.devbiker.net/trackback.axd?id=464f926d-646f-47d1-b481-aaafca97a0ab</trackback:ping>
      <wfw:comment>http://www.devbiker.net/post/Life-After-Microsoft.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.devbiker.net/syndication.axd?post=464f926d-646f-47d1-b481-aaafca97a0ab</wfw:commentRss>
    </item>
    <item>
      <title>More on Windows Server 2008 R2 as a desktop</title>
      <description>&lt;p&gt;Since I did the last post on this, I’ve also (now) installed Server 2008 R2 on my personal desktop … as my laptop had to be turned in. In doing this and getting it set up to be a day-to-day desktop OS (as opposed to a demo machine OS), I ran across a couple of other things that I thought were worth noting. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;IE ESC:&lt;/strong&gt; That’s &lt;em&gt;Enhanced Security Configuration &lt;/em&gt;… the ultra-secure-because-it’s-only-HTML mode of Internet Explorer that is enabled by default on Windows Server. Again, something that makes a TON of sense but it doesn’t work very well when you are using it as a desktop. I had thought (silly me) that it’d be easy … go into the Server Manager and turn it off. Well, there were complications. Here’s the deal: I run with a different account than the built-in Administrator account. It’s also the account that ties my machine to my Windows Home Server (which is way cool, btw). When I created the account, I did not initially add it to the Administrators group. So, when I turned IE ESC off for Admins, it didn’t turn off for that account … because it wasn’t an admin. Easy enough … I turned off IE ESC for all users. Nope. Didn’t work. Added my account to the Administrators group. And it &lt;em&gt;still&lt;/em&gt; didn’t work … I was still running IE in the Enhanced Security mode. Even after rebooting. I went to “User Accounts” in Control Panel (it’s just like on the desktop version) and couldn’t add that account as an Administrator account there either. So … I wound up deleting the account and recreating the account &lt;em&gt;using the &amp;quot;User Accounts” applet in Control Panel,&lt;/em&gt; creating it as an administrator account. Then it worked. Just fine. I don’t know why this happened. I cannot explain it at all. But there it is. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Windows 7 Themes&lt;/strong&gt;: I did turn on the themes and eye candy as mentioned previously. But the Win7 themes aren’t included and I couldn’t find a way to install them. Easy enough … copy them from a Windows 7 installation. They will be under %WINDIR%\Resources\Themes. You’ll also want to copy the pictures (%WINDIR%\Web\Wallpaper) and the cursors (%WINDIR%\Cursors). They will then appear in your personalization window. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Windows Search:&lt;/strong&gt; This one is important for finding stuff in Outlook and on your drives in a reasonable amount of time. It is not installed by default in Windows Server … and Outlook will tell you all about it and the necessity of installing it if you want to do any searching. You cannot find it in Features. There’s a download for Windows Search 4.0 for Vista … that doesn’t work either (refuses to install). Where is it? It is under Roles …File Services … Windows Search. Perfectly logical right? &lt;/p&gt;  &lt;p&gt;So there it is. I’ll post any more tidbits as I happen across them. So far, though, all is well and happy.&amp;#160; &lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=pOyH14MwNGA:LBsza1xESws:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=pOyH14MwNGA:LBsza1xESws:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?i=pOyH14MwNGA:LBsza1xESws:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JdotNet/~4/pOyH14MwNGA" height="1" width="1"/&gt;</description>
      <link>http://www.devbiker.net/post/More-on-Windows-Server-2008-R2-as-a-desktop.aspx</link>
      <author>jsawyer</author>
      <comments>http://www.devbiker.net/post/More-on-Windows-Server-2008-R2-as-a-desktop.aspx#comment</comments>
      <guid>http://www.devbiker.net/post.aspx?id=2701dd37-1594-4671-9011-1f64ae6319c0</guid>
      <pubDate>Mon, 11 May 2009 16:13:37 -0500</pubDate>
      <category>Idle Babbling</category>
      <dc:publisher>jsawyer</dc:publisher>
      <pingback:server>http://www.devbiker.net/pingback.axd</pingback:server>
      <pingback:target>http://www.devbiker.net/post.aspx?id=2701dd37-1594-4671-9011-1f64ae6319c0</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.devbiker.net/trackback.axd?id=2701dd37-1594-4671-9011-1f64ae6319c0</trackback:ping>
      <wfw:comment>http://www.devbiker.net/post/More-on-Windows-Server-2008-R2-as-a-desktop.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.devbiker.net/syndication.axd?post=2701dd37-1594-4671-9011-1f64ae6319c0</wfw:commentRss>
    </item>
    <item>
      <title>Leaving Microsoft …</title>
      <description>&lt;p&gt;As I’m sure you know, Microsoft has been reorganizing, eliminating positions and reducing headcount … layoffs. &lt;/p&gt;  &lt;p&gt;Well, after 9 years, I’m one of the folks hit by that. &lt;/p&gt;  &lt;p&gt;I’m not going to sit here and tell you that’s it’s great, wonderful, etc. etc. It’s not. It’s hard and it sucks. But it could be a lot worse … Microsoft’s severance package is extremely generous and it will certainly give me the opportunity to take a little vacation time while I determine where I want to go from here. Beyond that, I will have assistance for outplacement as well. So, even in the leaving, I find myself lucky to work for a company as great as Microsoft. And, at the end of it all, I know that I will land on my feet and that the experiences that I’ve had at Microsoft will certainly be a part of that. I have had worse things happen to me … I have been through far worse things than this … and I have always come out better for it. &lt;/p&gt;  &lt;p&gt;It has been a good 9 years. I’ve seen a lot of change at Microsoft and a lot of priorities realigned. I’ve seen the company grow in new directions and in new ways that none of us would have imagined in 2000. It’s always been interesting and challenging, to say the least. It’s been a fun ride and I don’t regret a moment of it. I, too, have grown a lot during this time. &lt;/p&gt;  &lt;p&gt;Now&amp;#160; … the question of tomorrow. I cannot tell you anything right now. What I can say is that I will be taking a week or two off (the longest *&lt;b&gt;unplugged&lt;/b&gt;* vacation that I’ve had, I think, since high school) and figuring out where I want to go from here. But I can tell you this … I have been very involved in the community here in South Central, in Second Life, and in the open source world. That will not stop. I will continue to be active in those communities. It is something that I believe in. &lt;/p&gt;  &lt;p&gt;But … for right now, for a time … I’m gonna take some time off. I’m gonna go hit my XBox and blow stuff up. Aliens and bad guys of all stripes … you have been warned. &lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=fafmWPCcKu8:-GXDBwoSwuo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=fafmWPCcKu8:-GXDBwoSwuo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?i=fafmWPCcKu8:-GXDBwoSwuo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JdotNet/~4/fafmWPCcKu8" height="1" width="1"/&gt;</description>
      <link>http://www.devbiker.net/post/Leaving-Microsoft-e280a6.aspx</link>
      <author>jsawyer</author>
      <comments>http://www.devbiker.net/post/Leaving-Microsoft-e280a6.aspx#comment</comments>
      <guid>http://www.devbiker.net/post.aspx?id=57d34f1e-6c93-448d-b8f4-8ab513c3b7dd</guid>
      <pubDate>Wed, 06 May 2009 14:36:05 -0500</pubDate>
      <dc:publisher>jsawyer</dc:publisher>
      <pingback:server>http://www.devbiker.net/pingback.axd</pingback:server>
      <pingback:target>http://www.devbiker.net/post.aspx?id=57d34f1e-6c93-448d-b8f4-8ab513c3b7dd</pingback:target>
      <slash:comments>15</slash:comments>
      <trackback:ping>http://www.devbiker.net/trackback.axd?id=57d34f1e-6c93-448d-b8f4-8ab513c3b7dd</trackback:ping>
      <wfw:comment>http://www.devbiker.net/post/Leaving-Microsoft-e280a6.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.devbiker.net/syndication.axd?post=57d34f1e-6c93-448d-b8f4-8ab513c3b7dd</wfw:commentRss>
    </item>
    <item>
      <title>Windows Server 2008 R2 as a Desktop OS</title>
      <description>&lt;p&gt;Before anyone gets started lecturing me that it’s a server OS and not meant to be used as a desktop, let me say this: Yes, I know. That’s nice. But I can use it as a desktop OS for work, demo, etc. etc. etc. So I’m doing it … partly because &lt;em&gt;I can &lt;/em&gt;(the ultimate Geek reason) and, more importantly (or is this the excuse?) because it’s better for me to use it like that for my job. Now that I think of it, that second one is a wonderful “reason” to do all sorts of geeky things with my machines. &lt;/p&gt;  &lt;p&gt;But … it’s required some amount of addition configuration to get Server 2008 R2 to look like the Windows 7 client UI … something that I’ve really, truly become totally addicted to. So I figured that I’d share all of that with y’all. Most of it is about the eye-candy but the Wireless LAN stuff was … well, let’s just say that it wasn’t optional.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Wireless LAN&lt;/strong&gt;: This was the first one that I needed to add and it drove me nuts. It reminded me of the frustration that I experienced getting the sound working on Windows Server 2003 when I installed the RC (it was off by default). Put simply, wireless doesn’t work … at all .. unless this feature is added (look in Server Manager … Features). However, unlike the sound services in Windows Server 2003, it didn’t take me some 5 hours to figure this out. Once you do that, make sure that the service “WLAN AutoConfig” is set for automatic startup.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Sound:&lt;/strong&gt; Since I mentioned this above, I wanted to note it separately. Sounds are completely disabled by default on Windows Server … all versions since Windows Server 2003. This makes complete and total sense … you won’t (typically) be playing music in Windows Media from you server box. Unless you are using it as your desktop OS. So go into “Services” and enable the “Windows Audio” service. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Eye Candy: &lt;/strong&gt;A catch-all for all of the “pretty stuff” in Win7, including&amp;#160; Aero Glass and the nifty window previews from the task bar. To get started in this, go back to Server Manager … Features and add “Desktop Experience”. If you have a TabletPC, you’ll also want to add the “Ink and Handwriting Services”. But you aren’t done yet … there are some services that, regardless of the features that you add, you need to enable or make sure are enabled. They are “Desktop Window Manager Session Manager”, “Tablet PC Input Service” (for Tablet users) and “Themes”. Without Themes, btw, you won’t get the option for Windows Aero, regardless of what you do. Even with that, you don’t get all of the themes that ship natively with Windows 7. I’m sure that you can put them on there if you want to, but that hasn’t been something that, honestly, I’ve bothered with looking up and/or figuring out. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Additional Settings&lt;/strong&gt;: Once you have everything installed, there are some things that still don’t work. But they will. Again, the biggest thing that I was looking for was the thumbnail previews in the task bar. I have to be honest here … there is a lot of cool stuff in Windows 7. Some of it is just cool and some features really make my life easier. But the preview in the taskbar is the single biggest productivity feature feature for how I work. It’s common for me to have multiple windows for the same app open. It’s common for me to have zillions of open tabs in IE. It’s a normal course of day-to-day computing for me to be working on demos, etc. on my primary/personal desktop while having RDP sessions open to my work laptops. Preview enables me to more efficiently and easily move between all of the open windows and even just “check” to see what’s happening on an RDP session. It’s moving quickly from a “nice to have” to a “need to have”. But … even if you do all of the above, it is not enabled in WinSvr 2K8 R2. You need to go to My Computer … Right-click .. properties. Select the “Advanced” tab. Under “Performance”, select “Adjust for best appearance” and it’ll appear. While I’m sure that there is an individual settings that does it (perhaps “Enable Aero Peek” and “Enable desktop composition”), I went with the “nuclear option”. &lt;/p&gt;  &lt;p&gt;There is one final thing that is not currently exactly how I want it … that’s the taskbar thumbnail previews over RDP. As I mentioned above, I typically work across three machines via RDP. I do have this enabled and working just fine on one laptop – after I went into the RDP settings and set the “Experience” setting to ”LAN” but that isn’t doing the trick on my server machine. I will be digging around to find it when I have time to do so but I’m also open to tips and/or suggestions from y’all. Assuming that I find the answer,&amp;#160; I’ll post it here. If one of y’all provides me with the answer, I’ll certainly give due credit. &lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=aGMbvyAzLTo:sBFTN5-dAjM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=aGMbvyAzLTo:sBFTN5-dAjM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?i=aGMbvyAzLTo:sBFTN5-dAjM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JdotNet/~4/aGMbvyAzLTo" height="1" width="1"/&gt;</description>
      <link>http://www.devbiker.net/post/Windows-Server-2008-R2-as-a-Desktop-OS.aspx</link>
      <author>jsawyer</author>
      <comments>http://www.devbiker.net/post/Windows-Server-2008-R2-as-a-Desktop-OS.aspx#comment</comments>
      <guid>http://www.devbiker.net/post.aspx?id=c0f1f80a-fd77-4344-837c-0e3399822276</guid>
      <pubDate>Mon, 04 May 2009 15:41:27 -0500</pubDate>
      <dc:publisher>jsawyer</dc:publisher>
      <pingback:server>http://www.devbiker.net/pingback.axd</pingback:server>
      <pingback:target>http://www.devbiker.net/post.aspx?id=c0f1f80a-fd77-4344-837c-0e3399822276</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.devbiker.net/trackback.axd?id=c0f1f80a-fd77-4344-837c-0e3399822276</trackback:ping>
      <wfw:comment>http://www.devbiker.net/post/Windows-Server-2008-R2-as-a-Desktop-OS.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.devbiker.net/syndication.axd?post=c0f1f80a-fd77-4344-837c-0e3399822276</wfw:commentRss>
    </item>
    <item>
      <title>Bikers, Geeks and Community</title>
      <description>&lt;p&gt;When motorcyclists pass each other in opposite directions, they wave at each other. Watch them sometime; you’ll see this happen. A lot of non-motorcyclists (we call them “cagers”) don’t notice this until it’s pointed out but you’ll see it if you look for it. It doesn’t matter if you are riding a crotch rocket or a Harley, a Goldwing or a dual-sport, if you are suited up in all leather and a helmet or are riding with no gear at all, bikers will still wave. If a motorcyclist sees another biker stopped on the side of the road, they will usually stop to check and see if they are OK. That’s just how it is. When commuting, bikers will also sometimes join each other in traffic and ride together for a time as their commute allows. Again, you’ll see this. But I’d bet you never even considered that those two bikers didn’t know each other. There are also biker-specific forums – I’m on &lt;a href="www.twtex.com"&gt;Two Wheeled Texans&lt;/a&gt; – that all kinds of bikers participate in. There are also group rides; random people hooking up just to ride together. Some are random groups from the boards, some more “organized”. For example, TWT has a monthly “Pie Run” to a small restaurant in a small town in Texas and there will be anywhere from 80 – 250 bikers show up, on ALL kinds of bikes from ALL over Texas. I even saw someone at one of the Pie Runs on a vintage 1943 Army issue Harley! Bikers will also get together for a “Bike Night”. As the name implies, it’s an evening for bikes and bikers to hang out together at a local restaurant/ice cream shop/parking lot/whatever. I can often be found at “Katy Bike Night” on Wednesdays, munching on empanadas with anywhere from 3 to 20 fellow TWT’ers. &lt;/p&gt;  &lt;p&gt;There is a strong sense of community among motorcyclists that is built on a common, shared experience … namely riding a motorcycle. We share a love for riding, feeling the wind blowing over us. We also share common dangers and risks - for the most part, “cagers” are the greatest risk but that’s not the only one (think … weather … a 45 MPH crosswind is absolutely, positively NOT FUN). Sure, we have our differences – every group does - but the sense of community is stronger than that. Yes, there are some &lt;em&gt;individual&lt;/em&gt; exceptions to this but, as a rule, that’s how it is. And those that get snobby about their “group” are considered rude at best. And I won’t even mention &lt;a href="http://en.wikipedia.org/wiki/Squid_(motorcycle)" target="_blank"&gt;“squids”&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Why do I mention this? Well … it’s that community thing. I’ve been involved in the developer community for some six years now and the biker community for about 2 years. I can tell you, the biker community is much stronger and, even more importantly, much more inclusive. In the developer community, there is – and let’s be honest here – a huge wall separating technologists with different specializations. Java guys don’t talk to .NET folks and they don’t talk to PHP folks. Linux folks don’t talk to Microsoft folks. Sure, there are exceptions here and there but the &lt;em&gt;rule&lt;/em&gt; is different; we don’t intermingle. Do you know of any boards online where you have PHP and .NET and Java folks all mixin’ it up together in harmony? I certainly don’t. Even boards that cater to all types of technologists will have different forums where techies of like technologies congregate, with very little interaction between the groups. We tend to get wrapped up in our own areas of technology and look at technologists in other areas with wariness at best. Certainly one difference is competition … if Java is chosen as a technology at a given company, the .NET folks will be looking for work. And, again, vice-versa. That’s not the case with motorcyclists – it has no impact on my life if a fellow biker buys a new Ninja or a new Goldwing … I can appreciate both and it has no bearing at all on my ability to provide for my family (even if you won’t get me caught dead on a Goldwing!). &lt;/p&gt;  &lt;p&gt;But there’s something more than that – overall, there also seems to be little interaction between infrastructure/network folks and developer types &lt;em&gt;even in the same technology area&lt;/em&gt;. &lt;/p&gt;  &lt;p&gt;When you think about it, it’s actually quite silly. Yes, there is that competition but I can’t see why we can’t be more like the motorcyclist community … inclusive and sharing what we have in common (which is quite a bit) rather than focusing solely on our differences. All of us have a love for technology and we all have the same gripes and issues with end users, customers, managers and the like. Regardless of our technology, there is much that we can share and much that we can learn from each other. Even if that’s only an appreciation for other technologies.&lt;/p&gt;  &lt;p&gt;I think it’ll be interesting to walk into a PHP user group. I’d bet that they are little different from the .NET user groups that I go to. I won’t say anything. Well, I’ll &lt;em&gt;try &lt;/em&gt;not to say anything or too much at least. Not there to convert them, spy on them or any other such nonsense. Just getting a feel. Who knows … maybe I could persuade one or two to see what a .NET user group is like. And get them cross-pollinating with .NET folks going to PHP user groups. It won’t be the end of the world by any stretch of the imagination. But it certainly make the community much more interesting. And maybe … just maybe … we’ll take a step towards breaking down these silly walls that would divide us. &lt;/p&gt;  &lt;p&gt;We’ll see … &lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=wSvxaV-Kvvk:kLZsL7HIlsM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=wSvxaV-Kvvk:kLZsL7HIlsM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?i=wSvxaV-Kvvk:kLZsL7HIlsM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JdotNet/~4/wSvxaV-Kvvk" height="1" width="1"/&gt;</description>
      <link>http://www.devbiker.net/post/Bikers-Geeks-and-Community.aspx</link>
      <author>jsawyer</author>
      <comments>http://www.devbiker.net/post/Bikers-Geeks-and-Community.aspx#comment</comments>
      <guid>http://www.devbiker.net/post.aspx?id=b20afbfa-f909-4df2-8963-00544f357e45</guid>
      <pubDate>Fri, 24 Apr 2009 17:06:08 -0500</pubDate>
      <category>Idle Babbling</category>
      <category>Community</category>
      <dc:publisher>jsawyer</dc:publisher>
      <pingback:server>http://www.devbiker.net/pingback.axd</pingback:server>
      <pingback:target>http://www.devbiker.net/post.aspx?id=b20afbfa-f909-4df2-8963-00544f357e45</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.devbiker.net/trackback.axd?id=b20afbfa-f909-4df2-8963-00544f357e45</trackback:ping>
      <wfw:comment>http://www.devbiker.net/post/Bikers-Geeks-and-Community.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.devbiker.net/syndication.axd?post=b20afbfa-f909-4df2-8963-00544f357e45</wfw:commentRss>
    </item>
    <item>
      <title>Moving from dasBlog to BlogEngine.NET</title>
      <description>&lt;p&gt;As I mentioned previously, I’ve moved from dasBlog to BlogEngine.NET for this blog. This, of course, involved reformatting and redesigning the look and feel of the site; that’s nothing unique to the migration and I’m not going to go into that at all. What I will do, however, is discuss the process of moving existing content over from dasBlog to BlogEngine, something that isn’t really hard but does have a few gotchas. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Moving the Content&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;That’s the first thing that needs to be done. In fact, I did this before I even started formatting the new site – I wanted to be sure that the existing content rendered relatively well in the new design. It &lt;em&gt;was not&lt;/em&gt; quite as simple as described on &lt;a href="http://merill.net/2008/02/migrated-from-dasblog-to-blogenginenet/" target="_blank"&gt;Merill’s blog&lt;/a&gt;. All of his steps are valid, but there is actually a couple of other things that need to be done. You will definitely want to use the &lt;a href="http://code.msdn.microsoft.com/DasBlogML" target="_blank"&gt;dasBlog to BlogML Converter&lt;/a&gt; that Merill posted on MSDN Code Gallery – dasBlog doesn’t do BlogML and, while BlogEngine will import RSS, RSS usually will not get all of your content. BlogML works much better. &lt;/p&gt;  &lt;p&gt;There were two things with moving the content … how big a deal those are depend on how picky you are about the move. I was. First, the timestamp on the entry. dasBlog uses UTC (GMT) to store the time and that’s how it is imported into BlogML. BlogEngine uses the server time. Both have an offset to convert the saved time into blog local time, but dasBlog’s offset is from UTC (using standard time zones) and BlogEngine uses an offset from the server time. My server is on US Eastern Time and my local blog time is US Central Time, which means that, on import, I had to convert the time to US Eastern and then set my offset in BlogEngine to –1 (US Central is 1 hour “behind” US Eastern). To do this, I had to modify the code that imported the blog entries, which can be found at BlogEngine.Web\api\BlogImporter.asmx. Since the incoming BlogML only had a post date, not a DateCreated and a DateModified (as BlogEngine does), I also set both the create date and the modify date to the same value. Here’s the code snippet from AddPost:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: #2b91af"&gt;Post &lt;/span&gt;post = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Post&lt;/span&gt;();
post.Title = import.Title;
post.Author = import.Author;
post.DateCreated = import.PostDate.AddHours(-5);
post.DateModified = import.PostDate.AddHours(-5);
post.Content = import.Content;
post.Description = import.Description;
post.IsPublished = import.Publish;&lt;/pre&gt;

&lt;p&gt;Once I set BlogEngine’s server time offset (in the admin section under “Settings”), all of the times were now correctly displayed as US Central. &lt;/p&gt;

&lt;p&gt;The second thing relates to the tags … BE uses tags (and categories) while dasBlog only uses categories. In dasBlog, the “tag cloud” is generated from the categories and BE generates this from the actual post tags. I can’t say which method I like better yet or if I prefer some mish-mash of the two (generate the cloud from tags &lt;em&gt;and&lt;/em&gt; categories … that may be an idea) but I did know that I didn’t want to lose my tag cloud. So, on import, I added tags for each post category to the imported post. Again, simple and again, in AddPost:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;(import.Tags.Count == 0)
{
    post.Tags.AddRange(import.Categories);
}
&lt;span style="color: blue"&gt;else
&lt;/span&gt;{
    post.Tags.AddRange(import.Tags);
}&lt;/pre&gt;

&lt;p&gt;From a performance standpoint, I couldn’t tell you if AddRange is faster than looping block to add each value individually (and it really doesn’t matter here), but it is simpler, cleaner and much easier to read … so I tend to prefer AddRange(). &lt;/p&gt;

&lt;p&gt;With these two “issues” resolved – and they aren’t issues with BE, to be sure, just a difference between the two – I was ready to move on. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Preserving links&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Some of my entries have a pretty good page rank on various search engines and there is a non-trivial amount of traffic that is generated from these search engines. While I can go in and change things like the RSS source for my feed from FeedBurner to make the move transparent, that doesn’t help with the search engines. Therefore, I needed a way to ensure that existing links would continue to work without returning 404’s. Yes, I moved the old domain over to the new domain and added it as a host header on the new site, but that does not help prevent link breakage and BE and dasBlog have different formats for their links. I also did not, at this point in time, want to force a redirect as soon as a new person hit my site from a search engine; it’s just rude (IMHO) and doesn’t create a great user experience. Sure, maybe it wouldn’t be a big deal, but I didn’t like it. And besides, it gave me an excuse to write code. :-) &lt;/p&gt;

&lt;p&gt;To keep the links intact, I decided that I would leave BlogEngine’s UrlRewriting intact; I didn’t want to make too many changes to the base source code as it would make it harder for me to move between versions/revisions. Rather, I wanted to sit on top of it and make sure that the links worked. So I used &lt;a href="http://www.devbiker.net/post/Url-Routing-in-ASPNET.aspx" target="_blank"&gt;ASP.NET Url Routing&lt;/a&gt; to intercept the requests and send them to the right place (post.aspx). Before I go into the code, let’s first examine the (default) url structures for individual posts. In dasBlog, the post link is in the format yyyy/mm/dd/{CompressedTitle}. In BlogEngine, this would be post/{CompressedTitle} –or- (the permalink format) post.aspx?id={PostGUID}. While BE &lt;em&gt;can&lt;/em&gt; have the date as a part of the post link, it still wouldn’t work; they compress their titles differently and, as mentioned before, dasBlog uses UTC internally and it’s used in the link as well.&lt;/p&gt;

&lt;p&gt;For the routing, I created the route using &amp;quot;{Y}/{M}/{D}/{Title}&amp;quot; as the route url. From there, I needed to implement GetHttpHandler to do the work. Initially, I did the matching to title using a Linq query and it worked just fine. The problem with this is that &lt;em&gt;every&lt;/em&gt; title in the posts would need to be converted to the dasBlog format (I copied over the dasBlog CompressTitle method as dasBlogCompressTitle), a process that seemed far from ideal. Once I understood how the dates worked, I was able to do the primary matching on the date and then, if necessary, match the titles for posts on the same date, minimizing the string manipulation that was required. Once I determined what the matching post was, all I needed to do was append the query string “?id={postGuid}” to the URL and then pass back the HttpHandler from post.aspx for the actually processing. If there was no match, then there would be no query string appended and post.aspx would show a 404. The code for this is below:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;public &lt;/span&gt;System.Web.&lt;span style="color: #2b91af"&gt;IHttpHandler &lt;/span&gt;GetHttpHandler(&lt;span style="color: #2b91af"&gt;RequestContext &lt;/span&gt;requestContext)
{
    &lt;span style="color: green"&gt;//Get the date from the route. 
    &lt;/span&gt;&lt;span style="color: blue"&gt;string &lt;/span&gt;dateString = &lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #a31515"&gt;@&amp;quot;{0}/{1}/{2}&amp;quot;&lt;/span&gt;,
        requestContext.RouteData.Values[&lt;span style="color: #a31515"&gt;&amp;quot;M&amp;quot;&lt;/span&gt;],
        requestContext.RouteData.Values[&lt;span style="color: #a31515"&gt;&amp;quot;D&amp;quot;&lt;/span&gt;],
        requestContext.RouteData.Values[&lt;span style="color: #a31515"&gt;&amp;quot;Y&amp;quot;&lt;/span&gt;]);
    &lt;span style="color: blue"&gt;string &lt;/span&gt;titleString = ((&lt;span style="color: blue"&gt;string&lt;/span&gt;)requestContext.RouteData.Values[&lt;span style="color: #a31515"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt;]).Replace(&lt;span style="color: #a31515"&gt;&amp;quot;.aspx&amp;quot;&lt;/span&gt;, &lt;span style="color: #a31515"&gt;&amp;quot;&amp;quot;&lt;/span&gt;); 


    &lt;span style="color: #2b91af"&gt;DateTime &lt;/span&gt;postDate = &lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt;.MaxValue;
    &lt;span style="color: #2b91af"&gt;Post &lt;/span&gt;selectedPost = &lt;span style="color: blue"&gt;null&lt;/span&gt;; 
    &lt;span style="color: blue"&gt;if &lt;/span&gt;(&lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt;.TryParse(dateString, &lt;span style="color: blue"&gt;out &lt;/span&gt;postDate))
    {
        &lt;span style="color: green"&gt;//Date is valid at least. 
        //Find posts with the same date.
        //Date in URL is in UTC. 
        &lt;/span&gt;&lt;span style="color: blue"&gt;var &lt;/span&gt;postsForTitle =
            &lt;span style="color: blue"&gt;from &lt;/span&gt;p &lt;span style="color: blue"&gt;in &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Post&lt;/span&gt;.Posts
            &lt;span style="color: blue"&gt;where &lt;/span&gt;p.DateCreated.ToUniversalTime().Date == postDate
            &lt;span style="color: blue"&gt;select &lt;/span&gt;p;
        &lt;span style="color: blue"&gt;if &lt;/span&gt;(postsForTitle.Count() == 1)
        {
            &lt;span style="color: green"&gt;//There is only one posts for the date, so this must be it. 
            &lt;/span&gt;selectedPost = postsForTitle.First(); 
            
        }
        &lt;span style="color: blue"&gt;else
        &lt;/span&gt;{
            &lt;span style="color: green"&gt;//differentiate on title. 
            &lt;/span&gt;&lt;span style="color: blue"&gt;foreach &lt;/span&gt;(&lt;span style="color: blue"&gt;var &lt;/span&gt;p &lt;span style="color: blue"&gt;in &lt;/span&gt;postsForTitle)
            {
                &lt;span style="color: blue"&gt;if &lt;/span&gt;(dasBlogCompressTitle(p.Title).Equals(titleString, &lt;span style="color: #2b91af"&gt;StringComparison&lt;/span&gt;.InvariantCultureIgnoreCase))
                {
                    selectedPost = p;
                    &lt;span style="color: blue"&gt;break&lt;/span&gt;; 
                }
            }
        }
        &lt;span style="color: blue"&gt;if &lt;/span&gt;(selectedPost != &lt;span style="color: blue"&gt;null&lt;/span&gt;)
        {
            &lt;span style="color: green"&gt;//Use UrlRewriting to put the id of the post in the query string. 
            &lt;/span&gt;requestContext.HttpContext.RewritePath(requestContext.HttpContext.Request.Path + &lt;span style="color: #a31515"&gt;&amp;quot;?id=&amp;quot; &lt;/span&gt;+ selectedPost.Id.ToString(), &lt;span style="color: blue"&gt;false&lt;/span&gt;);
        }
    }

    &lt;span style="color: blue"&gt;return &lt;/span&gt;&lt;span style="color: #2b91af"&gt;BuildManager&lt;/span&gt;.CreateInstanceFromVirtualPath(
        &lt;span style="color: #a31515"&gt;&amp;quot;~/post.aspx&amp;quot;&lt;/span&gt;, &lt;span style="color: blue"&gt;typeof&lt;/span&gt;(System.Web.UI.&lt;span style="color: #2b91af"&gt;Page&lt;/span&gt;)) &lt;span style="color: blue"&gt;as &lt;/span&gt;System.Web.&lt;span style="color: #2b91af"&gt;IHttpHandler&lt;/span&gt;; 

}&lt;/pre&gt;

&lt;p&gt;Once I set it up on the web.config file and added the routes to the RouteTable, all was good and it worked fine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Preserving the RSS Feed Url&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The final step - and the thing that occurred to me last – was to make sure that the RSS feed url continued to work. While FeedBurner had no problem with changes the RSS url for my blog, there was the possibility (however remote it may have seemed) that someone was using the dasBlog’s RSS feed rather than FeedBurner. I’m not sure how remote a possibility this is but I didn’t use FeedBurner in the early days of the blog, so I figured that it might be an issue. And I certainly wouldn’t want to alienate the longest-time subscribers to my feed. This was incredibly simple and didn’t require any code at all, just two lines line in the web.config file to have &lt;em&gt;SyndicationService.asmx&lt;/em&gt; (dasBlog’s RSS feed) handled by BlogEngine’s RSS feed, which is implemented as an HttpHandler and, by default, at &lt;em&gt;syndication.axd&lt;/em&gt;. The first line is for IIS 6.0/IIS 7.0 Classic mode and is under the httpHandlers node of system.web:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;add &lt;/span&gt;&lt;span style="color: red"&gt;verb&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;*&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;path&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;SyndicationService.asmx&lt;/span&gt;&amp;quot; &lt;br /&gt;     &lt;span style="color: red"&gt;type&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;BlogEngine.Core.Web.HttpHandlers.SyndicationHandler, BlogEngine.Core&lt;/span&gt;&amp;quot; &lt;br /&gt;     &lt;span style="color: red"&gt;validate&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;false&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;/&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;The second goes in the corresponding location for IIS 7 Pipeline mode, in the handlers node of system.webServer:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;add &lt;/span&gt;&lt;span style="color: red"&gt;name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;dasBlogSyndication&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;verb&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;*&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;path&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;SyndicationService.asmx&lt;/span&gt;&amp;quot; &lt;br /&gt;     &lt;span style="color: red"&gt;type&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;BlogEngine.Core.Web.HttpHandlers.SyndicationHandler, BlogEngine.Core&lt;/span&gt;&amp;quot; &lt;br /&gt;     &lt;span style="color: red"&gt;resourceType&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;Unspecified&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;requireAccess&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;Script&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;preCondition&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;integratedMode&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
These were copied from the default nodes used by BlogEngine for it’s syndication.axd and then the relevant attributes were changed. Simple enough.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=WO_67--c7UE:93wo2YF6CwQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=WO_67--c7UE:93wo2YF6CwQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?i=WO_67--c7UE:93wo2YF6CwQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JdotNet/~4/WO_67--c7UE" height="1" width="1"/&gt;</description>
      <link>http://www.devbiker.net/post/Moving-from-dasBlog-to-BlogEngineNET.aspx</link>
      <author>jsawyer</author>
      <comments>http://www.devbiker.net/post/Moving-from-dasBlog-to-BlogEngineNET.aspx#comment</comments>
      <guid>http://www.devbiker.net/post.aspx?id=ec1e3719-edea-4d77-9895-80d5bbb5f0a6</guid>
      <pubDate>Wed, 22 Apr 2009 09:54:36 -0500</pubDate>
      <category>BlogEngine.NET</category>
      <category>Web (and ASP.NET) Stuff</category>
      <dc:publisher>jsawyer</dc:publisher>
      <pingback:server>http://www.devbiker.net/pingback.axd</pingback:server>
      <pingback:target>http://www.devbiker.net/post.aspx?id=ec1e3719-edea-4d77-9895-80d5bbb5f0a6</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.devbiker.net/trackback.axd?id=ec1e3719-edea-4d77-9895-80d5bbb5f0a6</trackback:ping>
      <wfw:comment>http://www.devbiker.net/post/Moving-from-dasBlog-to-BlogEngineNET.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.devbiker.net/syndication.axd?post=ec1e3719-edea-4d77-9895-80d5bbb5f0a6</wfw:commentRss>
    </item>
    <item>
      <title>Sql Injection #1 Hacker Technique</title>
      <description>&lt;p&gt;On April 15, Verizon Business Security Solutions released &lt;a href="http://www.verizonbusiness.com/resources/security/reports/2009_databreach_rp.pdf" target="_blank"&gt;The 2009 Data Breach Investigations Report&lt;/a&gt;, a comprehensive analysis of the data breaches that they investigated throughout 2008. A total of 285 million records were compromised as a result of these breaches and &lt;strong&gt;79%&lt;/strong&gt; (approximately &lt;strong&gt;214 million records&lt;/strong&gt;) of the compromised records were compromised utilizing SQL injection based attacks, typically through custom-developed web applications. As attackers are targeting the financial industry (representing 93% of total records) and, in particular, PIN data together with their associated credit and debit accounts, for focused attention, these records represent a far greater risk to the compromised user’s financial data and funds than magnetic stripe records or simple credit card account numbers.&lt;/p&gt;  &lt;p&gt;Do I have your attention yet? Are you thinking to yourself “Holy Cow!”? I know that I was when I first saw this … we’ve known about the potential exploits of Sql Injection for a long time now (almost 10 years) and it’s still the most successful method of choice for data breaches. And these aren’t easy or simple breaches … the breaches that are considered the most complex are responsible for 95% of the compromised records … some of these attacks were the result of &lt;em&gt;months&lt;/em&gt; of research. Who, you may ask, would have the time, patience and resources to dedicate so much time to an attack? Of the external breaches where the IP was traced to a specific entity, 16 out of 25 were traced to &lt;em&gt;known organized crime outfits&lt;/em&gt; We aren’t dealing with the zit-faced script kiddie here, munching pizza in the darkness of his parent’s basement. We’re talking about career criminals that &lt;em&gt;will&lt;/em&gt; take advantage of this information. Conventional wisdom often points to insiders as the most dangerous breach, but this data does put give pause to that assumption. The largest and most damaging breaches were externally sourced, not internally. Still, one should not, and in looking at the data, cannot, dismiss the damage potential of internal breaches; while the largest individual breaches were external, the median number of records compromised from internal attacks was just over 2.5 times the number of records from external sources. As far as risk and damage potential, both sources are a high risk for compromise. &lt;/p&gt;  &lt;p&gt;“Wow!” you say “I thought that Cross Site Scripting was OWASP’s #1 threat!” Well, injection attacks are #2 and I’d bet it was a close race. That said, it’s not so simple. Cross Site Scripting (XSS) and Cross Site Request Forgery (CSRF) have been used to spread JavaScript-based worms that then use Sql Injection for an attack. Attacks vectors, it seems, don’t like to be alone and prefer to travel with their buddies. &lt;/p&gt;  &lt;p&gt;We’ve known about Sql Injection and its potential for damage for a long time now. We’ve known that this type of attack is technology and database agnostic. Yet it is still a major issue. And it’s difficult to get developers to actually listen to security talks … there is &lt;em&gt;still&lt;/em&gt; the attitude, it seems, that security is an infrastructure problem – but it clearly is &lt;em&gt;not&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;Are you one of the ones that care deeply about security? Or do you want to prove my previous statement wrong (I’d love to be proven wrong on that)? Why don’t you show up at the &lt;a href="http://www.owasp.org/index.php/Houston" target="_blank"&gt;Houston OWASP group&lt;/a&gt; or your local &lt;a href="http://www.owasp.org/index.php/Category:OWASP_Chapter" target="_blank"&gt;OWASP group&lt;/a&gt;?&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=a3dzxPv8Sc8:WAWDFN9T8AY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JdotNet?a=a3dzxPv8Sc8:WAWDFN9T8AY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JdotNet?i=a3dzxPv8Sc8:WAWDFN9T8AY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JdotNet/~4/a3dzxPv8Sc8" height="1" width="1"/&gt;</description>
      <link>http://www.devbiker.net/post/Sql-Injection-1-Hacker-Technique.aspx</link>
      <author>jsawyer</author>
      <comments>http://www.devbiker.net/post/Sql-Injection-1-Hacker-Technique.aspx#comment</comments>
      <guid>http://www.devbiker.net/post.aspx?id=4aa0f1cc-031f-4433-aa38-46385b24244c</guid>
      <pubDate>Tue, 21 Apr 2009 11:37:01 -0500</pubDate>
      <category>Security</category>
      <dc:publisher>jsawyer</dc:publisher>
      <pingback:server>http://www.devbiker.net/pingback.axd</pingback:server>
      <pingback:target>http://www.devbiker.net/post.aspx?id=4aa0f1cc-031f-4433-aa38-46385b24244c</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.devbiker.net/trackback.axd?id=4aa0f1cc-031f-4433-aa38-46385b24244c</trackback:ping>
      <wfw:comment>http://www.devbiker.net/post/Sql-Injection-1-Hacker-Technique.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.devbiker.net/syndication.axd?post=4aa0f1cc-031f-4433-aa38-46385b24244c</wfw:commentRss>
    </item>
  </channel>
</rss>
