<link rel="canonical" href="http://markblog.harr.us/" />
<meta http-equiv="refresh" content="30;url=http://markblog.harr.us/" />
<?xml version='1.0' encoding='ISO-8859-1'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5515156</id><updated>2010-08-28T16:43:10.581-04:00</updated><title type='text'>Mark's Stuff</title><subtitle type='html'>My Foray Into Weblogging.  Using this to store interesting items for later review.</subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/default.htm'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default?start-index=26&amp;max-results=25'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.harr.us/markblog/atom.xml'/><author><name>Mark Harr</name><uri>http://www.blogger.com/profile/05383352780900957345</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>181</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5515156.post-5312563895545596010</id><published>2010-08-28T16:43:00.001-04:00</published><updated>2010-08-28T16:43:10.651-04:00</updated><title type='text'>This blog has moved</title><content type='html'>&lt;br /&gt;       This blog is now located at http://markblog.harr.us/.&lt;br /&gt;       You will be automatically redirected in 30 seconds, or you may click &lt;a href='http://markblog.harr.us/'&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;       For feed subscribers, please update your feed subscriptions to&lt;br /&gt;       http://markblog.harr.us/feeds/posts/default.&lt;br /&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-5312563895545596010?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/5312563895545596010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=5312563895545596010' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/5312563895545596010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/5312563895545596010'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2010/08/this-blog-has-moved.html' title='This blog has moved'/><author><name>Mark Harr</name><uri>http://www.blogger.com/profile/05383352780900957345</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03324120210997444043'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-7865990620558179129</id><published>2009-12-03T10:30:00.005-05:00</published><updated>2009-12-03T10:36:38.756-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Dev'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>"Three screens and the cloud"</title><content type='html'>Interesting blog article from Keith Elder about information from PDC 2009:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://keithelder.net/blog/archive/2009/11/30/.net-4.0-start-reading-between-the-lines-ndash-learn.aspx"&gt;.Net 4.0 - Start Reading Between the Lines ? Learn Silverlight and Entity Framework&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Here's a quote: "Three screens and the cloud"&lt;br /&gt;&lt;br /&gt;We heard this over and over at PDC. Let's read between the lines a bit shall we?&lt;br /&gt;&lt;br /&gt;I have three screens: Windows Desktop, Web, Mobile. Ok, if I want to write an app that will run on all three what do I as a developer have to do today? Let?s see, well, we could write a ClickOnce deployed Smart Client for the Desktop that uses WPF. For the web, well, we would have to switch gears completely and rewrite our app in Asp.Net or Asp.Net MVC to get that screen. For mobile, even tougher, we have to rewrite the app again to get the mobile version. Let?s think about this differently again. Think about it, how many technologies would a developer have to know in order to an application for these three different screens; WPF, JavaScript, HTML, and CSS will be used just to name a few.&lt;br /&gt;&lt;br /&gt;Now, let's switch gears. What if I used Silverlight 4 to write my app? Well, it could work in the browser no doubt. Hmmm, it could also work on the Desktop using the out of browser experience with elevated permissions. What about mobile?&lt;br /&gt;&lt;br /&gt;"Wait, didn?t you just say Keith that at Mix we?ll get to see Windows Mobile 7?"&lt;br /&gt;&lt;br /&gt;Yes!&lt;br /&gt;&lt;br /&gt;"And hasn't there already been talk of using Silverlight for mobile?"&lt;br /&gt;&lt;br /&gt;Yes!&lt;br /&gt;&lt;br /&gt;"Aha! Three screens with Silverlight, I get it!"&lt;br /&gt;&lt;br /&gt;That's right my friendly .Net developers the writing is on the wall. The vision of WPF/e (WPF Everywhere) is about to come true. We've waited for years but it is just around the corner as I predicted would happen years ago.&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-7865990620558179129?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/7865990620558179129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=7865990620558179129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/7865990620558179129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/7865990620558179129'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2009/12/three-screens-and-cloud_03.html' title='&quot;Three screens and the cloud&quot;'/><author><name>Mark Harr</name><uri>http://www.blogger.com/profile/05383352780900957345</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03324120210997444043'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-5055026558357314445</id><published>2009-10-26T08:47:00.000-04:00</published><updated>2009-10-26T09:07:13.662-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>SQL Server AWE</title><content type='html'>&lt;a href="http://www.blogger.com/"&gt;&lt;/a&gt;Ran across this problem running SQL Server 2005 Ent edition on Windows Server 2003 64-bit with 8gb memory. Even turning on AWE, it still would only use 3gb memory.&lt;br /&gt;&lt;br /&gt;Turns out problem is that the account that SQL Server was running under does not have permissions to lock pages in memory.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Run gpedit.msc. On the left hand pane, expand Computer Configuration, expand Windows Settings, expand Security Settings, expand Local Policies, select User Rights Assignment&lt;/li&gt;&lt;br /&gt;&lt;li&gt;On the right hand pane, find Lock pages in memory and double click, then add your Sql Server startup account into Local Security Policy Setting tab;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In Sql Server Management Studio, run:&lt;br /&gt;&lt;pre&gt;sp_configure ?show advanced?, 1&lt;br /&gt;&lt;br /&gt;reconfigure&lt;br /&gt;&lt;br /&gt;sp_configure ?awe enabled?, 1&lt;br /&gt;&lt;br /&gt;reconfigure&lt;/pre&gt;Ignore the error message below, if you have it.&lt;br /&gt;&lt;pre&gt;Msg 5845, Level 16, State 1, Line 1&lt;br /&gt;&lt;br /&gt;Address Windowing Extensions (AWE) requires&lt;br /&gt;the ?lock pages in memory? privilege which is&lt;br /&gt;not currently present in the access token of&lt;br /&gt;the process.&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Reboot. &lt;/li&gt;&lt;/ol&gt;Updated 10/26/2009:&lt;br /&gt;While looking up this post for helping an friend with the same problem, I noticed that this now works for Standard edition as well as Enterprise edition.  You need Cumulative Update package 2 for SQL Server 2008 Service Pack 1 or Cumulative Update package 4 for SQL Server 2005 Service Pack 3 to provide support for Locked Pages in Standard edition.&lt;br /&gt;&lt;a href="http://blogs.msdn.com/psssql/archive/2009/05/19/an-update-for-standard-sku-support-for-locked-pages.aspx"&gt;http://blogs.msdn.com/psssql/archive/2009/05/19/an-update-for-standard-sku-support-for-locked-pages.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-5055026558357314445?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/5055026558357314445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=5055026558357314445' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/5055026558357314445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/5055026558357314445'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2007/10/sql-server-awe.html' title='SQL Server AWE'/><author><name>Mark Harr</name><uri>http://www.blogger.com/profile/05383352780900957345</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03324120210997444043'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-7780416405807806322</id><published>2009-09-21T07:49:00.001-04:00</published><updated>2009-09-21T07:49:01.466-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Misc'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><title type='text'>Fixing Error 1603 on MSI installs</title><content type='html'>&lt;p&gt;For some reason that I have not been able to figure out yet, I have been having problems with &lt;em&gt;some &lt;/em&gt;software installations failing on my Windows 7 system with a message like this (or similar to this):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_o4zwxiO3ScU/SrdoJavk4mI/AAAAAAAAABU/jSLpMeMb7rk/s1600-h/image3.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_o4zwxiO3ScU/SrdoJxjdCZI/AAAAAAAAABY/Fq4a5zAxB28/image_thumb1.png?imgmax=800" width="456" height="185" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In this case, it was installing Intellipoint, but I had the problem with installing Mozy Backup client, VirtualBox, and a couple other apps that I don't remember right now.&amp;#160; I was able to fix each of these installations individually, and will describe it here (so that I can find it again when I need it).&amp;#160; But this does not seem to be a widespread problem, and I am still not sure why my system does this and not (many) others.&lt;/p&gt;  &lt;p&gt;I used the instructions on John McBride's blog (&lt;a href="http://www.sharepoint-stuff.com/?p=404" target="_blank"&gt;Virtual Box 3 and Windows 7 (Making it work!)&lt;/a&gt;), with a couple of additional items relating to logging the install and finding the msi installation package.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;First, we need to see the log to see what caused the 1603 error above.&amp;#160; By default, any system does not keep the installation logs or the installer files when it fails.&amp;#160; So first we need to have Windows Installer log its steps so the we can see what caused the error.&amp;#160; Using instructions from MS Support (&lt;a href="http://support.microsoft.com/kb/223300" target="_blank"&gt;How to enable Windows Installer logging&lt;/a&gt;) I edit the registry with the following entry:       &lt;br /&gt;&lt;code&gt;       &lt;br /&gt;REGEDIT4         &lt;br /&gt;[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer]         &lt;br /&gt;&amp;quot;Logging&amp;quot;=&amp;quot;voicewarmup&amp;quot;         &lt;br /&gt;        &lt;br /&gt;&lt;/code&gt;Or you can save this to a file and dbl-click it to install it in your registry.&amp;#160; This will create a log file in your temp directory for each installation using Windows installer.&amp;#160; &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;So now run your install that will fail again.&amp;#160; &lt;strong&gt;Don't answer the error message yet!&lt;/strong&gt;&amp;#160; When you answer, it will clean up the installation files and you may want to grab those files first.       &lt;br /&gt;      &lt;br /&gt;Did you start the installation by running an .msi file?&amp;#160; Then that is good, you have the file that you need to possibly fix.&amp;#160; But it is likely you started using an .exe file, and it is a compressed self-extracting file, the .msi is packed in that file with other files for the setup process.&amp;#160; We want the files that were extracted.       &lt;br /&gt;      &lt;br /&gt;Go to your Temp directory to open the log file.&amp;#160; &lt;em&gt;(Tip: at least in Vista and Win7, you can easily get to your Temp directory by clicking Start button and typing "%Temp%" without the dbl-quotes; hit enter and you're there.)&lt;/em&gt;&amp;#160; The log file will be named Msi*.log, and probably the most current file is the one you are after.&amp;#160; Open it in your favorite &lt;a href="http://www.textpad.com/" target="_blank"&gt;text editor&lt;/a&gt;.       &lt;br /&gt;      &lt;br /&gt;In the log file, within the first 20 lines or so, it will tell you where the temp directory that the files were extracted.&amp;#160; In this case, it's a line like this:       &lt;br /&gt;      &lt;br /&gt;&lt;code&gt;Package we're running from ==&amp;gt; C:\Users\Mark\AppData\Local\Temp\msiB374.tmp\mozy.msi&lt;/code&gt;       &lt;br /&gt;      &lt;br /&gt;This shows our installation files are in C:\Users\Mark\AppData\Local\Temp\msiB374.tmp\, so go there are copy the directory to another directory so you have copies of the files to work with.       &lt;br /&gt;      &lt;br /&gt;Now you can answer the error message and let the installation clean up after itself.&amp;#160; &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;(The rest of this is from John McBride's blog (&lt;a href="http://www.sharepoint-stuff.com/?p=404" target="_blank"&gt;Virtual Box 3 and Windows 7 (Making it work!)&lt;/a&gt;).)       &lt;br /&gt;You will need Orca MSI Editor from the Platform SDK installation ( I used Windows 7 Platform SDK).&amp;#160; For these particular errors, it a problem with the DIFXAPP drivers in the installation package.&amp;#160; I got updated files DIFxApp.dll and DIFxAppA.dll from the Windows Driver Kit for Windows 7 and Windows Server 2008 (from MSDN Downloads). &lt;/li&gt;    &lt;li&gt;Open the MSI file in Orca MSI Editor.&amp;#160; Select the Binary table on the left.&amp;#160; You should see the 2 dll's listed on the right.     &lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_o4zwxiO3ScU/SrdoKSDBkmI/AAAAAAAAABc/YLaawPYxIk0/s1600-h/image%5B4%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_o4zwxiO3ScU/SrdoLDFLCOI/AAAAAAAAABg/fHwm6ITyMj4/image_thumb%5B1%5D.png?imgmax=800" width="484" height="412" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Delete each of these rows: right-click on the row and select "Drop Row".&lt;/li&gt;    &lt;li&gt;Right click in empty area on the right side and select "Add Row".&amp;#160; Navigate to the location of the updated drivers from the Drivers Library (C:\WinDDK\7100.0.0\redist\DIFx\DIFxApp\WixLib\x86).&amp;#160; Add both the DIFxApp.dll and DIFxAppA.dll files, making sure the row name is the same as the DLL file name.&lt;/li&gt;    &lt;li&gt;Save the MSI file.&lt;/li&gt;    &lt;li&gt;Install.     &lt;br /&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;That's it.&amp;#160; Each of the 4 installations worked for me then.   &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-7780416405807806322?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/7780416405807806322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=7780416405807806322' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/7780416405807806322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/7780416405807806322'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2009/09/fixing-error-1603-on-msi-installs.html' title='Fixing Error 1603 on MSI installs'/><author><name>Mark Harr</name><uri>http://www.blogger.com/profile/05383352780900957345</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03324120210997444043'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-8218259235196042867</id><published>2009-08-18T17:43:00.001-04:00</published><updated>2009-08-18T17:43:51.269-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Dev'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev Misc'/><category scheme='http://www.blogger.com/atom/ns#' term='Misc'/><title type='text'>IE6 Retirement Schedule Is OK by me</title><content type='html'>&lt;p&gt;There has been some uproar about an &lt;a title="eWeek: Microsoft Internet Explorer 6 Support Continues, Despite Calls for Phase-Out" href="http://www.eweek.com/c/a/Windows/Microsoft-Internet-Explorer-6-Support-Continues-Despite-Calls-for-PhaseOut-307122/" target="_blank"&gt;article&lt;/a&gt; that Microsoft will still support IE6 until 2014 (ref: &lt;a title="http://twitter.com/JimHolmes/statuses/3388282884" href="http://twitter.com/JimHolmes/statuses/3388282884"&gt;http://twitter.com/JimHolmes/statuses/3388282884&lt;/a&gt;, and RT dozens of times.)&lt;/p&gt;  &lt;p&gt;I'm sorry, but I cannot get upset about this news article.&amp;#160; Back in the 90's, we whined and complained that Microsoft (and other vendors) were coming out too fast with software releases, and not supporting releases long enough. Remember that VB 2.0 was only out 6 months before VB 3.0 came out.&amp;#160; And MS Word 98 was replaced by Office 2000 only 8 months after its release.&amp;#160; Microsoft heard and understood, and came out with their &lt;a href="http://support.microsoft.com/gp/lifesupsps/" target="_blank"&gt;Lifecycle Support policy&lt;/a&gt; so that we could have some semblance of scheduled lifetime for software releases.&lt;/p&gt;  &lt;p&gt;And now we want to whine that Microsoft is following that policy?&amp;#160; I'm sorry, but I'm not going to follow that.&amp;#160; We cannot complain because there wasn't a planned policy, then complain that we don't like the standard policy.&amp;#160; No, Microsoft is OK on this one.&lt;/p&gt;  &lt;p&gt;Now, I fully agree that we should not be using IE6.&amp;#160; We need to get users to safer and better platforms, and get them on IE8 whenever possible.&amp;#160; And the sooner the better, especially for relieving our web site development headaches.&amp;#160; The faster the market share for IE6 approaches zero will be good for all of us.&amp;#160; &lt;/p&gt;  &lt;p&gt;But as long as there are users using IE6, for whatever reason, I want Microsoft to support it.&amp;#160; I want critical security patches and fixes dealt with and deployed as quickly as possible, and any performance enhancements or rendering fixes continued to be developed.&amp;#160; &lt;/p&gt;  &lt;p&gt;And as long there are significant share of our users still using IE6 (20% of total IE population, that I last heard of), we as developers still need to account for those users and make sure our sites don't leave them out.&amp;#160; We develop software for our businesses, and for our business's customers, not for our standards of elegance.&amp;#160; We need to continue to support or users and customers, not ridicule or demean them.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-8218259235196042867?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/8218259235196042867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=8218259235196042867' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/8218259235196042867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/8218259235196042867'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2009/08/ie6-retirement-schedule-is-ok-by-me.html' title='IE6 Retirement Schedule Is OK by me'/><author><name>Mark Harr</name><uri>http://www.blogger.com/profile/05383352780900957345</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03324120210997444043'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-7371609778687390902</id><published>2009-07-31T12:49:00.002-04:00</published><updated>2009-08-01T13:01:45.509-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><title type='text'>Windows Anytime Upgrade and Family Pack Pricing</title><content type='html'>&lt;p&gt;Microsoft announces Windows 7 Family pack pricing and Anytime upgrade pricing.&lt;/p&gt;&lt;p&gt;$149 for 3 family Home Premium licenses is pretty good, especially considering that 1 Home Premium license is $199.  Or is the 3 licenses only for upgrades?  Not sure, I've posted the question to the Windows team blog post.&lt;/p&gt;&lt;p&gt;&lt;a href="http://windowsteamblog.com/blogs/windows7/archive/2009/07/31/windows-anytime-upgrade-and-family-pack-pricing.aspx#comments"&gt;Windows Anytime Upgrade and Family Pack Pricing - Windows 7 Team Blog - The Windows Blog&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Updated 8/1: Family Pack is upgrade license only. Raelize that you will only be able to upgrade from Vista SP1 or XP SP3, and it must be currently activated. &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-7371609778687390902?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/7371609778687390902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=7371609778687390902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/7371609778687390902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/7371609778687390902'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2009/07/windows-anytime-upgrade-and-family-pack.html' title='Windows Anytime Upgrade and Family Pack Pricing'/><author><name>Mark Harr</name><uri>http://www.blogger.com/profile/05383352780900957345</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03324120210997444043'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-8706398709522489704</id><published>2009-07-06T10:00:00.000-04:00</published><updated>2009-07-06T10:23:17.088-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dev Misc'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>I'm A VB!</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/vbteam/pages/i-m-a-vb-mark-harr.aspx" target="_blank"&gt;I'm A VB: Mark Harr&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;My profile was just accepted on the Microsoft Visual Basic Team's "&lt;a href="http://imavb.net/" target="_blank"&gt;I'm a VB&lt;/a&gt;" campaign.&amp;#160; &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-8706398709522489704?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/8706398709522489704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=8706398709522489704' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/8706398709522489704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/8706398709522489704'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2009/07/i-vb.html' title='I&amp;#39;m A VB!'/><author><name>Mark Harr</name><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-8329936042877657222</id><published>2009-06-24T07:51:00.001-04:00</published><updated>2009-06-24T07:51:11.810-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Exceptions'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Tip: Get the name of the calling method</title><content type='html'>&lt;p&gt;Very handy for using common logging or exception handling routines. &lt;/p&gt;  &lt;p&gt;This code is corrected from original article, and added to also get the calling function.&lt;/p&gt;  &lt;blockquote&gt;   &lt;pre&gt;using System.Diagnostics;&lt;br /&gt;	&lt;br /&gt;void Log(string eventMessage)&lt;br /&gt;{ &lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;Event logged by &amp;quot; + (new StackTrace().GetFrame(1).GetMethod().Name);&lt;br /&gt;   Console.WriteLine("Module: " + (new StackTrace().GetFrame(1).GetMethod().Module.Name)&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160; Console.WriteLine(&amp;quot;Event: &amp;quot; + eventMessage);&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://blogs.msdn.com/webdevelopertips/archive/2009/06/23/tip-83-did-you-know-you-can-get-the-name-of-the-calling-method-from-the-stack-using-reflection.aspx"&gt;Tips &amp;amp; Tricks for ASP.NET, IIS, and Visual Web Developer : Tip #83: Did you know... You can get the name of the calling method from the stack using reflection?&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-8329936042877657222?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/8329936042877657222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=8329936042877657222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/8329936042877657222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/8329936042877657222'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2009/06/tip-get-name-of-calling-method.html' title='Tip: Get the name of the calling method'/><author><name>Mark Harr</name><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-3689133317031840965</id><published>2009-06-17T11:42:00.001-04:00</published><updated>2009-06-17T11:42:00.361-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>ADO.NET team: System.Data.OracleClient Deprecated</title><content type='html'>&lt;p&gt;Microsoft ADO.Net team (Himanshu Vasishth, Program Manager) announces that the ADO.Net Oracle provider will no longer be supplied by Microsoft.&amp;#160; Recommended to use 3rd party provider.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/adonet/archive/2009/06/15/system-data-oracleclient-update.aspx"&gt;ADO.NET team blog : System.Data.OracleClient Update&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Possible alternatives are:&lt;/p&gt;  &lt;ul style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"&gt;   &lt;li&gt;Oracle's ODP.Net:      &lt;br /&gt;&lt;a href="http://www.oracle.com/technology/tech/windows/odpnet/ODP.NET-FOV.html"&gt;http://www.oracle.com/technology/tech/windows/odpnet/ODP.NET-FOV.html&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Data Direct:      &lt;br /&gt;&lt;a title="http://www.datadirect.com/products/net/net_for_oracle/index.ssp" href="http://www.datadirect.com/products/net/net_for_oracle/index.ssp"&gt;http://www.datadirect.com/products/net/net_for_oracle/index.ssp&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;DevArt:      &lt;br /&gt;&lt;a title="http://www.devart.com/dotconnect/oracle/" href="http://www.devart.com/dotconnect/oracle/"&gt;http://www.devart.com/dotconnect/oracle/&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-3689133317031840965?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/3689133317031840965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=3689133317031840965' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/3689133317031840965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/3689133317031840965'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2009/06/adonet-team-systemdataoracleclient.html' title='ADO.NET team: System.Data.OracleClient Deprecated'/><author><name>Mark Harr</name><email>noreply@blogger.com</email></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-5434727004163498483</id><published>2009-06-15T23:02:00.001-04:00</published><updated>2009-06-17T10:28:51.439-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Dev'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Interesting problem: IIS file download = 0 bytes</title><content type='html'>&lt;p&gt;I ran into an interesting problem at a client site the other day.&amp;#160; Another developer group had written and installed a ASP.Net application (Visual Studio 2008, .Net Framework 3.5 SP1, Windows Server 2003 R2, SQL Server 2005).&amp;#160; Without divulging too many details, let's just say the application had a public site where users could upload a file, and an internal admin site where the internal user could download the file.&amp;#160; The file is being stored in the database in a varbinary(max) column.&lt;/p&gt;  &lt;p&gt;After the sites were installed, the internal user had a problem downloading the file; it always came back as 0 bytes.&amp;#160; It did not matter the file type (pdfs and word docs were used), browser type (same for IE6 (standard for company), IE7, IE8, Firefox 3.x, Chrome, Opera , Safari on Windows).&amp;#160; The file was definitely in the database, and the original developer wrote a Windows desktop app to download the file as a temporary workaround.&amp;#160; The original developer swore the file download it worked just fine on their servers, and brought in a more experienced consultant to try to help diagnose the problem.&amp;#160; I was at this client site on another project, and was asked to take a look to see if I could spot anything.&lt;/p&gt;  &lt;p&gt;After a few false starts doing some troubleshooting (the original developer said the VS project was a web site project, and had the code-behind files in the web directory, so we would modify the .cs file to try to track the problem, but had no results; turns out it was a web application project, and we were not recompiling the project), we did confirm the byte array from the database field was being populated.&amp;#160; The code was using Response.BinaryWrite, and seemed to be setting the proper headers and sending the data.&amp;#160; We look at the IIS web site settings over and over, trying to find some clue.&amp;#160; &lt;/p&gt;  &lt;p&gt;The server the web application was installed on did have other live applications running, so our debugging the production server was limited so as to not affect the other apps. Our next attempt was to setup another Windows IIS server (virtual, on MS Virtual Server) and install the web site app on there.&amp;#160; The file download worked just fine there.&amp;#160; So it appears that the application is OK, it must be an IIS setting causing the problem.&amp;#160; Now that we had a server we knew it worked on, I took the metabase.xml files from both servers and worked to compare them.&lt;/p&gt;  &lt;p&gt;That was when I saw the problem: HTTP Compression was turned on the first server.&amp;#160; We had missed it on the IIS Settings because that (the "Service" tab) is only on the property dialog for the Web Sites folder, not on the web sites themselves, and not on the server settings.&amp;#160; Here is the dialog window:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_diqRsFYsvAI/Sjj31z3y3HI/AAAAAAAAAHM/feU7gnLUzDk/s1600-h/clip_image002%5B4%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh6.ggpht.com/_diqRsFYsvAI/Sjj32uxrMhI/AAAAAAAAAHQ/y8Z4Hqdt3f8/clip_image002_thumb%5B1%5D.jpg?imgmax=800" width="380" height="369" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Turning that off did solve the download file problem, but the client was uneasy about turning it off (understandably) since it was likely turned as part of the other applications that was running on that server, and they did not want to risk that apps.&lt;/p&gt;  &lt;p&gt;Although I knew it would not affect the other apps to turn off HTTP compression, I looked further into it and saw that HTTP compression can be turned on or off for the entire server, by web site, by directory, by file type, or by individual page, all by using adsutil commands.&amp;#160; I also found a .cmd file in the AdminScript directory of the server turning on HTTP compression, so I modified it to turn off compression for the web site:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 625px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;CSCRIPT.EXE ADSUTIL.VBS &lt;span style="color: #0000ff"&gt;SET&lt;/span&gt; W3SVC/Filters/Compression/GZIP/HcScriptFileExtensions &amp;quot;&lt;span style="color: #8b0000"&gt;asp&lt;/span&gt;&amp;quot; &amp;quot;&lt;span style="color: #8b0000"&gt;dll&lt;/span&gt;&amp;quot; &amp;quot;&lt;span style="color: #8b0000"&gt;exe&lt;/span&gt;&amp;quot; &amp;quot;&lt;span style="color: #8b0000"&gt;pdf&lt;/span&gt;&amp;quot; &amp;quot;&lt;span style="color: #8b0000"&gt;aspx&lt;/span&gt;&amp;quot; &amp;quot;&lt;span style="color: #8b0000"&gt;svc&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;CSCRIPT.EXE ADSUTIL.VBS &lt;span style="color: #0000ff"&gt;SET&lt;/span&gt; W3SVC/Filters/Compression/DEFLATE/HcScriptFileExtensions &amp;quot;&lt;span style="color: #8b0000"&gt;asp&lt;/span&gt;&amp;quot; &amp;quot;&lt;span style="color: #8b0000"&gt;dll&lt;/span&gt;&amp;quot; &amp;quot;&lt;span style="color: #8b0000"&gt;exe&lt;/span&gt;&amp;quot; &amp;quot;&lt;span style="color: #8b0000"&gt;pdf&lt;/span&gt;&amp;quot; &amp;quot;&lt;span style="color: #8b0000"&gt;aspx&lt;/span&gt;&amp;quot; &amp;quot;&lt;span style="color: #8b0000"&gt;svc&lt;/span&gt;&amp;quot;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;CSCRIPT.EXE ADSUTIL.VBS &lt;span style="color: #0000ff"&gt;SET&lt;/span&gt; W3SVC/Filters/Compression/GZIP/HcDynamicCompressionLevel 9&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;CSCRIPT.EXE ADSUTIL.VBS &lt;span style="color: #0000ff"&gt;SET&lt;/span&gt; W3SVC/Filters/Compression/DEFLATE/HcDynamicCompressionLevel 9&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;CSCRIPT.EXE ADSUTIL.VBS &lt;span style="color: #0000ff"&gt;SET&lt;/span&gt; W3SVC/Filters/Compression/GZIP/HcStaticCompressionLevel 9&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;CSCRIPT.EXE ADSUTIL.VBS &lt;span style="color: #0000ff"&gt;SET&lt;/span&gt; W3SVC/Filters/Compression/DEFLATE/HcStaticCompressionLevel 9&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;CSCRIPT.EXE ADSUTIL.VBS &lt;span style="color: #0000ff"&gt;SET&lt;/span&gt; w3SVC/Filters/Compression/Parameters/HcDoDynamicCompression true &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;CSCRIPT.EXE ADSUTIL.VBS &lt;span style="color: #0000ff"&gt;SET&lt;/span&gt; w3SVC/Filters/Compression/Parameters/HcDoStaticCompression true &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;&lt;span style="color: #0000ff"&gt;REM&lt;/span&gt; Added exclusion &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; careeradmin site; mark harr; 6/3/2009&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;CSCRIPT.EXE ADSUTIL.VBS &lt;span style="color: #0000ff"&gt;SET&lt;/span&gt; W3SVC/2129524648/root/DoDynamicCompression false&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 10px"&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;That solved the issue.&amp;#160; But there were a couple other interesting things:&lt;/p&gt;&lt;br /&gt;&lt;ul style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"&gt;&lt;br /&gt;  &lt;li&gt;I first looked to turn off compression for just the file types (pdf, etc), but it turns out that IIS determines if compression will be done based on the requested file suffix, not the response headers. So since the file was downloaded from a postback to index.aspx, turning off compression on pdf did not have any affect. &lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Then I looked to turn off just for the page doing the download. But since the site was built with a single page (index.aspx) and loading different custom controls (ascx), I could not differentiate the page for IIS. &lt;/li&gt;&lt;br /&gt;  &lt;li&gt;So I just turned off http compression for the admin site.&amp;#160; Figure that was not bad, since the site will only be accessed internally, and not likely over the internet, the lack of http compression will not be an issue.&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;After I finished this, I came up with the thought that perhaps adding a "Response-encoding: gzip" header with the file download may have also solved the problem.&amp;#160; IIS may have already setup that header when it determined it was doing http compression, and the code may have been clearing that header when it did the Response.Clear command before setting up its BinaryWrite.&amp;#160; But the code putting that header would need to ensure that compression was happening and only add the encoding header when desired.&amp;#160; Sometime when I have a few hours to look at that, I will see if that technique will work. &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-5434727004163498483?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/5434727004163498483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=5434727004163498483' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/5434727004163498483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/5434727004163498483'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2009/06/interesting-problem-iis-file-download-0.html' title='Interesting problem: IIS file download = 0 bytes'/><author><name>Mark Harr</name><email>noreply@blogger.com</email></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-2070688198968974749</id><published>2009-06-12T10:56:00.001-04:00</published><updated>2009-06-12T10:56:43.504-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Using Windows 7 and Vista features in .Net code</title><content type='html'>&lt;p&gt;   &lt;br /&gt;&lt;strong&gt;&lt;em&gt;Just released from Microsoft:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://code.msdn.microsoft.com/WindowsAPICodePack"&gt;Windows? API Code Pack for Microsoft? .NET Framework (v0.90) - Home&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://code.msdn.microsoft.com/VistaBridge"&gt;Vista Bridge Sample Library 1.4&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Some of the newer features in Vista and Windows 7 are not exposed in the .Net Framework (yet).&amp;#160; This package of source code from Microsoft shows how to access and use these features from managed code.&amp;#160; Some of the features here are: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Windows 7 Taskbar Jump Lists, Icon Overlay, Progress Bar, Tabbed Thumbnails, and Thumbnail Toolbars. &lt;/p&gt;    &lt;p&gt;Known Folders, Windows 7 Libraries, non-file system containers, and a hierarchy of Shell Namespace entities. &lt;/p&gt;    &lt;p&gt;Windows 7 Explorer Browser Control. &lt;/p&gt;    &lt;p&gt;Shell property system. &lt;/p&gt;    &lt;p&gt;Windows Vista and Windows 7 Common File Dialogs, including custom controls. &lt;/p&gt;    &lt;p&gt;Windows Vista and Windows 7 Task Dialogs. &lt;/p&gt;    &lt;p&gt;Direct3D 11.0, Direct3D 10.1/10.0, DXGI 1.0/1.1, Direct2D 1.0, DirectWrite, Windows Imaging Component (WIC) APIs. (DirectWrite and WIC have partial support) &lt;/p&gt;    &lt;p&gt;Sensor Platform APIs &lt;/p&gt;    &lt;p&gt;Extended Linguistic Services APIs &lt;/p&gt;    &lt;p&gt;Power Management APIs &lt;/p&gt;    &lt;p&gt;Application Restart and Recovery APIs &lt;/p&gt;    &lt;p&gt;Network List Manager APIs &lt;/p&gt;    &lt;p&gt;Command Link control and System defined Shell icons. &lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-2070688198968974749?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/2070688198968974749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=2070688198968974749' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/2070688198968974749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/2070688198968974749'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2009/06/using-windows-7-and-vista-features-in.html' title='Using Windows 7 and Vista features in .Net code'/><author><name>Mark Harr</name><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-3871553331507451565</id><published>2009-06-05T12:09:00.001-04:00</published><updated>2009-06-05T12:09:07.024-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Dev'/><title type='text'>SEO on Dynamic Pages</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.seoracle.com/seo-tutorial-optimization/seo-dynamic-pages-url"&gt;SEO on Dynamic Pages - URL rewrites, 301 Redirects, and more SEO on Dynamic Pages&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Good article on enhancing SEO on catalog and other dynamic pages.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-3871553331507451565?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/3871553331507451565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=3871553331507451565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/3871553331507451565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/3871553331507451565'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2009/06/seo-on-dynamic-pages.html' title='SEO on Dynamic Pages'/><author><name>Mark Harr</name><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-4532075931708482329</id><published>2009-05-26T08:28:00.001-04:00</published><updated>2009-05-26T08:28:54.896-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><title type='text'>Windows 7 tips, tricks and secrets</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.techradar.com/news/software/operating-systems/50-seriously-useful-windows-7-tips-528483"&gt;50 seriously useful Windows 7 tips, tricks and secrets | News | TechRadar UK&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-4532075931708482329?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/4532075931708482329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=4532075931708482329' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/4532075931708482329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/4532075931708482329'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2009/05/windows-7-tips-tricks-and-secrets.html' title='Windows 7 tips, tricks and secrets'/><author><name>Mark Harr</name><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-6131821082707921185</id><published>2009-05-17T12:13:00.001-04:00</published><updated>2009-05-17T12:13:31.246-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><title type='text'>Windows 7 RC: After 2 weeks</title><content type='html'>&lt;p&gt;Well, I have been running Windows 7 RC for 2 weeks now on my main production machine.&amp;#160; Overall, it is very good: fast, pretty stable, and the new features are good.&amp;#160; &lt;/p&gt;  &lt;p&gt;I especially like the new taskbar.&amp;#160; Reading the descriptions of it before I installed Win7, I was a little leery that it was better, that it was just different to be different.&amp;#160; But after working with it, it really is better.&amp;#160; I was worried that it would be confusing having both the "quick links" and taskbar together, but it really is not a problem; the active apps have an "aero" frame around them, and the unlaunched buttons do not.&amp;#160; I like the aero preview windows that popup when you hover the mouse over the button, but especially like when you hover the mouse over the preview window, the rest of the windows go "aero ghost" mode, so that window is the only one visible.&lt;/p&gt;  &lt;p&gt;Problems so far are few, but here's what I have:&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="398"&gt;         &lt;p&gt;*&amp;#160; My Bluetooth mouse (MS Mouse Presenter 8000) frequently disconnects.&amp;#160; Sometimes it will reconnect in about 15 seconds or so, but most of the time I have to power cycle the mouse.&amp;#160; Hope a fix or updated mouse driver fixes that soon.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="398"&gt;*&amp;#160; Windows Live Photo Gallery screensaver crashes and locks up.&amp;#160; I can get back by hitting Ctrl-Alt-Del, then Cancel and the system window then pops up about an unresponsive application.&amp;#160; So far, that is only screensaver that has a problem.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="398"&gt;*&amp;#160; My Sierra Wireless AirCard 875U cellular modem needs to use the old Sierra 3GWatcher app, and Win7 does not "recognize" the network.&amp;#160; It works, and I connect OK, it is just that Network Center says it is "Unidentified Network", and I cannot properly set firewall options (public/private) or name.&amp;#160; I understand Win7 has newer drivers that treat cell modems like full fledged network adapters (like WiFi adapters), but not for my old(er) device.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;And one changed item I am not completely sold on yet: taking out the Sidebar frame.&amp;#160; Sidebar gadgets are now undocked and floating (like you could in Vista if you dragged it from the frame).&amp;#160; But I liked how the Sidebar frame gave me "pages" for gadgets, and I could have a dozen or so gadgets ready when needed, but not cluttering up the desktop.&amp;#160; But now, floating gadgets are the only option.   &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-6131821082707921185?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/6131821082707921185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=6131821082707921185' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/6131821082707921185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/6131821082707921185'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2009/05/windows-7-rc-after-2-weeks.html' title='Windows 7 RC: After 2 weeks'/><author><name>Mark Harr</name><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-8496098701608664858</id><published>2009-05-14T12:40:00.001-04:00</published><updated>2009-05-14T12:40:05.215-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>New version ASP.NET AJAX Control Toolkit</title><content type='html'>&lt;p&gt;New version (3.0.30512) ASP.Net Ajax Control toolkit.&amp;#160; Added 3 new controls, including an HTMLEditor and ComboBox (windows-like, dropdownlist and textbox). Also 20 bugfixes to existing controls.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.asp.net/ajax/AjaxControlToolkit/Samples/"&gt;ASP.NET AJAX Control Toolkit&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Note that these controls work only with VS 2008 and .Net Framework 3.5.&lt;/p&gt;  &lt;p&gt;Thanks to &lt;a href="http://twitter.com/shanselman" target="_blank"&gt;@shanselman&lt;/a&gt; who twittered this announcement.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-8496098701608664858?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/8496098701608664858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=8496098701608664858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/8496098701608664858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/8496098701608664858'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2009/05/new-version-aspnet-ajax-control-toolkit.html' title='New version ASP.NET AJAX Control Toolkit'/><author><name>Mark Harr</name><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-1757493901396041714</id><published>2009-05-06T09:53:00.001-04:00</published><updated>2009-05-06T09:53:03.369-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GMail'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>WM 6.1 Hot Fix for Sending SMTP E-mail</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=d9d71b2e-d2dd-44f2-86e5-1e53aad7fb7a&amp;amp;displaylang=en"&gt;MS KB958639 Download details: WM 6.1 Hot Fix for Sending POP and IMAP E-mail&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I was having a problem with Gmail apps on my WinMobile device, where I could not send email.&amp;#160; The only way around it was to delete and recreate the account.&amp;#160; Turns out it is a bug in WM 6.1, and this fixes the problem.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-1757493901396041714?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/1757493901396041714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=1757493901396041714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/1757493901396041714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/1757493901396041714'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2009/05/wm-61-hot-fix-for-sending-smtp-e-mail.html' title='WM 6.1 Hot Fix for Sending SMTP E-mail'/><author><name>Mark Harr</name><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-8133066013423065088</id><published>2009-04-02T12:42:00.001-04:00</published><updated>2009-04-02T12:42:31.823-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Misc'/><title type='text'>Google uncloaks once-secret server</title><content type='html'>&lt;p&gt; Interesting look at Google's server designs, both the individual server (battery on the server instead of UPS, velcro wraps) and the container design.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://news.cnet.com/8301-1001_3-10209580-92.html?part=rss&amp;amp;subj=news&amp;amp;tag=2547-1_3-0-20"&gt;Google uncloaks once-secret server | Business Tech - CNET News&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-8133066013423065088?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/8133066013423065088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=8133066013423065088' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/8133066013423065088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/8133066013423065088'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2009/04/google-uncloaks-once-secret-server.html' title='Google uncloaks once-secret server'/><author><name>Mark Harr</name><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-6176397567398139717</id><published>2009-03-22T11:42:00.001-04:00</published><updated>2009-03-22T11:42:26.876-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Vista'/><title type='text'>Keep Vista from Changing Folder View : Steve Smith's Blog</title><content type='html'>&lt;p&gt;For future reference.&amp;#160; This actually works! &lt;/p&gt;  &lt;p&gt;&lt;a href="http://stevesmithblog.com/blog/keep-vista-from-changing-folder-view/"&gt;Keep Vista from Changing Folder View : Steve Smith's Blog&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-6176397567398139717?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/6176397567398139717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=6176397567398139717' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/6176397567398139717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/6176397567398139717'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2009/03/keep-vista-from-changing-folder-view.html' title='Keep Vista from Changing Folder View : Steve Smith&amp;#39;s Blog'/><author><name>Mark Harr</name><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-463515912125507782</id><published>2009-03-20T13:11:00.001-04:00</published><updated>2009-03-20T13:11:31.930-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dev Misc'/><category scheme='http://www.blogger.com/atom/ns#' term='Misc'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>Microsoft Tag now can do black and white</title><content type='html'>&lt;p&gt; Microsoft Tag can now do black and white tags, as well as color.&amp;#160; All the current readers already can handle the b&amp;amp;w.&amp;#160; And you can use both a b&amp;amp;w and color tag for same link.&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="442"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="144"&gt;&lt;a href="http://lh4.ggpht.com/_diqRsFYsvAI/ScPOPpCmI4I/AAAAAAAAAG8/aSaEyF7FdSU/s1600-h/image%5B2%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_diqRsFYsvAI/ScPOQB0yojI/AAAAAAAAAHA/gTdVDEwWW9E/image_thumb.png?imgmax=800" width="72" height="75" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td width="124"&gt;         &lt;p align="center"&gt;=&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="172"&gt;         &lt;p align="right"&gt;&lt;a href="http://lh6.ggpht.com/_diqRsFYsvAI/ScPOQcOd2rI/AAAAAAAAAHE/h2rKnjF972g/s1600-h/image%5B6%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_diqRsFYsvAI/ScPOQ2a1-kI/AAAAAAAAAHI/CuDEmx_UEPE/image_thumb%5B2%5D.png?imgmax=800" width="76" height="77" /&gt;&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/tag/archive/2009/03/20/feature-microsoft-tag-black-and-white.aspx"&gt;Microsoft Tag : Feature: Microsoft Tag Black and white!&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-463515912125507782?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/463515912125507782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=463515912125507782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/463515912125507782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/463515912125507782'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2009/03/microsoft-tag-now-can-do-black-and.html' title='Microsoft Tag now can do black and white'/><author><name>Mark Harr</name><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-8875745867371646537</id><published>2009-03-04T12:33:00.001-05:00</published><updated>2009-03-04T12:33:34.074-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Misc'/><category scheme='http://www.blogger.com/atom/ns#' term='Misc'/><title type='text'>NOD32 changes licensing</title><content type='html'>&lt;p&gt;Looks like Nod32, my favorite recommended antivirus solution, is changing their licensing just a bit, but will cost me bucks.&lt;/p&gt;  &lt;p&gt;First, a little about what I am trying to do.&amp;#160; I run a pretty decent laptop with Windows Vista, 4gb ram, and anywhere from 2 to 7 hard drives (1 internal, of course, and the others on USB).&amp;#160; As a software development consultant, I run a number of virtual machines. Some are for unique setups for clients (their VPN, or older version of Visual Studio or Windows); some for testing purposes (e.g. clean systems for testing setup packages, older browser versions); some with server OS's (Windows server 2003 or 2008) with older SQL server, or SharePoint development.&lt;/p&gt;  &lt;p&gt;Trying to have an antivirus solution properly licensed for all these virtual machines is a pain.&amp;#160; The only av product I found that allows virtual machines to share the same license as the host is &lt;a href="http://www.eset.com/" target="_blank"&gt;Nod32&lt;/a&gt;.&amp;#160; So besides the very &lt;a href="http://www.eset.com/products/nod32.php" target="_blank"&gt;reasons&lt;/a&gt; to use this product (&lt;a href="http://www.eset.com/products/eset_performance_advantages.php" target="_blank"&gt;fastest&lt;/a&gt;, smallest memory footprint (100mb), and best &lt;a href="http://www.eset.com/products/compare_heuristic_detection.php" target="_blank"&gt;detection&lt;/a&gt; (it heuristic engine has &lt;em&gt;never&lt;/em&gt; missed an in-the-wild virus, &lt;a href="http://www.eset.com/products/compare-NOD32-vs-competition.php#missed_in_the_wild_graph" target="_blank"&gt;ref&lt;/a&gt;), having to buy only one license makes it a very good fit for me.&amp;#160; And it is one of the few client antivirus products that will install on server OS's.&lt;/p&gt;  &lt;p&gt;Starting with their version 3.0, the server OS's were no longer permitted for a single-user license, only a business edition license could install Nod32 v3 on Windows Server 2000/2003.&amp;#160; This was not too much of a problem, as we were permitted to use the previous version, v2.7, on the servers and was still supported.&lt;/p&gt;  &lt;p&gt;Now here is the new problem.&amp;#160; Nod32 v4 was released this week.&amp;#160; And when my license it renewed, the new username will not be permitted for v2.7.&amp;#160; Nod32 v4 will still not allow installation on Windows servers with single-user license.&amp;#160; I will have to buy a new business edition license to be able to install on Windows servers on virtual machines.&amp;#160; But business licenses have to be purchased with a minimum of 5 users, at (currently) $42.99/user ($214.95), as compared to $39.99 for home/single-user.&amp;#160; So in order to install Nod32 on my server VM's, I need to buy for 4 unneeded/unused users.&lt;/p&gt;  &lt;p&gt;My options are somewhat limited.&amp;#160; No one else allows licensing on virtual machines except as a separate machine and license (and since I have about 15 virtual machines, buying licenses for them is not an option).&amp;#160; AVG free edition is not an option, because it does install on server OS's.&amp;#160; Looks like I have to buy wasted business user licenses.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-8875745867371646537?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/8875745867371646537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=8875745867371646537' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/8875745867371646537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/8875745867371646537'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2009/03/nod32-changes-licensing.html' title='NOD32 changes licensing'/><author><name>Mark Harr</name><email>noreply@blogger.com</email></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-5246488568507910419</id><published>2009-02-15T10:40:00.001-05:00</published><updated>2009-02-15T10:40:59.916-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>Microsoft Recite : Announcement - Microsoft Recite - Technology Preview</title><content type='html'>&lt;p&gt;Cool new WinMobile app released by Microsoft.&amp;#160; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Microsoft Recite's voice search makes it easy to retrieve your stored thoughts and notes by using &lt;b&gt;voice pattern matching&lt;/b&gt;. It analyzes the patterns in your speech and finds matches between two recordings -- the notes you stored on your phone, and the search you do using your voice. With Recite you can store thousands of spoken notes, and then later retrieve the notes you want based on a match with your search term(s). This is different from speech recognition, which has to accurately convert spoken words to application-readable input. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/recite/archive/2009/02/15/announcement-microsoft-recite-technology-preview.aspx"&gt;Microsoft Recite : Announcement - Microsoft Recite - Technology Preview&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It would be &lt;em&gt;really &lt;/em&gt;cool if this integrated with Outlook to create appts, events, notes.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-5246488568507910419?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/5246488568507910419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=5246488568507910419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/5246488568507910419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/5246488568507910419'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2009/02/microsoft-recite-announcement-microsoft.html' title='Microsoft Recite : Announcement - Microsoft Recite - Technology Preview'/><author><name>Mark Harr</name><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-5664214547204604207</id><published>2008-12-17T14:26:00.001-05:00</published><updated>2008-12-17T14:26:18.424-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Misc'/><title type='text'>IE Critical Update</title><content type='html'>&lt;p&gt;Microsoft has released the ultra-important &lt;a target="_blank" href="http://www.microsoft.com/technet/security/bulletin/ms08-078.mspx"&gt;IE Update&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;Run your Windows Update ASAP (if not sooner).&lt;/p&gt;  &lt;p&gt;This fixes the recent exploits that have been working for the past 5 days or so.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-5664214547204604207?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/5664214547204604207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=5664214547204604207' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/5664214547204604207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/5664214547204604207'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2008/12/ie-critical-update.html' title='IE Critical Update'/><author><name>Mark Harr</name><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-7060027529903256382</id><published>2008-12-04T10:44:00.001-05:00</published><updated>2008-12-04T10:44:24.971-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='Dev Misc'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>A little geek humor at Microsoft</title><content type='html'>&lt;p&gt;Just discovered a little geek humor at Microsoft.&amp;#160; &lt;/p&gt;  &lt;p&gt;I have the unfortunate task of upgrading a VB6 app to run properly under Vista.&amp;#160; No, I could not upgrade the app to .Net, just "fix" the VB app and its installer.&amp;#160; So I'm installing VB6 in a Vista virtual machine (do not want to mess up my host machine), and having a little problem when starting VB, an error that mscomctl.ocx is not registered.&amp;#160; But it is, and I hunt down &lt;a href="http://www.dependencywalker.com/" target="_blank"&gt;Dependency Walker&lt;/a&gt; (Depends) to make sure.&amp;#160; It's OK, and its components are OK, also.&amp;#160; &lt;/p&gt;  &lt;p&gt;So I run profiler from Depends to start up VB6 and see what happens.&amp;#160; Find an error message*, and stop the profiler. That in turn stops the VB6 application, and profiler dutifully logs the exit return code, and helpfully translates the exit code to hex:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Terminating process by user's request.     &lt;br /&gt;Exited &amp;quot;VB6.EXE&amp;quot; (process 0xB84) with code 57005 (0xDEAD).&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Had to chuckle.&amp;#160; And then went to calc.exe to confirm, decimal 57005 is hex 0xDEAD.&lt;/p&gt;  &lt;p&gt;(*for what it's worth, the error is "GetProcAddress(0x75E70000 [KERNEL32.DLL], &amp;quot;IsTNT&amp;quot;) called from &amp;quot;MSCOMCTL.OCX&amp;quot; at address 0x27588909 and returned NULL. Error: The specified procedure could not be found (127)."&amp;#160; Now I got to got figure that one out.) &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-7060027529903256382?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/7060027529903256382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=7060027529903256382' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/7060027529903256382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/7060027529903256382'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2008/12/little-geek-humor-at-microsoft.html' title='A little geek humor at Microsoft'/><author><name>Mark Harr</name><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-2528021036589527041</id><published>2008-12-02T16:01:00.001-05:00</published><updated>2008-12-02T16:01:01.496-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>New ASP.NET Charting Control</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Microsoft has now released a ASP.Net Chart control.&amp;#160; Formerly from Dundas, this control was recently added to Reporting Services, and is now available for &lt;strong&gt;free&lt;/strong&gt; for ASP.Net developers.&lt;/p&gt;  &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&amp;amp;DisplayLang=en"&gt;Download the free Microsoft Chart Controls&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=1D69CE13-E1E5-4315-825C-F14D33A303E9&amp;amp;displaylang=en"&gt;Download the VS 2008 Tool Support for the Chart Controls&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="http://code.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=1591"&gt;Download the Microsoft Chart Controls Samples&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EE8F6F35-B087-4324-9DBA-6DD5E844FD9F&amp;amp;displaylang=en"&gt;Download the Microsoft Chart Controls Documentation&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/MSWinWebChart/threads/"&gt;Visit the Microsoft Chart Control Forum&lt;/a&gt;&lt;/li&gt;  &lt;p&gt;Ref from Scott Guthrie's blog: &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx"&gt;New ASP.NET Charting Control: &lt;asp:chart runat="server" /&gt;- ScottGu's Blog&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-2528021036589527041?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/2528021036589527041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=2528021036589527041' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/2528021036589527041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/2528021036589527041'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2008/12/new-aspnet-charting-control.html' title='New ASP.NET Charting Control'/><author><name>Mark Harr</name><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5515156.post-5478838007267694207</id><published>2008-11-18T14:59:00.001-05:00</published><updated>2008-11-18T14:59:09.779-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>An Ajax Cross Browser GridView Fixed Header Extender</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.devarchive.net/2008/05/cross-browser-gridview-fixed-header.html"&gt;DevArchive.net Blog: Cross Browser GridView Fixed Header Extender, ASP.NET AJAX&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;A nice AJAX extender control for GridView to provide fixed header row for scrolling grid.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5515156-5478838007267694207?l=www.harr.us%2Fmarkblog%2Fdefault.htm' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/5478838007267694207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=5515156&amp;postID=5478838007267694207' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/5478838007267694207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5515156/posts/default/5478838007267694207'/><link rel='alternate' type='text/html' href='http://www.harr.us/markblog/2008/11/ajax-cross-browser-gridview-fixed.html' title='An Ajax Cross Browser GridView Fixed Header Extender'/><author><name>Mark Harr</name><email>noreply@blogger.com</email></author><thr:total>1</thr:total></entry></feed>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           