<?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#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>malformedweb.com</title>
    <description>technical banterings of jon davis (a web &amp; software developer)</description>
    <link>http://www.jondavis.net/techblog/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.4.5.0</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://www.jondavis.net/techblog/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd?format=rss</blogChannel:blink>
    <dc:creator>Jon Davis &lt;jon@jondavis.net&gt;</dc:creator>
    <dc:title>malformedweb.com</dc:title>
    <geo:lat>33.583950</geo:lat>
    <geo:long>-111.876100</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/stimpy77" /><feedburner:info uri="stimpy77" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <title>Adding Compiled .ResX Resources To NuGet Packages</title>
      <description>&lt;p&gt;At my current workplace, we are using NuGet internally for managing internal ASP.NET MVC 3 project templates. If you open up Visual Studio’s Tools -&amp;gt; Options dialog window and expand Package Manager, you will find a “Package Sources” section where you can define locations for acquiring NuGet packages. We have a second location defined in this section with the path being a directory on our LAN. There are several advantages of taking this approach to managing team resources, not the least of which is the fact that updating our template source code repositories over SVN will not, and should not, update (read: break) the development workflows for people already working on their projects unless those individuals manually invoke an Update-Package command from the Package Manager Console. This scenario is obviously not ideal for many teams but it is quite useful for ours since each project instance has its own lifecycle and is short-lived.&lt;/p&gt;  &lt;p&gt;One of the dependencies of our ASP.NET MVC templates is the utilization of .resx files for managing various pieces of content such as the labels on the forms. Have a resource file gives specific members of the organization a very specific and anticipated location to update the content to suit the needs of the project instance. The content items are also programmatically accessible when the Access Modifier is set to public; a .Designer.cs file is generated and injected into the project automatically by Visual Studio, appearing as a generated code-behind file for the .resx file, which exposes the API required to programmatically read content from this file by item name so that the developer does not have to stream the .resx out manually as an embedded resource stream. Microsoft .NET also automatically pulls the content from the suitable resource file when the culture is added to the filename, based on the user’s culture of the current thread; in other words, if a resource file is called &lt;strong&gt;FormFields.resx&lt;/strong&gt;, but the user is French-Canadian (fr-CA), then the content in &lt;strong&gt;FormFields.fr-CA.resx&lt;/strong&gt; is automatically used. Of course, we have to manually synchronize the user’s culture with the thread, that is a separate discussion, but the point is that it can be beneficial, and in our case it is, to utilize .resx resources in a project.&lt;/p&gt;  &lt;p&gt;Unfortunately, when installing a NuGet project that contains .resx file content, the generated designer C# file that exposes programmatic access to the items in the resources file does not get added correctly, nor is the metadata on the .resx file that declares the resource’s Access Modifier to be “Public”, which is how Visual Studio knows to inject that generated file. Our template’s C# codebase depends upon the presence of the generated C# object members for the .resx, so in the absence of the generated code-behind file the project importing this template will not compile. Our workaround had been to open up the .resx file, change the Access Modifier back to “Public”, save it, and Rebuild. This worked fine, but it has been a huge annoyance.&lt;/p&gt;  &lt;p&gt;So we decided to look into automatically fixing this within the Install.ps1 PowerShell script which NuGet invokes upon installing a package. &lt;a href="http://msdn.microsoft.com/en-us/library/k3dys0y2.aspx"&gt;Visual Studio’s DTE automation object&lt;/a&gt; and its &lt;a href="http://msdn.microsoft.com/en-us/library/envdte.project.aspx"&gt;Project&lt;/a&gt; object are both injected to the Install.ps1 script that PowerShell invokes.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:ec9f923c-3c24-4bce-b898-885e754e9db4" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: powershell;gutter:false;toolbar:false;"&gt;param($installPath, $toolsPath, $package, $project)&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;We store our resources in a Resources directory in the project, so iterating through the project items to identify our .resx files was straightforward enough.&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:15e4aa99-3532-4278-8b07-1483320460bc" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: powershell;auto-links:false;wrap-lines:false;"&gt;$resitems = @{}
