<?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>Of Ones and Zeros &#187; bryan</title>
	<atom:link href="http://www.ofonesandzeros.com/author/bryan/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ofonesandzeros.com</link>
	<description>a discussion of technology and software development</description>
	<lastBuildDate>Thu, 10 Nov 2011 21:19:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Locating MySQL Root Password for Plesk 10 Client Server</title>
		<link>http://www.ofonesandzeros.com/2011/11/10/locating-mysql-root-password-for-plesk-10-client-server/</link>
		<comments>http://www.ofonesandzeros.com/2011/11/10/locating-mysql-root-password-for-plesk-10-client-server/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 21:17:51 +0000</pubDate>
		<dc:creator>bryan</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[plesk]]></category>

		<guid isPermaLink="false">http://www.ofonesandzeros.com/?p=237</guid>
		<description><![CDATA[If you need to access the client MySQL instance on your Plesk 10.x box, you will need to connect to the admin instance first. To do that, do the following: &#34;%plesk_dir%\mysql\bin\mysql&#34; -P8306 -uadmin -pyour_password psa The password for connecting to the plesk admin instance is the same as your plesk admin password. If you need [...]<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2011/11/10/locating-mysql-root-password-for-plesk-10-client-server/' addthis:title='Locating MySQL Root Password for Plesk 10 Client Server '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></description>
			<content:encoded><![CDATA[<p>If you need to access the client MySQL instance on your Plesk 10.x box, you will need to connect to the admin instance first.  To do that, do the following:</p>
<pre class="brush: shell">
&quot;%plesk_dir%\mysql\bin\mysql&quot; -P8306 -uadmin -pyour_password psa
</pre>
<p>The password for connecting to the plesk admin instance is the same as your plesk admin password.  If you need a refresher, run the following:</p>
<pre class="brush: shell">
&quot;%plesk_cli%\admin&quot; --show-password
</pre>
<p>Okay, so once you&#8217;ve connected to the admin instance, you will want to execute the following:</p>
<pre class="brush: sql">
select * from databaseservers;
</pre>
<p>The results will give you not only the admin username and password for the client MySQL instance, but also MSSQL if you have it installed.</p>
<p>Good luck!</p>
<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2011/11/10/locating-mysql-root-password-for-plesk-10-client-server/' addthis:title='Locating MySQL Root Password for Plesk 10 Client Server '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.ofonesandzeros.com/2011/11/10/locating-mysql-root-password-for-plesk-10-client-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AllowUnsafeUpdates Error Updating User Profile Information</title>
		<link>http://www.ofonesandzeros.com/2011/11/10/allowunsafeupdates-error-updating-user-profile-information/</link>
		<comments>http://www.ofonesandzeros.com/2011/11/10/allowunsafeupdates-error-updating-user-profile-information/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 13:33:34 +0000</pubDate>
		<dc:creator>bryan</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[upa]]></category>
		<category><![CDATA[user profile]]></category>

		<guid isPermaLink="false">http://www.ofonesandzeros.com/?p=232</guid>
		<description><![CDATA[My customer has a requirement to track the last login date/time for each SharePoint user so that they can disable accounts that have not had any activity for a time period. I decided to implement this requirement by creating an HttpHandler and tying a jQuery .post call into the custom masterpage. The HttpHandler would then [...]<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2011/11/10/allowunsafeupdates-error-updating-user-profile-information/' addthis:title='AllowUnsafeUpdates Error Updating User Profile Information '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></description>
			<content:encoded><![CDATA[<p>My customer has a requirement to track the last login date/time for each SharePoint user so that they can disable accounts that have not had any activity for a time period.  I decided to implement this requirement by creating an HttpHandler and tying a jQuery .post call into the custom masterpage.  The HttpHandler would then update a property, LastLogin, that has been added to the user profile service application.  </p>
<p>The issue I ran into is that SharePoint would constantly complain about not allowing updates via a GET, and that I needed to set the AllowUnsafeUpdates property on the SPWeb object.  Sounds simple and straight forward enough, and oddly this was an instance where not only did SharePoint give you a decent error, it even went so far as to propose a solution!  Double word score!  Unfortunately it took forever to figure out WHICH SPWeb object it was talking about!  Check out the following code:</p>
<pre class="brush: c#">
private void UpdateUserLastLogin(HttpContext context)
        {
            string siteURL = SPContext.Current.Site.Url;

            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite site = new SPSite(SPContext.Current.Site.ID))
                using (SPWeb web = site.OpenWeb(SPContext.Current.Web.ID))
                {

                    // this is the important bit
                    SPContext.Current.Site.AllowUnsafeUpdates = true;
                    SPContext.Current.Web.AllowUnsafeUpdates = true;

                    SPServiceContext serviceContext = SPServiceContext.GetContext(site);
                    UserProfileManager profileManager = new UserProfileManager(serviceContext);

                    UserProfile profile;

                    if (!profileManager.UserExists(SPContext.Current.Web.CurrentUser.LoginName))
                    {
                        profile = profileManager.CreateUserProfile(SPContext.Current.Web.CurrentUser.LoginName);
                    }
                    else
                    {
                        profile = profileManager.GetUserProfile(SPContext.Current.Web.CurrentUser.LoginName);
                    }

                    profile[&quot;LastLogin&quot;].Value = DateTime.Now;

                    profile.Commit();

                    SPContext.Current.Web.AllowUnsafeUpdates = false;
                    SPContext.Current.Site.AllowUnsafeUpdates = false;
                }
            });
        }
</pre>
<p>So if you look at the part commented &#8220;This is the important bit&#8221; you will see AllowUnsafeUpdates getting set.  This is what I finally came to which actually worked.  Previously I tried the following:</p>
<pre class="brush: c#">
site.AllowUnsafeUpdates = true;
web.AllowUnsafeUpdates = true;
</pre>
<p>And that did not work at all.  So I&#8217;m still not completely clear why setting it on the SPContext.Current.Web works, considering that I am spinning up new instances of SPSite and SPWeb and sending them to UserProfileManager, but whatever.  I&#8217;ll take it.</p>
<p>If anyone can explain why this works that would be awesome, in the meantime I&#8217;ll keep this handy incase I run across this dreaded error in the future.</p>
<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2011/11/10/allowunsafeupdates-error-updating-user-profile-information/' addthis:title='AllowUnsafeUpdates Error Updating User Profile Information '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.ofonesandzeros.com/2011/11/10/allowunsafeupdates-error-updating-user-profile-information/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programmatically Changing the Show and Hide Ribbon Navigation Setting</title>
		<link>http://www.ofonesandzeros.com/2011/06/15/changing-the-show-enabled/</link>
		<comments>http://www.ofonesandzeros.com/2011/06/15/changing-the-show-enabled/#comments</comments>
		<pubDate>Thu, 16 Jun 2011 02:19:45 +0000</pubDate>
		<dc:creator>bryan</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.ofonesandzeros.com/?p=215</guid>
		<description><![CDATA[Much like everything I blog about, I had a requirement from a customer to programmatically set the &#8220;Show and Hide Ribbon&#8221; setting that is seen within the Navigation configuration page off of Site Settings (a.k.a. the _layouts/AreaNavigationSettings.aspx page). I looked all through the SPWeb.Navigation options and the PublishingWeb.Navigation options and couldn&#8217;t find it. Then I [...]<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2011/06/15/changing-the-show-enabled/' addthis:title='Programmatically Changing the Show and Hide Ribbon Navigation Setting '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></description>
			<content:encoded><![CDATA[<p>Much like everything I blog about, I had a requirement from a customer to programmatically set the &#8220;Show and Hide Ribbon&#8221; setting that is seen within the Navigation configuration page off of Site Settings (a.k.a. the _layouts/AreaNavigationSettings.aspx page).  I looked all through the SPWeb.Navigation options and the PublishingWeb.Navigation options and couldn&#8217;t find it.  Then I remembered the oldest trick in the book, decompiling SharePoint!  I brought up the Microsoft.SharePoint.Publishing.dll in <a href="http://www.telerik.com/products/decompiling.aspx">Telerik JustDecompile</a> and found the codebehind implementation for the page.  Once there it was easy to figure out how to make the change.  Fast-forward, here it is:</p>
<pre class="brush: c#">
SPWeb web = null; // works better if you actually set this to a valid instance
// so this property, the __DisplayShowHideRibbonActionId, doesn&#039;t exist unless it&#039;s set to No!
// so in this instance we are setting it to No, but if you want to set it to Yes you just
// want to clear the value for the property.  make it string.Empty, or just delete the
// property entirely.
web.AllProperties[&quot;__DisplayShowHideRibbonActionId&quot;] = &quot;False&quot;;
// Update your web, do a jig.
web.Update();
</pre>
<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2011/06/15/changing-the-show-enabled/' addthis:title='Programmatically Changing the Show and Hide Ribbon Navigation Setting '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.ofonesandzeros.com/2011/06/15/changing-the-show-enabled/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programmatically Add ListViewWebPart with Customized View</title>
		<link>http://www.ofonesandzeros.com/2011/06/15/programmatically-add-listviewwebpart-with-customized-view/</link>
		<comments>http://www.ofonesandzeros.com/2011/06/15/programmatically-add-listviewwebpart-with-customized-view/#comments</comments>
		<pubDate>Thu, 16 Jun 2011 02:08:35 +0000</pubDate>
		<dc:creator>bryan</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.ofonesandzeros.com/?p=205</guid>
		<description><![CDATA[There are several approaches to adding a ListViewWebPart to a page floating around the Interwebs, and I do believe over the course of the past week I have tried every one of them!  What I intend to do here is to cut to the chase and present the method that worked reliably for my purposes. [...]<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2011/06/15/programmatically-add-listviewwebpart-with-customized-view/' addthis:title='Programmatically Add ListViewWebPart with Customized View '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></description>
			<content:encoded><![CDATA[<p>There are several approaches to adding a ListViewWebPart to a page floating around the Interwebs, and I do believe over the course of the past week I have tried every one of them!  What I intend to do here is to cut to the chase and present the method that worked reliably for my purposes.</p>
<h3>Scenario</h3>
<p>As the title suggests, the scenario is that we are adding a ListViewWebPart to a page, utilizing one of the current list views as a &#8220;template&#8221;, but making some changes for the purposes of this web part.</p>
<h3>Solution</h3>
<p>I recommend hitting the &#8220;view source&#8221; button on the syntax highlighter, I really need to switch to a wider blog template <img src="http://dfcv747gi313t.cloudfront.net/wp-includes/images/smilies/icon_sad.gif?9d7bd4" alt=':-(' class='wp-smiley' /> .  In any event, here is the solution that I employed, I added numerous comments to describe why things were being done.  Hopefully it saves someone some time.</p>
<pre class="brush: c#">
            SPLimitedWebPartManager limitedWebPartManager = null;
            ListViewWebPart wp = null;

            try
            {
                // assume that you have a limitedWebPartManager variable containing an
                // instance of a SPLimitedWebPartManager class.  

                // also assume that you have a list variable containing a reference to the
                // SPList that you are pointing this ListViewWebPart at.

                // create an instance of the ListViewWebPart
                wp = new ListViewWebPart();
                // convert the list GUID to a string, must include braces (ToString(&quot;B&quot;)) and be in uppers (ToUpper())
                wp.ListName = list.ID.ToString(&quot;B&quot;).ToUpper();
                // optionally set the title of the web part
                wp.Title = &quot;I Love List Views&quot;;

                // add the web part to the limited web part manager.  when you do this, a &quot;hidden&quot; view will be created
                // on the list referenced by the list variable.  we will later get a reference to this hidden view and bend it
                // to our will.
                limitedWebPartManager.AddWebPart(wp, &quot;whatever web part zone you want to add it to&quot;, 1); // the 1 is the index within the zone
                // you need to update the list because a view was just added to it
                list.Update();

                // now that the web part has been added we need to get a fresh reference to it from the limitedWebPartManager.
                // there are plenty of great ways to do this, in this example i will be using the low-tech approach of enumerating the
                // WebParts collection and checking for the type and title that matches our part.  i am quite positive there are more
                // efficient ways of doing this, but this code gets called exactly once every couple months, so efficiency isn&#039;t worth
                // the extra development cycles
                foreach (System.Web.UI.WebControls.WebParts.WebPart webPart in limitedWebPartManager.WebParts)
                {
                    // check to see if the type of the web part is ListViewWebPart, and if so, check if the title matches our guy.
                    if (webPart is ListViewWebPart &amp;amp;amp;&amp;amp;amp; webPart.Title.Equals(&quot;I Love List Views&quot;))
                    {
                        // cast the web part to a ListViewWebPart so we can start to tweak its properties
                        var listViewWebPart = webPart as ListViewWebPart;

                        // here is some of the magic.  the web part now has its ViewGuid property populated which
                        // contains the Guid of the hidden view.  we get a reference to it here.
                        var view = list.Views[new Guid(listViewWebPart.ViewGuid)];

                        // here we grab a reference to a template view.  this may be the default view of the list,
                        // or maybe you have another view that you created that you want to use.  you don&#039;t have to
                        // do this, but in this scenario i wanted to copy the filter and sort settings from an existing view.
                        var templateView = list.Views[&quot;Name Of Template View&quot;];

                        // now we drop all of the view fields in the hidden view
                        view.ViewFields.DeleteAll();
                        // now we are going to go through a string array and add each of the strings to the view fields collection.  again,
                        // you don&#039;t have to do this, but if you want to change what columns are displayed in your ListViewWebPart, you will
                        // need to muck with the ViewFields of the view.
                        Array.ForEach(new string[] { &quot;First Name&quot;, &quot;Last Name&quot;, &quot;Address&quot; }, f =&gt; view.ViewFields.Add(f));

                        // here we copy the Query straight from the templateView.  if you didn&#039;t have a templateView you could always
                        // just create an SPQuery instance and assign it to the view.Query property.  no points will be taken off for doing that.
                        view.Query = templateView.Query;

                        // update our hidden view, and bask in the awesomeness of our customized ListViewWebPart
                        view.Update();
                    }
                }
            }
            finally
            {
                // do some fun cleanup of disposable items.  if you are wondering about the .Web.Dispose() bit look for my
                // blog article on the memory leaks in the SPLimitedWebPartManager.
                if (limitedWebPartManager != null)
                {
                    if (limitedWebPartManager.Web != null)
                    {
                        limitedWebPartManager.Web.Dispose();
                    }

                    limitedWebPartManager.Dispose();
                }

                if (wp != null)
                {
                    wp.Dispose();
                }

                // i probably missed some .Dispose()s since I cobbled this code together in WordPress and not Visual Studio
            }
        }
</pre>
<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2011/06/15/programmatically-add-listviewwebpart-with-customized-view/' addthis:title='Programmatically Add ListViewWebPart with Customized View '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.ofonesandzeros.com/2011/06/15/programmatically-add-listviewwebpart-with-customized-view/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tech Ed 2011 Summary</title>
		<link>http://www.ofonesandzeros.com/2011/05/20/tech-ed-2011-summary/</link>
		<comments>http://www.ofonesandzeros.com/2011/05/20/tech-ed-2011-summary/#comments</comments>
		<pubDate>Fri, 20 May 2011 20:32:43 +0000</pubDate>
		<dc:creator>bryan</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[denali]]></category>
		<category><![CDATA[nuget]]></category>
		<category><![CDATA[teched]]></category>

		<guid isPermaLink="false">http://www.ofonesandzeros.com/?p=200</guid>
		<description><![CDATA[Sitting in the Atlanta airport waiting for my flight home seems as good a time as any to summarize what I learned this week at Tech Ed 2011 in Atlanta.&#160; First, this is the second year in a row that I have used my iPad at Tech Ed for note taking.&#160; Last year I used [...]<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2011/05/20/tech-ed-2011-summary/' addthis:title='Tech Ed 2011 Summary '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></description>
			<content:encoded><![CDATA[<p>Sitting in the Atlanta airport waiting for my flight home seems as good a time as any to summarize what I learned this week at Tech Ed 2011 in Atlanta.&#160; </p>
<p>First, this is the second year in a row that I have used my iPad at Tech Ed for note taking.&#160; Last year I used Apple’s Pages app to take notes, and that worked reasonably well.&#160; During the keynote this year I searched for other options and came across <a href="http://bit.ly/l2A9AV">iThoughts HD</a>.&#160; This is a mind mapping app similar to <a href="http://bit.ly/lg8bvT">Freemind</a> or <a href="http://www.xmind.net/">XMind</a> on the PC.&#160; This app worked incredibly well for me taking notes, as often the presentations would bounce back and forth between topics and the ability to simply tap on the nodes within the mind map felt very natural and productive.&#160; In addition, the app allows you to export in a number of formats, two of which being Freemind and Xmind, so I will be able to send my maps to the PC and edit them in one of those programs.&#160; </p>
<p>While the iThoughts HD app was great, you could do the same thing on the PC using the previously mentioned Freemind or Xmind apps.&#160; Where the iPad really shines however is the fact that you can go ALL DAY taking notes, browsing the web, tweeting, etc. without ever having to look for an electric outlet!&#160; If you have been to Tech Ed, you no doubt understand how difficult it can be to find electric outlets to charge your laptop.&#160; In a sea of 10,000 attendees, electric outlets are precious resources.&#160; </p>
<p>Okay, enough about how great the iPad is, on to what I actually learned!</p>
<h3>Virtualizing SharePoint</h3>
<p>Virtualizing SharePoint was a good session, although it didn’t necessarily provide a bevy of new information, it at least validated things I believed to be true.&#160; Couple of key points:</p>
<ol>
<li>SharePoint and virtualization go together like peanut butter and jelly.&#160; If someone tries to tell you otherwise, smack them and their momma.&#160; Yes, SharePoint is resource intensive, so no, don’t build your hyper-v cluster on 386SXs.&#160; Use the latest server hardware technologies available, use the latest hypervisor offerings from Microsoft and VMware, use Windows Server 2008 R2 guests, and be happy.</li>
<li>Certain SharePoint roles are absolute slam-dunks for virtualization, other roles require further consideration.&#160; Web front ends, query, and app roles are all ideal candidates for virtualization.&#160; What makes something an ideal candidate for virtualization?&#160; Really it comes down to how resource intense the role is.&#160; In a SharePoint farm, the aforementioned roles happen to be the lighter roles within the farm.&#160; This leaves your index/crawl roles and your SQL roles up for debate.&#160; Whether or not you choose to virtualize your SQL servers is greatly influenced by how large/active of a farm you have, and how important the benefits of virtualization are.&#160; </li>
<li>Fixed-size VHDs and direct-attached LUNs are very close in performance.&#160; Do NOT use dynamically sizing VHDs.&#160; You can think about it, but DON’T DO IT.&#160; Where disk performance is of utmost importance, *hem hem* SQL server *hem hem*, send the LUN straight to the VM.&#160; Where it is not as critical, like in a web front end or app server role, using a fixed-size VHD gives some flexibility in terms of moving the VHD around, and the performance impact is negligible.</li>
<li>This doesn’t apply to just virtualization scenarios, but ALWAYS, ALWAYS, ALWAYS define a SQL alias and point SharePoint at the alias, otherwise you can not move your SQL instance housing the SharePoint config database.</li>
<li>Okay, I don’t fully get this one just yet, so I need to do more research, but apparently allocating memory that causes the VM to cross NUMA boundaries is a V.ery B.ad T.hing.&#160; In simple terms I understood what was being said, take the amount of RAM of the host machine and divide it by the number of cores, and that is your NUMA window size.&#160; Then multiply that size by the number of CPUs assigned to the guest and do not exceed that, but as I understand it that is an oversimplification.&#160; Crossing NUMA boundaries allegedly leads to a performance hit of 30% or more.</li>
<li>For any disk intense guests make sure the RAID configuration for the VHD or the RAID configuration for the LUN is RAID 10.&#160; This ensures the greatest write performance.</li>
<li>Reverting to VM snapshots is NOT supported by Microsoft.</li>
<li>Combine SQL Mirroring with HyperV/Vsphere clustering and you have a robust high availability solution.</li>
<li>Do not put your SQL guest and your web front end on the same physical host.</li>
</ol>
<h3>Cross-Farm SharePoint Services</h3>
<p>This session was really heavy on the PowerShell needed to implement cross-farm services, which I didn’t find to be tremendously useful.&#160; The PowerShell was not up long enough for someone to transcribe it, and you are not going to commit it to memory in the short amount of time it is being displayed, so I would have preferred more discussion around the concepts and techniques being used instead of just showing code.&#160; In any event, I did pickup a few things from this session:</p>
<ol>
<li>Cross-farm shared services are synonymous with federated services.</li>
<li>Cross-farm shared services can be in different domains.&#160; </li>
<li>Writing PowerShell scripts to create/configure your farms makes for better disaster recovery documentation than “click here, click here” documentation.</li>
<li>Cross-farm shared services are not compatible with Office 365.</li>
<li>The load balancer that SharePoint has out-of-the-box for service applications does simple round robin load balancing, it does not perform health checks of the services.</li>
<li>Regardless of the authentication type for the web application, behind the scenes SharePoint is using claims authentication.</li>
<li>When troubleshooting issues with federated services, ensure that the consumer has permissions to the Topology Service.</li>
</ol>
<h3>Building IT Dashboards with Visio Services</h3>
<p>Picked up a few tidbits here; I hadn’t previously seen any demos of Visio Services or had an opportunity to play with it myself, so just seeing it being used was interesting.&#160; Here are the highlights:</p>
<ol>
<li>Visio Data Graphics allow you to overlay shapes with an icon based on a rule.&#160; Think Excel Conditional Formatting rules.&#160; Very cool.</li>
<li>When you save your Visio Diagram, make sure to save as a “Web Drawing”</li>
<li>Visio Services provides a “read-only” view of the diagram.</li>
<li>Visio Services renders using a Silverlight web part, but can degrade to a raster form of the diagram if Silverlight is not available on the client.</li>
<li>Visio Services can use the following data sources:&#160; Excel Services, SQL, OLE DB, ODBC, Custom, SharePoint List.&#160; It cannot use External Lists/BCS or Analysis Services.</li>
<li>Visio Services is a component of the SharePoint Enterprise SKU.</li>
<li>Visio 2010 Premium contains a SharePoint Workflow template.</li>
<li>You can use web part connections to connect a Visio Diagram to an InfoPath Form web part as an example.&#160; If you want to connect multiple data columns you need to use SharePoint Designer as the web interface only allows you to connect a single data field between the two web parts.</li>
<li>Visio Web Services ships with an extensive JavaScript library.&#160; It is preferable to use this library to connect web parts as opposed to using web part connections because web part connections cause post backs.</li>
<li>When defining a workflow in SharePoint Designer, if you select “Show Workflow Visualization on Status Page” check box, SharePoint will render a Visio Services view of the workflow and overlay the status of each workflow action.</li>
</ol>
<h3>SharePoint and Silverlight</h3>
<p>The SharePoint and Silverlight session was very code heavy, which wasn’t incredibly valuable to me.&#160; Not that I have anything against code, obviously I do not, but I wasn’t going to be committing to memory hundreds of lines of code over a 1.5 hour period.&#160; Still, I was able to pick up on some key concepts which made the session worthwhile.&#160; First, the session validated my belief that Silverlight would prove to be a great technology moving forward with SharePoint as SharePoint portals become more and more locked down.&#160; In other words, instead of deploying customizations that are server side, many client requirements can be handled through JavaScript or Silverlight and not require either sandbox solutions or farm solutions.&#160; Here are a couple of key points I heard:</p>
<ol>
<li>Search for and install the Silverlight SharePoint extensions for Visual Studio.&#160; They make it simple to incorporate your Silverlight into a SharePoint page for development.</li>
<li>Silverlight has a technology called HTML bridging which allows the Silverlight application to modify HTML within the hosting page.&#160; This was demonstrated by defining a ‘div’ on a page and then clicking a shape in the Silverlight app which subsequently added text to the div.&#160; Pretty cool.</li>
<li>The <a href="http://msdn.microsoft.com/en-us/library/system.data.services.client.dataservicequery.aspx">DataServiceQuery</a> class can/should be used to query SharePoint OData services.</li>
<li>Silverlight is able to take advantage of the rich SharePoint 2010 client object model, including the <a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.client.webparts.limitedwebpartmanager.aspx">LimitedWebPartManager</a> class.</li>
<li>There is an issue with older ASMX web services which causes them to be incompatible with Silverlight.&#160; As a workaround, a endpoint behavior has been developed and open sourced that will adapt the data types from the legacy ASMX web service to the data types expected by Silverlight.</li>
</ol>
<h3>Writing SharePoint Service Applications</h3>
<p>This was another session that was really deep on implementation code.&#160; I’m sorry, but I lose interest pretty quick in a session like this; really the slide deck becomes more important than what the speaker is saying.&#160; It was useful though to get a feeling for the complexity level of writing a SharePoint custom service application.&#160; Simply put – it’s a very high complexity level!</p>
<ol>
<li>In most instances, write a web service, not a service application.</li>
<li>Write a service application when you want a unified management interface through Central Administration, want to take advantage of SharePoint’s backup and recovery features, want to take advantage of SharePoint’s round-robin load balancing.</li>
<li>Creating a service application involves implementing a minimum of 5 classes.&#160; Best to just go here <a title="http://bit.ly/giiGhb" href="http://bit.ly/giiGhb">http://bit.ly/giiGhb</a> and read up on it.</li>
</ol>
<h3>NuGet in the Enterprise</h3>
<p>I’ve seen <a href="http://nuget.codeplex.com/">NuGet</a> popping up everywhere lately, and was very interested in this session to learn more about its applications in an enterprise environment.&#160; If you are not familiar with NuGet, read up here <a title="http://bit.ly/mqgRvV" href="http://bit.ly/mqgRvV">http://bit.ly/mqgRvV</a>.&#160; In a nutshell, NuGet facilitates incorporating dependencies into your projects.&#160; If you know anything about Java, think Maven repo.&#160; Where it is different however is that it is not involved in your build like Maven is, but it does make it simpler to incorporate dependencies into your project and to upgrade dependencies within your projects.</p>
<p>Okay, so how about the “Enterprise” part?&#160; What is great about NuGet is that while it is perfectly viable for you to go out and install packages from the public NuGet gallery, in most enterprise development scenarios you will want to have more control over what packages are being incorporated into projects.&#160; NuGet provides the ability to stand up an enterprise NuGet server, either as just a simple “head-less” server or a rich, <a href="http://www.orchardproject.net/">Orchard</a>-driven gallery.&#160; With this you can provide the ability to browse the NuGet gallery through a rich web interface.</p>
<p>It is important to note that while there is a NuGet Visual Studio extension, NuGet works perfectly well on a clean build server, and <a href="http://www.jetbrains.com/">Jetbrains</a> is working to incorporate the ability to integrate NuGet into <a href="http://www.jetbrains.com/teamcity/">TeamCity</a>.&#160; This is great news as many organizations will want the ability to build dependency packages within TeamCity and then publish those packages to the enterprise NuGet server.&#160; You can accomplish this today using the command-line in your build definitions, but making TeamCity NuGet aware will facilitate integration quite a bit.</p>
<p>NuGet = good.&#160; I will definitely be adding setting up a NuGet server to my list of things to do at the office.</p>
<h3>Claims Identity and SharePoint</h3>
<p>I will freely admit that I had next to no knowledge of Claims-based Authentication coming into this session.&#160; I knew it was a radio-button I could select when provisioning a web application, and I knew that I didn’t want to use it, instead I wanted classic authentication.&#160; That should have been my first clue that I had some homework to do.&#160; Career tip – If you are presented with two options, one saying “classic” and one saying something else, learn what that other option means or risk extinction!&#160; Classic cars are cool, classic* in technology is un-cool.&#160; </p>
<p>There was a great analogy shared during this session with regard to what “claims-based” authentication means.&#160; The presenter, and I apologize I didn’t take notes on who the presenter was, but in any event, the presenter said that on his Facebook page his hometown is listed as Chicago.&#160; Now, he actually lives outside of Chicago in a suburb.&#160; The fact this his Facebook page says his hometown is Chicago does not give him the ability to vote in Chicago elections because the Chicago board of elections does not trust Facebook as a claims provider.&#160; Instead, the board of elections trusts the motor vehicle administration, and his driver’s license has his actual home address.&#160; </p>
<p>What this analogy means is essentially you can setup SharePoint to trust the claims of other providers, whether they be consumer identity providers like Google or Live, external partners, etc.&#160; Very powerful stuff which could definitely impact the way that extranets are architected and implemented.</p>
<p>Couple of key bullets:</p>
<ol>
<li>Claims are SAML-based.&#160; While Active Directory Federation Services are likely to be the most common claims identity providers, any identity provider issuing a SAML-based claim is compatible.</li>
<li>Claims authentication is based on Windows Identity Foundation.</li>
<li>Additional information about claims authentication in general is available here <a title="http://bit.ly/3G30GP" href="http://bit.ly/3G30GP">http://bit.ly/3G30GP</a>.</li>
<li>SharePoint 2010 allows multiple authentication methods to be defined for a single zone.</li>
<li>Trusted identity token issuer is added through PowerShell (most claims authentication management is done through PowerShell)</li>
<li><a href="http://bit.ly/iU139G">SelfSTS</a> is a utility that makes it easy to develop/debug claims authentication.</li>
<li>SharePoint does not use the operating systems certificate store.&#160; Certificates that are loaded into SharePoint are actually stored in SQL so that they apply farm-wide.</li>
<li>Claims authentication impacts the behavior of the people picker.&#160; Essentially, SharePoint does not know who is on the other side of the fence providing claims.&#160; So if you wanted to say “Johnny Appleseed” from “ABC Corp” can access a given site, you would say in the people picker, “Any claim coming in where the e-mail address is <a href="mailto:jappleseed@abcorp.com">jappleseed@abcorp.com</a> can access”.&#160; You cannot validate that <a href="mailto:&ldquo;jappleseed@abccorp.com">“jappleseed@abccorp.com</a>” is the correct e-mail address.&#160; It is possible that through setting up a user profile crawl of an external LDAP server you may be able to get around this.&#160; Need to do some research on that.</li>
</ol>
<h3>Automating Business Processes Using SharePoint, InfoPath Forms Services, and Word Services</h3>
<p>This will likely not come as a surprise to many, but in my experience people are really embracing SharePoint for business process automation.&#160; This isn’t necessary one of the features that I see widely touted about SharePoint, but InfoPath Forms Services and SharePoint’s out of box workflow support just begs for business process automation.&#160; Gone are the days of writing departmental ASP.NET web apps for anything and everything (sniff, sniff).&#160; This session had some great best practices for automating business processes in SharePoint.</p>
<ol>
<li>As mentioned previously, this session also really pushed using sandbox solutions and the client-side object model.&#160; With Silverlight and JQuery we can finally truly push presentation out to the browser and not have this mix-match of services and presentation on the server.&#160; Several sessions all highly recommended sandbox solutions, and to target solutions for Office365 compatibility regardless of whether or not you are actually deploying to the cloud.&#160; This will ensure the least painful (read costly) upgrades and maintenance.</li>
<li>Follow application lifecycle management even for out-of-the-box SharePoint business process automation.&#160; What does this mean?&#160; It means defining your process before implementing it.&#160; Implementing the process in a non-production environment before moving to production.&#160; Considering versioning impact on the process.</li>
<li>I wholeheartedly agree with this one – when using business connectivity services, never connect directly to a SQL database.&#160; Implement a web service and connect BCS to the web service.&#160; This gives you the ability to enforce any business rules that may be required if write is enabled through BCS, logging, abstraction of the data layer incase things move around, etc.&#160; Preferably you already have a service layer in front of the SQL database and can simply connect to that, but if you do not, go ahead and write one!</li>
<li>Never use “Revert to self” authentication for BCS.&#160; Revert to self uses the application pool identity of the web application to authenticate to the backend service.&#160; It is much more secure to use passthrough authentication (the callers identity passes through to the backend system) or use secure store service to map the user to a credential for the backend system.</li>
<li>Stay away from external list lookup columns.&#160; If you implement these the data gets cached and whatever data the user who created the lookup column had rights to gets presented to everyone.&#160; In other words, if Joe creates the lookup column and he has access to all rows in the table, but Ben is supposed to only see half of the rows, Ben will end up seeing all rows in the lookup column.&#160; One workaround for this is to use InfoPath forms and use a secondary data connection to populate a drop-down instead of using a lookup column type.</li>
<li>I didn’t realize there is an OpenXML SDK that can be used to generate a class for writing Word documents (<a title="http://bit.ly/iYPgEg" href="http://bit.ly/iYPgEg">http://bit.ly/iYPgEg</a>).</li>
<li>As with other customizations in SharePoint, workflows should first be done using out of the box features.&#160; If out of the box features cannot meet the business requirements then reusable custom activities should be employed.&#160; As an absolute last resort create a custom workflow in Visual Studio.</li>
</ol>
<h3>Cross Organization Collaboration Using SharePoint Claims Authentication</h3>
<p>Whew, this post is running a lot longer than I was expecting!&#160; Must ….&#160; Keep …. Typing!&#160; </p>
<p>Anyway, this session was pretty similar to the earlier session on setting up claims authentication, but there were a few tidbits I picked up that weren’t in the other session:</p>
<ol>
<li>Office 2010 applications fully support claims-based authentication.&#160; Office 2007 applications have some “gotchas”.&#160; What those “gotchas” are were not explained, so I’ll have to do some research on this.</li>
<li>Claims authentication enables SharePoint to use “consumer” ids like Facebook, Google, Live, etc.&#160; The best practice when using consumer ids is to create a local unique identifier for the account and map the identifier to the consumer id.&#160; This provides some flexibility in terms of being able to switch the consumer ID that is used for an account without it changing the underlying profile.</li>
</ol>
<h3>SQL Server “Denali” Reporting Improvements</h3>
<p>So, <a href="http://bit.ly/c5lxNy">SQL Server “Denali”</a> will be coming out soon as a CTP, and man oh man, after seeing the improvements being made to reporting services and its SharePoint integration, I cannot wait!&#160; Here are some of the highlights I heard:</p>
<ol>
<li>Native SharePoint service application integration.&#160; No more bubblegum and duct tape integration, reporting services will be a first class SharePoint service application.&#160; Microsoft is indicating performance improvements of 30-60% over SQL Server 2008 R2 SharePoint integrated mode.&#160; In addition, configuration will be managed through Central Administration and logging will be through ULS.</li>
<li>Self-service alerting.&#160; Users will be able to setup alerts based on data contained in reports.&#160; Very cool stuff.</li>
<li>Ability to export as Open XML file formats.&#160; Still no PowerPoint support, but a step in the right direction.</li>
<li>One of the coolest things I saw was <a href="http://bit.ly/cVf0aH">“Project Crescent”</a>.&#160; Think Report Builder meets Silverlight.&#160; The intention is to enable end users to create their own reports right in the SharePoint portal using a Silverlight client and SQL Server Analysis Services integration.&#160; The demo was incredibly impressive, can’t wait to kick the tires when the CTP comes out.</li>
</ol>
<p>Alright, this is the part of the program where I start to get lazy <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://localhost:31663/wp-content/uploads/2011/05/wlEmoticon-smile.png" />.&#160; I attended another 5 sessions, but each of the sessions did not really have enough for me to start a whole new section here.&#160; So, here is what I propose.&#160; I’m just going to bullet out the couple random things picked up from each session in one list.&#160; It’s not all that much, so it should be fairly easy to follow.&#160; Let’s give it a try, and see what happens, shall we?</p>
<ol>
<li>MVC 3 supports HTML5 markup.</li>
<li>With MvcScaffolding you can add your validation rules to your POCO classes and the scaffolding will generate the appropriate DB and web validation.</li>
<li>Entity Framework 4.1 supports code first!&#160; Hooray!</li>
<li>Web forms is getting into the scaffolding scene also.&#160; WebFormsScaffolding.&#160; Does anyone still care about web forms?&#160; Please Microsoft, next rev of SharePoint kick web forms to the curb so we can all put web forms out to pasture and wash the stink from ourselves.</li>
<li>IISExpress enables you to have a nice lightweight usermode IIS that supports SSL.</li>
<li>You <u>can</u> do HTML5 in SharePoint!&#160; Make sure to remove the “meta” tag that says IE-Compat-8.&#160; Just get rid of it. </li>
<li>Couple ways of loading jQuery into SharePoint:&#160; Script link, Sys.loadScripts, Custom Action ScriptLink.</li>
<li>Wasn’t aware of the following JavaScript function: _spBodyOnLoadFunctionNames.push() allows you to put something into the body onLoad from a content editor web part.</li>
<li>Couple other cool bits of JavaScript:&#160; SP.UI.Notify and SP.UI.Status give you the ability to do the cool yellow notifications or red status alerts in SharePoint.&#160; SP.UI.ModalDialog is used to pop up a modal (duh).</li>
<li>Wasn’t aware of Randy Drisgill’s starter master page for 2010:&#160; <a title="http://bit.ly/cfuPTK" href="http://bit.ly/cfuPTK">http://bit.ly/cfuPTK</a>.</li>
</ol>
<p>Holy cow, I actually do not have any more notes!&#160; So that was basically my week at TechEd.&#160; I also worked in the 70-667 (SharePoint 2010 Configuration) exam and some time in the Exhibit Hall talking to various SharePoint component vendors.&#160; Lots and lots of follow-on research to do, can’t wait!</p>
<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2011/05/20/tech-ed-2011-summary/' addthis:title='Tech Ed 2011 Summary '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.ofonesandzeros.com/2011/05/20/tech-ed-2011-summary/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Troubleshooting TCP/UDP connectivity</title>
		<link>http://www.ofonesandzeros.com/2011/02/18/troubleshooting-tcpudp-connectivity/</link>
		<comments>http://www.ofonesandzeros.com/2011/02/18/troubleshooting-tcpudp-connectivity/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 16:17:59 +0000</pubDate>
		<dc:creator>bryan</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[ocs]]></category>
		<category><![CDATA[troubleshooting]]></category>

		<guid isPermaLink="false">http://www.ofonesandzeros.com/?p=194</guid>
		<description><![CDATA[I have spent the past several weeks installing, configuring, and mainly troubleshooting an OCS 2007 R2 instance. One of the issues that we were facing is that we could place EV calls from within our network, but calls from outside the network (coming through the edge) would fail. Basically the call would be placed, but [...]<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2011/02/18/troubleshooting-tcpudp-connectivity/' addthis:title='Troubleshooting TCP/UDP connectivity '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></description>
			<content:encoded><![CDATA[<p>I have spent the past several weeks installing, configuring, and mainly troubleshooting an OCS 2007 R2 instance.  One of the issues that we were facing is that we could place EV calls from within our network, but calls from outside the network (coming through the edge) would fail.  Basically the call would be placed, but as soon as the opposite end answered the call would disconnect.</p>
<p>In any event, those details are not really why I am posting this.  What I ran into is that there are several network segments and firewall rules between the client, the edge, the mediation server, the front-end, etc.  While we all know how to troubleshoot TCP connectivity issues easy enough using telnet, I was struggling to troubleshoot UDP connectivity, specifically for the STUN protocol (UDP port 3478).  I came across the following utility that was infinitely helpful in determining the issue:</p>
<ul>
<li><a href="http://www.pcausa.com/Utilities/pcattcp.htm">http://www.pcausa.com/Utilities/pcattcp.htm</a></li>
</ul>
<p>This utility allows you to setup a transmitting and receiving pair, it&#8217;s a tiny executable, and it has no discernible external DLL requirements.  I highly recommend adding it to your toolbox!</p>
<p><a href="http://www.pcausa.com/Utilities/pcattcp.htm"></a></p>
<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2011/02/18/troubleshooting-tcpudp-connectivity/' addthis:title='Troubleshooting TCP/UDP connectivity '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.ofonesandzeros.com/2011/02/18/troubleshooting-tcpudp-connectivity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unable to access trusted domain accounts in people picker</title>
		<link>http://www.ofonesandzeros.com/2010/08/30/unable-to-access-trusted-domain-accounts-in-people-picker/</link>
		<comments>http://www.ofonesandzeros.com/2010/08/30/unable-to-access-trusted-domain-accounts-in-people-picker/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 19:14:05 +0000</pubDate>
		<dc:creator>bryan</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[ad]]></category>
		<category><![CDATA[dns]]></category>

		<guid isPermaLink="false">http://www.ofonesandzeros.com/?p=190</guid>
		<description><![CDATA[For several weeks we have been wrestling with an issue where a client&#8217;s MOSS install was not able to see the accounts in a trusted domain (two way trust). The server itself could resolve the accounts just fine, for instance if you were to set file system ACL permissions you could select accounts from the [...]<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2010/08/30/unable-to-access-trusted-domain-accounts-in-people-picker/' addthis:title='Unable to access trusted domain accounts in people picker '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></description>
			<content:encoded><![CDATA[<p>For several weeks we have been wrestling with an issue where a client&#8217;s MOSS install was not able to see the accounts in a trusted domain (two way trust).  The server itself could resolve the accounts just fine, for instance if you were to set file system ACL permissions you could select accounts from the trusted domain without any issue, but if you tried to locate one of those accounts via the SharePoint people picker dialog, it would not locate the account.  Netmon captures revealed that the lookup was making it to the DC and the response was a populated as you would expect, but still, no workie.  Several stsadm.exe -o setproperty commands later and several server rebuilds, still no luck.</p>
<p>Finally today my colleague <a href="http://www.askthemct.com">Stephen Rea</a> was able to locate the issue and resolve it.  As is often the case, seemingly complex issues turn out to be caused by very simple oversights.  In this case, the trusted domain had been setup in DNS for the resource domain as a secondary domain.  Secondary domains hosted on Windows DNS servers going across a WAN link typically perform erratically.  Simply forwarding the DNS requests for the trusted domain over to the trusted domain DNS servers resolved the issue and SharePoint immediately behaved as expected.  </p>
<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2010/08/30/unable-to-access-trusted-domain-accounts-in-people-picker/' addthis:title='Unable to access trusted domain accounts in people picker '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.ofonesandzeros.com/2010/08/30/unable-to-access-trusted-domain-accounts-in-people-picker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Got an iPad</title>
		<link>http://www.ofonesandzeros.com/2010/04/07/got-an-ipad/</link>
		<comments>http://www.ofonesandzeros.com/2010/04/07/got-an-ipad/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 23:14:59 +0000</pubDate>
		<dc:creator>bryan</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://www.ofonesandzeros.com/2010/04/07/got-an-ipad/</guid>
		<description><![CDATA[While vacationing down in the Florida keys I took a short two hour drive up to The Falls shopping center in Miami to pickup a 32 GB ipad! First impressions are very positive. The device has a very snappy feel, much more responsive when browsing the internet than on my 3GS (which consequently I also [...]<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2010/04/07/got-an-ipad/' addthis:title='Got an iPad '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></description>
			<content:encoded><![CDATA[<p>While vacationing down in the Florida keys I took a short two hour drive up to The Falls shopping center in Miami to pickup a 32 GB ipad!  First impressions are very positive. The device has a very snappy feel, much more responsive when browsing the internet than on my 3GS (which consequently I also love). The only negative at the moment is the lack of apps support for the ipad. Many of my favorites have not yet been optimized for the iPad, and while they work in iPhone compatibility mode, the fact that a hundredth of the ipads screen real estate gets used is disappointing. I am sure now that the device is shipping it will not be long before the apps follow. </p>
<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2010/04/07/got-an-ipad/' addthis:title='Got an iPad '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.ofonesandzeros.com/2010/04/07/got-an-ipad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 7 Preview Pane</title>
		<link>http://www.ofonesandzeros.com/2010/03/02/windows-7-preview-pane/</link>
		<comments>http://www.ofonesandzeros.com/2010/03/02/windows-7-preview-pane/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 18:01:51 +0000</pubDate>
		<dc:creator>bryan</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[preview]]></category>
		<category><![CDATA[win7]]></category>

		<guid isPermaLink="false">http://www.ofonesandzeros.com/?p=187</guid>
		<description><![CDATA[First off, I didn&#8217;t even realize that Vista had a Preview Pane feature, but today I had the need to quickly glance through several Word documents and was trying to find a way to quickly preview the contents. I noticed an icon within Explorer in the upper right that looked like a preview button and [...]<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2010/03/02/windows-7-preview-pane/' addthis:title='Windows 7 Preview Pane '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></description>
			<content:encoded><![CDATA[<p>First off, I didn&#8217;t even realize that Vista had a Preview Pane feature, but today I had the need to quickly glance through several Word documents and was trying to find a way to quickly preview the contents.  I noticed an icon within Explorer in the upper right that looked like a preview button and wha-la!  I haven&#8217;t tried for other file types yet but for Word documents the experience is fantastic.  </p>
<p>Gizmodo has additional info here: http://gizmodo.com/5140434/win-7-tip-windows-explorer-preview-pane-works-much-better-than-vistas</p>
<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2010/03/02/windows-7-preview-pane/' addthis:title='Windows 7 Preview Pane '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.ofonesandzeros.com/2010/03/02/windows-7-preview-pane/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Expression Encoder 3 For Up To 10 Minutes</title>
		<link>http://www.ofonesandzeros.com/2010/02/02/free-expression-encoder-3-for-up-to-10-minutes/</link>
		<comments>http://www.ofonesandzeros.com/2010/02/02/free-expression-encoder-3-for-up-to-10-minutes/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 15:37:41 +0000</pubDate>
		<dc:creator>bryan</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[encoder screencast]]></category>

		<guid isPermaLink="false">http://www.ofonesandzeros.com/2010/02/02/free-expression-encoder-3-for-up-to-10-minutes/</guid>
		<description><![CDATA[Microsoft has released a free version of Expression Encoder which can be used to create screencasts up to 10 minutes in length!&#160; You can include video and audio with the screen cast recording.&#160; I played with this a bit this week and the performance and quality of results are very impressive.&#160; Download it here.<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2010/02/02/free-expression-encoder-3-for-up-to-10-minutes/' addthis:title='Free Expression Encoder 3 For Up To 10 Minutes '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></description>
			<content:encoded><![CDATA[<p>Microsoft has released a free version of Expression Encoder which can be used to create screencasts up to 10 minutes in length!&#160; You can include video and audio with the screen cast recording.&#160; I played with this a bit this week and the performance and quality of results are very impressive.&#160; Download it <a href="http://tinyurl.com/pbuv2x">here</a>.</p>
<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.ofonesandzeros.com/2010/02/02/free-expression-encoder-3-for-up-to-10-minutes/' addthis:title='Free Expression Encoder 3 For Up To 10 Minutes '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif?9d7bd4" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.ofonesandzeros.com/2010/02/02/free-expression-encoder-3-for-up-to-10-minutes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: basic
Database Caching 1/33 queries in 0.104 seconds using disk: basic
Object Caching 1001/1082 objects using disk: basic
Content Delivery Network via Amazon Web Services: CloudFront: dfcv747gi313t.cloudfront.net

Served from: www.ofonesandzeros.com @ 2012-02-05 11:53:50 -->
