<?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>Patrick Zaw - Blog</title>
	<atom:link href="http://www.patrickzaw.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.patrickzaw.com</link>
	<description>Tech notes</description>
	<lastBuildDate>Sat, 05 Jun 2010 01:15:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CineForm Adobe Premiere CS5 crashing</title>
		<link>http://www.patrickzaw.com/?p=85</link>
		<comments>http://www.patrickzaw.com/?p=85#comments</comments>
		<pubDate>Fri, 04 Jun 2010 09:29:48 +0000</pubDate>
		<dc:creator>patrickzaw</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Adobe Premiere]]></category>
		<category><![CDATA[CineForm]]></category>

		<guid isPermaLink="false">http://www.patrickzaw.com/?p=85</guid>
		<description><![CDATA[UPDATE:  NeoScene 5.03.259 is out and this fixes this issue.
I had been strugling with this just recently.  Found a solution posted here on page 2.  Looks like it should be resolved in NeoScene 5.3.  Here&#8217;s the solution copied below:
We have found this playback freeze and are working on the best solution now (we have one [...]]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATE:</strong>  NeoScene 5.03.259 is out and this fixes this issue.</p>
<p>I had been strugling with this just recently.  Found a solution posted <a href="http://www.dvinfo.net/forum/cineform-software-showcase/479612-cineform-cs5-encode-issues-2.html" target="_blank" onclick="">here on page 2</a>.  Looks like it should be resolved in NeoScene 5.3.  Here&#8217;s the solution copied below:</p>
<p>We have found this playback freeze and are working on the best solution now (we have one that works, working on an cleaner solution for this next release &#8212; 5.0.3 is waiting for it.)</p>
<p>This works. Replace<br />
C:\Program Files\Adobe\Adobe Premiere Pro CS5\Plug-ins\Common\CineForm\CFHD_AVI_Importer.prm<br />
and<br />
C:\Program Files\Adobe\Common\Plug-ins\CS5\MediaCore\CineForm\CFHD_AVI_Importer.prm</p>
<p>with the contents of:<br />
<a rel="nofollow" href="http://www.cineform.com/downloads/CFHD_AVI_ImporterV503.zip" target="_blank" onclick="">http://www.cineform.com/downloads/CF&#8230;porterV503.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.patrickzaw.com/?feed=rss2&amp;p=85</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>1920&#215;1080 2.35:1 aspect ratio letterboxing</title>
		<link>http://www.patrickzaw.com/?p=63</link>
		<comments>http://www.patrickzaw.com/?p=63#comments</comments>
		<pubDate>Mon, 10 May 2010 07:13:51 +0000</pubDate>
		<dc:creator>patrickzaw</dc:creator>
				<category><![CDATA[Adobe After Effects]]></category>
		<category><![CDATA[Adobe Premiere]]></category>
		<category><![CDATA[Aspect Ratio]]></category>
		<category><![CDATA[Film Editing]]></category>

		<guid isPermaLink="false">http://www.patrickzaw.com/?p=63</guid>
		<description><![CDATA[Click on the image above to get the png.
I searched all over the interweb for this but couldn&#8217;t find it so I decided to just create it myself.  If you&#8217;re trying to letterbox a 1920&#215;1080 video so that it ends up being the typical cinematic format of 2.35:1 (actually 2.39:1) then you can use this PNG image as [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_65" class="wp-caption alignnone" style="width: 160px"><a href="http://www.patrickzaw.com/wp-content/uploads/2010/05/1920x817-blocking.png"><img class="size-thumbnail wp-image-65" title="1920x1080 2.35 letterbox" src="http://www.patrickzaw.com/wp-content/uploads/2010/05/1920x817-blocking-150x150.png" alt="1920x1080 2.35 letterbox" width="150" height="150" /></a><p class="wp-caption-text">1920x1080 2.35 letterbox</p></div>
<p>Click on the image above to get the png.</p>
<p>I searched all over the interweb for this but couldn&#8217;t find it so I decided to just create it myself.  If you&#8217;re trying to letterbox a 1920&#215;1080 video so that it ends up being the typical cinematic format of 2.35:1 (actually 2.39:1) then you can use this PNG image as your last layer of the composite.   If you&#8217;re confused why it&#8217;s 2.39 vs 2.35 but still called 2.35 <a href="http://en.wikipedia.org/wiki/Aspect_ratio_(image)" target="_blank" onclick="">read here</a>.</p>
<p>To break it down, the image size 1920&#215;1080 exactly with black bars on top and bottom with each bar being 138 pixels high.  The result is a transparent area of 1920&#215;803 or in other words 2.39:1 where the rest of the composite layers can be seen.</p>
<p>Some people prefer to just crop in their NLE but I found my approach to be much more useful for  a few reasons:</p>
<ol>
<li>You can implement the letterboxing across the entire project without having to set crop settings on each clip or track</li>
<li>The letterboxing is just a composite so any of the tracks or clips beneath it can be repositioned vertically without changing the letterboxing.  This is tough to do when you use cropping becuase you&#8217;re always readjusting the crop size to however you&#8217;re adjusting the vertical positioning.</li>
<li>I&#8217;m not absolutely sure about this, but it seems as though preview playbacks and rendering are a bit faster compared to cropping. </li>
</ol>
<p>I&#8217;m mainly using this technique on Adobe Premiere.  For those of you using Sony Vegas you should know your Pan/Crop settings can already handle this for you, but still you have to set that on every track but my method should alleviate that work.   And of course if you want a different aspect ratio, just adjust the image or make  new one.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patrickzaw.com/?feed=rss2&amp;p=63</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>SharePoint Large List 2000 Items Per Folder Limit</title>
		<link>http://www.patrickzaw.com/?p=58</link>
		<comments>http://www.patrickzaw.com/?p=58#comments</comments>
		<pubDate>Thu, 25 Feb 2010 19:19:56 +0000</pubDate>
		<dc:creator>patrickzaw</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.patrickzaw.com/?p=58</guid>
		<description><![CDATA[I know this is a moot point now that SharePoint 2010 will support 50? million and without the recommended 2000 limit per container.   See this article for SharePoint 2007 large list performance.
If you&#8217;re programmatically adding items into your document library or list you can use this piece of code to retrieve a folder structure based [...]]]></description>
			<content:encoded><![CDATA[<p>I know this is a moot point now that SharePoint 2010 will support 50? million and without the recommended 2000 limit per container.   <a href="http://sharepoint.microsoft.com/blogs/GetThePoint/Lists/Posts/Post.aspx?ID=162" target="_blank" onclick="">See this article for SharePoint 2007 large list performance.</a></p>
<p>If you&#8217;re programmatically adding items into your document library or list you can use this piece of code to retrieve a folder structure based on the current Date Time.  It will created a nested folder structure so that you will never have more than 2000 items in any folder.    For example a new list item would be stored in the following structure:</p>
<p>Year &#8211; 2010<br />
   Month &#8211; 4<br />
      Day &#8211; 20<br />
          Hour &#8211; 14</p>
<p><!-- code formatted by http://manoli.net/csharpformat/ --></p>
<pre class="csharpcode">        <span class="kwrd">private</span> SPFolder getCurrentDateFolder(<span class="kwrd">string</span> listName)
        {
            SPFolder currentDateFolder = <span class="kwrd">null</span>;
            DateTime now = DateTime.Now;

            SPSecurity.RunWithElevatedPrivileges(<span class="kwrd">delegate</span>()
            {
                <span class="kwrd">using</span> (SPSite site = <span class="kwrd">new</span> SPSite(SPContext.Current.Site.ID))
                {
                    <span class="kwrd">using</span> (SPWeb web = site.OpenWeb(SPContext.Current.Web.ID))
                    {
                        SPList list = web.Lists[listName];

                        SPFolder yearFolder = <span class="kwrd">null</span>;
                        SPFolder monthFolder = <span class="kwrd">null</span>;
                        SPFolder dayFolder = <span class="kwrd">null</span>;
                        SPFolder hourFolder = <span class="kwrd">null</span>;

                        <span class="kwrd">string</span> year = <span class="str">"Year - "</span> + now.Year.ToString();

                        <span class="kwrd">if</span> (doesFolderExistInSubFolders(list.RootFolder, year))
                        {
                            yearFolder = list.RootFolder.SubFolders[year];
                        }
                        <span class="kwrd">else</span>
                        {
                            web.AllowUnsafeUpdates = <span class="kwrd">true</span>;
                            SPListItem newFolder = list.Items.Add(<span class="str">""</span>, SPFileSystemObjectType.Folder, year);
                            newFolder.Update();
                            list.Update();
                            yearFolder = newFolder.Folder;

                        }

                        <span class="kwrd">string</span> month = <span class="str">"Month - "</span> + now.Month.ToString();

                        <span class="kwrd">if</span> (doesFolderExistInSubFolders(yearFolder, month))
                        {
                            monthFolder = yearFolder.SubFolders[month];
                        }
                        <span class="kwrd">else</span>
                        {
                            web.AllowUnsafeUpdates = <span class="kwrd">true</span>;
                            SPListItem newFolder = list.Items.Add(yearFolder.ServerRelativeUrl, SPFileSystemObjectType.Folder, month);
                            newFolder.Update();
                            list.Update();
                            monthFolder = newFolder.Folder;
                        }

                        <span class="kwrd">string</span> day = <span class="str">"Day - "</span> + now.Day.ToString();

                        <span class="kwrd">if</span> (doesFolderExistInSubFolders(monthFolder, day))
                        {
                            dayFolder = monthFolder.SubFolders[day];
                        }
                        <span class="kwrd">else</span>
                        {
                            web.AllowUnsafeUpdates = <span class="kwrd">true</span>;
                            SPListItem newFolder = list.Items.Add(monthFolder.ServerRelativeUrl, SPFileSystemObjectType.Folder, day);
                            newFolder.Update();
                            list.Update();
                            dayFolder = newFolder.Folder;
                        }

                        <span class="kwrd">string</span> hour = <span class="str">"Hour - "</span> + now.Hour.ToString();

                        <span class="kwrd">if</span> (doesFolderExistInSubFolders(dayFolder, hour))
                        {
                            hourFolder = dayFolder.SubFolders[hour];
                        }
                        <span class="kwrd">else</span>
                        {
                            web.AllowUnsafeUpdates = <span class="kwrd">true</span>;
                            SPListItem newFolder = list.Items.Add(dayFolder.ServerRelativeUrl, SPFileSystemObjectType.Folder, hour);
                            newFolder.Update();
                            list.Update();
                            hourFolder = newFolder.Folder;
                        }

                        currentDateFolder = hourFolder;
                    }
                }
            });

            <span class="kwrd">return</span> currentDateFolder;
        }</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.patrickzaw.com/?feed=rss2&amp;p=58</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BreakRoleInheritance resets AllowUnsafeUpdates to false</title>
		<link>http://www.patrickzaw.com/?p=44</link>
		<comments>http://www.patrickzaw.com/?p=44#comments</comments>
		<pubDate>Tue, 09 Feb 2010 09:27:58 +0000</pubDate>
		<dc:creator>patrickzaw</dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.patrickzaw.com/?p=44</guid>
		<description><![CDATA[Just like the title says, if you&#8217;ve set AllowUnsafeUpdates = true, after a BreakRoleInheritance (on any SP object ie. SPWeb, SPList, SPListItem) AllowUnsafeUpdates will reset back to false.   If you need it to remain true make sure to set it back to true right after you call BreakRoleInheritance:
SPListItem li = list.Items[0];
SPContext.Current.Web.AllowUnsafeUpdates = true;
li.BreakRoleInheritance(false);
SPContext.Current.Web.AllowUnsafeUpdates = true;
li.Update();
]]></description>
			<content:encoded><![CDATA[<p>Just like the title says, if you&#8217;ve set <strong>AllowUnsafeUpdates = true, </strong>after a <strong>BreakRoleInheritance </strong>(on any SP object ie. SPWeb, SPList, SPListItem) AllowUnsafeUpdates will reset back to false.   If you need it to remain true make sure to set it back to true right after you call BreakRoleInheritance:</p>
<p>SPListItem li = list.Items[0];<br />
SPContext.Current.Web.AllowUnsafeUpdates = true;<br />
li.BreakRoleInheritance(false);<br />
SPContext.Current.Web.AllowUnsafeUpdates = true;<br />
li.Update();</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patrickzaw.com/?feed=rss2&amp;p=44</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sony Vegas 9.0 32bit &#8216;low on memory&#8217;</title>
		<link>http://www.patrickzaw.com/?p=42</link>
		<comments>http://www.patrickzaw.com/?p=42#comments</comments>
		<pubDate>Tue, 08 Dec 2009 17:48:00 +0000</pubDate>
		<dc:creator>patrickzaw</dc:creator>
				<category><![CDATA[Sony Vegas 9]]></category>

		<guid isPermaLink="false">http://www.patrickzaw.com/?p=42</guid>
		<description><![CDATA[UPDATE:  I&#8217;ve bought a new video card, NVIDIA GeForce GTX 275,  and I&#8217;ve noticed my RAM doesn&#8217;t bubble up anymore and stays low. Render times have also greatly improved. 
I originally found the solution from this post here.  http://www.sonycreativesoftware.com/forums/ShowMessage.asp?ForumID=4&#38;MessageID=648182
I&#8217;m using Vegas 9.0c 32 bit on Windows 7 64-bit and have noticed this issue when using Magic Bullet Looks [...]]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATE:  I&#8217;ve bought a new video card, </strong><a href="http://www.nvidia.com/object/product_geforce_gtx_275_us.html" target="_blank" onclick=""><strong>NVIDIA GeForce GTX 275</strong></a><strong>,  and I&#8217;ve noticed my RAM doesn&#8217;t bubble up anymore and stays low. Render times have also greatly improved.</strong> </p>
<p>I originally found the solution from this post here.  <a href="http://www.sonycreativesoftware.com/forums/ShowMessage.asp?ForumID=4&amp;MessageID=648182" onclick="">http://www.sonycreativesoftware.com/forums/ShowMessage.asp?ForumID=4&amp;MessageID=648182</a></p>
<p>I&#8217;m using Vegas 9.0c 32 bit on Windows 7 64-bit and have noticed this issue when using Magic Bullet Looks 1.2.  If you monitor the memory in task manager you&#8217;ll see it grows and will never come back down.   I have a machine with 8GB of RAM so the solution presented in the post  is to change the switch in the exe to allow it to utilize more than 2GB of RAM.  This has worked perfectly for me. </p>
<p>Here&#8217;s a run down of what you need to do:</p>
<ol>
<li>Get CFF Module from <a href="http://www.ntcore.com" onclick="">http://www.ntcore.com</a></li>
<li>Open the exe file for vegas.  This should be like &#8220;vegas90.exe&#8221; or &#8220;vegas80.exe&#8221;.</li>
<li>Click on FILE HEADER under NT HEADER on the left side.</li>
<li>On the right there is a table and on the very last cell to the right on the bottom click on &#8220;CLICK HERE&#8221;</li>
<li>Check the option that says &#8220;app can handle &gt; than 2gig address space&#8221;</li>
<li>Save the file as a different file ie vegas90_new.exe.  </li>
<li>Run the new exe.</li>
</ol>
<p> Now if what you&#8217;re rendering is so massive its going to grow beyond your RAM then you&#8217;re still out of luck and will have to render in pieces but at least you can get longer clips to render.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patrickzaw.com/?feed=rss2&amp;p=42</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Forms Auth sites and 403 in IE</title>
		<link>http://www.patrickzaw.com/?p=28</link>
		<comments>http://www.patrickzaw.com/?p=28#comments</comments>
		<pubDate>Tue, 10 Nov 2009 18:34:15 +0000</pubDate>
		<dc:creator>patrickzaw</dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.patrickzaw.com/?p=28</guid>
		<description><![CDATA[This one was a mystery for a while.  If you&#8217;re running into a 403 from IE when going to a SharePoint forms auth site but you&#8217;re not getting any problems from another browser, check to see if you have Microsoft Office Live Update  installed.  I believe the latest June cumulative update will have fix shipped [...]]]></description>
			<content:encoded><![CDATA[<p>This one was a mystery for a while.  If you&#8217;re running into a 403 from IE when going to a SharePoint forms auth site but you&#8217;re not getting any problems from another browser, check to see if you have Microsoft Office Live Update  installed.  I believe the latest June cumulative update will have fix shipped with it.   Here&#8217;s the KB article detaling the issue&#8230;</p>
<p><a href="http://support.microsoft.com/kb/972535" onclick="">http://support.microsoft.com/kb/972535</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.patrickzaw.com/?feed=rss2&amp;p=28</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP Featured Content Slider &#8211; Divide By Zero error</title>
		<link>http://www.patrickzaw.com/?p=22</link>
		<comments>http://www.patrickzaw.com/?p=22#comments</comments>
		<pubDate>Tue, 13 Oct 2009 22:39:28 +0000</pubDate>
		<dc:creator>patrickzaw</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.patrickzaw.com/?p=22</guid>
		<description><![CDATA[Banged my head a few times on this.  If you&#8217;re copying this line and pasting it, make sure the single quotes are really single quotes or you&#8217;ll get that divide by zero error.
&#60;?php include (ABSPATH . '/wp-content/plugins/wp-featured-content-slider/content-slider.php'); ?&#62;
http://wordpress.org/extend/plugins/wp-featured-content-slider/installation/
]]></description>
			<content:encoded><![CDATA[<p>Banged my head a few times on this.  If you&#8217;re copying this line and pasting it, make sure the single quotes are really single quotes or you&#8217;ll get that divide by zero error.</p>
<p><code>&lt;?php include (ABSPATH . '/wp-content/plugins/wp-featured-content-slider/content-slider.php'); ?&gt;</code></p>
<p><a href="http://wordpress.org/extend/plugins/wp-featured-content-slider/installation/" onclick="">http://wordpress.org/extend/plugins/wp-featured-content-slider/installation/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.patrickzaw.com/?feed=rss2&amp;p=22</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>searchadforests forest vs domain?</title>
		<link>http://www.patrickzaw.com/?p=31</link>
		<comments>http://www.patrickzaw.com/?p=31#comments</comments>
		<pubDate>Mon, 12 Oct 2009 18:46:15 +0000</pubDate>
		<dc:creator>patrickzaw</dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.patrickzaw.com/?p=31</guid>
		<description><![CDATA[Just spent about 2 weeks with Microsoft support on a problem related to one way trust and using the peoplepicker-searchadforests for Sharepoint.  You can find out more about the property here: http://technet.microsoft.com/en-us/library/cc263460.aspx
The problem in our situation was that we previously had set the property to be able to search the forest which in our case [...]]]></description>
			<content:encoded><![CDATA[<p>Just spent about 2 weeks with Microsoft support on a problem related to one way trust and using the peoplepicker-searchadforests for Sharepoint.  You can find out more about the property here: <a href="http://technet.microsoft.com/en-us/library/cc263460.aspx" onclick="">http://technet.microsoft.com/en-us/library/cc263460.aspx</a></p>
<p>The problem in our situation was that we previously had set the property to be able to search the <strong>forest</strong> which in our case was called <strong>contoso.local</strong>.  SharePoint was not returning users from the trusted domain in people picker but  what was more confusing was that people picker would return users from the trusted domain who had been previously added.  So initially, we couldn&#8217;t diagnose that it wasn&#8217;t returning all users but thought it was only having a problem with a few users.  In the end, we found the problem to be that <strong>contoso.local </strong>was no longer being recognized as a <strong>forest</strong> but rather just as a <strong>domain</strong>.</p>
<p>Why was it being now recognized as a domain and not a forest anymore?  No clue.  If you have any ideas please chime in because that is still a mystery to me.   I&#8217;ve tripple checked and our forest is still the same name. I did notice this issue happened after the April cumulative update although I&#8217;m not sure it is related.</p>
<p>So our property value for peoplepicker-searchadforest had to change from:</p>
<p>stsadm -o setproperty -url <a href="http://contoso.com" onclick="">http://contoso.com</a> -pn peoplepicker-searchadforests -pv &#8220;<strong>forest:contoso.local</strong>&#8220;,contoso\account,*****;&#8221;domain:contoso.local&#8221;,contoso\account,****</p>
<p> to the correct value:</p>
<p> stsadm -o setproperty -url <a href="http://connectnumonyx.perimeter.numonyx.local/" onclick="">http://contoso.com</a> -pn peoplepicker-searchadforests -pv &#8220;<strong>domain:contoso.local</strong>&#8220;,contoso\account,*****;&#8221;domain:contoso.local&#8221;,contoso\account,***</p>
<p> It took us 2 support technicians and an escalation then finally after 2 weeks the issue was fixed with Microsoft support.  We spent a lot of time making test sites with multiple configurations but had completely missed this one detail of trying domain instead of forest.   Hope this saves someone else some time!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patrickzaw.com/?feed=rss2&amp;p=31</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When to use Active Directory versus ASP.NET membership with SharePoint</title>
		<link>http://www.patrickzaw.com/?p=33</link>
		<comments>http://www.patrickzaw.com/?p=33#comments</comments>
		<pubDate>Sun, 06 Sep 2009 22:41:25 +0000</pubDate>
		<dc:creator>patrickzaw</dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.patrickzaw.com/?p=33</guid>
		<description><![CDATA[Active Directory works great with SharePoint but it&#8217;s not always the ideal solution.  ASP.NET membership works much better under certain circumstances.  Here&#8217;s a great article by Scott Guthrie about ASP.NET membership and SharePoint (http://weblogs.asp.net/scottgu/archive/2006/04/30/SharePoint-2007-_2D002D00_-Built-on-ASP.NET-2.0-.aspx).
Here&#8217;s some points I&#8217;ve come accross that may help decide when to use either solution:
When to use Active Directory

Users are already part [...]]]></description>
			<content:encoded><![CDATA[<p>Active Directory works great with SharePoint but it&#8217;s not always the ideal solution.  ASP.NET membership works much better under certain circumstances.  Here&#8217;s a great article by Scott Guthrie about ASP.NET membership and SharePoint (<a href="http://weblogs.asp.net/scottgu/archive/2006/04/30/SharePoint-2007-_2D002D00_-Built-on-ASP.NET-2.0-.aspx" onclick="">http://weblogs.asp.net/scottgu/archive/2006/04/30/SharePoint-2007-_2D002D00_-Built-on-ASP.NET-2.0-.aspx</a>).</p>
<p>Here&#8217;s some points I&#8217;ve come accross that may help decide when to use either solution:</p>
<p>When to use Active Directory</p>
<ul>
<li>Users are already part of AD</li>
<li>Accounts must be centrally managed by IT</li>
<li>Accounts need to follow certain policies maintained by IT (password expiration,  password strength)</li>
<li>Users absolutely need SharePoint features only available from NTLM ie. windows explorer view for lists</li>
<li>No need for forms auth and need true Windows auth integration</li>
<li>Ideal for company intranets where the users of SharePoint are all from AD</li>
</ul>
<p>When to use ASP.NET membership</p>
<ul>
<li>For using ASP.NET login controls (<a href="http://msdn.microsoft.com/en-us/library/ms178329.aspx" onclick="">http://msdn.microsoft.com/en-us/library/ms178329.aspx</a>)  right out of the box.  Saves incredible amount of work!</li>
<li>There is a need for an account creation process, i.e. registration where the user will be granted with certain rights upon completing the registration.  </li>
<li>Need for more self service features for accounts such as &#8220;Forget Password&#8221; with a challenge and response, and a &#8220;Change Password&#8221; feature.  These come out of the box.</li>
<li>If the site is primary accesssed by users outside of the organization, AD will be convoluted with users that otherwise do not use internal resources.   Using ASP.NET membership segregates these users which also provide better protection for assets that could be accessed by internal AD users.</li>
<li>SharePoint developer/admin can support user accounts all from with the SharePoint server rather than an IT resource with rights to AD.  This is helpful where there are large bureaucracies for IT that need to be bypassed.</li>
<li>Ideal solution for partners, extranets, and public facing sites where the users do not need to be in AD. </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.patrickzaw.com/?feed=rss2&amp;p=33</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint navigation item limit</title>
		<link>http://www.patrickzaw.com/?p=21</link>
		<comments>http://www.patrickzaw.com/?p=21#comments</comments>
		<pubDate>Thu, 14 May 2009 00:26:23 +0000</pubDate>
		<dc:creator>patrickzaw</dc:creator>
				<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://www.patrickzaw.com/?p=21</guid>
		<description><![CDATA[If you have items (pages or subsites) missing in your current navigation or quick launch links, then it maybe related to the sitemap providers DynamicChildLimit which is set by default to 50.  To change this, you&#8217;ll need to update your web.cofig as below.  Setting it to 0 will allow for no limit.
The original post I [...]]]></description>
			<content:encoded><![CDATA[<p>If you have items (pages or subsites) missing in your current navigation or quick launch links, then it maybe related to the sitemap providers DynamicChildLimit which is set by default to 50.  To change this, you&#8217;ll need to update your web.cofig as below.  Setting it to 0 will allow for no limit.</p>
<p>The original post I found related to this was <a onclick="urchinTracker('/outgoing/www.slightlyrational.com/it/sharepoint/extending50sitelimit?referer=');function onclick() {  }" href="http://www.slightlyrational.com/it/sharepoint/extending50sitelimit">http://www.slightlyrational.com/it/sharepoint/extending50sitelimit</a>.</p>
<p>&lt;siteMap&#8230;&gt;<br />
&lt;providers&gt;<br />
        &lt;add name=&#8221;GlobalNavSiteMapProvider&#8221; description=&#8221;CMS provider for Global navigation&#8221; type=&#8221;Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&#8221; NavigationType=&#8221;Global&#8221; EncodeOutput=&#8221;true&#8221; <strong>DynamicChildLimit=&#8221;0&#8243;</strong> /&gt;<br />
        &lt;add name=&#8221;CombinedNavSiteMapProvider&#8221; description=&#8221;CMS provider for Combined navigation&#8221; type=&#8221;Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&#8221; NavigationType=&#8221;Combined&#8221; EncodeOutput=&#8221;true&#8221; <strong>DynamicChildLimit=&#8221;0&#8243;</strong> /&gt;<br />
        &lt;add name=&#8221;CurrentNavSiteMapProvider&#8221; description=&#8221;CMS provider for Current navigation&#8221; type=&#8221;Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&#8221; NavigationType=&#8221;Current&#8221; EncodeOutput=&#8221;true&#8221; <strong>DynamicChildLimit=&#8221;0&#8243;</strong> /&gt;<br />
        &lt;add name=&#8221;CurrentNavSiteMapProviderNoEncode&#8221; description=&#8221;CMS provider for Current navigation, no encoding of output&#8221; type=&#8221;Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&#8221; NavigationType=&#8221;Current&#8221; EncodeOutput=&#8221;false&#8221; <strong>DynamicChildLimit=&#8221;0&#8243;</strong> /&gt;<br />
&lt;/providers&gt;<br />
&lt;/siteMap&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.patrickzaw.com/?feed=rss2&amp;p=21</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
