<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>artykul8</title>
	<atom:link href="http://artykul8.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://artykul8.com</link>
	<description>ar·tic·u·late (v.) to make clear or effective</description>
	<lastBuildDate>Thu, 22 Jul 2010 16:03:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>VSeWSS BIN Deployment and CAS Policy Issues</title>
		<link>http://artykul8.com/2010/07/vsewss-bin-deployment-and-cas-policy-issues/</link>
		<comments>http://artykul8.com/2010/07/vsewss-bin-deployment-and-cas-policy-issues/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 16:03:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[MOSS 2007]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[WSS 3.0]]></category>
		<category><![CDATA[Visual Studio 2008]]></category>

		<guid isPermaLink="false">http://artykul8.com/?p=280</guid>
		<description><![CDATA[There is a bug in Visual Studio Extensions for WSS (including VSeWSS 1.3) &#8211; if you are targeting your web part deployment into BIN instead of GAC, you are in for an upleasant surprise, when you realize that you custom access policy is not working.
The reason for this is incorrect assembly reference in manifest.xml, which [...]]]></description>
			<content:encoded><![CDATA[<p>There is a bug in Visual Studio Extensions for WSS (including VSeWSS 1.3) &#8211; if you are targeting your web part deployment into BIN instead of GAC, you are in for an upleasant surprise, when you realize that you custom access policy is not working.</p>
<p>The reason for this is incorrect assembly reference in manifest.xml, which results in invalid URL for IMembershipCondition element, where binary name has an extra .dll suffix in CAS policy file, just like in the file excerpt below:</p>
<pre><strong>C:\Program Files\Common Files\microsoft shared\Web Server Extensions\12\CONFIG\wss_custom_wss_mediumtrust_<em>guid</em>.config</strong></pre>
<p><code>   ...<br />
  &lt;CodeGroup version="1" PermissionSetName="mycustomwebpart.wsp-12345678-90AB-1234-5678-90ABC3456-1"&gt;<br />
    &lt;IMembershipCondition version="1" Name="MyCustomWebPart" Url="$AppDirUrl$/bin/<strong><span style="color: #ff0000;">MyCustomWebPart.dll.dll</span></strong>" /&gt;<br />
  &lt;/CodeGroup&gt;<br />
</code></p>
<p>The solution for this problem is relatively simple:</p>
<p>- in your Visual Studio open <strong>WSP View</strong> pane, click Refresh button to update solution files</p>
<p>- open manifest.xml and in <strong>&lt;Assembly&gt;</strong> element <strong>remove extension &#8216;.dll&#8217; from Assembly Name attribute</strong>:<br />
<code><br />
&lt;Solution ...&gt;<br />
  ...<br />
  &lt;CodeAccessSecurity&gt;<br />
    &lt;PolicyItem xmlns="<a href="http://schemas.microsoft.com/sharepoint/">http://schemas.microsoft.com/sharepoint/</a>"&gt;<br />
      ...<br />
      &lt;Assemblies&gt;<br />
        &lt;Assembly Name="MyCustomWebPart" /&gt;<br />
      &lt;/Assemblies&gt;<br />
    &lt;/PolicyItem&gt;<br />
&lt;/Solution&gt;<br />
</code></p>
<p>Additionally, while editing <strong>manifest.xml</strong> if you like to grant your web part additional security privileges you might need to add a few lines to <strong>PermissionSet</strong> element. In particular, if you are using MOSS Search or Search Server functionality, such as KeywordQuery or FullTextSqlQuery classes you would need <strong>RegistryPermission</strong> and <strong>FileIOPermission</strong> lines.<br />
<code><br />
  &lt;PermissionSet class="NamedPermissionSet" version="1" Description="Example"&gt;<br />
    ...<br />
    &lt;IPermission class="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" /&gt;<br />
    &lt;IPermission class="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" /&gt;<br />
    &lt;IPermission class="System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" /&gt;<br />
    &lt;IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"version="1" Unrestricted="true" PathDiscovery="*AllFiles*" /&gt;<br />
  &lt;/PermissionSet&gt;<br />
</code></p>
<p>Additional resources:</p>
<ul>
<li><a href="http://msdn.microsoft.com/en-us/library/ee909485(office.12).aspx">MSDN: Administrator and Developer Guide to Code Access Security in SharePoint Server 2007</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/ms442108(office.12).aspx">MSDN: Solution Schema</a></li>
<li><a href="http://msdn.microsoft.com/en-us/library/cc768613(office.12).aspx">MSDN: Securing Web Parts in Windows SharePoint Services</a></li>
<li><a href="http://www.bluedoglimited.com/SharePointThoughts/ViewPost.aspx?ID=249">BlueDog Limited post: Code Access Security policies within SharePoint v3</a></li>
</ul>
<p><a href="http://artykul8.com/media/2010/07/LonelyBench.jpg"><img src="http://artykul8.com/media/2010/07/LonelyBench-450x300.jpg" alt="" title="LonelyBench" width="450" height="300" class="size-medium wp-image-291" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://artykul8.com/2010/07/vsewss-bin-deployment-and-cas-policy-issues/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Merging VMware Fusion/Workstation Virtual Split Disk into a Single VMDK</title>
		<link>http://artykul8.com/2010/07/merging-vmware-split-disk-into-single-vmdk/</link>
		<comments>http://artykul8.com/2010/07/merging-vmware-split-disk-into-single-vmdk/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 17:36:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[VM]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://artykul8.com/?p=191</guid>
		<description><![CDATA[Every time you create a new virtual machine in VMware Fusion/Workstation, it is always created with a virtual disk (VMDK) split up into 2Gb files. One of the main reasons for that, I guess would be a limitation of FAT-32 file system &#8211; maximum file size of 2Gb. However, if you are no longer using [...]]]></description>
			<content:encoded><![CDATA[<p>Every time you create a new virtual machine in VMware Fusion/Workstation, it is always created with a virtual disk (VMDK) split up into 2Gb files. One of the main reasons for that, I guess would be a limitation of FAT-32 file system &#8211; maximum file size of 2Gb. However, if you are no longer using FAT file system and would like to convert the default vmdk into one single pre-allocated file, here is what you can do.</p>
<p>In order to convert the existing virtual disk to a single .vmdk file you would need to use a console application &#8216;VMware Virtual Disk Manager&#8217; located in <code><strong>'/Library/Application Support/VMWare Fusion'</strong></code> folder.</p>
<p>Follow these two steps:</p>
<p> &#8211; open your Mac terminal console (Applications -> Utilities -> Terminal) and navigate to the folder with your VMware disk image</p>
<p> &#8211; from that folder run the following command (typing VMware&#8217;s diskmanager path with backslash prefixes for space):</p>
<p><code><strong>/Library/Application\ Support/VMWare\ Fusion/vmware-diskmanager -r <em>originalSplitDisk.vmdk</em> -t 0 <em>targetSingleDisk.vmdk</em></strong></code></p>
<p><a href="http://artykul8.com/media/2010/03/vmware-fusion-merge.png"><img src="http://artykul8.com/media/2010/03/vmware-fusion-merge-450x135.png" alt="" title="vmware-fusion-merge" width="450" height="135" class="alignnone size-medium wp-image-192" /></a></p>
<p>If you are running VMware Workstation on Windows, you can use the same command with the only difference that vmware-vdiskmanager.exe would be located in a folder where VMware Workstation was installed, e.g.: <code><strong>C:\Program Files\VMware\VMware Workstation</strong></code>.</p>
<p>Documentation and other examples for VMware Virtual Disk Manager use:</p>
<ul>
<li><a href="http://www.vmware.com/support/ws45/doc/disks_vdiskmanager_run_ws.html">http://www.vmware.com/support/ws45/doc/disks_vdiskmanager_run_ws.html</a></li>
<li><a href="http://www.vmware.com/support/ws45/doc/disks_vdiskmanager_eg_ws.html">http://www.vmware.com/support/ws45/doc/disks_vdiskmanager_eg_ws.html</a></li>
</ul>
<p><a href="http://artykul8.com/media/2010/03/PacificBeachSunset.jpg"><img src="http://artykul8.com/media/2010/03/PacificBeachSunset-337x450.jpg" alt="" title="PacificBeachSunset" width="337" height="450" class="size-medium wp-image-200" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://artykul8.com/2010/07/merging-vmware-split-disk-into-single-vmdk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Converting Physical x64 Machine to Virtual (Windows 7/Server 2008 R2): Microsoft &#8211; 1 : VMware &#8211; 0</title>
		<link>http://artykul8.com/2010/04/converting-physical-x64-machine-to-virtual/</link>
		<comments>http://artykul8.com/2010/04/converting-physical-x64-machine-to-virtual/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 14:36:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[VM]]></category>
		<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[Windows Server 2008]]></category>

		<guid isPermaLink="false">http://artykul8.com/?p=220</guid>
		<description><![CDATA[Being an old fan of VMware products (in particular, the fact that I can run VMware VMs on my MacBook, as well as on Wintel desktop), I found myself utterly disappointed this week, when I tried to convert my physical Windows Server 2008 R2 x64 into a virtual instance.
The latest version of VMware Converter kept [...]]]></description>
			<content:encoded><![CDATA[<p>Being an old fan of VMware products (in particular, the fact that I can run VMware VMs on my MacBook, as well as on Wintel desktop), I found myself utterly disappointed this week, when I tried to convert my physical Windows Server 2008 R2 x64 into a virtual instance.</p>
<p>The latest version of <strong>VMware Converter</strong> kept crashing on me at the start of the conversion process with the error: <strong>&#8220;Unable to create a VSS snapshot of the source volume(s).&#8221;</strong><br />
More disappointingly, even according to press releases <a href="http://www.vmware.com/products/converter/">VMware vCenter Converter</a> &#8211; the latest and greatest version of VMware Converter, officially doesn&#8217;t support Windows 7 or Windows Server 2008 R2 editions (its latest version at the moment is <a href="http://www.vmware.com/support/converter/doc/releasenotes_conv401.html">4.0.1</a> and dated 2009-12-08).</p>
<p>After a few failed attempts with VMware, I decided to look at Microsoft offerings. Even though, I couldn&#8217;t find an official Microsoft converter product, I found something better &#8211; a <strong>Sysinternals utility <a href="http://technet.microsoft.com/en-us/sysinternals/ee656415.aspx">Disk2vhd</a></strong>, which can create a virtual hard disk (VHD) out of running physical image.</p>
<p>The most impressive part that the whole process of converting my running 60G RAID-0 hard drive array took only a couple of minutes, with minimal configuration effort &#8211; no heavy installation or complex user-interface interactions. All I had to do is select a check box with the volume(s), which needs to be converted and that&#8217;s it. Systinternals delivered an impressive utility once again! Kudos to Microsoft for keeping Sysinternals brand alive and bringing new useful tools.</p>
<p><a href="http://artykul8.com/media/2010/04/disk2vhd.png"><img title="disk2vhd" src="http://artykul8.com/media/2010/04/disk2vhd-450x380.png" alt="" width="450" height="380" /></a></p>
<p>Links:</p>
<ul>
<li><a href="http://technet.microsoft.com/en-us/sysinternals/default.aspx">Sysinternals</a></li>
<li><a href="http://blogs.technet.com/markrussinovich/default.aspx">Mark Russinovich&#8217;s Blog</a></li>
<li><a href="http://download.sysinternals.com/Files/Disk2vhd.zip">Download Disk2vhd</a></li>
<li><a href="http://live.sysinternals.com/Disk2vhd.exe">Run Disk2vhd from Live.Sysinternals.com</a></li>
</ul>
<p><a href="http://artykul8.com/media/2010/04/PaintItBlack.jpg"><img title="PaintItBlack" src="http://artykul8.com/media/2010/04/PaintItBlack-450x323.jpg" alt="" width="450" height="323" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://artykul8.com/2010/04/converting-physical-x64-machine-to-virtual/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SharePoint Server 2007 on Windows Server 2008 R2</title>
		<link>http://artykul8.com/2010/03/sharepoint-server-2007-on-windows-server-2008-r2/</link>
		<comments>http://artykul8.com/2010/03/sharepoint-server-2007-on-windows-server-2008-r2/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 21:04:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MOSS 2007]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[WSS 3.0]]></category>
		<category><![CDATA[Windows Server 2008]]></category>

		<guid isPermaLink="false">http://artykul8.com/?p=205</guid>
		<description><![CDATA[This already became a somewhat old topic, since Microsoft released a proper SharePoint Server 2007 slipstream edition with SP2.
Nonetheless, it is important to remember that if you are planning to install SharePoint Server 2007 or Windows SharePoint Services 3.0, it has to be at least SP2, anything before that is not supported on Windows Server [...]]]></description>
			<content:encoded><![CDATA[<p>This already became a somewhat old topic, since Microsoft released a proper SharePoint Server 2007 slipstream edition with SP2.</p>
<p>Nonetheless, it is important to remember that if you are planning to install SharePoint Server 2007 or Windows SharePoint Services 3.0, it has to be at least SP2, anything before that is not supported on Windows Server 2008 R2. <a href="http://blogs.msdn.com/sharepoint/archive/2009/10/02/install-sharepoint-server-2007-on-windows-server-2008-r2.aspx">SharePoint Team Blog: Install SharePoint Server 2007 on Windows Server 2008 R2</a></p>
<p>There was a bit of confusion/frustration raised over this topic, because WSS 3.0 slipstream with SP2 came out long ago (April 2009), but MOSS 2007 was for some reasons left behind, and MSDN subscribers saw slipstream SP2 edition only in January 2010.</p>
<p>WSS 3.0 with SP2:<br />
x86: <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EF93E453-75F1-45DF-8C6F-4565E8549C2A&#038;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyId=EF93E453-75F1-45DF-8C6F-4565E8549C2A&#038;displaylang=en</a><br />
x64: <a href="http://www.microsoft.com/downloads/details.aspx?familyid=9FB41E51-CB03-4B47-B89A-396786492CBA&#038;displaylang=en">http://www.microsoft.com/downloads/details.aspx?familyid=9FB41E51-CB03-4B47-B89A-396786492CBA&#038;displaylang=en</a></p>
<p>MOSS 2007 with SP2 (trial):<br />
x86: <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2e6e5a9c-ebf6-4f7f-8467-f4de6bd6b831&#038;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=2e6e5a9c-ebf6-4f7f-8467-f4de6bd6b831&#038;displaylang=en</a><br />
x64: <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=3015fde4-85f6-4cbc-812d-55701fbfb563&#038;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=3015fde4-85f6-4cbc-812d-55701fbfb563&#038;displaylang=en</a></p>
<p><a href="http://artykul8.com/media/2010/03/VeniceBeachSurfing.jpg"><img src="http://artykul8.com/media/2010/03/VeniceBeachSurfing-450x316.jpg" alt="" title="VeniceBeachSurfing" width="450" height="316" class="alignnone size-medium wp-image-206" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://artykul8.com/2010/03/sharepoint-server-2007-on-windows-server-2008-r2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows Server, IIS/SharePoint, and NULL SID &#8216;Audit Failure&#8217; Security Errors</title>
		<link>http://artykul8.com/2010/01/windows-server-iis-sharepoint-and-null-sid-audit-failures/</link>
		<comments>http://artykul8.com/2010/01/windows-server-iis-sharepoint-and-null-sid-audit-failures/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 20:24:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[MOSS 2007]]></category>
		<category><![CDATA[WSS 3.0]]></category>

		<guid isPermaLink="false">http://artykul8.com/?p=166</guid>
		<description><![CDATA[I stumbled across this issue, while troubleshooting errors accessing host-named SharePoint sites locally from within a web server (sites with specified host headers different from local server name).
While I had no problems accessing the same site from another computer, I could not login and access any pages locally. I was constantly prompted for user name [...]]]></description>
			<content:encoded><![CDATA[<p>I stumbled across this issue, while troubleshooting errors accessing host-named SharePoint sites locally from within a web server (sites with specified host headers different from local server name).<br />
While I had no problems accessing the same site from another computer, I could not login and access any pages locally. I was constantly prompted for user name and password receiving access errors, while my Security event log was getting filled with &#8216;Audit Failure&#8217; log messages about NULL SID: &#8220;An account failed to log on. Security ID: NULL SID&#8221;.</p>
<p><a href="http://artykul8.com/media/2010/01/auditfailure.gif"><img src="http://artykul8.com/media/2010/01/auditfailure-450x410.gif" alt="" title="auditfailure" width="450" height="410" class="alignnone size-medium wp-image-177" /></a></p>
<p>After eliminating all possible causes &#8211; NLB, SharePoint site configuration, IIS security and settings &#8211; it turned out that it wasn&#8217;t even IIS- or SharePoint-related issue at all. Starting with Windows Server 2003 SP1 and higher (Windows Server 2008 and R2 editions in that list as well), as a security measure Microsoft introduced a loopback check to prevent <a href="http://en.wikipedia.org/wiki/Man-in-the-middle_attack">man-in-the-middle (MITM) attack</a>, when a malicious application (such as spyware) can try to eavesdrop communication with a remote server by introducing itself locally as a remote host. Please note: loopback check happens only when host headers do not match local computer name.</p>
<p>The symptoms and solutions are described in Microsoft KB article: <strong><a href="http://support.microsoft.com/kb/896861">http://support.microsoft.com/kb/896861</a></strong><br />
Additionally a few other related issues (accessing network shares, etc) are outlined in two more KB articles: <a href="http://support.microsoft.com/kb/887993">http://support.microsoft.com/kb/887993</a> and <a href="http://support.microsoft.com/kb/926642">http://support.microsoft.com/kb/926642</a>.</p>
<p>To deal with this issue you have two options: either explicitly specify all host headers in the registry (the most secure, but also the most cumbersome solution), or disable loopback check entirely.</p>
<p>If you decide to opt for completely disabling loopback check (on a development or test server), here is one command line you can achieve it through. Please remember to restart your server after changing the registry!</p>
<p> <strong>REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v DisableLoopbackCheck /t REG_DWORD /d 1</strong></p>
<p><img src="http://artykul8.com/media/2010/01/disableloopbackcheck.gif" alt="" title="disableloopbackcheck" width="806" height="96" class="alignnone size-full wp-image-167" /></p>
]]></content:encoded>
			<wfw:commentRss>http://artykul8.com/2010/01/windows-server-iis-sharepoint-and-null-sid-audit-failures/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>System.Configuration Namespace and Obsolete Functions</title>
		<link>http://artykul8.com/2009/12/system-configuration-namespace-and-obsolete-functions/</link>
		<comments>http://artykul8.com/2009/12/system-configuration-namespace-and-obsolete-functions/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 04:00:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[framework]]></category>

		<guid isPermaLink="false">http://artykul8.com/?p=151</guid>
		<description><![CDATA[&#8216;What Really Grinds My Gears&#8217; (WRGMG) topic of the month:
Have you ever wondered why after adding System.Configuration namespace reference you see a link to System.configuration assembly (note a small &#8216;c&#8217; instead of the capital one)?
And why calling obsolete functions in order to access your AppSettings through System.Configuration.ConfigurationSettings.AppSettings["myKey"] doesn&#8217;t require you adding any additional references, but [...]]]></description>
			<content:encoded><![CDATA[<p>&#8216;What Really Grinds My Gears&#8217; (WRGMG) topic of the month:</p>
<p>Have you ever wondered why after adding System.Configuration namespace reference you see a link to System.configuration assembly (note a small &#8216;c&#8217; instead of the capital one)?</p>
<p>And why calling obsolete functions in order to access your AppSettings through <code>System.Configuration.ConfigurationSettings.AppSettings["myKey"]</code> doesn&#8217;t require you adding any additional references, but using <code>System.Configuration.ConfigurationManager.AppSettings["myKey"]</code> requires you going to the project&#8217;s Add Reference dialog and adding System.Configuration explicitly?</p>
<p>The reason for that is unfortunately somewhat poor framework design, in particular backward compatibility implementation. In .NET versions starting from 2.0, class <strong>System.Configuration.ConfigurationSettings</strong> is actually stored in System.dll, and is basically a stub pointing to <strong>System.Configuration.ConfigurationManager</strong>, which exists in System.configuration.dll (note again small &#8216;c&#8217;).</p>
<p>Here is a good explanation in one of the older blog posts <a href="http://geekswithblogs.net/jbentley/archive/2005/07/03/45320.aspx">System.configuration</a>.</p>
<p>However, as always the ultimate reference is good ole&#8217; Reflector, which allows you to find exactly where each class is stored, and to peek inside implementation details. Such as delegated calls from deprecated stub class ConfigurationSettings (System.dll) to the new ConfigurationManager (System.configuration.dll).</p>
<p><a href="http://artykul8.com/media/2009/08/ArmyOfOne.jpg"><img src="http://artykul8.com/media/2009/08/ArmyOfOne-236x450.jpg" alt="Army of One" title="ArmyOfOne" width="236" height="450" class="size-medium wp-image-134" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://artykul8.com/2009/12/system-configuration-namespace-and-obsolete-functions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Site Performance and JPEG Compression</title>
		<link>http://artykul8.com/2009/10/web-site-performance-and-jpeg/</link>
		<comments>http://artykul8.com/2009/10/web-site-performance-and-jpeg/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 04:56:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MOSS 2007]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://artykul8.com/?p=100</guid>
		<description><![CDATA[As a consultant, throughout stabilizing and deployment phases, I get frequently asked to investigate performance of specific web pages or whole sites, in order to improve page rendering speed, lately more and more related to SharePoint environment.
And what I often see in breakdown of page rendering that it is not that server execution time, which [...]]]></description>
			<content:encoded><![CDATA[<p>As a consultant, throughout stabilizing and deployment phases, I get frequently asked to investigate performance of specific web pages or whole sites, in order to improve page rendering speed, lately more and more related to SharePoint environment.</p>
<p>And what I often see in breakdown of page rendering that it is not that server execution time, which lags behind and causes visual delays, but the size and amount of creative content, which was put on the web site &#8211; images and flash files. The easiest way to quickly look at the page load timing breakdown is probably by using FireBug&#8217;s Net tab, as it&#8217;s shown on this illustration.</p>
<p><a href="http://artykul8.com/media/2009/10/pageloadbreakdown.gif"><img src="http://artykul8.com/media/2009/10/pageloadbreakdown-450x286.gif" alt="pageloadbreakdown" title="pageloadbreakdown" width="450" height="286" class="size-medium wp-image-138" /></a></p>
<p>There are many ways to optimize and enhance performance of specific web pages and web sites in general. One of the great examples of the process and approach to optimization, is documented in the blog of Microsoft SharePoint team, which has done amazing job <a href="http://blogs.msdn.com/sharepoint/archive/2009/09/28/how-we-did-it-speeding-up-sharepoint-microsoft-com.aspx">speeding up SharePoint.Microsoft.com</a>. </p>
<p>However, in this post, rather than talking about optimization in general, I want to draw your attention to one highly overlooked issue &#8211; the size of creative media content used on production web sites, specifically size of JPEG images and Flash pieces relying heavily on imagery.</p>
<p>Back in the days, when I was working in video encoding industry, I used to spend large chunk of my time working with different JPEG settings and libraries for motion JPEG video compression. JPEG has many different implementations, and all image editing software programs, such as PhotoShop, Picasa, Paint, etc. use their own libraries with proprietary JPEG-compression, which differs in compression speed, parallelism, and quality.</p>
<p>However, they all have one thing in common &#8211; a configurable characteristic of compression quality, often expressed in per centage, or 0-100. You can read more on JPEG compression quality on <a href="http://en.wikipedia.org/wiki/JPEG">wikipedia</a>, with lots of great examples and comparisons.</p>
<p>But I would like to compare samples, which are closer to real life situation, such a simple web site banner, and show what programs you can use to optimize image file compression.</p>
<p>Here&#8217;s a sample image saved with different image quality:</p>
<p>Original Image &#8211; PNG, Image size: <b>43KB</b><br />
<img src="http://artykul8.com/media/2009/10/apticonlogo.png" alt="apticonlogo" title="apticonlogo" width="600" height="86" class="alignnone size-full wp-image-111" /></p>
<p>JPEG Image &#8211; Quality: 100% (PhotoShop compression quality: Maximum), Size = <b>24KB</b><br />
<img src="http://artykul8.com/media/2009/10/apticonlogo99.jpg" alt="apticonlogo99" title="apticonlogo99" width="600" height="86" class="alignnone size-full wp-image-112" /></p>
<p>JPEG Image &#8211; Quality: 80% (PhotoShop compression quality: Very High), Image Size: <b>14KB</b><br />
<img src="http://artykul8.com/media/2009/10/apticonlogo80.jpg" alt="apticonlogo80" title="apticonlogo80" width="600" height="86" class="alignnone size-full wp-image-115" /></p>
<p>JPEG Image &#8211; Quality 60% (PhotoShop compression quality: High), Image size: <b>12KB</b><br />
<img src="http://artykul8.com/media/2009/10/apticonlogo60.jpg" alt="apticonlogo60" title="apticonlogo60" width="600" height="86" class="alignnone size-full wp-image-116" /></p>
<p>JPEG Image &#8211; Quality 30% (PhotoShop compression quality: Medium), Image size: <b>6KB</b><br />
<img src="http://artykul8.com/media/2009/10/apticonlogo30.jpg" alt="apticonlogo30" title="apticonlogo30" width="600" height="86" class="alignnone size-full wp-image-117" /></p>
<p>JPEG Image &#8211; Quality 10% (PhotoShop compression quality: Low), Image size: <b>4KB</b><br />
<img src="http://artykul8.com/media/2009/10/apticonlogo10.jpg" alt="apticonlogo10" title="apticonlogo10" width="600" height="86" class="alignnone size-full wp-image-118" /></p>
<p>As you can see the size differs drastically on the compression quality, and in many situations, when the images do not contain a lot of text or are related to professional photography, the quality can be lowered to reduce the size of the images. How low you should go is absolutely up to you and your attention to details. It is just important to remember to review image sizes before putting them online, and make an intelligent decision about how large do you want your image to be, and how fast you want your page to render on the screen of internet users.</p>
<p>The best way to review image sizes and quality if you are using <b>PhotoShop CS</b> editions is to choose to &#8220;<a href="http://www.impulseadventure.com/photo/save-as-save-for-web.html">Save for Web</a>&#8220;. PhotoShop shows you image preview and quality comparison right in the save dialog:</p>
<p><a href="http://artykul8.com/media/2009/10/apticonlogophotoshop.png"><img src="http://artykul8.com/media/2009/10/apticonlogophotoshop-450x330.png" alt="apticonlogophotoshop" title="apticonlogophotoshop" width="450" height="330" class="alignnone size-medium wp-image-119" /></a></p>
<p>As far as free alternatives to PhotoShop go:</p>
<p>- if you are using <b>Picasa</b>, one of the ways to do that if you choose to &#8216;Export to Folder&#8217;, and specify &#8216;Image Quality&#8217; in the dialog, opting for &#8216;Normal&#8217;, &#8216;Minimum&#8217;, or &#8216;Custom&#8217; where you can specify the exact compression quality</p>
<p> &#8211; or you can use <b>MS Paint</b>, which by default already saves with relatively lossy compression settings, and which you can also override through the registry</p>
]]></content:encoded>
			<wfw:commentRss>http://artykul8.com/2009/10/web-site-performance-and-jpeg/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to Locate Assembly in GAC</title>
		<link>http://artykul8.com/2009/08/locat-assembly-in-gac/</link>
		<comments>http://artykul8.com/2009/08/locat-assembly-in-gac/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 22:15:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://artykul8.com/?p=65</guid>
		<description><![CDATA[Here is a simple step by step process of how to locate an assembly in GAC if you want to take a copy of it, or maybe add an additional debug information .pdb-file for remote debugging purposes.

open command prompt
change the current folder to c:\windows\assembly (%SystemRoot%\assembly)
navigate to GAC_MSIL folder &#8211; that is where most of the [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a simple step by step process of how to locate an assembly in GAC if you want to take a copy of it, or maybe add an additional debug information .pdb-file for remote debugging purposes.</p>
<ul>
<li>open command prompt</li>
<li>change the current folder to <strong>c:\windows\assembly</strong> (<strong>%SystemRoot%\assembly</strong>)</li>
<li>navigate to <strong>GAC_MSIL</strong> folder &#8211; that is where most of the time you will find the assembly<br />
(the list of all other folders in Assembly, with explanation for some of them, is below)</li>
<li>find the folder name with your assembly name without extension and navigate to it</li>
<li>additionally navigate down one more folder with the version information, and your assembly should be in that folder</li>
</ul>
<p><a href="http://artykul8.com/media/2009/08/commandprompt-gac.gif"><img class="size-full wp-image-68" title="GAC in Command Prompt" src="http://artykul8.com/media/2009/08/commandprompt-gac.gif" alt="GAC in Command Prompt" width="638" height="248" /></a></p>
<h3>Structure of Assembly folder</h3>
<p>Here are examples of what you might see in Assembly folder on different computers:</p>
<p style="padding-left: 30px;"> Windows XP 32-bit workstation:<br />
- GAC<br />
- GAC_32<br />
- GAC_MSIL<br />
- NativeImages1_v1.1.4322<br />
- NativeImages_v2.0.50727_32<br />
- temp<br />
- tmp</p>
<p style="padding-left: 30px;">Windows Server 2008 64-bit server:<br />
- GAC<br />
- GAC_32<br />
- GAC_64<br />
- GAC_MSIL<br />
- NativeImages_v2.0.50727_32<br />
- NativeImages_v2.0.50727_64<br />
- temp<br />
- tmp</p>
<ul>
<li><strong>NativeImages&#8230;</strong> &#8211; folders used for native images, which are typically compiled by ngen.exe.</li>
<li><strong>tmp</strong> folder used for installation assemblies to GAC</li>
<li><strong>temp</strong> folder is for uninstallation from GAC</li>
</ul>
<p>Here are some &#8216;under the hood&#8217; details on GAC <a href="http://blogs.msdn.com/junfeng/archive/2006/11/17/gac-temp-and-tmp.aspx">Temp and Tmp folders</a> and <a href="http://blogs.msdn.com/junfeng/archive/2005/10/24/484063.aspx">Install and Uninstall of assemblies</a>.</p>
<h3>Opening GAC assemblies with .NET Reflector </h3>
<p>If you are using <a href="http://www.red-gate.com/products/reflector/">.NET Reflector</a> there are two things you can do to look what&#8217;s inside that assembly from GAC:</p>
<ol>
<li>make a copy of your assembly from GAC folder to a local folder (the steps explained above) and open the assembly from that local folder</li>
<li>edit your reflector settings file: reflector.cfg, and add the following GAC paths there, then you should be able to open assembly right from open menu:<br />
[AssemblyCache]<br />
&#8230;<br />
&#8220;%SystemRoot%\Assembly&#8221;<br />
&#8220;%SystemRoot%\Assembly\GAC&#8221;<br />
&#8220;%SystemRoot%\Assembly\GAC_MSIL&#8221;<br />
&#8220;%SystemRoot%\Assembly\GAC_32&#8243;<br />
&#8220;%SystemRoot%\Assembly\GAC_64&#8243;</li>
</ol>
<p><a href="http://artykul8.com/media/2009/08/lonelyfirehydrant.jpg"><img src="http://artykul8.com/media/2009/08/lonelyfirehydrant-299x450.jpg" alt="Lonely Fire Hydrant" title="Lonely Fire Hydrant" width="299" height="450" class="size-medium wp-image-93" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://artykul8.com/2009/08/locat-assembly-in-gac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Studio 2008 Extensions for SharePoint (VSeWSS 1.3)</title>
		<link>http://artykul8.com/2009/08/visual-studio-2008-extensions-for-sharepoint/</link>
		<comments>http://artykul8.com/2009/08/visual-studio-2008-extensions-for-sharepoint/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 15:50:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MOSS 2007]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[WSS 3.0]]></category>
		<category><![CDATA[Visual Studio 2008]]></category>

		<guid isPermaLink="false">http://artykul8.com/?p=32</guid>
		<description><![CDATA[This one is the biggest pet peeve about SharePoint development for me right now.
Microsoft SharePoint product team is blowing all bells and whistles, announcing SharePoint 2010, and how important it is to switch to 64-bit environment, while poor SharePoint 2007 left in the dust and crippled with the only development extension working on 64-bit, which [...]]]></description>
			<content:encoded><![CDATA[<p>This one is the biggest pet peeve about SharePoint development for me right now.</p>
<p>Microsoft SharePoint product team is blowing all bells and whistles, announcing SharePoint 2010, and how important it is to switch to 64-bit environment, while poor SharePoint 2007 left in the dust and crippled with the only development extension working on 64-bit, which is still in CTP phase <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=FB9D4B85-DA2A-432E-91FB-D505199C49F6&amp;displaylang=en">Visual Studio Extensions 1.3 (March 2009 CTP)</a>.</p>
<p>VSeWSS 1.3 was promised almost half a year ago to become a final release in the <a href="http://blogs.msdn.com/sharepoint/archive/2009/01/12/announcing-community-technology-preview-of-visual-studio-2008-extensions-for-sharepoint-v1-3.aspx">spring of 2009</a>, and later on in one of the dev blogs mentioned <a href="http://blogs.msdn.com/pandrew/archive/2009/03/19/visual-studio-2008-extensions-for-sharepoint-vsewss-1-3-addresses-all-common-sharepoint-developer-requests.aspx">July 2009</a> release date, but up to this date there hasn&#8217;t been any final version announcement or releases yet.</p>
<p>Also, if you are looking for more information and code snippets, you may still find useful referring to the samples that come with <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=A8A4E775-074D-4451-BE39-459921F79787&amp;displaylang=en">Visual Studio Extensions 1.1 for Visual Studio 2005 User Guide</a>, which have been removed from 1.3 release.</p>
<p>I&#8217;m keeping my fingers crossed for the new release to come soon, while blaming it all for the recession&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://artykul8.com/2009/08/visual-studio-2008-extensions-for-sharepoint/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Structured Procrastination and Perfectionism</title>
		<link>http://artykul8.com/2009/08/structured-procrastination/</link>
		<comments>http://artykul8.com/2009/08/structured-procrastination/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 21:42:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[philosophy]]></category>

		<guid isPermaLink="false">http://artykul8.com/?p=18</guid>
		<description><![CDATA[Yes, I&#8217;m a procrastinator. Thing that I would never admit about myself just a couple of years ago, but as you grow older and more self aware, you start accepting certain aspects of your life and own behavior, regardless of how imperfect they are. Nonetheless, it doesn&#8217;t mean that there is absolutely nothing should be [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, I&#8217;m a procrastinator. Thing that I would never admit about myself just a couple of years ago, but as you grow older and more self aware, you start accepting certain aspects of your life and own behavior, regardless of how imperfect they are. Nonetheless, it doesn&#8217;t mean that there is absolutely nothing should be done about this, and acceptance is the only form of dealing with reality.</p>
<p>Almost ten years ago, when I was still fresh out of the university, sitting at work on a surprisingly sunny afternoon for Belgium, aimlessly browsing internet trying to get distracted from loads of not finished work, a colleague and a friend of mine, Solodon, stopped by my desk and told me that I absolutely must read one essay. I finished it in a couple of minutes, re-reading it over and over again after, catching more details each time. Just a couple of pages long, a truly amazing masterpiece, very humorous and easy reading essay was written by Stanford professor of philosophy, John Perry <a href="http://www.structuredprocrastination.com/">&#8220;Structured Procrastination&#8221;</a>. The essay, which in a very playful entertaining way, suddenly opened my eyes and revealed hidden pattern of my own behavior, which my stubborn and lazy mind was trying to hide away.</p>
<p>And here I am, many years later, on another sunny afternoon only this time in Toronto, just like the author in his original work writing this blog post instead of doing other probably more important things, subconsciously trying to escape other tasks piling up on my desk and in my inbox. And for the same main reason &#8211; striving for perfection and postponing execution of other tasks, just so they can be done later, with desired level of attention and feeling of self accomplishment. Topic, which John Perry greatly outlined in his later essay <a href="http://www.structuredprocrastination.com/light/perfectionism.php">&#8220;Procrastination and Perfectionism&#8221;</a>.</p>
<blockquote><p>&#8230;Why am I finally doing it? Because I finally found some uncommitted time? Wrong. I have papers to grade, textbook orders to fill out, an NSF proposal to referee, dissertation drafts to read. I am working on this essay as a way of not doing all of those things. This is the essence of what I call structured procrastination, an amazing strategy I have discovered that converts procrastinators into effective human beings&#8230;</p></blockquote>
<p><a href="http://artykul8.com/media/2009/08/6-hole.jpg"><img src="http://artykul8.com/media/2009/08/6-hole-300x136.jpg" alt="6th Hole at Clevelands House" title="6th Hole at Cleve&#039;s" width="300" height="136" class="size-medium wp-image-54" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://artykul8.com/2009/08/structured-procrastination/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