foreach ($item in $project.ProjectItems) 
{
    if ($item.Name -eq "Resources") {
        foreach ($resitem in $resources.ProjectItems) {
            if ($resitem.Name.ToLower().EndsWith(".resx")) {
               $resitems.Add("Resources\" + $resitem.Name, $resitem.FileNames(0))
            }
        }
    }
}
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Unfortunately, I found no way within EnvDTE automation to modify the properties the .resx file that pertain to the generated file! At best, the ProjectItem object exposes a &lt;a href="http://msdn.microsoft.com/en-us/library/envdte.properties.aspx"&gt;Properties&lt;/a&gt; member that lists out various bits of metadata, but I found nothing here that can be changed to cause the .resx file to use a generated file.&lt;/p&gt;

&lt;p&gt;The best I could find and tried to play with was a property called “&lt;a href="http://msdn.microsoft.com/en-us/library/vslangproj80.fileproperties2_properties(VS.80).aspx"&gt;IsDesignTimeBuildInput&lt;/a&gt;” that I thought I could apply to the .Designer.cs file, but attempting to set this value to true proved unfruitful: &lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:10cd45dd-c191-4a37-96ee-46b1c888db21" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: powershell;"&gt;# where $cb2 is the .Designer.cs file
$cb2.Properties.Item("IsDesignTimeBuildInput").Value = $TRUE&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;.. results in .. 
  &lt;br /&gt;&lt;font color="#ff0000"&gt;Exception setting &amp;quot;Value&amp;quot;: &amp;quot;Invalid number of parameters. (Exception from HRESULT: 0x8002000E (DISP_E_BADPARAMCOUNT))&amp;quot;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;I did manage to get a code-behind file added to the .resx file, however.&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:855ae29f-3c4b-484f-90ce-c2eea6f3920c" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: powershell;"&gt;switch ($item.ProjectItems) { default {
	if ($_.Name.ToLower() -eq $resitem.Name.ToLower().Replace(".resx", ".designer.cs")) {
		$hasCodeBehind = $TRUE
		$codebehinditem = $_
	}
}}
if ($hasCodeBehind -eq $TRUE) {
	$fn = $resitem.FileNames(0)
	$cbfn = $codebehinditem.FileNames(0)
	$codebehinditem.Remove()
	$cb2 = $resitem.ProjectItems.AddFromFile($cbfn)
}
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;At this point, it would prove obviously beneficial to use a comparison tool such as Beyond Compare (which I used) to compare the contents of the .resx file, the .Designer.cs file, and the .csproj file (the Visual Studio project file) between my half-restored NuGet injection and a properly working project instance. Doing this, I found that &lt;strong&gt;there are absolutely no changes made to the .resx file to toggle its code-behind / generator behavior&lt;/strong&gt;, and of course the .Designer.cs is just the output of the generator so it has no flags, either. All of this metadata is therefore made to the project (.csproj) file.&lt;/p&gt;

&lt;p&gt;And since there do not seem to be any EnvDTE interfaces to support these project file changes, it seems that the change must be made in the project XML directly. This can cause all kinds of unpredictable problems, the least of which is an ugly dialog box for the user, “Project has changed, reload?” Nonetheless, this is what’s working for us, and it’s better than a broken build that requires us to manually open the .resx file.&lt;/p&gt;

&lt;p&gt;The full solution:&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:6cf0a54f-bb6a-4387-9db0-934680927297" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: powershell;"&gt;param($installPath, $toolsPath, $package, $project)

#script to fix code-behind for resx
set-alias Write-Host -Name whecho
whecho "Restoring resource code-behinds (this may cause the project to be reloaded with a dialog) ..."
$resitems = @{}
foreach ($item in $project.ProjectItems) 
{
    if ($item.Name -eq "Resources") {
        $resources = $item
        foreach ($resitem in $resources.ProjectItems) {
            $codebehinditem = $NULL
            if ($resitem.Name.ToLower().EndsWith(".resx")) {
                $hasCodeBehind = $FALSE
                switch ($item.ProjectItems) { default {
                    if ($_.Name.ToLower() -eq $resitem.Name.ToLower().Replace(".resx", ".designer.cs")) {
                        $hasCodeBehind = $TRUE
                        $codebehinditem = $_
                    }
                }}
                if ($hasCodeBehind -eq $TRUE) {
                    $fn = $resitem.FileNames(0)
                    $cbfn = $codebehinditem.FileNames(0)
                    $codebehinditem.Remove()
                    $cb2 = $resitem.ProjectItems.AddFromFile($cbfn)
                }
                $resitems.Add("Resources\" + $resitem.Name, $resitem.FileNames(0))
                whecho $resitem.Name
            }
        }
    }
}
$project.Save($project.FullName)
$projxml = [xml](get-content $project.FullName)
$ns = New-Object System.Xml.XmlNamespaceManager $projxml.NameTable
$defns = "http://schemas.microsoft.com/developer/msbuild/2003"
$ns.AddNamespace("csproj", $defns)
foreach ($item in $resitems.GetEnumerator()) {
	$xpath = "//csproj:Project/csproj:ItemGroup/csproj:Compile[@Include=`"" + $item.Name.Replace(".resx", ".Designer.cs") + "`"]"
	$resxDesignerNode = $projxml.SelectSingleNode($xpath, $ns)
	
	if ($resxDesignerNode -ne $NULL) {
	
		$autogen = $projxml.CreateElement('AutoGen', $defns)
		$autogen.InnerText = 'True'
		$resxDesignerNode.AppendChild($autogen)
		
		$designtime = $projxml.CreateElement('DesignTime', $defns)
		$designtime.InnerText = 'True'
		$resxDesignerNode.AppendChild($designtime)
	}
	
	$xpath = "//csproj:Project/csproj:ItemGroup/csproj:EmbeddedResource[@Include=`"" + $item.Name + "`"]"
	$resxNode = $projxml.SelectSingleNode($xpath, $ns)

	$generator = $projxml.CreateElement('Generator', $defns)
	$generator.InnerText = 'PublicResXFileCodeGenerator'
	$resxNode.AppendChild($generator)
	
	if ($resxDesignerNode -ne $NULL) {
		$lastGenOutput = $projxml.CreateElement('LastGenOutput', $defns)
		$lastGenOutput.InnerText = $item.Name.Replace("Resources\", "").Replace(".resx", ".Designer.cs")
		$resxNode.AppendChild($lastGenOutput)
	}

}
$projxml.Save($project.FullName)&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;div class="kick"&gt;&lt;a target="_blank" href="http://www.dotnetkicks.com/kick/?url=http://www.jondavis.net/techblog/post/2011/11/16/Adding-Compiled-ResX-Resources-To-NuGet-Packages.aspx&amp;amp;title=Adding Compiled .ResX Resources To NuGet Packages"&gt;
                    &lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://www.jondavis.net/techblog/post/2011/11/16/Adding-Compiled-ResX-Resources-To-NuGet-Packages.aspx&amp;fgcolor=ccc&amp;bgcolor=143D55&amp;cfgcolor=ccc&amp;cbgcolor=D25E26" border="0" alt="kick it on DotNetKicks.com" /&gt;
                  &lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_4ycGGgIniX7CUJMhLnVHLyohoc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_4ycGGgIniX7CUJMhLnVHLyohoc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_4ycGGgIniX7CUJMhLnVHLyohoc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_4ycGGgIniX7CUJMhLnVHLyohoc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/stimpy77/~4/th-eSplTaZs" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/stimpy77/~3/th-eSplTaZs/post.aspx</link>
      <author>jon.nospam@nospam.jondavis.net (Jon)</author>
      <comments>http://www.jondavis.net/techblog/post/2011/11/16/Adding-Compiled-ResX-Resources-To-NuGet-Packages.aspx#comment</comments>
      <guid isPermaLink="false">http://www.jondavis.net/techblog/post.aspx?id=08e8c319-d3fd-447a-aeab-99c5510a2b3a</guid>
      <pubDate>Wed, 16 Nov 2011 17:05:50 -0700</pubDate>
      <dc:publisher>Jon</dc:publisher>
      <pingback:server>http://www.jondavis.net/techblog/pingback.axd</pingback:server>
      <pingback:target>http://www.jondavis.net/techblog/post.aspx?id=08e8c319-d3fd-447a-aeab-99c5510a2b3a</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://www.jondavis.net/techblog/trackback.axd?id=08e8c319-d3fd-447a-aeab-99c5510a2b3a</trackback:ping>
      <wfw:comment>http://www.jondavis.net/techblog/post/2011/11/16/Adding-Compiled-ResX-Resources-To-NuGet-Packages.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.jondavis.net/techblog/syndication.axd?post=08e8c319-d3fd-447a-aeab-99c5510a2b3a</wfw:commentRss>
    <feedburner:origLink>http://www.jondavis.net/techblog/post.aspx?id=08e8c319-d3fd-447a-aeab-99c5510a2b3a</feedburner:origLink></item>
    <item>
      <title>Upgrade / Update Rooted Android HTC EVO 4G Including HBOOT 2.16 Update</title>
      <description>&lt;p&gt;I am just putting this out there for the Googlebots to pick up because I just went through hell trying to gather this information. The Android rooting community is awfully crude.&lt;/p&gt;  &lt;p&gt;I had a somewhat stale version of Unrevoked-rooted Android installed on my HTC EVO 4G phone and it had 2.10.001 of HBOOT installed. Sprint pushed a new system update a month and a half or two months ago, and any such system update requires backing up (Titanium Backup), updating, re-rooting, and restoring. The latest from the Android rooting community is &lt;a href="http://revolutionary.io"&gt;http://revolutionary.io&lt;/a&gt; which seems to require v2.15 or v2.16 of HBOOT. In my case, I got this unfriendly error: supersonic with 2.10.001 is not supported at this time. &lt;/p&gt;  &lt;p&gt;So the obvious next path to take is to update HBOOT. Google for “how do I update HBOOT” or “update HBOOT”' or “upgrade HBOOT” or “download latest HBOOT”, etc., and you get a gajillion hits to absolute crap. Tons of forum.xda-developers.com forum posts, et al, but with no explanation on how to upgrade HBOOT. Eventually I figured that maybe the latest OTA update package download might bundle in an HBOOT update, so I kicked off a download of PC36IMG_SuperSonic_GB_Sprint_WWE_4.53.651.1_Radio_2.15.00.0808_NV_2.15_release_209995_signed.zip&lt;/p&gt;  &lt;p&gt;This seemed to do the trick. Before I ran that, though, I should add, revolutionary.io’s web site referenced an IRC channel. Someone on the Unrevoked team proved INCREDIBLY helpful months ago when that was the primary method of rooting the EVO 4G, so I figured that was a likely good path. All I wanted to do was to validate that the above-mentioned .zip file was the correct approach, as well as seek assistance on steps to properly deploy in case my guesswork fails me.&lt;/p&gt;  &lt;p&gt;Unfortunately, the guys I ran into on revolutionary.io team got bitten by the old IRC social crudeness bug. Not only did they complain that my questions were more appropriate for a “general Android discussion channel” and pointed me at &lt;a href="http://revolutionary.io/topic.jpg"&gt;http://revolutionary.io/topic.jpg&lt;/a&gt;, when I said that it couldn’t be more on-topic since their own EXE indicated that only v2.15/2.16 is supported they not only immediately banned me from the channel but they blocked my IP from their web server. (As if I didn’t have other access points.) &lt;/p&gt;  &lt;p&gt;Just be wary. Rude and crude people lurk in those parts.&lt;/p&gt;  &lt;p&gt;To root access developers, you might find more success in life if you replace that whole “ban the n00bs” mentality with a donation button.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_A6304wpqnEioi6NN6SYHU5ivMY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_A6304wpqnEioi6NN6SYHU5ivMY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_A6304wpqnEioi6NN6SYHU5ivMY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_A6304wpqnEioi6NN6SYHU5ivMY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/stimpy77/~4/Zcx3ggN522k" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/stimpy77/~3/Zcx3ggN522k/post.aspx</link>
      <author>jon.nospam@nospam.jondavis.net (Jon)</author>
      <comments>http://www.jondavis.net/techblog/post/2011/10/10/Upgrading-Updating-Rooted-Android-HTC-EVO-4G-Including-HBOOT-216-Update.aspx#comment</comments>
      <guid isPermaLink="false">http://www.jondavis.net/techblog/post.aspx?id=6a770a75-df86-43f4-bc05-d54051692ff0</guid>
      <pubDate>Mon, 10 Oct 2011 06:50:51 -0700</pubDate>
      <dc:publisher>Jon</dc:publisher>
      <pingback:server>http://www.jondavis.net/techblog/pingback.axd</pingback:server>
      <pingback:target>http://www.jondavis.net/techblog/post.aspx?id=6a770a75-df86-43f4-bc05-d54051692ff0</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.jondavis.net/techblog/trackback.axd?id=6a770a75-df86-43f4-bc05-d54051692ff0</trackback:ping>
      <wfw:comment>http://www.jondavis.net/techblog/post/2011/10/10/Upgrading-Updating-Rooted-Android-HTC-EVO-4G-Including-HBOOT-216-Update.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.jondavis.net/techblog/syndication.axd?post=6a770a75-df86-43f4-bc05-d54051692ff0</wfw:commentRss>
    <feedburner:origLink>http://www.jondavis.net/techblog/post.aspx?id=6a770a75-df86-43f4-bc05-d54051692ff0</feedburner:origLink></item>
    <item>
      <title>So I Was Wrong About Silverlight On Windows 8 ...</title>
      <description>&lt;p&gt;
So the news is already old as of a week ago. Windows 8&amp;#39;s shell has no support for Silverlight--it supports HTML5, C++, and its own flavor of XAML + C#, which marks Microsoft&amp;#39;s third common XAML flavor (the first two being WPF and Silverlight). And although the desktop flavor of IE10 supports plug-ins, the HTML5 support in Metro comes without plug-in support altogether. I expected otherwise, given the rumors and expectations of others in the industry who expected Silverlight to become WPF&amp;#39;s heavily-refactored-by-accident successor.
&lt;/p&gt;
&lt;p&gt;
On the other hand, it makes sense as to why. 
&lt;/p&gt;
&lt;p&gt;
Think of Metro as Silverlight&amp;#39;s Windows counterpart rather than as Silverlight&amp;#39;s would-be host / container. Silverlight is what Metro would have tried to be, but could not fit, on a WP7 device. Metro is built for the Windows shell, Silverlight is built for a web browser and for a mobile device. Metro is what Silverlight would have tried to be, but could not suffice, on an ARM-based tablet. Metro runs XAML + C#. Silverlight runs XAML + C#. Metro hosts HTML5 with WinRT. Silverlight hosts HTML4 in a WebBrowser component with script hooks. Metro hosts native C++ and Direct3D. WP7.x supports XNA and Silverlight 5 supports XNA combinations.
&lt;/p&gt;
&lt;p&gt;
I think you&amp;#39;re getting what you want in Metro as Silverlight equivalence but better suited for Windows, except for binary compatibility which is frankly unnecessary and irrelevant. For example, although Silverlight already had a stripped-down flavor of .NET, the uniquenesses of WinRT and WinRT&amp;#39;s limitations as its own heavily stripped-down flavor of .NET are appropriate for the Windows Metro shell and not for Silverlight&amp;#39;s browser host nor for a phone device.
&lt;/p&gt;
&lt;p&gt;
I&amp;#39;m sorry that this blog post is rather short, but I can&amp;#39;t get this notion of Metro being Silverlight&amp;#39;s counterpart rather than its host out of my mind. It makes perfect sense to me, and I think it should put people at ease.
&lt;/p&gt;
&lt;p&gt;
By the way, for those who are concerned about the XNA support in Silverlight 5 not being available in Metro (few C# developers like C++), give it time, the C++ support will enable shims. If nothing else we can use future Metro ports of Adobe AIR, and&amp;nbsp;&lt;a href="http://9to5google.com/2011/09/21/adobe-unveils-flash-player-11-air-3-with-console-quality-graphics-on-mobile-devices/"&gt;Adobe has just introduced 3D performance that is thousands of times faster than current flavors of Flash / AIR&lt;/a&gt;.
&lt;/p&gt;
&lt;iframe src="http://widgets.dzone.com/links/widgets/zoneit.html?t=2&amp;url=http://www.jondavis.net/techblog/post/2011/09/26/So-I-Was-Wrong-About-Silverlight-On-Windows-8-.aspx&amp;amp;title=So I Was Wrong About Silverlight On Windows 8 ..." height="25" width="155" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NCo0w0InpEjniyTO2QjC94dtwlU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NCo0w0InpEjniyTO2QjC94dtwlU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NCo0w0InpEjniyTO2QjC94dtwlU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NCo0w0InpEjniyTO2QjC94dtwlU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/stimpy77/~4/WLhRZuDAUj0" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/stimpy77/~3/WLhRZuDAUj0/post.aspx</link>
      <author>jon.nospam@nospam.jondavis.net (Jon)</author>
      <comments>http://www.jondavis.net/techblog/post/2011/09/26/So-I-Was-Wrong-About-Silverlight-On-Windows-8-.aspx#comment</comments>
      <guid isPermaLink="false">http://www.jondavis.net/techblog/post.aspx?id=3165d1e6-0ecf-4a97-ab9b-e3cbb9b9072e</guid>
      <pubDate>Mon, 26 Sep 2011 05:28:00 -0700</pubDate>
      <category>C#</category>
      <category>Silverlight</category>
      <category>Windows</category>
      <category>Metro</category>
      <dc:publisher>Jon</dc:publisher>
      <pingback:server>http://www.jondavis.net/techblog/pingback.axd</pingback:server>
      <pingback:target>http://www.jondavis.net/techblog/post.aspx?id=3165d1e6-0ecf-4a97-ab9b-e3cbb9b9072e</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.jondavis.net/techblog/trackback.axd?id=3165d1e6-0ecf-4a97-ab9b-e3cbb9b9072e</trackback:ping>
      <wfw:comment>http://www.jondavis.net/techblog/post/2011/09/26/So-I-Was-Wrong-About-Silverlight-On-Windows-8-.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.jondavis.net/techblog/syndication.axd?post=3165d1e6-0ecf-4a97-ab9b-e3cbb9b9072e</wfw:commentRss>
    <feedburner:origLink>http://www.jondavis.net/techblog/post.aspx?id=3165d1e6-0ecf-4a97-ab9b-e3cbb9b9072e</feedburner:origLink></item>
    <item>
      <title>YouTube Is No Longer For Leeroy Jenkins</title>
      <description>I am still very happy to keep my focus on web development by day
as part of my day job, but for the last several months I have been 
getting personally acquainted with the World Wide Web&amp;#39;s second or third most 
viewed web site. Not Facebook, not Google, we all know about those. 
These are fast getting supplanted by a web site and social network that 
is antiquating those two sites.
&lt;p style="float: right; margin-left: 5px; width: 250px; font-size: 1.4em"&gt;
Two months ago, more than 30 hours of video content were being uploaded 
to YouTube every minute. Today, this number has grown to approximately 
50 hours of video content per minute, and climbing. This is clearly the year of 
YouTube. 
&lt;/p&gt;
&lt;p&gt;
I am referring of course to YouTube.
&lt;/p&gt;
&lt;p&gt;
The last year or so has seen a jaw-dropping surge of growth of activity 
on YouTube--not just in my own free time but with statistically 
everyone&amp;#39;s Internet use on the whole. What was once known mainly for 
tired memes like the &lt;a href="http://www.youtube.com/watch?v=-5x5OXfe9KY" target="_blank"&gt;dancing baby of 1996&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Lonelygirl15" target="_blank"&gt;the fake vlogs of lonelygirl15&lt;/a&gt;, and the &lt;a href="http://www.youtube.com/watch?v=HPPj6viIBmU" target="_blank"&gt;laughably bizarre martial arts moves of Star Wars fans&lt;/a&gt;,
YouTube has recently become revolutionized by the broad availability of
camera-enabled smartphones, iPads, and HD-video-ready cameras.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Two months ago, more than 30 hours of video content were being uploaded 
to YouTube every minute. Today, invigorated by the proliferation of high quality video support in smartphones, cameras, and iPads, this number has grown to approximately 
50 hours of video content per minute, and climbing. This is clearly the year of 
YouTube. Even I myself have begun &lt;a href="http://www.youtube.com/MrStimpy77" target="_blank"&gt;dinking around&lt;/a&gt;
with producing YouTube content, partly out of a huge curiosity I&amp;#39;ve had
since I was a child in videography, photography, video editing, and 
video effects, and partly out of interest in the social, interactive 
network that YouTube is. I have also been attempting to use the video 
camera as a new sort of mirror, to reexamine my personal self and my 
life at home. The whole process has been surprisingly revealing and 
transformative. To boldly hold up a video camera, point it at oneself in 
one&amp;#39;s own home, and say, &amp;quot;This is me, my life, how I live,&amp;quot; regardless of 
whether one makes such content public, it is a life-changing experience 
to examine oneself through &amp;quot;another pair of eyes&amp;quot;, so to speak. And this is 
especially true of me living alone, without a family (so far), with no one giving me direct feedback on a daily basis on how I think and live. On the other hand, were I married, I think we would have a blast as a family sharing real collaborative content with other vloggers rather than me going it alone. 
&lt;/p&gt;
&lt;p&gt;
But as far as the social network of YouTube goes, for me, YouTube has 
replaced both television and PC/Xbox gaming as the entertainment venue 
of choice. I no longer watch TV, except to watch the news and Conan 
O&amp;#39;Brien. MMORPGs have no charm anymore; LOTRO (and for that matter World
of Warcraft) once enticed me with its dazzling graphics and fun 
gameplay, but the key ingredient in MMORPGs is the idea of doing fun 
stuff with other human beings around the world in a surreal way. YouTube is like an 
MMORPG, in a sense, too, but it is that MMORPG known as &amp;quot;real life&amp;quot;, and
I am entranced by the magic of watching my &amp;quot;friends&amp;quot;--that is, my 
favorite YouTube vloggers--&lt;a href="http://www.youtube.com/watch?v=KhXSR_cQr0Y" target="_blank"&gt;crack jokes at each other&lt;/a&gt;, &lt;a href="http://www.youtube.com/user/BearKeys" target="_blank"&gt;make music together&lt;/a&gt;, discover natural beauty of the Earth together, enjoy &lt;a href="http://www.youtube.com/user/mugumogu" target="_blank"&gt;adorable pets&lt;/a&gt; together, &lt;a href="http://www.youtube.com/watch?v=sjzoXrYDh0s" target="_blank"&gt;travel the world together&lt;/a&gt;, or just slow down and &lt;a href="http://www.youtube.com/watch?v=ZpncTquiO2Q"&gt;be artistic&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Don&amp;#39;t call it narcissism. When you have a video camera in your hands and flip the &amp;quot;REC&amp;quot; switch, anything and everything becomes a resource of creative content generation, and it&amp;#39;s perfectly logical to take advantage of the most pliable, animate and controllable piece of material at one&amp;#39;s disposal: oneself. On the other hand, should one be so lucky as to have other individuals, or surroundings, or other animate subject matters one can forget himself and focus on that instead.
&lt;/p&gt;
&lt;p style="float: left; margin-right: 5px; width: 250px; font-size: 1.4em"&gt;
For me, YouTube participation has replaced both television and PC/Xbox gaming as the entertainment venue of choice. 
&lt;/p&gt;
&lt;p&gt;
I
credit the bulk of my fascination to the perfect blending of high 
definition video cameras, the HD video hosting that YouTube is, and high
bandwidth from Internet service providers. High definition video has become the new &amp;quot;nice graphics&amp;quot; of last decade&amp;#39;s graphics cards and gameplay; where I used to enjoy PC games like Unreal Tournament and Guild Wars because the graphics were so rich in detail, now I can watch a fresh high definition video displayed in 1080p produced by a fellow YouTube vlogger, and the video content is so realistic it is actually real. ;)&amp;nbsp; It&amp;#39;s still only being rendered on my computer monitor, but you can even &lt;a href="http://www.google.com/support/youtube/bin/answer.py?&amp;amp;answer=157636#help-5" target="_blank"&gt;watch YouTube videos with 3D glasses&lt;/a&gt;, and produce video content for it relatively &lt;a href="http://www.amazon.com/Fujifilm-FinePix-Real-3D-W3/dp/B003ZHV70M" target="_blank"&gt;cheaply&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Vlogging (short for &amp;quot;video blogging&amp;quot;) is taking over [written-form] blogging, and this is becoming more real by 
the hour. In fact, what programming I have been doing at home has 
involved abandoning (temporarily) the blogging software I was writing 
about just a couple months ago in order to work on some new desktop 
vlogging software I may or may not sell someday, if only for the occasional paid-for Starbucks coffee. It takes advantage of the &lt;a href="http://www.youtube.com/dev"&gt;
YouTube publishing API&lt;/a&gt; and alleviates the problem I saw and experienced 
with YouTube&amp;#39;s video upload page balking frequently on my erratic Wi-Fi connection.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
For those following for business-related interests, vlogging&amp;#39;s growing popularity presents both 
an opportunity and a problem to Internet monetization. YouTube has a 
closed but ever-present monetization model. Owned by Google, it is 
Google. If you want to make money on YouTube, you need to produce 
compelling content on YouTube, associate your YouTube account with a 
Google AdSense account, and get people to watch your content. AdWords ads will then be displayed directly over and alongside the videos that are played by the viewing user. This is the traditional revenue model, and it has been succeeding even for amateur vloggers who have turned into professionals rather quickly. &lt;a href="http://www.youtube.com/smpfilms" target="_blank"&gt;Cory Williams&lt;/a&gt;&amp;#39; &lt;a href="http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CBsQtwIwAA&amp;amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DQit3ALTelOo&amp;amp;ei=ZgtbTsKKO6eLsgLF0qnFDA&amp;amp;usg=AFQjCNHmGMvG8m_DnLiFrtrxfAD4FqkBeA" target="_blank"&gt;&amp;quot;Mean Kitty&amp;quot; music video&lt;/a&gt; turned him into a star; in fact, it was &lt;a href="http://www.youtube.com/watch?v=awxytQEoufE" target="_blank"&gt;disclosed on Tyra Banks&amp;#39; talk show&lt;/a&gt; a couple years ago that he was (at least at that time) raking in some $20,000 per month after that silly homemade video was produced. (He didn&amp;#39;t want that disclosed, but it&amp;#39;s &lt;em&gt;very&lt;/em&gt; interesting to know.) 
&lt;/p&gt;
&lt;p&gt;
Understand clearly, I have no intentions of dropping my career in software &amp;amp; web development, you need to be physically attractive to make it in the vlogging world if you are not &lt;em&gt;exceptionally talented&lt;/em&gt; in your creativity, and I am neither, though I have a few creative talents I exploit. Cory Williams is both. But that does not keep me from finding amazing opportunities in YouTube as both an entertainment and social venue. This becomes a real-life fascination when events like &lt;a href="http://www.youtube.com/results?search_query=vidcon+2011&amp;amp;aq=f" target="_blank"&gt;VidCon&lt;/a&gt; prove to be so much fun. At other entertainment-based social gatherings such as BlizzCon and ComicCon, you are surrounded by strangers who are either out-of-character or in full costume and looking silly. Whereas, at VidCon and the like, you are meeting and discovering the same people that you saw and &amp;quot;befriended&amp;quot; online with the exchange of video content, in their real and same form. 
&lt;/p&gt;
&lt;p&gt;
Businesses seeking to exploit the opportunities of the YouTube community require as much creativity as the YouTubers&amp;#39; creativity, to the extent of the opportunities available. There has never been a more interesting time to engage in &lt;a href="http://en.wikipedia.org/wiki/Guerrilla_marketing" target="_blank"&gt;guerilla marketing&lt;/a&gt;. The most jaw-dropping, amazing marketing campaign I have ever seen on the web occurred this year with Wrigley&amp;#39;s 5 gum. Between amazing event stunts which were &lt;a href="http://www.youtube.com/watch?v=Rh-6owRbFvQ" target="_blank"&gt;captured on video&lt;/a&gt;, &lt;a href="http://www.youtube.com/watch?v=1OHge9keqAI"&gt;highly unusual &amp;quot;seeding&amp;quot; tactics&lt;/a&gt; (that link is to my own video with my own ugly face! .. be warned!), and an astounding set of Hollywood-esque sci-fi-oriented interactive &lt;a href="http://www.testsubjectsneeded.com/"&gt;web sites&lt;/a&gt;, they literally &lt;a href="http://www.youtube.com/watch?v=C_NgaQsjmFk"&gt;freaked people out and convinced people that the world was going to come to an end or there was mind control going on&lt;/a&gt;, and they shocked everyone who was paying attention. To be honest, I think they took it too far. People became angry it was all about mere chewing gum. On the other hand, it was probably cheaper yet more effective for them to engage in guerilla marketing than to just dump a big, boring advertisement on traditional television.
&lt;/p&gt;
&lt;p&gt;
Honestly, I think there can be simpler exploits. Target, for example, has really blown me away with &lt;a href="http://www.youtube.com/Target/"&gt;their YouTube channel&lt;/a&gt; where they pay more for the content production and less for the distribution (YouTube is free!), although some of their YouTube ads have made it on the traditional television, too, I&amp;#39;ve noticed. It could also significantly benefit a business or organization to participate in, sponsor, or host an event that collaborates with YouTube &amp;quot;players&amp;quot;. For example, Maxis promoted Darkspore by inviting YouTube vlogger &lt;a href="http://www.youtube.com/KatersOneSeven"&gt;KatersOneSeven&lt;/a&gt; to &lt;a href="http://www.youtube.com/watch?v=Pdt7Eba2XQQ"&gt;visit their office for a promotional round of vlogging about the game&amp;#39;s release&lt;/a&gt;. More recently, a &amp;quot;YouStars&amp;quot; event might as well have been sponsored by Poland&amp;#39;s department of tourism because a &lt;a href="http://www.youtube.com/watch?v=MVS7e5G6FYQ" target="_blank"&gt;recent round of vlogs&lt;/a&gt; from various vloggers by way of a hosted event there have really put Poland on the map this month.
&lt;/p&gt;
&lt;p&gt;
I must also make mention of video generator web sites, such as&amp;nbsp;&lt;a href="http://animoto.com/" target="_blank"&gt;Animoto&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="http://www.xtranormal.com/" target="_blank"&gt;Xtranormal&lt;/a&gt;. These are interesting examples of third party creative efforts to work with the opportunities of online video content production, by assisting end users with no video cameras or know-how with tools to give them an outlet for creativity. While initial tinkerings can be had for free, everything worthwhile comes at a price, and that means monetization from good tool makers. Obviously, credit goes also to the fine consumer-level desktop software applications such as&amp;nbsp;&lt;a href="http://www.apple.com/ilife/imovie/" target="_blank"&gt;iMovie&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www.pinnaclesys.com/PublicSite/us/Products/Consumer+Products/Home+Video/Studio+Family/Studio+HD+15.htm" target="_blank"&gt;Pinnacle Studio&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www.sonycreativesoftware.com/moviezhd"&gt;Sony moviEZ&lt;/a&gt;, and&amp;nbsp;&lt;a href="http://www.sonycreativesoftware.com/vegassoftware" target="_blank"&gt;Sony Vegas&lt;/a&gt;. Such applications, especially iMovie, sometimes bundle a number of creative &amp;quot;movie-production-in-a-can&amp;quot; prefabbed generators, as well as transitions, text effects, and video and audio effects.
&lt;/p&gt;
&lt;p style="float: right; width: 250px; margin-left: 5px; font-size: 1.4em"&gt;
One does not have to be a video producer or AdWords marketer to be able to exploit YouTube, and it&amp;#39;s time to start getting creative about all this.
&lt;/p&gt;
&lt;p&gt;
The problem of YouTube, which I suppose is also an opportunity, is the fact that YouTube is still a video uploading and viewing web site with social features, and not a complete social network. You cannot even publish a video just to your friends list, for example, which I personally find very frustrating as I had a lot of content I ended up deleting because it wasn&amp;#39;t appropriate for public viewing but I didn&amp;#39;t want it &amp;quot;private&amp;quot;, either. This seems to open the door to alternative web development. I have been pondering the viability of someone producing an external YouTube-like site that exploits the &lt;a href="http://www.youtube.com/dev"&gt;YouTube API&lt;/a&gt; and perhaps even looks and feels like YouTube, but is clearly not YouTube, and offers additional features YouTube doesn&amp;#39;t offer, such as sharing &amp;quot;Unlisted&amp;quot; videos with people on one&amp;#39;s Friends list. There seems to be the absence of significant external web application exploits of the YouTube APIs with compelling statistical followings. I am still yet unsure as to whether this is because somehow people are unwilling to get involved with external web sites as YouTubers, or if this is because there have just been too few attempts made to make it all work. I suspect the latter. YouTube has been integrating at the embeded video level quite successfully for several years, but to actually search for videos and browse videos and enjoy a YouTube channel on such a web site as if actually on YouTube is something I just have not seen yet, or have not seen done cleanly and in a trustworthy manner. I was hoping to see something like a re-made channel concept on &lt;a href="http://www.tumblr.com/"&gt;Tumblr&lt;/a&gt;, but firing Tumblr up and poking at it for a day or two I discovered it is nowhere near supportive of such a thing.
&lt;/p&gt;
&lt;p&gt;
You also cannot produce any content for YouTube besides video, video organizing, video descriptions, and commenting. Whereas, Facebook and other social networks provide opportunities for individuals and companies to produce any form of content by way of a plug-in architecture, a la &amp;quot;Facebook applications&amp;quot;. This is another area where an external web site that takes advantage of YouTube&amp;#39;s API for its content and membership features could greatly enhance the whole experience, if only it could be implemented well and gain sufficient popularity. 
&lt;/p&gt;
&lt;p&gt;
I&amp;#39;d like to see where this goes. Seriously. One does not have to be a video producer or AdWords marketer to be able to exploit YouTube, and it&amp;#39;s time to start getting creative about all this. What are your thoughts? 
&lt;/p&gt;
&lt;iframe src="http://widgets.dzone.com/links/widgets/zoneit.html?t=2&amp;url=http://www.jondavis.net/techblog/post/2011/08/28/YouTube-Is-No-Longer-For-Leeroy-Jenkins.aspx&amp;amp;title=YouTube Is No Longer For Leeroy Jenkins" height="25" width="155" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2xIVBEn1CMXH7cNgeYfQcmmqnvg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2xIVBEn1CMXH7cNgeYfQcmmqnvg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2xIVBEn1CMXH7cNgeYfQcmmqnvg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2xIVBEn1CMXH7cNgeYfQcmmqnvg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/stimpy77/~4/rQMXEYMJFE8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/stimpy77/~3/rQMXEYMJFE8/post.aspx</link>
      <author>jon.nospam@nospam.jondavis.net (Jon)</author>
      <comments>http://www.jondavis.net/techblog/post/2011/08/28/YouTube-Is-No-Longer-For-Leeroy-Jenkins.aspx#comment</comments>
      <guid isPermaLink="false">http://www.jondavis.net/techblog/post.aspx?id=69f1786f-d640-4bdc-a793-ff89be4a58e6</guid>
      <pubDate>Sun, 28 Aug 2011 19:22:00 -0700</pubDate>
      <category>Blog</category>
      <category>Social Networking</category>
      <category>YouTube</category>
      <dc:publisher>Jon</dc:publisher>
      <pingback:server>http://www.jondavis.net/techblog/pingback.axd</pingback:server>
      <pingback:target>http://www.jondavis.net/techblog/post.aspx?id=69f1786f-d640-4bdc-a793-ff89be4a58e6</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.jondavis.net/techblog/trackback.axd?id=69f1786f-d640-4bdc-a793-ff89be4a58e6</trackback:ping>
      <wfw:comment>http://www.jondavis.net/techblog/post/2011/08/28/YouTube-Is-No-Longer-For-Leeroy-Jenkins.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.jondavis.net/techblog/syndication.axd?post=69f1786f-d640-4bdc-a793-ff89be4a58e6</wfw:commentRss>
    <feedburner:origLink>http://www.jondavis.net/techblog/post.aspx?id=69f1786f-d640-4bdc-a793-ff89be4a58e6</feedburner:origLink></item>
    <item>
      <title>Rumors Of XAML’s Death Have Been Greatly Exaggerated</title>
      <description>&lt;p&gt;
It&amp;rsquo;s been several months since the demise of the standard public opinion of the Microsoft UI platform developers. That was a ridiculous statement I just started with, but it&amp;rsquo;s grounded in a lot of truth, what with all the perpetual noise from naysayers regarding Windows 8&amp;rsquo;s open-arms acceptance of HTML5 as a UI development strategy. All of it has me scratching my head in confusion, not about Microsoft&amp;rsquo;s decision-making, but about the wisdom of those whom I&amp;rsquo;ve been coding alongside all these years. (I myself don&amp;rsquo;t do much with XAML but I do develop on the Microsoft stack and I consider XAML developers my &amp;ldquo;compatriots&amp;rdquo;.)
&lt;/p&gt;
&lt;p&gt;
Microsoft has always been a copy-cat, a late-to-the-party fat kid who shows up, rolls around, shoves his muddy butt up in your face, and then comes waddling over in an out-of-breath huff to the next party. There&amp;rsquo;s nothing new going on here with Windows 8. When Microsoft created Windows in the days of DOS, and recreated it again in Windows 95, and recreated it again in Windows NT, they were just playing along with what the cool boys were already doing. The Macintosh pretty much defined the whole market and everyone has been playing along with its notions ever since. With the advent of the iPhone and its iOS touch-oriented platform, a reimagineering of the Windows Mobile platform was an absolute necessity&amp;mdash;people say that Windows Phone 7 was too little too late, and I can only agree with the &amp;ldquo;too late&amp;rdquo; part. The &amp;ldquo;too little&amp;rdquo; part goes away over time, since no major software manufacturer can come up with everything in one shot.
&lt;/p&gt;
&lt;p&gt;
Apple has always led, as have people who rely heavily on the Mac platform where their focus on creativity is not shoved aside by some unnecessary technical feature set. Microsoft&amp;rsquo;s leadership skills are on occasion a little bit embarrassing. Remember Windows Live Spaces blogs? Remember when Microsoft was trying to compete with Wordpress.com? That was funny. The editor was sloppy; even after porting my sister&amp;rsquo;s blog over from Windows Live Spaces archives to a WordPress account I am still cleaning up the Microsoft Office pasted stylizing mishmash crap that Spaces emitted all over my sister&amp;rsquo;s content. Yes, it was so sickening it was funny. But what was funnier was when Microsoft handed everyone on their Live Spaces servers over to WordPress.com. &amp;ldquo;You not only win, you can have our customers&amp;rsquo; blogs, here you go.&amp;rdquo; Hilarious.
&lt;/p&gt;
&lt;p&gt;
That was a bit of a tangent since WordPress is not Apple. Nonetheless, when it comes to platform delivery, Steve Jobs is usually right. It doesn&amp;rsquo;t matter that Objective-C is one monster of a strange-looking language, that didn&amp;rsquo;t stop the many developers from making the iOS platform one of the most successful new operating system platforms to be adopted in the history of computers, measured according to successfully adopted software applications. Ironically, however, it was not Objective-C native applications that Apple started its folks off with. It was Webkit and Mobile Safari solutions.
&lt;/p&gt;
&lt;p&gt;
Apple made a conscious decision from iPhone&amp;rsquo;s get-go: &lt;strong&gt;Start people off on a stable common denominator, one that outsiders can understand, one that performs well, and one that can be extended to look and feel similar to a native experience.&lt;/strong&gt; Developers were angry at Apple for this (including myself). &amp;ldquo;We don&amp;rsquo;t want just a bunch of Javascript and CSS extensions, we want to write real code!&amp;rdquo; It wasn&amp;rsquo;t until shortly before the 2nd generation of the iPhone came out that Apple finally released a native SDK. And then all the feather-flapping stopped. Everyone quickly shut the @#$% up and started working diligently on their native apps, which soon started showing up on the App Store. The question is, was Apple in error by supporting and extending the common denominator (HTML+CSS+Javascript) on their platform first, or were they smart? I think they were smart, and their subsequent success upon opening up the native development experience says a lot. I think it says to developers &amp;ldquo;you can go broad, or you can go deep, either way, you can &lt;em&gt;go&lt;/em&gt;, and we&amp;rsquo;ll back you.&amp;rdquo;
&lt;/p&gt;
&lt;p&gt;
With Microsoft, you have a similar story, although parts of it are a little backwards. Microsoft had their &amp;ldquo;native-esque&amp;rdquo; programming experience with the Silverlight and XNA SDKs for the Windows Phone 7, but that wasn&amp;rsquo;t enough, and eventually, &lt;em&gt;finally,&lt;/em&gt; Microsoft acknowledged that they need to meet the initial if difficult requirement for a lowest common denominator&amp;mdash;the Webkit equivalent of the Internet Explorer Mobile Edition Marketed Version Nine for Windows Phone Seven Super Edition Service Pack 1 Episode Three Ninth Season 2011 Squared. At least, I&amp;rsquo;m hoping that they made this acknowledgement, because when I tried building out some prototype Silverlight apps on the Windows Phone 7 platform and I used the Internet Explorer mobile control I found myself quickly missing Webkit&amp;rsquo;s and Chrome&amp;rsquo;s reliability in adherence to standard and extended APIs.
&lt;/p&gt;
&lt;p&gt;
Regardless of Windows Phone 7&amp;mdash;which Microsoft has certainly used as a testbed for future evolution of the Windows desktop platform, much as Apple has done with iOS and OS X&amp;mdash;it seems obvious to me that the Internet Explorer team has lately been given the go-ahead and adequate funding to make their platform adequately competitive with the rapid advances of the web platform that has been commonly referred to&amp;mdash;incorrectly, I might add&amp;mdash;as &amp;ldquo;HTML5&amp;rdquo;. Internet Explorer 9 is a good web browser. It&amp;rsquo;s not shabby. It&amp;rsquo;s no match for the likes of Chrome and even Firefox but it&amp;rsquo;s still a good browser, right in there with Opera, I think, which has almost as many quirks despite its other advancements. Meanwhile, Internet Explorer 10, as well as Microsoft Windows&amp;rsquo;s amazing advancements on the ARM processor chipset, really prove to me that Microsoft is well aware of what they are up against in this highly competitive market.
&lt;/p&gt;
&lt;p&gt;
When you look at the features of Android, iOS, Linux, Mac OS X, and Windows, there are several cross-compiled manufactured solutions for producing cross-platform software applications and resources. Java is the first that comes to mind, but the pile of horsepoo that they dumped on Microsoft in the late 90s for Microsoft&amp;rsquo;s desire to see Java do wonderful things on their platform scared off a lot of Microsoft devotees from the Java platform. Likewise, people are scared of .NET, especially with Mono not having a stable backer for a solid amount of recent time. Then there are wxWidgets and Qt, but these are C++, bleh. Hence, people choose to use what they feel most comfortable with, which is usually the platform that is most likely to be there waiting for them in &amp;ldquo;weird OS land&amp;rdquo;, on the other side of the fence, not sticking its tongue out at them but rather showing consistent programming and UI experiences. On each platform, you have HTML+CSS+Javascript. And where HTML+CSS+Javascript doesn&amp;rsquo;t feel native enough, you have the likes of Adobe AIR and similar toolkits making the platform look and feel beautiful again.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="https://developer.palm.com/"&gt;WebOS&lt;/a&gt; is an amazing testament to the power and inspiration that the stack has. WebOS is kind of like iOS, except that all software applications are HTML+CSS+Javascript, period, no exceptions. The fact that they pull it off frankly makes me want to start building software that targets WebOS and then port from WebOS to other platforms since it&amp;rsquo;s a ubiquitous platform.
&lt;/p&gt;
&lt;p&gt;
People tend to pooh-pooh the power of HTML5 but they need to spend a few hours (in Chrome) scouring some of the more powerful HTML5-based software applications that are available right now and that look absolutely spectacular on modern hardware. It&amp;rsquo;s been referenced on my tech blog many times but &lt;a href="http://www.chromeexperiments.com/"&gt;http://www.chromeexperiments.com/&lt;/a&gt; is still a great site to check out and see the power and flexibility of the HTML5 platform.
&lt;/p&gt;
&lt;p&gt;
Further, I might add, HTML5, with it being more a Javascript+canvas+SVG+networking stack than a tagging scheme / markup language, antiquates and deprecates the arguments that &amp;ldquo;HTML was not designed for software applications&amp;rdquo;. The WHAT-WG, or Web Hypertext Application Technology Working Group, came about in the iPhone/iOS early days independently from the W3C to address the very concern that &amp;ldquo;HTML is not for applications&amp;rdquo;, and HTML5 is the literal fruition of work that came out from that group. The argument just does not stand anymore; the HTML5 stack is indeed for applications, although the HTML5 markup language is most definitely &lt;em&gt;not&lt;/em&gt;. Readable/printable documents have no use for a canvas, nor for long-term large offline storage, nor for bi-directional network sockets, and so on, these being HTML5 features that were previously reserved to browser extensions and hacks that end users had to authorize.
&lt;/p&gt;
&lt;p&gt;
Is Microsoft wrong for embracing a well-adopted programming and screen layout standard? Of course not. Should Microsoft be ashamed for trying hard (even if not quite their hardest) to make sure that their platform is the best platform to experience applications that target this common programming and screen layout standard? NO!! So what is all the fuss about? Microsoft has a limited staff and limited budget to keep fostering the marketing and market growth of the Silverlight and WPF platforms when the most current area of focus is something else entirely. That does not mean that they have abandoned Silverlight or WPF, nor for that matter does it mean that WPF and Silverlight are going away. All it means is that Microsoft has &amp;ldquo;seen the light,&amp;rdquo; that they cannot keep pretending that the world around them doesn&amp;rsquo;t exist. They have finally stopped holding their hands up to their ears shouting &amp;ldquo;I can&amp;rsquo;t hear you, I can&amp;rsquo;t hear you, blahathathahthatahta&amp;rdquo;, they&amp;rsquo;re paying attention to changing trends, they&amp;rsquo;re adapting, and they might even be going through an internal overhaul to support the necessary changes that are taking place for a constantly evolving software marketplace.
&lt;/p&gt;
&lt;p&gt;
Do I hope that native and managed-code development comes back to tantalize Windows developers? Absolutely, and I think that it&amp;rsquo;s inevitable that it&amp;rsquo;ll all return really soon, even within the next year. They&amp;rsquo;ll have to because &lt;strong&gt;outside of Adobe there are no serious development tools that foster native-like HTML5-on-the-desktop experience development like WPF and Silverlight have&lt;/strong&gt;, and until that changes&amp;mdash;and it will, I promise&amp;mdash;we are stuck with the XAML-based tools that we have, so stop complaining and keep enjoying them.
&lt;/p&gt;
&lt;p&gt;
Incidentally, it saddens me when I hear stories from within the walls of Redmond about how and why the Windows platform team and the .NET / WPF team never really &amp;ldquo;got along&amp;rdquo; and weren&amp;rsquo;t on the same playing field, and how so little software straight from Microsoft is actually managed code. The fact that they didn&amp;rsquo;t get along and stay on the same page explains a great deal about how abrupt and disappointing it was that Windows 8 would showcase HTML 5 and not XAML-based managed code&amp;mdash;it&amp;rsquo;s almost as if the Windows team said, &amp;ldquo;Since we never liked you, but we need to support a lightweight and easily understood stack, we&amp;rsquo;re just going to skip over you and jump straight onto the &amp;lsquo;Webkit&amp;rsquo;-esque bandwagon.&amp;rdquo; It&amp;rsquo;s not only sad, it&amp;rsquo;s a bit insulting to the XAML crowd. At the same time, however, I cannot argue that it wasn&amp;rsquo;t &lt;em&gt;wise,&lt;/em&gt; because ultimately at the end of the day&amp;mdash;er, at the end of the fiscal year?&amp;mdash;Microsoft&amp;rsquo;s goal is to &lt;strong&gt;make Windows the best platform for building and running &lt;em&gt;any&lt;/em&gt; type of software, period&lt;/strong&gt;. One can argue that &amp;ldquo;they already tried it on the desktop and failed with Active Desktop&amp;rdquo;. That&amp;rsquo;s a bit like saying Silverlight was doomed from the beginning because Microsoft had already previously toyed with a vector art creator/editor that was ugly, crappy, and a gigantic flop. The reality is that once Microsoft makes a hardened choice to go in a specific direction and not waver, nothing will stop them from gaining critical mass. (On the other hand, Active Desktop received Microsoft&amp;rsquo;s full clout, and it still failed, but I suspect that it was because it was ahead of its time. Meanwhile, the Vista and Windows 7 sidebars/gadgets are still fundamentally HTML+CSS+Javascript and those didn&amp;rsquo;t go quite so poorly.)
&lt;/p&gt;
&lt;p&gt;
Windows is a do-it-all platform. Most people don&amp;rsquo;t know it, but Windows 7 is even UNIX-compatible, just turn on the UNIX-compatibility feature and you instantly get the ability to compile to UNIX. You even get a C-Shell. (This may be going away with Windows 8, though, sadly, perhaps because no one knew about it and Microsoft probably didn&amp;rsquo;t want to support it if they did. For that matter, Cygwin and MinGW were arguably better anyway.) Windows has never been good at minimalistic, pretty software, for that go to Mac. If you want purely utility software, fire up an old distro of Linux. But Microsoft has made Windows excel so well at retaining such a huge market share on the desktop by being the platform that is least likely to fail when you grab some software off the shelf and forget to read the label&amp;mdash;or I guess in 21st century terms, when you click the Download link and find the first download option.
&lt;/p&gt;
&lt;p&gt;
Windows won&amp;rsquo;t run Obj-C/Cocoa Touch software, but at least Windows can fire up and run software that was built for the &amp;ldquo;any-platform&amp;rdquo; platform that runs on Mac and iOS, too, and that in my opinion is a rock-solid first goal for a new OS version since it most readily embraces non-Microsoft developers who have been developing on &amp;ldquo;all platforms&amp;rdquo;. Once Microsoft gets past this hurdle, let them go back to making the platform proprietary and unique again. But dang it I don&amp;rsquo;t want to be using a desktop operating system that is great for proprietary-built software but crap for running software that was built for the common application stack. I like to know that Microsoft knows a few things about being on top&amp;mdash;on top as in king of the hill&amp;mdash;of what everyone else is into. Right now that means the HTML5 &lt;em&gt;programming&lt;/em&gt; stack. Get in the game or get off the train and find a job selling sushi.
&lt;/p&gt;
&lt;p&gt;
&lt;iframe src="http://widgets.dzone.com/links/widgets/zoneit.html?t=2&amp;url=http://www.jondavis.net/techblog/post/2011/08/07/Rumors-Of-XAMLe28099s-Death-Have-Been-Greatly-Exaggerated.aspx&amp;amp;title=Rumors Of XAML’s Death Have Been Greatly Exaggerated" height="25" width="155" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt; 
&lt;/p&gt;
&lt;div class="kick"&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http://www.jondavis.net/techblog/post/2011/08/07/Rumors-Of-XAMLe28099s-Death-Have-Been-Greatly-Exaggerated.aspx&amp;amp;title=Rumors%20Of%20XAML%E2%80%99s%20Death%20Have%20Been%20Greatly%20Exaggerated" target="_blank"&gt;
&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://www.jondavis.net/techblog/post/2011/08/07/Rumors-Of-XAMLe28099s-Death-Have-Been-Greatly-Exaggerated.aspx&amp;amp;fgcolor=ccc&amp;amp;bgcolor=143D55&amp;amp;cfgcolor=ccc&amp;amp;cbgcolor=D25E26" border="0" alt="kick it on DotNetKicks.com" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hfObb3KPQwboLFhcKqfSVS7vYUQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hfObb3KPQwboLFhcKqfSVS7vYUQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hfObb3KPQwboLFhcKqfSVS7vYUQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hfObb3KPQwboLFhcKqfSVS7vYUQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/stimpy77/~4/U1QVZnYRCt0" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/stimpy77/~3/U1QVZnYRCt0/post.aspx</link>
      <author>jon.nospam@nospam.jondavis.net (Jon)</author>
      <comments>http://www.jondavis.net/techblog/post/2011/08/07/Rumors-Of-XAMLe28099s-Death-Have-Been-Greatly-Exaggerated.aspx#comment</comments>
      <guid isPermaLink="false">http://www.jondavis.net/techblog/post.aspx?id=1a96c698-a98e-4707-8d9b-7b8d9d91f132</guid>
      <pubDate>Sun, 07 Aug 2011 18:13:00 -0700</pubDate>
      <category>Operating Systems</category>
      <category>Windows</category>
      <dc:publisher>Jon</dc:publisher>
      <pingback:server>http://www.jondavis.net/techblog/pingback.axd</pingback:server>
      <pingback:target>http://www.jondavis.net/techblog/post.aspx?id=1a96c698-a98e-4707-8d9b-7b8d9d91f132</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.jondavis.net/techblog/trackback.axd?id=1a96c698-a98e-4707-8d9b-7b8d9d91f132</trackback:ping>
      <wfw:comment>http://www.jondavis.net/techblog/post/2011/08/07/Rumors-Of-XAMLe28099s-Death-Have-Been-Greatly-Exaggerated.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.jondavis.net/techblog/syndication.axd?post=1a96c698-a98e-4707-8d9b-7b8d9d91f132</wfw:commentRss>
    <feedburner:origLink>http://www.jondavis.net/techblog/post.aspx?id=1a96c698-a98e-4707-8d9b-7b8d9d91f132</feedburner:origLink></item>
    <item>
      <title>Google+ Profiles</title>
      <description>&lt;p&gt;
Just got on Google+. If anyone wants an invite, please contact me at MrStimpy77 -AT- .. gmail
&lt;/p&gt;
&lt;p&gt;
Here&amp;#39;s my profile:&amp;nbsp;&lt;a href="http://gplus.to/MrStimpy77"&gt;http://gplus.to/MrStimpy77&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jElrK3tXJl9zuz_MNsaKHSdesoM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jElrK3tXJl9zuz_MNsaKHSdesoM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jElrK3tXJl9zuz_MNsaKHSdesoM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jElrK3tXJl9zuz_MNsaKHSdesoM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/stimpy77/~4/zjRJKsX4Z3A" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/stimpy77/~3/zjRJKsX4Z3A/post.aspx</link>
      <author>jon.nospam@nospam.jondavis.net (Jon)</author>
      <comments>http://www.jondavis.net/techblog/post/2011/07/08/Google2b-Profiles.aspx#comment</comments>
      <guid isPermaLink="false">http://www.jondavis.net/techblog/post.aspx?id=57a432bb-a480-4aa9-8922-23f8506640eb</guid>
      <pubDate>Fri, 08 Jul 2011 12:12:00 -0700</pubDate>
      <category>Social Networking</category>
      <dc:publisher>Jon</dc:publisher>
      <pingback:server>http://www.jondavis.net/techblog/pingback.axd</pingback:server>
      <pingback:target>http://www.jondavis.net/techblog/post.aspx?id=57a432bb-a480-4aa9-8922-23f8506640eb</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.jondavis.net/techblog/trackback.axd?id=57a432bb-a480-4aa9-8922-23f8506640eb</trackback:ping>
      <wfw:comment>http://www.jondavis.net/techblog/post/2011/07/08/Google2b-Profiles.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.jondavis.net/techblog/syndication.axd?post=57a432bb-a480-4aa9-8922-23f8506640eb</wfw:commentRss>
    <feedburner:origLink>http://www.jondavis.net/techblog/post.aspx?id=57a432bb-a480-4aa9-8922-23f8506640eb</feedburner:origLink></item>
    <item>
      <title>Who Cares About Blog Software?</title>
      <description>&lt;p&gt;
It dawned on me tonight that there are a few people out there who actually read my blog, mostly people I don&amp;rsquo;t know, but almost all of them people who write ASP.NET software. I suppose this would make me happy, except for the fact that sometimes, such as with my previous post and the last couple months of &amp;ldquo;I&amp;rsquo;m gonna do something here&amp;rdquo; posts, I really make myself look like .. well, like someone who could be labeled lots of different ways, depending on the reader, but several such ways could be derogatory.
&lt;/p&gt;
  
&lt;p&gt;
Truth be told, at this point now at 2011 I confess I don&amp;rsquo;t care deeply about blog software. Innovation in blog software is no longer my motivator for creating another one, if simply because it&amp;rsquo;s been done, many times, not just by other .NET developers but even by me. Yet I move forward, still not knowing for sure what the next couple weeks will hold for this strategy. I could have easily called it done already after last weekend&amp;rsquo;s nearly-successful implementation, but there were changes I wanted to make, changes that I found tonight I could not make without actually starting over, thanks to the limitations of Entity Framework Code First Magical Unicorn Edition 4.1&amp;trade;.
&lt;/p&gt;
  
&lt;p&gt;
Tonight I have to take an honest additional look at my motives, as I began to do here already. If I don&amp;rsquo;t have a deep care about blogging software, why reinvent the wheel?
&lt;/p&gt;
  
&lt;p&gt;
It&amp;rsquo;s more about having some limited degree of independence upon a prepackaged application, rather than install a prefab website like WordPress which is something that one of my non-technical family members could do if they put their mind to it. If one cannot build his own blogging platform upon which he blogs, what right can he say that he is a broadly experienced web developer in the first place? 
&lt;/p&gt;
  
&lt;p&gt;
On the other hand, I have drawn the line at some point in the architecture, in this case my use of components that are intended to make development very lightweight exercises. And perhaps the tech is not the place where I should be growing myself. Perhaps the re-selection, adoption, and participation with others&amp;rsquo; efforts is a better path.
&lt;/p&gt;
  
&lt;p&gt;
For example, even as I have become bored of BlogEngine.net as I have switched to ASP.NET MVC, and I am disheartened by the motives of some members of the Orchard project community, there are still other projects out there that are worth considering delving into.
&lt;/p&gt;
  
&lt;p&gt;
Two of them are worth noting right now:
&lt;/p&gt;
  
&lt;p&gt;
&lt;a href="http://commonlibrarynetcms.codeplex.com/" target="_blank"&gt;ASP.NET MVC CMS ( Using CommonLibrary.NET )&lt;/a&gt; &amp;ndash; This one is a mouthful and hardly a pretty name. But what I like about it is its heavy use of highly reusable &amp;ldquo;make-my-development-life-better&amp;rdquo; code libraries, namely CommonLibrary.NET which has a ton going for it. This package claims to be a CMS, but appears to be more of a blog engine at least in its prefab implementation, but although it looks a bit ugly on the aesthetic side, it looks feature rich, and it&amp;rsquo;s tempting to fork it, migrate it to MVC 3 + Razor, and give it a prettier name or something. I have been looking for something I can use as a strong foundation and on the surface this looks like a very accommodating solution, although I have yet to actually try it out.
&lt;/p&gt;
  
&lt;p&gt;
Another solution worth checking out is &lt;a href="http://atomsite.net/" target="_blank"&gt;AtomSite&lt;/a&gt;. This one is a couple years old but it feels a little bit like it was pretty much exactly what I was going to do anyway, although it is based on MVC 1.0 so I&amp;rsquo;d definitely migrate it to MVC 3 + Razor as I would with the other solution mentioned above.
&lt;/p&gt;
  
&lt;p&gt;
If I choose to run with one of these, I really feel like I&amp;rsquo;d need to try to make it my own&amp;mdash;fork it, name it, port it to MVC 3 + Razor, theme it, spruce it up, and make it sexy. This would probably mean finding preexisting designs such as for WordPress and porting them. I don&amp;rsquo;t do original creative design work very well.
&lt;/p&gt;
  
&lt;p&gt;
At the end of doing all that, though, I still fear I&amp;rsquo;d end up just going back to my own blog engine idea, because I still have this lingering desire to build upon something that was more independent .. oh brother .. why are you even bothering to read this?! I&amp;rsquo;m just taking notes and bemoaning my indecision here. At the end of the day, I still need to step away from the computer and have a life.
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RqdeUUg3wptunhnLcnpuAV0BLGU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RqdeUUg3wptunhnLcnpuAV0BLGU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RqdeUUg3wptunhnLcnpuAV0BLGU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RqdeUUg3wptunhnLcnpuAV0BLGU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/stimpy77/~4/zIfOf1iimzg" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/stimpy77/~3/zIfOf1iimzg/post.aspx</link>
      <author>jon.nospam@nospam.jondavis.net (Jon)</author>
      <comments>http://www.jondavis.net/techblog/post/2011/07/08/Who-Cares-About-Blog-Software.aspx#comment</comments>
      <guid isPermaLink="false">http://www.jondavis.net/techblog/post.aspx?id=948af938-0577-4078-b8cf-610421c64973</guid>
      <pubDate>Fri, 08 Jul 2011 02:02:00 -0700</pubDate>
      <dc:publisher>Jon</dc:publisher>
      <pingback:server>http://www.jondavis.net/techblog/pingback.axd</pingback:server>
      <pingback:target>http://www.jondavis.net/techblog/post.aspx?id=948af938-0577-4078-b8cf-610421c64973</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.jondavis.net/techblog/trackback.axd?id=948af938-0577-4078-b8cf-610421c64973</trackback:ping>
      <wfw:comment>http://www.jondavis.net/techblog/post/2011/07/08/Who-Cares-About-Blog-Software.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.jondavis.net/techblog/syndication.axd?post=948af938-0577-4078-b8cf-610421c64973</wfw:commentRss>
    <feedburner:origLink>http://www.jondavis.net/techblog/post.aspx?id=948af938-0577-4078-b8cf-610421c64973</feedburner:origLink></item>
    <item>
      <title>Changes Are Coming</title>
      <description>&lt;p&gt;
Well, it&amp;#39;s been a wonderful ride, nearly half a decade working with BlogEngine.net&amp;#39;s great blogging software. But it&amp;#39;s time to move on.
&lt;/p&gt;
&lt;p&gt;
Orchard, it was very nice to meet you. You have a wonderful future ahead of you, and I was honored to have known you, even just a little. Unfortunately, you and I are each looking for something different.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
WordPress, you are like a beautiful, sexy whore, tantalizing on the outside and known by everybody and his brother, but quite honestly I&amp;#39;m not sure I want to see you naked more than I already have.
&lt;/p&gt;
&lt;p&gt;
I&amp;#39;m frickin&amp;#39; Jon Davis, I&amp;#39;ve been doing software and web development for 14 nearly 15 years now, and doggonit I should assume myself to be &amp;quot;all that&amp;quot; by now. Actually, blog engines should be like &amp;quot;Hello World&amp;quot; to me by now. I suppose the only reason why I&amp;#39;ve been too shy to do it thus far is because the first time I started building&amp;nbsp;&lt;a href="http://sourceforge.net/projects/pwrblog/"&gt;a complete blogging solution&lt;/a&gt;&amp;nbsp;eight or nine years ago and stopped its continuance six or seven years ago the thing I built was proven to be an oddball hunk of an over-programmed desktop application that I had primarily leveraged to grow broad technical talents. It was a learning opportunity, not a proper blogging solution, and it smelled of adolescence. (To this day it won&amp;#39;t even compile because .NET 2.0 broke it.)
&lt;/p&gt;
&lt;p&gt;
In the mean time, I&amp;#39;ve moved on. I&amp;#39;ve been an employer-focused career guy for the last five or six years, having little time for major projects like that, but still growing both in technical skill set and in broad understanding of Internet markets and culture.
&lt;/p&gt;
&lt;p&gt;
But I kind of miss blogging. I used to be a prolific blogger. I sometimes browse my blog posts from years ago and find some interesting tidbits of knowledge, in fact sometimes I actually learn from my prior writings because I later forget the things I had learned and blogged about but come back to re-learn them. Sometimes, meanwhile, I&amp;#39;ll find some blog posts that are a little bizarre--thoughtful in prose, yet ridiculous in their findings. That&amp;#39;s okay. My goal is to get myself to think again, and not be continuously caught up in a daily grind whereby neither my career nor technically-minded side life have any meaning.
&lt;/p&gt;
&lt;p&gt;
Last weekend over two or three days I created a new blog engine. (Anyone who knows me well knows that I&amp;#39;ve been tinkering with social platform development on my own time for some years, but this one was from-scratch.) I successfully ported all of my blog posts and blog comments from my BlogEngine.net to my new engine and got it to render in blog form using my own NUnit-tested ASP.NET MVC implementation. I would have replaced BlogEngine.net here on my site with my blog engine already, were it not for the fact that as I used Entity Framework Code First&amp;nbsp;I&amp;nbsp;&lt;a href="http://stackoverflow.com/questions/6579362/ef-code-first-abstract-relationship/6579603"&gt;ran into snags&lt;/a&gt;&amp;nbsp;getting the generated database schema to correctly align with long-term strategies. And as much as I&amp;#39;d be delighted to prove out my ability to rush a new blog engine out the door, I don&amp;#39;t necessarily want to rush a database schema, especially if I intend to someday share the schema and codebase with the world.
&lt;/p&gt;
&lt;p&gt;
And I never said I was going to open-source this. I might, but I also want to commercialize it as a hosted service. I&amp;#39;ll likely do both.
&lt;/p&gt;
&lt;p&gt;
But it&amp;#39;s coming, and here are my dreamy if possibly ridiculous plans for it:
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Blogging with comments and image attachments. Nothing special here. But I want to support using the old-skool MetaWeblog API, so that&amp;#39;ll definitely be there, as well as the somewhat newer AtomPub protocol.&lt;/li&gt;
	&lt;li&gt;Syndication with RSS and Atom. Again, nothing special here.&lt;/li&gt;
	&lt;li&gt;As a blogging framework it will be a WebMatrix-ready web site (not web application). Even though it will use ASP.NET MVC it will be WebMatrix gallery-loadable and Notepad-customizable. The controllers/models will just be precompiled. Note that this is already working and proven out; the depth and detail of customizability (such as a good file management pattern for having multiple themes preinstalled) have not been sorted out yet, though.&lt;/li&gt;
	&lt;li&gt;&lt;a href="https://appharbor.com/"&gt;AppHarbor&lt;/a&gt;-deployable. AppHarbor is awesome! Everything I&amp;#39;m doing here is going to ultimately target AppHarbor. Right now the blog you&amp;#39;re looking at is temporarily hosted on a private server, but I want that to end soon as this server is flaky.&lt;/li&gt;
	&lt;li&gt;Down-scalable. I am prototyping this with SQL Server Compact Edition 4.0, with no stored procedures. Once the project begins to mature, I&amp;#39;ll start supporting optimizations for upwards-scalable platforms like SQL Server with optimized stored procedures, etc., but for now flexibility for the little guy who&amp;#39;s coming from WordPress to my little blog engine is the focus.&lt;/li&gt;
	&lt;li&gt;Phase 1 goal: BlogEngine.net v1.4.5.0 approximate feature equivalence (minus prefab templates and extra features I don&amp;#39;t use). BlogEngine.net is currently at v2.x now, and I haven&amp;#39;t really even looked much at v2.x yet, but as of this blog post I&amp;#39;m currently still using v1.4.5.0 and rather than upgrade I just want to swap it out with something of my own that does roughly the same as what BlogEngine.net does. This includes commenting, categories, widgets, a solid blog editor, and strong themeability; I won&amp;#39;t be creating a lot of prefab themes, but if I&amp;#39;m going to produce something of my own I want to expose at least the compiled parts of it to others to reuse, and I&amp;#39;m extremely picky about cleanliness of templates such that they can be easily updated and CSS swappages with minimal server-side code changes can go very far.&lt;/li&gt;
	&lt;li&gt;Phase 2 goal: Tumblr approximate feature equivalence (minus prefab templates). All I mean by this is that blog posts won&amp;#39;t just be blog posts, they&amp;#39;ll be content item posts of various forms--blog posts, microblog posts, photo posts, video posts, etc. Still browsable sorted descending by date, but the content type is swappable. In my current implementation, a blog entry is just a custom content type, and blogs are declared in an isolated class library from the core content engine. I also want to support importing feeds from other sources, such as RSS feeds from Flickr or YouTube. Tumblr approximate equivalence also means being mobile-ready. Tumblr is a very smartphone-friendly service, and this is going to be a huge area of focus.&lt;/li&gt;
	&lt;li&gt;Phase 3 goal: WordPress approximate equivalence (minus prefab templates). Yeah I know, to suggest WordPress equivalence after already baking in something of a BlogEngine.net and Tumblr functionality equivalence, this is sorta-kinda a step backwards on the content engine side. But it&amp;#39;s a huge step forward in these areas:
	&lt;ul&gt;
		&lt;li&gt;Elegance in administration / management .. the blogger has to live there, after all&lt;/li&gt;
		&lt;li&gt;Configurability - WordPress has a lot of custom options, making it really a blog on steroids&lt;/li&gt;
		&lt;li&gt;Modularity - rich support for plug-ins or &amp;quot;modules&amp;quot; so that whether or not many people use this thing, whoever does use it can take advantage of its extensibility&lt;/li&gt;
		&lt;li&gt;Richer themeability - WordPress themes are far from CSS drops, they are practically engine replacements, but that is as much its beauty as it is its shortcoming. You can make it what you want, really, by swapping out the theme.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Non-goals include creating a&amp;nbsp;full-on CMS.&amp;nbsp;I have no interest in trying to build something that competes directly with Orchard, and frankly I think Orchard&amp;#39;s real goals are already met with Umbraco which is a fantastic CMS. But Umbraco is nothing like WordPress, WP is really just a glorified blog engine. If anything, I want to compete a little bit with WordPress. And I do think I can compete with WordPress better than Orchard does; even though Orchard seems to be trying to do just that (compete with WordPress), its implementation goals are more in line with Umbraco and those goals are just not compatible because WordPress is a very focused kind of application with a very specific kind of content management.
&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;
And don&amp;#39;t worry, I don&amp;#39;t ever actually think I could ever literally compete with WordPress as if to produce something better. I for one strongly believe that it&amp;#39;s completely okay to go and build yet another mousetrap, even if mine is of lesser ideals compared to the status quo. There&amp;#39;s nothing wrong with doing that. People use what they want to use, and I don&amp;#39;t like the LAMP stack nor PHP all that much, otherwise I&amp;#39;d readily embrace WordPress. Then again, I&amp;#39;d probably still create my own WordPress after embracing WordPress, perhaps just like I am going to create my own BlogEngine.net after embracing BlogEngine.net.
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;iframe src="http://widgets.dzone.com/links/widgets/zoneit.html?t=2&amp;url=http://www.jondavis.net/techblog/post/2011/07/06/Changes-Are-Coming.aspx&amp;amp;title=Changes Are Coming" height="25" width="155" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/E9DibLxNWA3DeQzVU1_H0i7yke0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/E9DibLxNWA3DeQzVU1_H0i7yke0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/E9DibLxNWA3DeQzVU1_H0i7yke0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/E9DibLxNWA3DeQzVU1_H0i7yke0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/stimpy77/~4/h8t0Z445ae8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/stimpy77/~3/h8t0Z445ae8/post.aspx</link>
      <author>jon.nospam@nospam.jondavis.net (Jon)</author>
      <comments>http://www.jondavis.net/techblog/post/2011/07/06/Changes-Are-Coming.aspx#comment</comments>
      <guid isPermaLink="false">http://www.jondavis.net/techblog/post.aspx?id=93df7301-605b-4d82-ba41-e76115d2b31d</guid>
      <pubDate>Wed, 06 Jul 2011 23:30:00 -0700</pubDate>
      <category>ASP.NET</category>
      <category>Blog</category>
      <category>Pet Projects</category>
      <dc:publisher>Jon</dc:publisher>
      <pingback:server>http://www.jondavis.net/techblog/pingback.axd</pingback:server>
      <pingback:target>http://www.jondavis.net/techblog/post.aspx?id=93df7301-605b-4d82-ba41-e76115d2b31d</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.jondavis.net/techblog/trackback.axd?id=93df7301-605b-4d82-ba41-e76115d2b31d</trackback:ping>
      <wfw:comment>http://www.jondavis.net/techblog/post/2011/07/06/Changes-Are-Coming.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.jondavis.net/techblog/syndication.axd?post=93df7301-605b-4d82-ba41-e76115d2b31d</wfw:commentRss>
    <feedburner:origLink>http://www.jondavis.net/techblog/post.aspx?id=93df7301-605b-4d82-ba41-e76115d2b31d</feedburner:origLink></item>
    <item>
      <title>A Platform's People Must Be As Pliable As Its Tech</title>
      <description>&lt;p style="line-height: 12.75pt"&gt;
&lt;span style="font-size: 8.5pt; font-family: Verdana, sans-serif; color: #444444; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white"&gt;&lt;strike&gt;I haven&amp;#39;t blogged for a while because this blog
is still hosted on a server that hasn&amp;#39;t received payment since my payment
subscription ended over a month ago, and I don&amp;#39;t want to just set up the same
old blog software on the new host I&amp;#39;ve already arranged.&lt;/strike&gt;&lt;/span&gt;&lt;em&gt;&amp;nbsp;EDIT: Meh I&amp;#39;ve decided to build my own blogging/social engine and I&amp;#39;m doing this during my free time.&amp;nbsp;&lt;/em&gt;
&lt;/p&gt;
&lt;p style="line-height: 12.75pt"&gt;
&lt;span style="font-size: 8.5pt; font-family: Verdana, sans-serif; color: #444444; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white"&gt;So remember a while back I mentioned I&amp;#39;d move
this blog to Orchard?&lt;/span&gt;
&lt;/p&gt;
&lt;p style="line-height: 12.75pt"&gt;
&lt;span style="font-size: 8.5pt; font-family: Verdana, sans-serif; color: #444444; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white"&gt;It&amp;#39;s not that I haven&amp;#39;t gotten around to
setting up Orchard yet. It&amp;#39;s that I am having a huge amount of difficulty
embracing it. Besides the fact that it has an incredibly steep learning curve--and
then still v1.x level capability once the knowledge plateaus--there is
something critically wrong with Orchard that I&amp;#39;m still getting past, and that
is the size and attitude of its current community.&lt;/span&gt;
&lt;/p&gt;
&lt;p style="line-height: 12.75pt"&gt;
&lt;span style="font-size: 8.5pt; font-family: Verdana, sans-serif; color: #444444; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white"&gt;A&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif"&gt;good&lt;/span&gt;&lt;/em&gt;&amp;nbsp;blogging
platform--CMS, whatever you want to call it--will be &amp;quot;hackable&amp;quot; to
conform to the proprietary needs of its user. On the technical side, Orchard is
perfect for this because it is &amp;quot;just an ASP.NET MVC application&amp;quot;, and
they tout it as such, up until they actually see ASP.NET MVC developers
tackling and hacking it. And yes I can take Orchard&amp;#39;s source code and hack at
it to meet whatever requirements I have. Personally, I think that this is the
only real-world scenario for Orchard anyway simply because it&amp;#39;s still v1.x and
is still painfully lacking in feature detail.&lt;/span&gt;
&lt;/p&gt;
&lt;p style="line-height: 12.75pt"&gt;
&lt;span style="font-size: 8.5pt; font-family: Verdana, sans-serif; color: #444444; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white"&gt;But its community so far consists of a very
small handful of people, and several of them are paid--whether directly or
indirectly--by Microsoft. So there has proven to be a very large wedge between
those who actually know the platform inside and out and those who, like me, are
trying to learn the platform--very few who know the platform well from a
development standpoint but are just end users, because Orchard is still so
new--and the wedge between these two groups is not just one of knowledge but
also of culture and attitude. Those who are maintaining Orchard are insistent
that people stay in the box that Orchard constructs. This is so completely not
the attitude of a typical open source software developer. Most OSS developers see
breaking out of a prebuilt box--especially when the box is still a 1.x
&amp;quot;greenfield&amp;quot; project--as a huge and wonderful challenge worth
conquering. &amp;quot;Going rogue&amp;quot; with the platform is something that is
often embraced by a platform because it highlights the pliability of the
platform or else reveals opportunities for improvement.&lt;/span&gt;
&lt;/p&gt;
&lt;p style="line-height: 12.75pt"&gt;
&lt;span style="font-size: 8.5pt; font-family: Verdana, sans-serif; color: #444444; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white"&gt;And I&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif"&gt;would&lt;/span&gt;&lt;/em&gt;&amp;nbsp;play my part
in seeing this &amp;quot;box breakout&amp;quot; opportunity to be a challenge worth
conquering, but every time I sit down to continue to learn the platform and
understand its limitations and possibly some seam points I might introduce, I
have to ask myself,&lt;span class="apple-converted-space"&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif"&gt;What&amp;#39;s the payoff besides getting my
site set up the way I want it?&lt;/span&gt;&lt;/em&gt;&amp;nbsp;Because I&amp;#39;ll admit, my biggest
motivation to delve into Orchard is to be an expert in Orchard and to be a
useful participating member of its community, so this is not just an investment
in the technology but in the community.&lt;/span&gt;
&lt;/p&gt;
&lt;p style="line-height: 12.75pt"&gt;
&lt;span style="font-size: 8.5pt; font-family: Verdana, sans-serif; color: #444444; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white"&gt;So then I ask myself,&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif"&gt;is
the community worth investing in?&lt;/span&gt;&lt;/em&gt;&amp;nbsp;It is if I&amp;#39;m willing to be
the&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif"&gt;only&lt;/span&gt;&lt;/em&gt;&amp;nbsp;rogue participant trying to
figure out how to break out of the originally intended design and just use the
parts of it that I want to use but still ultimately have my own ASP.NET MVC
site with an Orchard back-end in certain places. But I&amp;#39;m not willing to be the
only rogue. So that leaves me looking like a jerk calling these guys
jerks, because they freak out at the notion of using Orchard in a way for
which it was not originally intended. (They&amp;#39;re not jerks, by the way, and
neither am I, I&amp;#39;m just saying it looks something like me being a jerke
calling them jerks because tensions rise and a lot of bickering occurs when
they can&amp;#39;t get past overall intentions and strategy while I&amp;#39;m trying to address
a specific technical scenario.)&lt;/span&gt;
&lt;/p&gt;
&lt;p style="line-height: 12.75pt"&gt;
&lt;span style="font-size: 8.5pt; font-family: Verdana, sans-serif; color: #444444; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white"&gt;So perhaps Orchard is not what I want to use,
I&amp;#39;m still unsure, and believe me I have pondered just writing my own blog
engine (again), but let me be clear: it is not because the Orchard technology
isn&amp;#39;t a good fit for me, rather it is because the people aren&amp;#39;t a good fit for
me. They are delivering a product that they think should be used as-is with
their own proprietary methods of extending and tweaking (rather than ASP.NET
MVC methods of extending and tweaking which again ASP.NET tweaks are in my
opinion completely appropriate) and they don&amp;#39;t want to help people twist it
around and see their hard work made &amp;quot;ugly&amp;quot; or for that matter
&amp;quot;insufficient&amp;quot;. It&amp;#39;s only human to be protective of your investment
and its public image, but it&amp;#39;s just not a realistic attitude to have when
you&amp;#39;re still a young 1.x platform less than a year old that still needs to
build up a strong community and documentation is still lacking.&lt;/span&gt;
&lt;/p&gt;
&lt;p style="line-height: 12.75pt"&gt;
&lt;span style="font-size: 8.5pt; font-family: Verdana, sans-serif; color: #444444; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white"&gt;Meanwhile, the more I look at WordPress the
more I like it. Its core technology isn&amp;#39;t much for an ASP.NET developer to look
at, but everything&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif"&gt;else&lt;/span&gt;&lt;/em&gt;&amp;nbsp;about
WordPress is really growing on me, I&amp;#39;m tempted to call it
&amp;quot;wonderful&amp;quot;. I could sit here and talk about WordPress&amp;#39;s
wonderfulness for some time but the reality is that everyone who would read
this tech blog already knows all about WordPress and if not then just&amp;nbsp;&lt;a href="http://www.wordpress.com/"&gt;&lt;span style="color: #5c80b1"&gt;go create a basic
WordPress blog yourself, it&amp;#39;s free&lt;/span&gt;&lt;/a&gt;.&lt;/span&gt;
&lt;/p&gt;
&lt;p style="line-height: 12.75pt"&gt;
&lt;span style="font-size: 8.5pt; font-family: Verdana, sans-serif; color: #444444; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white"&gt;In fact, I was working on setting up another
site for a friend this week and I used WordPress to do it, and after weeks of
frustrations with Orchard and its bland 1.x workflow I must confess that I
really just about lost it when I worked in WordPress, it is really just such a
nice experience. Granted, the site is actually just a plain-vanilla
WordPress.com site (not a Wordpress.org full deployment) so it&amp;#39;s not like I had
a lot of customizations I could do here that I wasn&amp;#39;t able to do or figure out
in Orchard, so much as the beautiful experience of working with WordPress
itself and the rich configurability of WordPress made the disappointment of
WP&amp;#39;s limited customization flexibility all just wash away.&lt;/span&gt;
&lt;/p&gt;
&lt;p style="line-height: 12.75pt"&gt;
&lt;span style="font-size: 8.5pt; font-family: Verdana, sans-serif; color: #444444; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white"&gt;I can&amp;#39;t see myself becoming a PHP programmer
consultant touting WordPress, I&amp;#39;ve had a couple false starts, but the notion
has been on the table for nearly a year now, and after trying (albeit not very
hard) to work with Orchard I don&amp;#39;t think I can get around it.&lt;/span&gt;
&lt;/p&gt;
&lt;p style="line-height: 12.75pt"&gt;
&lt;span style="font-size: 8.5pt; font-family: Verdana, sans-serif; color: #444444; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: white"&gt;The best part about WordPress is that it can
run in .NET using&amp;nbsp;&lt;a href="http://www.php-compiler.net/"&gt;&lt;span style="color: #5c80b1"&gt;Phalanger&lt;/span&gt;&lt;/a&gt;. And I&amp;#39;m seriously considering
toying with the idea of abandoning Orchard for WordPress-on-Phalanger-on-.NET.&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="color: #1f497d"&gt;&amp;nbsp;&lt;/span&gt;
&lt;/p&gt;
&lt;iframe src="http://widgets.dzone.com/links/widgets/zoneit.html?t=2&amp;url=http://www.jondavis.net/techblog/post/2011/06/18/A-Platforms-People-Must-Be-As-Pliable-As-Its-Tech.aspx&amp;amp;title=A Platform's People Must Be As Pliable As Its Tech" height="25" width="155" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/59FYaTt1PJbgr7p7ZJpE_JRFU5o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/59FYaTt1PJbgr7p7ZJpE_JRFU5o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/59FYaTt1PJbgr7p7ZJpE_JRFU5o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/59FYaTt1PJbgr7p7ZJpE_JRFU5o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/stimpy77/~4/ZHWTwhX-tU0" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/stimpy77/~3/ZHWTwhX-tU0/post.aspx</link>
      <author>jon.nospam@nospam.jondavis.net (Jon)</author>
      <comments>http://www.jondavis.net/techblog/post/2011/06/18/A-Platforms-People-Must-Be-As-Pliable-As-Its-Tech.aspx#comment</comments>
      <guid isPermaLink="false">http://www.jondavis.net/techblog/post.aspx?id=e3414ccd-5673-49bf-8ceb-90606daa6c25</guid>
      <pubDate>Sat, 18 Jun 2011 12:57:00 -0700</pubDate>
      <category>ASP.NET</category>
      <dc:publisher>Jon</dc:publisher>
      <pingback:server>http://www.jondavis.net/techblog/pingback.axd</pingback:server>
      <pingback:target>http://www.jondavis.net/techblog/post.aspx?id=e3414ccd-5673-49bf-8ceb-90606daa6c25</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.jondavis.net/techblog/trackback.axd?id=e3414ccd-5673-49bf-8ceb-90606daa6c25</trackback:ping>
      <wfw:comment>http://www.jondavis.net/techblog/post/2011/06/18/A-Platforms-People-Must-Be-As-Pliable-As-Its-Tech.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.jondavis.net/techblog/syndication.axd?post=e3414ccd-5673-49bf-8ceb-90606daa6c25</wfw:commentRss>
    <feedburner:origLink>http://www.jondavis.net/techblog/post.aspx?id=e3414ccd-5673-49bf-8ceb-90606daa6c25</feedburner:origLink></item>
    <item>
      <title>Re: Status Update</title>
      <description>&lt;p&gt;
No, really. I&amp;#39;ll migrate. Soon-ish. In the mean time as long as you see BlogEngine.net at the bottom of this site the migration is still pending.&amp;nbsp;The down time during migration will likely consume a few days, so I&amp;#39;m not upset about the delays. :) The delays, not to mention the absence of blog posts over the last few months, are caused by recent changes in my life and career; I just haven&amp;#39;t had time to make it happen just yet. I&amp;#39;m certain that migrating my data to Orchard will not be too hard.. fer Shirley ..
&lt;/p&gt;
&lt;iframe src="http://widgets.dzone.com/links/widgets/zoneit.html?t=2&amp;url=http://www.jondavis.net/techblog/post/2011/05/27/Re-Status-Update.aspx&amp;amp;title=Re: Status Update" height="25" width="155" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_xVHyOsB0zjCGKos7-KjMySPZmQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_xVHyOsB0zjCGKos7-KjMySPZmQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_xVHyOsB0zjCGKos7-KjMySPZmQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_xVHyOsB0zjCGKos7-KjMySPZmQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/stimpy77/~4/BMvHDVcqOG8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/stimpy77/~3/BMvHDVcqOG8/post.aspx</link>
      <author>jon.nospam@nospam.jondavis.net (Jon)</author>
      <comments>http://www.jondavis.net/techblog/post/2011/05/27/Re-Status-Update.aspx#comment</comments>
      <guid isPermaLink="false">http://www.jondavis.net/techblog/post.aspx?id=ba6d82bd-6cb4-4082-9065-95b0216af451</guid>
      <pubDate>Fri, 27 May 2011 20:50:00 -0700</pubDate>
      <category>Blog</category>
      <dc:publisher>Jon</dc:publisher>
      <pingback:server>http://www.jondavis.net/techblog/pingback.axd</pingback:server>
      <pingback:target>http://www.jondavis.net/techblog/post.aspx?id=ba6d82bd-6cb4-4082-9065-95b0216af451</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.jondavis.net/techblog/trackback.axd?id=ba6d82bd-6cb4-4082-9065-95b0216af451</trackback:ping>
      <wfw:comment>http://www.jondavis.net/techblog/post/2011/05/27/Re-Status-Update.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.jondavis.net/techblog/syndication.axd?post=ba6d82bd-6cb4-4082-9065-95b0216af451</wfw:commentRss>
    <feedburner:origLink>http://www.jondavis.net/techblog/post.aspx?id=ba6d82bd-6cb4-4082-9065-95b0216af451</feedburner:origLink></item>
    <item>
      <title>Status Update</title>
      <description>&lt;p&gt;
Greetings to the free people of Earth.
&lt;/p&gt;
&lt;p&gt;
I am just posting another quick status update. First of all, I am employed again; this means I am no longer performing independent consulting services &amp;quot;full-time&amp;quot;.
&lt;/p&gt;
&lt;p&gt;
Second, I will be migrating my technical blog to the &lt;a href="http://www.orchardproject.net/" title="Orchard Project"&gt;Orchard&lt;/a&gt; platform eventually, and I will also be moving my entire web site and all of my other sites offline temporarily as I migrate hosts. 
Expect a long-term web site&amp;nbsp;outage at &lt;a href="http://www.jondavis.net"&gt;www.jondavis.net&lt;/a&gt; shortly.
&lt;/p&gt;
&lt;p&gt;
That is all. Get back to work, my minions ...
&lt;/p&gt;
&lt;iframe src="http://widgets.dzone.com/links/widgets/zoneit.html?t=2&amp;url=http://www.jondavis.net/techblog/post/2011/05/13/Status-Update.aspx&amp;amp;title=Status Update" height="25" width="155" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gOAHAKYBrJwj_-07UvrIkNBcvbc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gOAHAKYBrJwj_-07UvrIkNBcvbc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gOAHAKYBrJwj_-07UvrIkNBcvbc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gOAHAKYBrJwj_-07UvrIkNBcvbc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/stimpy77/~4/sUzwzyWcEVA" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/stimpy77/~3/sUzwzyWcEVA/post.aspx</link>
      <author>jon.nospam@nospam.jondavis.net (Jon)</author>
      <comments>http://www.jondavis.net/techblog/post/2011/05/13/Status-Update.aspx#comment</comments>
      <guid isPermaLink="false">http://www.jondavis.net/techblog/post.aspx?id=2c29e1d8-12ce-43c7-a800-cc19b86c5c3e</guid>
      <pubDate>Fri, 13 May 2011 13:07:00 -0700</pubDate>
      <category>Blog</category>
      <dc:publisher>Jon</dc:publisher>
      <pingback:server>http://www.jondavis.net/techblog/pingback.axd</pingback:server>
      <pingback:target>http://www.jondavis.net/techblog/post.aspx?id=2c29e1d8-12ce-43c7-a800-cc19b86c5c3e</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.jondavis.net/techblog/trackback.axd?id=2c29e1d8-12ce-43c7-a800-cc19b86c5c3e</trackback:ping>
      <wfw:comment>http://www.jondavis.net/techblog/post/2011/05/13/Status-Update.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.jondavis.net/techblog/syndication.axd?post=2c29e1d8-12ce-43c7-a800-cc19b86c5c3e</wfw:commentRss>
    <feedburner:origLink>http://www.jondavis.net/techblog/post.aspx?id=2c29e1d8-12ce-43c7-a800-cc19b86c5c3e</feedburner:origLink></item>
    <item>
      <title>TCP proxying on Linux</title>
      <description>&lt;p&gt;
Several months ago I cobbled together&amp;nbsp;&lt;a href="http://portrerouter.codeplex.com/"&gt;a port-modified TCP proxy that runs on the .NET CLR&lt;/a&gt;. My intention was to make this usable both in Windows and on *nix systems with Mono. I haven&amp;#39;t used it much, though, certainly not in commercial production apps.
&lt;/p&gt;
&lt;p&gt;
However, it appears that *nix already has a couple solutions already in place:
&lt;/p&gt;
&lt;p&gt;
iptables:&amp;nbsp;&lt;a href="http://www.debian-administration.org/articles/595"&gt;http://www.debian-administration.org/articles/595&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Perl:&amp;nbsp;&lt;a href="http://search.cpan.org/~acg/tcpforward-0.01/tcpforward"&gt;http://search.cpan.org/~acg/tcpforward-0.01/tcpforward&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
There&amp;#39;s also SSH tunneling, which is interesting.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.revsys.com/writings/quicktips/ssh-tunnel.html"&gt;http://www.revsys.com/writings/quicktips/ssh-tunnel.html&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.stunnel.org/"&gt;http://www.stunnel.org/&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
I&amp;#39;m just short of content, however. As a future change I wanted, and still want, to detect HTTP traffic and to hijack the HTTP headers with an insertion of a custom HTTP header indicating the source IP address. I had done this previously using Apache&amp;#39;s proxy but I was hoping to make HTTP detected rather than assumed. I&amp;#39;ll see if I ever get around to it.
&lt;/p&gt;
&lt;iframe src="http://widgets.dzone.com/links/widgets/zoneit.html?t=2&amp;url=http://www.jondavis.net/techblog/post/2011/04/28/TCP-proxying-on-Linux.aspx&amp;amp;title=TCP proxying on Linux" height="25" width="155" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HOtT1kdW5K2ap-jK8Q1_Jrvnk_4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HOtT1kdW5K2ap-jK8Q1_Jrvnk_4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HOtT1kdW5K2ap-jK8Q1_Jrvnk_4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HOtT1kdW5K2ap-jK8Q1_Jrvnk_4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/stimpy77/~4/MU9CyBzymsU" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/stimpy77/~3/MU9CyBzymsU/post.aspx</link>
      <author>jon.nospam@nospam.jondavis.net (Jon)</author>
      <comments>http://www.jondavis.net/techblog/post/2011/04/28/TCP-proxying-on-Linux.aspx#comment</comments>
      <guid isPermaLink="false">http://www.jondavis.net/techblog/post.aspx?id=524e6f81-0a64-43f8-a526-f230f9f317d9</guid>
      <pubDate>Thu, 28 Apr 2011 10:59:00 -0700</pubDate>
      <category>Linux</category>
      <category>Mono</category>
      <category>Pet Projects</category>
      <category>TCP/IP</category>
      <dc:publisher>Jon</dc:publisher>
      <pingback:server>http://www.jondavis.net/techblog/pingback.axd</pingback:server>
      <pingback:target>http://www.jondavis.net/techblog/post.aspx?id=524e6f81-0a64-43f8-a526-f230f9f317d9</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.jondavis.net/techblog/trackback.axd?id=524e6f81-0a64-43f8-a526-f230f9f317d9</trackback:ping>
      <wfw:comment>http://www.jondavis.net/techblog/post/2011/04/28/TCP-proxying-on-Linux.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.jondavis.net/techblog/syndication.axd?post=524e6f81-0a64-43f8-a526-f230f9f317d9</wfw:commentRss>
    <feedburner:origLink>http://www.jondavis.net/techblog/post.aspx?id=524e6f81-0a64-43f8-a526-f230f9f317d9</feedburner:origLink></item>
    <item>
      <title>HTML5 Boilerplate Visual Studio 2010 Template</title>
      <description>&lt;p&gt;So a month or two ago I was hanging out in the jQuery IRC channel on Freenode trying to sort out what was going on with the jQuery team’s support for jQuery Templates, when in enters Paul Irish. Various members of the channel congratulate Paul for his “boilerplate release”. I didn’t know who Paul Irish is nor what this “boilerplate” was. After a couple more minutes I discovered what was going on: &lt;a href="http://html5boilerplate.com/"&gt;http://html5boilerplate.com/&lt;/a&gt; is what was going on.&lt;/p&gt;  &lt;p&gt;HTML5 Boilerplate is, well, an HTML 5 boilerplate, that does a number of things. Among them, ..&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;It provides a baseline HTML 5 markup and CSS skeleton that performs a CSS reset and readies the browsers for clean design. &lt;/li&gt;    &lt;li&gt;It encapsulates the Internet Explorer versioning discrepancies by using CSS classifications instead of disparate CSS files. &lt;/li&gt;    &lt;li&gt;It readies a web site to be hyper-optimized using post-build minifications of script and CSS files and by optimizing all PNG files. &lt;/li&gt;    &lt;li&gt;It sets appropriate placeholders for a few expected files for a web site that are often forgotten, including robots.txt, crossdomain.xml, favicon.ico, and a custom 404 page. &lt;/li&gt;    &lt;li&gt;It adds PNG support to IE6 via script. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I told Paul that someone should produce a Visual Studio template based on this. He pointed me to a URL of one such template. I tried to use it, but, alas, it was doing some [completely unnecessary, I might add] OpenID stuff based on an unreleased beta version of a .NET assembly that didn’t work on my machine. So I abandoned this “solution” and walked away.&lt;/p&gt;  &lt;p&gt;Yesterday I pulled up the Extension Gallery in Visual Studio and found the same solution plus another one just like it. Both of them were mixing in OpenID support with the HTML5 Boilerplate. The new one also has the obnoxious name prefix “MotherEffin ..”. &lt;/p&gt;  &lt;p&gt;I will refrain from ranting about the unnecessary pooling of disparate components that can easily be installed with &lt;a href="http://www.nuget.org/" target="_blank"&gt;NuGet&lt;/a&gt; (or otherwise developed and deployed via NuGet). All I wanted was a clean ASP.NET MVC 3 template with the clean HTML 5 Boilerplate. Is that too much to ask?&lt;/p&gt;  &lt;p&gt;Neither of these, to my knowledge, performed any post-build optimizations, either, which was kind of the most important part.&lt;/p&gt;  &lt;p&gt;So I created one myself. It is based on the &lt;a href="http://www.asp.net/mvc/mvc3" target="_blank"&gt;MVC 3 Refresh (v3.01)&lt;/a&gt; + &lt;a href="http://go.microsoft.com/fwlink/?LinkId=209902" target="_blank"&gt;VS Service Pack 1&lt;/a&gt;. It does move away from Paul’s design somewhat to make it more ASP.NET MVC-like in structure. It performs post-build optimization of scripts and of CSS files using &lt;a href="http://ajaxmin.codeplex.com/" target="_blank"&gt;Microsoft’s Ajax Minifier&lt;/a&gt; instead of &lt;a href="http://developer.yahoo.com/yui/compressor/" target="_blank"&gt;YUI Compressor&lt;/a&gt; (only to eliminate the Java/non-.NET dependency; you can always restore any minifier you like). Unfortunately, I was unable to invoke NuGet to reinstall the Entity Framework 4.1 and other dependencies, so users of this template will have to manually install those; these are normally auto-installed with ASP.NET MVC 3.01 (Refresh) projects but Microsoft has not yet documented their method of doing so. Best I could find was &lt;a href="http://stackoverflow.com/questions/5023049/create-a-project-template-that-retrieve-references-from-a-repository" target="_blank"&gt;this&lt;/a&gt; which wasn’t sufficiently descriptive.&lt;/p&gt;  &lt;p&gt;One more thing. I’m certain I left some stuff out! That ant build script (build.xml) had plenty going on. There is certainly no HTML minification in my implementation.&lt;/p&gt;  &lt;p&gt;Anyway, I did this in one evening and this is the first version of this template (think v0.1).&lt;/p&gt;  &lt;p&gt;Here it is, for your enjoyment; put it in C:\Users\&lt;em&gt;{username}&lt;/em&gt;\Documents\Visual Studio 2010\Templates\ProjectTemplates\Visual Web Developer\Web\.     &lt;br /&gt;That last \Web\ directory may not exist, just create it.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.jondavis.net/codeprojects/html5boilerplatevstemplate/HTML5BoilerplateMvc3WebAppClean.zip"&gt;http://www.jondavis.net/codeprojects/html5boilerplatevstemplate/HTML5BoilerplateMvc3WebAppClean.zip&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It’ll be the among the Web project templates in “File”-&amp;gt;”New”-&amp;gt;”Project...” alongside the usual ASP.NET MVC 3 bits. Be sure to select .NET Framework 4.0.&lt;/p&gt;  &lt;p&gt;Here’s the source. &lt;a href="https://github.com/stimpy77/Html5BoilerplateVisualStudioMvc301Template"&gt;https://github.com/stimpy77/Html5BoilerplateVisualStudioMvc301Template&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If enough people like it I’ll get it packaged and posted on the VS Extensions gallery.&lt;/p&gt;  &lt;p&gt;Cheers.&lt;/p&gt;  &lt;p&gt;&lt;iframe src="http://widgets.dzone.com/links/widgets/zoneit.html?t=2&amp;url=http://www.jondavis.net/techblog/post/2011/04/24/HTML5-Boilerplate-Visual-Studio-2010-Template.aspx&amp;amp;title=HTML5 Boilerplate Visual Studio 2010 Template" height="25" width="155" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt; &lt;div class="kick"&gt;&lt;a target="_blank" href="http://www.dotnetkicks.com/kick/?url=http://www.jondavis.net/techblog/post/2011/04/24/HTML5-Boilerplate-Visual-Studio-2010-Template.aspx&amp;amp;title=HTML5 Boilerplate Visual Studio 2010 Template"&gt;
                    &lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://www.jondavis.net/techblog/post/2011/04/24/HTML5-Boilerplate-Visual-Studio-2010-Template.aspx&amp;fgcolor=ccc&amp;bgcolor=143D55&amp;cfgcolor=ccc&amp;cbgcolor=D25E26" border="0" alt="kick it on DotNetKicks.com" /&gt;
                  &lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/87X7EK3yw68Xhk_IP_lh3n6V7Qo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/87X7EK3yw68Xhk_IP_lh3n6V7Qo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/87X7EK3yw68Xhk_IP_lh3n6V7Qo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/87X7EK3yw68Xhk_IP_lh3n6V7Qo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/stimpy77/~4/nx4nhxKqvMg" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/stimpy77/~3/nx4nhxKqvMg/post.aspx</link>
      <author>jon.nospam@nospam.jondavis.net (Jon)</author>
      <comments>http://www.jondavis.net/techblog/post/2011/04/24/HTML5-Boilerplate-Visual-Studio-2010-Template.aspx#comment</comments>
      <guid isPermaLink="false">http://www.jondavis.net/techblog/post.aspx?id=a1be11a6-5ed9-4cdb-9014-95fa5205de87</guid>
      <pubDate>Sun, 24 Apr 2011 09:38:20 -0700</pubDate>
      <dc:publisher>Jon</dc:publisher>
      <pingback:server>http://www.jondavis.net/techblog/pingback.axd</pingback:server>
      <pingback:target>http://www.jondavis.net/techblog/post.aspx?id=a1be11a6-5ed9-4cdb-9014-95fa5205de87</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.jondavis.net/techblog/trackback.axd?id=a1be11a6-5ed9-4cdb-9014-95fa5205de87</trackback:ping>
      <wfw:comment>http://www.jondavis.net/techblog/post/2011/04/24/HTML5-Boilerplate-Visual-Studio-2010-Template.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.jondavis.net/techblog/syndication.axd?post=a1be11a6-5ed9-4cdb-9014-95fa5205de87</wfw:commentRss>
    <feedburner:origLink>http://www.jondavis.net/techblog/post.aspx?id=a1be11a6-5ed9-4cdb-9014-95fa5205de87</feedburner:origLink></item>
    <item>
      <title>Going MacBook Air, Keeping My Toshiba (For Now), Selling My ExoPC</title>
      <description>&lt;p&gt;I’ve been looking for a reasonable replacement for &lt;a href="http://www.jondavis.net/techblog/post/2007/08/24/Pimping-Out-My-Satellite.aspx"&gt;my huge Toshiba Satellite laptop&lt;/a&gt; for a couple years now. It’s been such an awesome gargantuan workstation all these years (since 2007), &lt;a href="http://www.jondavis.net/techblog/post/2007/08/24/Pimping-Out-My-Satellite.aspx"&gt;costing me nearly $3,500 after all the upgrades I’ve put into it&lt;/a&gt; including memory and multiple hard drive replacements, ending up finally with SSD. But it’s still a lap-cooking elephant. Half the times I show up in any developer user group setting, someone has to comment about how huge my laptop is. I honestly don’t like that attention, not on laptop size specifically. &lt;/p&gt;  &lt;p&gt;On the other hand, I really need the resolution of my big Toshiba’s display. At 1680x1050 I couldn’t ask for a more perfect resolution. All of the other laptops out there, even the “nice” ones, have horribly crappy low resolution of so-called “HD” at 1366x768. Pleeze!! I get it, I understand that mom &amp;amp; pop and other laymen look at higher resolutions and wince at how small everything is on high resolution laptop displays. I AM NOT A FREAKING LAYMAN. I need room for coding windows, toolbars, Solution Explorer, etc. Yet none of the laptop manufacturers are producing professional-grade laptops anymore. Indeed, it seems like laptop displays have been &lt;em&gt;shrinking&lt;/em&gt; their resolutions over the years, and high resolution displays are as expensive now as they were a decade ago.&lt;/p&gt;  &lt;p&gt;This brings me to the &lt;a href="http://www.apple.com/macbookair/"&gt;Apple MacBook Air&lt;/a&gt;, with the latest refresh from October 2010. With a resolution of 1440x900 but only 13 inches, it seems to be perfect for my needs. It meets the “stop hauling an elephant!” requirement, while at the same time offering a reasonable screen resolution and adequate performance. The tested performance and resolution of the latest MacBook Air 13-inch laptop compare to that of the previous iteration of MacBook Pro 15-inchers. Powerful enough for some serious development and capable enough for everyday needs, I might even end up letting go of my Toshiba laptop, we’ll see. But the MacBook Air comes in place of getting a MacBook Pro..&lt;/p&gt;  &lt;p&gt;.. Because speaking of &lt;a href="http://www.apple.com/macbookpro/"&gt;MacBook Pro&lt;/a&gt;, what a JOKE the latest refresh is! I waited months for Apple to refresh their MacBook Pro line, with great anxiousness once Air got its refresh, and now that the refreshed Pro laptops are out there I’m totally thinking, what is this crap?? Oh yaaaay, yet another new proprietary connector (“Thunderbolt”) delivered exclusively from Apple, yeah right, that’s precisely what I need. Not! At only twice the bandwidth of USB 3 and zilch of the compatibility of the USB and Firewire standards, there is really no value in that “upgrade”. As for performance and screen resolution, which are really all I was hoping for in the Pro line refresh, there is &lt;em&gt;nothing special&lt;/em&gt; about the Pro line versus the MacBook Air. No resolution upgrades and hardly any performance boosts. So Air it is.&lt;/p&gt;  &lt;p&gt;Getting a Mac laptop also gives Mac OS X another chance to win me over for Mac-oriented software and web development. I previously bought a Mac Mini to learn iPhone development, but I couldn’t take my back room home office with me to the coffee shop nor to my living room, so it ultimately never worked out. If I have a highly portable Mac with me, though, and a sufficiently powerful one at that, I might actually be able to pick up Obj-C as well as some of the OS-neutral development technologies that I’m still pretty weak in such as RoR, PHP, etc. I’m actually really hoping for this; I’m pretty tired of all the cool people hating on my platform of choice (C#/.NET) as they tote their Mac laptops around. And I think I’d love the camaraderie of their acquaintance.&lt;/p&gt;  &lt;p&gt;The Air laptop has yet to arrive but I just got an e-mail that it has shipped. Yay! This comes after literally one or two years of attempting to get something that might stand a chance of deprecating my 2007 model Toshiba, including&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;a consumer-grade ($699) Toshiba laptop purchase, which I hated because of its low screen resolution and crappy trackpad buttons, &lt;/li&gt;    &lt;li&gt;a maxed-out Dell Studio 17, which Dell delayed and delayed and delayed some more until I cancelled my order two months later, and &lt;/li&gt;    &lt;li&gt;a maxed-out Dell XPS 17, which I ordered a year later, which Dell themselves cancelled &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I also considered (but ultimately I declined)&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;the &lt;a href="http://us.toshiba.com/computers/laptops/qosmio"&gt;Toshiba Qosmio&lt;/a&gt;, which is yet another elephant with its 18.4 inch display (yikes), and no smaller sizes with that screen resolution available (stupid) &lt;/li&gt;    &lt;li&gt;one of the &lt;a href="http://www.alienware.com/Landings/promotions.aspx?~ck=mn"&gt;Alienware laptops&lt;/a&gt;, which are expensive (paying for plastic) and have a &lt;em&gt;really&lt;/em&gt; stupid-looking appearance of a dorky computer game and not something I’d like to be seen in public with &lt;/li&gt;    &lt;li&gt;an Asus gaming laptop, but with so many models coming out every &lt;em&gt;month&lt;/em&gt;, there were also always too many compromises, for example if it had optical media and high resolution then I wanted Blu-Ray, but Blu-ray only came in 17-inch elephant models or else low-resolution “HD” displays (1366x768) &lt;/li&gt;    &lt;li&gt;a &lt;a href="http://www.dell.com/us/business/p/precision-laptops"&gt;Dell Precision Mobile Workstation&lt;/a&gt;, but as nice as they are, once all upgrades (RAM etc) are selected they’re way more expensive than MacBook Pros, with not much better specs, and they come from Dell which screwed up both my previous attempts at ordering a laptop so no thanks &lt;/li&gt;    &lt;li&gt;an &lt;a href="http://www.shopping.hp.com/webapp/shopping/series_can.do?storeName=computer_store&amp;amp;landing=notebooks&amp;amp;a1=Category&amp;amp;v1=ENVY"&gt;HP Envy&lt;/a&gt;, .. which, well, .. is fairly nice, but comes at a price and specs that almost compete with MacBook Pro but doesn’t support Mac OS X .. came real close to winning me over, though &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;These things said and done, I am also finally &lt;a href="http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&amp;amp;item=180632587726&amp;amp;ssPageName=STRK:MESELX:IT#ht_600wt_1139"&gt;selling my ExoPC on eBay&lt;/a&gt;. It’s now or never; the major computer manufacturers are all getting in on the Tablet form factor now, so competition is gonna get fierce. Selling this will help cover some of the brunt cost of getting the MacBook Air .. by letting me pay the electricity bill so that I can plug the Air in. ;) &lt;/p&gt;  &lt;p&gt;Meanwhile I’ll keep the Toshiba laptop. Despite its occasionally unresponsive keyboard, huge size, and hot underside, it’s still a fantastic computer even for today’s standards—I can even play Starcraft 2 on it! But the day may come in a few months when I have so well adapted to the MacBook Air that I don’t need the Toshiba any longer.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/aLnD7QkyaPr6-b5cWyfbucm6hMM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aLnD7QkyaPr6-b5cWyfbucm6hMM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/aLnD7QkyaPr6-b5cWyfbucm6hMM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aLnD7QkyaPr6-b5cWyfbucm6hMM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/stimpy77/~4/fLIwvvh6EvE" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/stimpy77/~3/fLIwvvh6EvE/post.aspx</link>
      <author>jon.nospam@nospam.jondavis.net (Jon)</author>
      <comments>http://www.jondavis.net/techblog/post/2011/02/27/Going-MacBook-Air-Keeping-My-Toshiba-Selling-My-ExoPC.aspx#comment</comments>
      <guid isPermaLink="false">http://www.jondavis.net/techblog/post.aspx?id=025dbaf8-f887-42ea-b737-afa5936f3f56</guid>
      <pubDate>Sun, 27 Feb 2011 08:46:50 -0700</pubDate>
      <dc:publisher>Jon</dc:publisher>
      <pingback:server>http://www.jondavis.net/techblog/pingback.axd</pingback:server>
      <pingback:target>http://www.jondavis.net/techblog/post.aspx?id=025dbaf8-f887-42ea-b737-afa5936f3f56</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.jondavis.net/techblog/trackback.axd?id=025dbaf8-f887-42ea-b737-afa5936f3f56</trackback:ping>
      <wfw:comment>http://www.jondavis.net/techblog/post/2011/02/27/Going-MacBook-Air-Keeping-My-Toshiba-Selling-My-ExoPC.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.jondavis.net/techblog/syndication.axd?post=025dbaf8-f887-42ea-b737-afa5936f3f56</wfw:commentRss>
    <feedburner:origLink>http://www.jondavis.net/techblog/post.aspx?id=025dbaf8-f887-42ea-b737-afa5936f3f56</feedburner:origLink></item>
    <item>
      <title>Quick December 2010 Update</title>
      <description>&lt;p&gt;I hope everyone had a great Christmas. I just thought I should post a quick note indicating what I’ve been up to lately.&lt;/p&gt;  &lt;p&gt;Among other things I am back in independent consulting and subcontracting for software and web development. I enjoyed my previous job and I feel I did my team good—I know the team did me good!—but it was an obvious no-brainer to move on when I did (this was back in September/October), everything fell into place perfectly and it was a satisfying transition on all sides when I resigned. So far I think it was the best decision of my life. I am more naturally a consultant than a yes-man grunt, and yet I am a night owl and see no practical reason to keep myself from doing what I do best at the hours I am most productive—which can sometimes be in the middle of the night on my sofa with my laptop! (That said, I got way less done this Christmas weekend than I planned. Oops.)&lt;/p&gt;  &lt;p&gt;Current technical areas of interest and/or focus lately are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://lucene.apache.org/lucene.net/"&gt;Lucene.net&lt;/a&gt; – Yeah I’m looking at it again, and from what I understand it’s currently &lt;a href="http://www.gossamer-threads.com/lists/lucene/general/113252"&gt;undergoing a “come-to-Jesus” situation&lt;/a&gt; with Apache Foundation. &lt;a href="http://codeclimber.net.nz/archive/2010/11/11/What-happened-to-Lucene-Net-It-got-forked.aspx"&gt;One or more of the forks&lt;/a&gt;&amp;#160; [&lt;a href="http://lucere.codeplex.com/"&gt;1&lt;/a&gt;, &lt;a href="http://aimee.codeplex.com/"&gt;2&lt;/a&gt;] may end up taking its place as the better Lucene implementation for .NET. But it’s still bread-and-butter for high performance text-based indexing / textual entity matching / content searching.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.nopcommerce.com/"&gt;nopCommerce&lt;/a&gt; – This particular e-commerce project has been good at staying up-to-date with modern technical standards. Although it gets some heat for being heavily refactored frequently, the advantage is that you can pick this thing up and know that you’re using a modern codebase—currently Entity Framework and ASP.NET Web Forms 4.0, soon to be refactored into ASP.NET MVC 3.0. I’d definitely prefer that over some old codebase that only fixed bugs after v1.0 rather than constantly evolve to modern standards; this is where I begin to disagree with some whiners about .NET who migrate to open source, I see nothing wrong with rewriting an old codebase to something more modern, so long as the people who experienced the pains of lessons learned are still around to reimplement.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.orchardproject.net/"&gt;Orchard Project&lt;/a&gt; – As WordPress has grown exponentially in popularity over the last year, I had been seriously considering creating a .NET equivalent of WordPress (core plus extensibility), but Orchard Project meets this goal of WordPress core-plus-extensibility equivalence and pretty much every requirement I wanted to pursue in my own implementation, including the new Razor view engine for ASP.NET MVC 3.0. I have every intention of delving deep into this project’s codebase.&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;I also &lt;a href="http://orchard.codeplex.com/Thread/View.aspx?ThreadId=239629"&gt;took the initiative and registered an IRC chat channel for Orchard&lt;/a&gt;—#orchard on Freenode, find me as stimpy77—a channel had been asked for but not created and after months went by I decided to just register the channel myself. &lt;/li&gt;      &lt;li&gt;Finally, I’m going to present a session on this project in March at a local .NET user group in Chandler.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Facebook – In case you’ve been living under a rock, Facebook is the most popular web site on the planet at the moment. If Google’s data was social network data, they’d be Facebook. It’s that big. Facebook also has a lot of integration points. The SDK I’m using at the moment is the one at &lt;a href="http://facebooksdk.codeplex.com/"&gt;http://facebooksdk.codeplex.com/&lt;/a&gt;. This as opposed to the Facebook Developer Toolkit (&lt;a href="http://facebooktoolkit.codeplex.com/"&gt;http://facebooktoolkit.codeplex.com/&lt;/a&gt;). Facebook SDK rather takes advantage of C# 4.0’s dynamic keyword so that the maintainers of the SDK don’t have to have a one-to-one property mapping for every entity documented; Facebook’s API changes far too often to be able to keep up with these changes reliably, so the SDK relies on simple deserialized JSON as dynamic object graphs that can be accessed with minimal code. For me as a .NET developer, it kind of makes haughty dynamic languages’ implementations of Facebook APIs look rather irrelevant.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I’d love to add a lot more to the list but the fact is that I, like many others in the .NET community, have been really quite overwhelmed by all the goings on in 2010 what with Windows 7, Visual Studio 2010, ASP.NET MVC 2.0 and now 3.0, and so on, and have been glad I’ve been able to keep up as far as I have. I still have a ton of catching up to do, though.&lt;/p&gt;  &lt;p&gt;Cheers to the New Year 2011!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SiZWA4bneBWy4ZxaXiD7hSm1_W8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SiZWA4bneBWy4ZxaXiD7hSm1_W8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SiZWA4bneBWy4ZxaXiD7hSm1_W8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SiZWA4bneBWy4ZxaXiD7hSm1_W8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/stimpy77/~4/H-z35ClZv54" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/stimpy77/~3/H-z35ClZv54/post.aspx</link>
      <author>jon.nospam@nospam.jondavis.net (Jon)</author>
      <comments>http://www.jondavis.net/techblog/post/2010/12/27/Quick-December-2010-Update.aspx#comment</comments>
      <guid isPermaLink="false">http://www.jondavis.net/techblog/post.aspx?id=d1a2da60-1895-4cf0-b02f-79931ec5786d</guid>
      <pubDate>Mon, 27 Dec 2010 06:20:44 -0700</pubDate>
      <dc:publisher>Jon</dc:publisher>
      <pingback:server>http://www.jondavis.net/techblog/pingback.axd</pingback:server>
      <pingback:target>http://www.jondavis.net/techblog/post.aspx?id=d1a2da60-1895-4cf0-b02f-79931ec5786d</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.jondavis.net/techblog/trackback.axd?id=d1a2da60-1895-4cf0-b02f-79931ec5786d</trackback:ping>
      <wfw:comment>http://www.jondavis.net/techblog/post/2010/12/27/Quick-December-2010-Update.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.jondavis.net/techblog/syndication.axd?post=d1a2da60-1895-4cf0-b02f-79931ec5786d</wfw:commentRss>
    <feedburner:origLink>http://www.jondavis.net/techblog/post.aspx?id=d1a2da60-1895-4cf0-b02f-79931ec5786d</feedburner:origLink></item>
  </channel>
</rss>

