<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!--RSS generated by Microsoft SharePoint Foundation RSS Generator on 5/23/2013 12:39:29 PM --><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>The Kick Board (Kevin Dostalek's Blog)</title><link>http://www.thekickboard.com</link><description>Personal blog site of Kevin Dostalek (aka: @TheKicker). Topics focused mostly on SharePoint (and especially Social Computing / Social Media), but can also range from agile software development, to all things learning, leadership, innovation, geek humor, music and various software, programming, and web 2.0 tangents.</description><copyright>Copyright 2010 Kick Studios, LLC</copyright><managingEditor>Kevin Dostalek</managingEditor><webMaster>Kevin Dostalek</webMaster><lastBuildDate>Thu, 23 May 2013 16:39:29 GMT</lastBuildDate><generator>SharePoint CKS:EBE</generator><ttl>60</ttl><language>en-US</language><image><link>http://www.thekickboard.com/archive/2008/10/29/welcome-to-the-kick-board.aspx</link><url>http://www.thekickboard.com/media/kickboard_thumb.png</url><title>Visit The Kick Board Now!</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/TheKickBoard" /><feedburner:info uri="thekickboard" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>Creating a Custom Gatherer for the SharePoint 2010 Activity Feed</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/rYs95-hgoeA/creating-a-custom-gatherer-for-the-sharepoint-2010-activity-feed.aspx</link><guid isPermaLink="False">/archive/2011/08/14/creating-a-custom-gatherer-for-the-sharepoint-2010-activity-feed.aspx</guid><description>&lt;div class="ExternalClass7CA54409A6B142FD9E8C9E8D6178E10A"&gt;&lt;p&gt;Thanks to everyone that came out for my session at SharePoint Saturday &amp;quot;The Conference&amp;quot; ​that took place this past week in Washington, DC.&lt;/p&gt;
&lt;p&gt;I only did one session this year, entitled, Creating a Custom Gatherer for the SharePoint 2010 Activity Feed.  As promised you can download a hi-res image version of the 3D-animated mindmap that was used in the presentation by clicking the thumbnail below:&lt;/p&gt;
&lt;p style="text-align:center"&gt;&lt;a href="http://www.thekickboard.com/Media/speaking/2011-08-12-spstcdc/CreatingCustomGatherer-SPSTCDC-map.png"&gt;&lt;img src="http://www.thekickboard.com/Media/speaking/2011-08-12-spstcdc/CreatingCustomGatherer-SPSTCDC-mapthumb.png" border="0" alt="" style="margin:5px"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;In addition here is the &lt;a href="http://www.thekickboard.com/Media/speaking/2011-08-12-spstcdc/TwitterGatherer.zip"&gt;Visual Studio project for the Twitter Gatherer Timer Job&lt;/a&gt;.  And lastly, here are links to some of the resources we talked about during the session:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.shillier.com/archive/2011/04/13/sharepoint-2010-timer-job-item.aspx"&gt;Scot Hillier's Timer Job VS Project Item Template&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://cksdev.codeplex.com/"&gt;CKSDEV Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff770300.aspx"&gt;Patterns and Practices Guidance for SP2010 Development&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;The conference itself was pretty epic.  200+ sessions over 3 days time with experts from all around the world.  As always my favorite part of attending one of these conferences is interacting with everyone.  It was great catching up with old friends and meeting loads of new ones!  The SharePoint community is so special and it's amazing to see people sharing their &amp;quot;art&amp;quot; with each other.  It doesn't matter if you are hanging out with an SP rockstar or just someone that is passionate about their work-- it such a cool opportunity to learn, grow, and of course SHARE.&lt;/p&gt;
&lt;p&gt;In the geek-irony category, I thought it was hillarious that a group of us ended up at a bar/club one night down in DC called &amp;quot;The Frontpage&amp;quot;.&lt;/p&gt;
&lt;p&gt;Thanks to everyone that made the conference possible, especially the organizers- they did an amazing job!&lt;/p&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/rYs95-hgoeA" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NEO\kdostalek</dc:creator><pubDate>Sun, 14 Aug 2011 13:00:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/community/default.aspx">community</category><category domain="http://www.thekickboard.com/archive/tags/code/default.aspx">code</category><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.thekickboard.com/archive/tags/social/default.aspx">social</category><feedburner:origLink>http://www.thekickboard.com/archive/2011/08/14/creating-a-custom-gatherer-for-the-sharepoint-2010-activity-feed.aspx</feedburner:origLink></item><item><title>Pulling a Rich Text Field from a SharePoint List into An InfoPath 2010 Form</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/L4Zw9PydJ44/pulling-a-rich-text-field-from-a-sharepoint-list-into-an-infopath-2010-form.aspx</link><guid isPermaLink="False">/archive/2011/07/21/pulling-a-rich-text-field-from-a-sharepoint-list-into-an-infopath-2010-form.aspx</guid><description>&lt;div class="ExternalClass2AA0D3B61C864208BDD17FDB94244F67"&gt;&lt;p&gt;​So today I was in the process of refactoring some InfoPath 2010 forms for wider reuse.  One of the views in the form was an “instructions” page, but rather than having all this “static” formatted text live on the form I wanted it to pull it from a SharePoint list that could then be easily edited and maintained by business users without having to modify the form.&lt;/p&gt;
&lt;p&gt;This sounds reasonably easy, and I even already had a data source connection to the list I wanted to use, so all I had to do was add a new field to the SharePoint list as a Multi-Line Text datatype with rich text enabled.  I didn’t want these instructions to load/change every time the form was opened, so my strategy was to create a rule and based on a condition (that told me the form was a new one) I would query the secondary data source and pull the rich text from SharePoint and store it in field located in my Main data source.  I made sure that this new field was of the datatype “Rich Text (XHTML)” and that the actual Rich Text box control placed on the form was set to “Enable enhanced rich text…”, etc…  Problem was that when I previewed the form, the text from the SharePoint list showed up, but all the formatting was stripped.&lt;/p&gt;
&lt;p&gt;After a bit of troubleshooting I determined that the RTF formatting was indeed coming over from the SharePoint List data source, in fact if I bound a repeating table with a RTB directly to the secondary data source field it did indeed show the text formatted.  Most other sources on the internet pointed at a faulty implementation of the “Set a Field’s Value…” rule action.  Since in my case this is a pretty complex form and I had a code-behind (sandbox solution) I had the luxury of digging into this a bit further.  What I found is that the problem is not with the Rule Action implementation because the formatting is not lost upon the call to .SetValue() (on the XPathNavigator pointing at your target field).  It is actually lost when you read the value out of the .Value property (of the XPathNavigator pointing at your source field).&lt;/p&gt;
&lt;p&gt;So I came up with a work around that appears to be working.  That is instead of reading and writing these field values, if you pull the entire .InnerXML property of the source and set the target’s .InnerXML property to it, all the formatting properly comes over!  Here’s a helper function that illustrates what I’m talking about:&lt;/p&gt;
&lt;p&gt;&lt;div&gt;&lt;span style="font-family:'courier new';color:blue;font-size:8pt"&gt;private&lt;/span&gt;&lt;span style="font-family:'courier new';font-size:8pt"&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; CopyFieldValueByXml(&lt;span style="color:#2b91af"&gt;DataSource&lt;/span&gt; sourceDatasource, &lt;span style="color:blue"&gt;string&lt;/span&gt; sourceXPath, &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:'courier new';font-size:8pt"&gt;&lt;span&gt;                                 &lt;/span&gt;&lt;span style="color:#2b91af"&gt;DataSource&lt;/span&gt; targetDatasource, &lt;span style="color:blue"&gt;string&lt;/span&gt; targetXPath)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:'courier new';font-size:8pt"&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:'courier new';font-size:8pt"&gt;&lt;span&gt;    &lt;/span&gt;&lt;span style="color:#2b91af"&gt;XPathNavigator&lt;/span&gt; sourceNav = sourceDatasource.CreateNavigator();&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:'courier new';font-size:8pt"&gt;&lt;span&gt;    &lt;/span&gt;&lt;span style="color:#2b91af"&gt;XPathNavigator&lt;/span&gt; sourceField = sourceNav.SelectSingleNode(sourceXPath, NamespaceManager);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:'courier new';font-size:8pt"&gt;&lt;span&gt;    &lt;/span&gt;&lt;span style="color:blue"&gt;string&lt;/span&gt; dataXml = sourceField.InnerXml;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:'courier new';font-size:8pt"&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:'courier new';font-size:8pt"&gt;&lt;span&gt;    &lt;/span&gt;&lt;span style="color:#2b91af"&gt;XPathNavigator&lt;/span&gt; targetNav = targetDatasource.CreateNavigator();&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:'courier new';font-size:8pt"&gt;&lt;span&gt;    &lt;/span&gt;&lt;span style="color:#2b91af"&gt;XPathNavigator&lt;/span&gt; targetField = targetNav.SelectSingleNode(targetXPath, NamespaceManager);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-family:'courier new';font-size:8pt"&gt;&lt;span&gt;    &lt;/span&gt;targetField.InnerXml = dataXml;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="line-height:115%;font-family:'courier new';font-size:8pt"&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;So now some warnings: First off, I (or you) still need to do a bit more testing on this work around because in my simple use case I only needed to pull static rich text into my document.  I don’t know for sure if there will be any ill effects should we need to later go and edit this rich text within the form.  Second, and more importantly, this little work around will only work if you are using a code behind (doesn’t have to be an admin form, I’m doing this with a sandbox solution).  If this is the ONLY reason you are using a code behind then that’s probably a very unnecessary maintenance burden you are placing on your solution for a very small gain.  I would not recommend you do this in that scenario.  However, if you are in a situation like mine, where you need the code behind anyway, then have at it!&lt;/p&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/L4Zw9PydJ44" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NEO\kdostalek</dc:creator><pubDate>Thu, 21 Jul 2011 14:45:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/code/default.aspx">code</category><category domain="http://www.thekickboard.com/archive/tags/InfoPath/default.aspx">InfoPath</category><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><feedburner:origLink>http://www.thekickboard.com/archive/2011/07/21/pulling-a-rich-text-field-from-a-sharepoint-list-into-an-infopath-2010-form.aspx</feedburner:origLink></item><item><title>Ultimate Personal Search Engine</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/LKy8vs2uYwk/ultimate-personal-search-engine.aspx</link><guid isPermaLink="False">/archive/2011/07/01/ultimate-personal-search-engine.aspx</guid><description>&lt;div class="ExternalClass95D41D541D434F359C54A7EA717067C7"&gt;&lt;p&gt;​I recently began using a service called greplin which has changed the way I search for things in all my “life streams”.  Since I did a few optimizations I wanted to give a quite review of the service and then also share with all my readers some tips that I think can make it work even better.&lt;/p&gt;
&lt;p&gt;Before I get into greplin, use this link to access it: &lt;a href="https://www.greplin.com/r/c/738522"&gt;https://www.greplin.com/r/c/738522&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;That is somewhat of an “affiliate link”, though NO money is involved.  It’s just my personal “refer a friend” link which earns both YOU and me “unlock credits” (as opposed to if you just go to &lt;a href="http://greplin.com/"&gt;http://greplin.com&lt;/a&gt;).&lt;/p&gt;
&lt;img align="right" alt="greplin logo" src="http://www.thekickboard.com/media/greplin.png" style="margin:5px"&gt; &lt;p style="text-align:left"&gt;&lt;strong&gt;&lt;br&gt;&lt;/strong&gt;&lt;strong&gt;What is It?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ok, so greplin basically lets you attach various data sources such as Twitter, Facebook, LinkedIN, Dropbox, Gmail, Evernote, etc… and it builds a personal index of all of them for you (that only you can access of course). Then whenever you want to find something, you just search from their page (which pretty much looks like a blue version of google) and you get all of your results grouped by (and filterable by) result type (people, messages, streams, files, etc…) as well as data source.  It has all the cool AJAXy enhancements too like immediate results as you type and result refiners (facets) to narrow your results.&lt;/p&gt;
&lt;p&gt;When you get started, you just add in your data sources and it starts the indexing process.  It seemed like wherever it was possible they used oAuth (or a variant, like Facebook connect), so they wouldn’t actually be storing your username/password, though I think there were a few where it might have.  All my data sources were a snap to set up, though when I first added my Gmail account it seemed to hang up on indexing.  I later figured out that this was just because I use my Gmail account to send canary emails to myself at my home-based email server every 5 minutes, and Gmail had stored all of these “sent items” – about 150k of them (ha!).  After I deleted all of those (which only took about 2 minutes in Gmail) things were much better.  I’m presently indexing Facebook, Twitter, Dropbox, LinkedIN, and 2 Gmail accounts.  It says it’s currently indexing 20336 documents for me (always changing of course).&lt;/p&gt;
&lt;p&gt;Though I’m only using the “free” index data sources, they also have available other sources that are “unlockable” which you get for free once you invite enough people and earn “unlock credits”.  Then there are “premium” data sources such as Google Apps, 37Signals Apps, Salesforce, Yammer, and Evernote that you need a paid account for (at the time of this writing it is $5/mo or $50/yr).  That’s too bad about Evernote, because I do use it heavily, but I don’t know if I can justify $5/mo to search it when I can search it for free elsewhere.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A Few Tips&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you use Google Chrome as your browser, install the greplin extension.  Not only does it add a little icon that lets you do quick searches, but it adds a shortcut in your address bar so that if you type g[space] (that is the g key followed by the spacebar) you can type your greplin search right in the address bar.  For those of you that don’t know it, you can do the same thing for a google search by typing g[tab].&lt;/p&gt;
&lt;p&gt;If you have multiple Gmail accounts this is the perfect solution for being able to search across them.  After you add in your first Gmail data source just make sure you log out of Gmail completely in your browser so that when you go back to add the second (and third, etc…) it prompts you for another login instead of just connecting you to the one you’ve already added.  Also make sure that your Gmail accounts have IMAP enabled, but that you aren’t using the quirky “Advanced IMAP Controls” Lab mode.&lt;/p&gt;
&lt;p&gt;If you want to use this on your mobile device, they have done a pretty good job with autodetecting and redirecting a mobile version of the search/results page which is very nice.  If you use an iPhone, while there is no App (yet), you can make your own by doing the following:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Navigate to greplin.com – it will open in mobile mode.&lt;/li&gt;
&lt;li&gt;Scroll to the bottom and click the link to switch to standard view&lt;/li&gt;
&lt;li&gt;Pinch zoom all the way into the upper left corner so that all you see on the screen is the greplin logo (the cloud) centered or slightly below centered.&lt;/li&gt;
&lt;li&gt;Click the share button (bottom center) then choose “Add to Home Screen”&lt;/li&gt;
&lt;li&gt;Close browser.  You should now see an app with the greplin logo on the Springboard.  Click it (touch it?)  greplin should open up in mobile mode again.  If for some reason it isn’t, just scroll to the bottom and choose mobile version.  It should stay in that mode from there forward.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Now you have a quick way of accessing your personal search engine from your iPhone!  How cool is that?&lt;br&gt;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/LKy8vs2uYwk" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NEO\kdostalek</dc:creator><pubDate>Fri, 01 Jul 2011 11:00:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/search/default.aspx">search</category><category domain="http://www.thekickboard.com/archive/tags/social/default.aspx">social</category><category domain="http://www.thekickboard.com/archive/tags/web 2.0/default.aspx">web 2.0</category><feedburner:origLink>http://www.thekickboard.com/archive/2011/07/01/ultimate-personal-search-engine.aspx</feedburner:origLink></item><item><title>ViewFormPagesLockdown for SharePoint Foundation 2010</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/XPeQIVCmN2E/viewformpageslockdown-for-sharepoint-foundation-2010.aspx</link><guid isPermaLink="False">/archive/2011/05/24/viewformpageslockdown-for-sharepoint-foundation-2010.aspx</guid><description>&lt;div class="ExternalClass44AA2836D26D4BEEB91C79A324171309"&gt;&lt;p class="ExternalClass622FC2112DD54920A302A71E685EC14F"&gt;&lt;img align="right" alt="Form Lockdown" src="http://www.thekickboard.com/media/formlock.png" style="margin:5px"&gt;​Some of you may be familiar with a feature named ViewFormPagesLockdown that ships with MOSS 2007 and SharePoint Server 2010.  It’s automatically enabled when you create a new site using the publishing template.  Basically, if you enable anonymous access then this feature will keep those anonymous users out of application pages and form pages while still allowing them read access to the underlying list/document data.  So for example, they can open a publishing page in a Pages library or download a document from a document library, but they are not able to access the page item property view form or view a list of all the documents in the library.&lt;/p&gt;
&lt;p class="ExternalClass622FC2112DD54920A302A71E685EC14F"&gt;This feature wasn’t present in WSS, but that makes sense since WSS doesn’t support the publishing infrastructure anyway.  However, now that we have Wiki Page libraries (/SitePages) available in SharePoint 2010 Foundation (SPF from here on) you very well might want to have that same behavior to lock out anonymous users from the “backstage” of a public facing web site.&lt;/p&gt;
&lt;p class="ExternalClass622FC2112DD54920A302A71E685EC14F"&gt;Take a look at the screenshot below that was taken from the SharePoint Management Shell running on a SharePoint 2010 Server:&lt;/p&gt;
&lt;p class="ExternalClass622FC2112DD54920A302A71E685EC14F"&gt;&lt;span&gt;&lt;img alt="ViewFormPagesLockdown Powershell Screen" src="http://www.thekickboard.com/media/viewform_ps.png" style="margin:5px"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="ExternalClass622FC2112DD54920A302A71E685EC14F"&gt;&lt;span&gt;&lt;br&gt;&lt;/span&gt;&lt;span&gt;It’s a hidden feature, but no problem on Server; you can simply activate this feature from PowerShell.  However, if you run the same command on an SPF server you will get NADA.  It’s not installed.  What to do?&lt;/span&gt;&lt;/p&gt;
&lt;p class="ExternalClass622FC2112DD54920A302A71E685EC14F"&gt;&lt;span&gt;Well, it turns out that all that this feature does is change a few of the permissions for the Limited Access Role in the site collection.  There’s not an easy way to get at that via the web UI, but it’s almost trivial with a tiny bit of code.  Here’s a very truncated version of what you need to do:&lt;/span&gt;&lt;/p&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; url=&lt;span class="str"&gt;&amp;quot;http://yoursite&amp;quot;&lt;/span&gt;;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt;(var site = &lt;span class="kwrd"&gt;new&lt;/span&gt; SPSite(url))&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    SPWeb rootWeb = site.RootWeb;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    SPRoleDefinition guestRole = rootWeb.RoleDefinitions.GetByType(SPRoleType.Guest);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    guestRole.BasePermissions &amp;amp;= ~(SPBasePermissions.EmptyMask | SPBasePermissions.ViewFormPages);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    guestRole.BasePermissions &amp;amp;= ~SPBasePermissions.UseRemoteAPIs;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    rootWeb.AnonymousPermMask64 &amp;amp;= ~(SPBasePermissions.UseRemoteAPIs | SPBasePermissions.ViewFormPages);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    rootWeb.Update();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;div class="ExternalClass622FC2112DD54920A302A71E685EC14F"&gt; &lt;/div&gt;
&lt;div class="ExternalClass622FC2112DD54920A302A71E685EC14F"&gt;For those that would like something a bit more polished, say a well behaved command line application or an actual SharePoint feature you can turn on and off, contact me and I’ll hook you up. &lt;/div&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/XPeQIVCmN2E" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NEO\kdostalek</dc:creator><pubDate>Tue, 24 May 2011 21:10:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/security/default.aspx">security</category><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.thekickboard.com/archive/tags/code/default.aspx">code</category><feedburner:origLink>http://www.thekickboard.com/archive/2011/05/24/viewformpageslockdown-for-sharepoint-foundation-2010.aspx</feedburner:origLink></item><item><title>Comment Engine Change (again)</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/vnNnWmj0jUM/comment-engine-change-again.aspx</link><guid isPermaLink="False">/archive/2011/05/09/comment-engine-change-again.aspx</guid><description>&lt;div class="ExternalClassD06BF7C1D6C849448A4348E6E9F3115B"&gt;&lt;p&gt;Hey all! I've been needing to do some work on the blog here for awhile, and since it looks like I'm about to get very busy starting tomorrow I figured I better try and sneak it in tonight!&lt;/p&gt;
&lt;p&gt;&lt;img align="right" class="ms-rtePosition-2" alt="Comment Logo" src="http://www.thekickboard.com/media/comments.jpg" style="margin:5px"&gt;&lt;br&gt;I've had to chnage out the comment engine again.  This time to the new Facebook comment plugin.  I know this may be an unpopular move and I *really* liked Echo (the last comment engine we had), but the price had jumped from $12 a year to $120, and I couldn't relly justify that since I only had about 100 comments last year anyway.  I will miss the cool way it pulled in stuff from Twitter and Friendfeed automatically, but it seemed like the best discussions were either directly &amp;quot;on the site&amp;quot; (no social networks) or Facebook.&lt;/p&gt;
&lt;p&gt;So anyway, try out the new comments widgets... it's just like facebook.  Cool thing is if you allow it to post through to facebook as well, then any comments your friends make on the post will also show up here on the blog (don't worry, it makes it clear whats happening when they reply).&lt;/p&gt;
&lt;p&gt;Unfortunately, this also means that every post on The Kickboard now has 0 comments.  That kind of hurts, but since I've been so bad at posting over the last 6 months or so anyway, it doesn't hurt nearly as much as it might.  Please let me know if you notice something not working right!&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/vnNnWmj0jUM" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NEO\kdostalek</dc:creator><pubDate>Mon, 09 May 2011 23:00:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/kickboard/default.aspx">kickboard</category><category domain="http://www.thekickboard.com/archive/tags/social/default.aspx">social</category><feedburner:origLink>http://www.thekickboard.com/archive/2011/05/09/comment-engine-change-again.aspx</feedburner:origLink></item><item><title>Mindmap from SPIN Meeting 2011-03-16</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/pLl3AvUHS_M/mindmap-from-spin-meeting-2011-03-16.aspx</link><guid isPermaLink="False">/archive/2011/03/22/mindmap-from-spin-meeting-2011-03-16.aspx</guid><description>&lt;div class="ExternalClass7C6C487535764DBAB0878884DC6BD7C8"&gt;&lt;p&gt;By request here is an image version of the mindmap that I used when presenting at last week's &lt;a href="http://www.spindiana.com/"&gt;SPIN&lt;/a&gt; (SharePoint Users of Indiana​) meeting.  It had certainly been way too long since I've presented at my &amp;quot;home user group&amp;quot; (I think the last time was about 4 years ago! is that right?! wow).&lt;/p&gt;
&lt;p&gt;This session was An Introduction to Electronic Content Management (yes the controversy between Electronic and Enterprise was built purposely into the title).  It is by far the least technical topic that I've presented on in quite a while, but as I've been doing quite a bit of work lately on ECM and Information Architecture Design the timing was great.  It will now go into my presentation rotation for potential future speaking gigs.&lt;/p&gt;
&lt;p&gt;Anyway, if you click on the thumbnail below you'll get a large format picture version of the mindmap - sorry folks I don't really like powerpoint slide decks for these types of presentations.  What this means is that there is quite a bit of detail that I TALKED about during the presentation that isn't included here in the presentation artifact.  So if you didn't come to the meeting, make sure next time you do!  I supposed if enough people request it I might be persuaded to record a screencast.&lt;/p&gt;
&lt;p style="text-align:center"&gt;&lt;a href="http://www.thekickboard.com/Media/speaking/2011-03-16-SPIN/Intro%20to%20ECM.png"&gt;&lt;img class="ms-rteImage-0" alt="Mindmap Thumbnail" src="http://www.thekickboard.com/Media/speaking/2011-03-16-SPIN/Intro%20to%20ECM%20Thumb.png" border="0" style="margin:5px"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style="text-align:left"&gt;Lastly, a special thank you goes out to Rob Bogue that provided some of the content for this presentation especially in the &amp;quot;History of Content Management&amp;quot; arm of the map.  Also, I don't remember if I mentioned it at the end of the meeting, but I highly value any feedback on my presentations from attendees.  If you have any you can either leave it below or my anonymous BetterMe inbox is always open at &lt;a href="http://bit.ly/tokevin"&gt;http://bit.ly/tokevin&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align:left"&gt; &lt;/div&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/pLl3AvUHS_M" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NEO\kdostalek</dc:creator><pubDate>Tue, 22 Mar 2011 19:15:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/community/default.aspx">community</category><category domain="http://www.thekickboard.com/archive/tags/enterprise/default.aspx">enterprise</category><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><feedburner:origLink>http://www.thekickboard.com/archive/2011/03/22/mindmap-from-spin-meeting-2011-03-16.aspx</feedburner:origLink></item><item><title>Creating a Site Collection Term Store Group</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/asQOC_jMOfg/creating-a-site-collection-term-store-group.aspx</link><guid isPermaLink="False">/archive/2010/12/19/creating-a-site-collection-term-store-group.aspx</guid><description>&lt;div class="ExternalClass41253BE8189F4AE68AC5D11E940EA318"&gt;&lt;p class="ms-rteThemeForeColor-2-0"&gt;&lt;em&gt;&lt;strong&gt;[UPDATE: ​At some point Microsoft has changed the CreateSiteCollectionGroup method of the TermStore object so that it is now public and you can use that directly in your code rather than follow the method that this article suggests.  For additional information see &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.taxonomy.termstore.getsitecollectiongroup.aspx"&gt;http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.taxonomy.termstore.getsitecollectiongroup.aspx​&lt;/a&gt;]&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;span class="ms-rteThemeForeColor-2-0"&gt;&lt;strong&gt;
&lt;/strong&gt;&lt;/span&gt;&lt;p&gt;I’ve been playing around lately with term stores, both the central global variety as well as the private (aka “local”) site collection type.&lt;span&gt;  &lt;/span&gt;This secondary type is very useful if you want to limit access to the term sets or allow the term set’s contents to diverge from site collection to site collection.&lt;span&gt;  &lt;/span&gt;Why would you want to do this?&lt;span&gt;  &lt;/span&gt;Well, of course the primary power of a term store is to be able to globally manage a set of metadata for your organization, but these more localized term store’s give you more control over the use and management of the term sets, but still let you use all the cool new things SharePoint 2010 has to offer such as metadata navigation, faceted-search, etc…&lt;/p&gt;
&lt;p class="MsoNormal"&gt;So knowing all this, you can imagine my surprise when I learned that site collection &amp;quot;term stores&amp;quot; are actually just a special group in an MMS (Managed Metadata Service) term store.&lt;span&gt;  &lt;/span&gt;You are probably already familiar with Term Store Groups as they for the top level in the hierarchy within in a term store.&lt;span&gt;  &lt;/span&gt;What you may not know is that there are two types of these groups, &amp;quot;regular&amp;quot; and &amp;quot;site collection&amp;quot; (well there's also a third type, &amp;quot;system&amp;quot;).&lt;span&gt;  &lt;/span&gt;The site collection groups have a property that defines which site collections have access to the group (it’s an ACL that just stores a collection of Guids that are the SPSite.ID’s).&lt;span&gt;  &lt;/span&gt;The easiest way to create one of these is to create a new site column within your site, choose the field type of &amp;quot;managed metadata&amp;quot;, then change the term set selection to &amp;quot;customize this term set&amp;quot;.&lt;span&gt;  &lt;/span&gt;This action will both create the special term group in your MMS term store as well as your new term set.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Super, that’s what I want, so let’s package this up as a feature so that I can staple it to a site definition.&lt;span&gt;  &lt;/span&gt;Wait a minute!&lt;span&gt;  &lt;/span&gt;Not so fast.&lt;span&gt;  &lt;/span&gt;&lt;strong&gt;You can’t create site collection term store groups in code.&lt;/strong&gt;&lt;span&gt;&lt;strong&gt; &lt;/strong&gt; &lt;/span&gt;Seriously?&lt;span&gt;  &lt;/span&gt;Yes, after checking this out with &lt;a href="http://social.technet.microsoft.com/Forums/en-US/sharepoint2010programming/thread/e1ce1653-64cf-45d9-8252-32120ffc3a91"&gt;multiple sources​&lt;/a&gt; as well checking things out for myself with reflector I found that the only public method on the TermStore object is CreateGroup(string groupName) which only creates a normal group &lt;img align="right" class="ms-rtePosition-2" alt="CreateGroup from Reflector" src="http://www.thekickboard.com/Media/creategroupreflector.png" style="margin:5px"&gt;(note: there is another private overloaded method of CreateGroup that takes a GroupType as a parameter… and there are other internal methods that call this, but there are no public paths to any of these).&lt;span&gt;  &lt;/span&gt;&lt;strong&gt;Also, once a group is created you cannot change its type.&lt;/strong&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Well, &lt;strong style="color:red"&gt;that’s a big bummer&lt;/strong&gt;, but not to be deterred I have come up with a workaround.&lt;span&gt;  &lt;/span&gt;It’s not the perfect solution to this problem, but it does appear to get the job done.&lt;span&gt;  &lt;/span&gt;Also, if you were going to have publishing enabled on the site, then it’s really no extra work.&lt;span&gt;  &lt;/span&gt;The biggest downside to this is that I believe you will need to have the full version of Office Server (not just foundation) to pull off this work around.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;So it goes like this-&lt;span&gt;  &lt;/span&gt;in code (feature receiver, powershell script, or whatever…): &lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Activate FeatureID: &lt;strong&gt;f6924d36-2fa8-4f0b-b16d-06b7250180fa&lt;/strong&gt;.&lt;span&gt;  &lt;/span&gt;This is the Publishing Infrastructure feature.&lt;span&gt;  &lt;/span&gt;One of the side effects of this feature is that it creates a site collection term group in the DefaultSiteCollectionTermStore and adds a term set called “&lt;em&gt;Wiki Categories&lt;/em&gt;”.&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Look up the created term group by name (you'll just have to iterate over the collection as there's no method for doing this -- look for one with the name equal to the defaultName below:&lt;br&gt;&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; defaultName = &lt;span class="str"&gt;&amp;quot;Site Collection - &amp;quot;&lt;/span&gt; + (site.Url.Replace(&lt;span class="str"&gt;&amp;quot;http://&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;)).Replace(&lt;span class="str"&gt;&amp;quot;/&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;-&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Doublecheck that the current site’s ID is in the group's &lt;span&gt;SiteCollectionAccessIds &lt;/span&gt;property.&lt;span&gt;  &lt;/span&gt;If not, it’s ok, you can hi-jack it using the &lt;strong&gt;.AddSiteCollectionAccess(Guid ID)&lt;/strong&gt; and &lt;strong&gt;.RemoveSiteCollectionAccess(Guid ID)&lt;/strong&gt; methods.&lt;span&gt;  &lt;/span&gt;I found that the publishing infrastructure feature only creates the new term set if one doesn’t already exist with that default name.&lt;span&gt;  &lt;/span&gt;Since it doesn’t clean itself up when you delete the termset you can sometimes find yourself in this state.&lt;span&gt;  &lt;/span&gt;This does open up another way to “exploit” this workaround though, because you can actually create a dummy site somewhere else and hi-jack it’s site collection term group (you can always rename the term group to whatever you want later… they key is now you have a group that is the correct type!)&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Rename the group if desired.&lt;span&gt;  &lt;/span&gt;Also grab the term group’s ID and stash it in your site’s property bag so that later you can fetch it directly using &lt;strong&gt;TermStore.GetGroup(Guid id)&lt;/strong&gt; rather than having to iterate over the groups collection.&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Create all your term sets and populate them with default terms if desired.&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Optionally you can now deactivate the publishing infrastructure feature if you don’t need it for the site.&lt;span&gt;  &lt;/span&gt;You will need to clean up a few things if you want to stay neat including: items added to Style Library, some lists (Content and Structure Reports, Reusable Content, and Workflow Tasks), and the Wiki Categories term set from the site collection term group.&lt;/li&gt;
 &lt;/ol&gt;
&lt;p class="MsoNormal"&gt;Ideally, Microsoft will make a fix in the future that allows us to create a site collection term store group without resorting to all this, but until then, we can exploit the above trick.&lt;span&gt;  &lt;/span&gt;I will actually post some code in the next few weeks that essentially does all of the above by creating a “shadow site collection”, hi-jacking it’s site collection term group, and deleting the shadow site collection all encapsulated in a single CreateSiteCollectionTermGroup method call.​​​&lt;/p&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/asQOC_jMOfg" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NEO\kdostalek</dc:creator><pubDate>Sun, 19 Dec 2010 18:00:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.thekickboard.com/archive/tags/code/default.aspx">code</category><category domain="http://www.thekickboard.com/archive/tags/taxonomy/default.aspx">taxonomy</category><category domain="http://www.thekickboard.com/archive/tags/managed metadata service/default.aspx">managed metadata service</category><feedburner:origLink>http://www.thekickboard.com/archive/2010/12/19/creating-a-site-collection-term-store-group.aspx</feedburner:origLink></item><item><title>SPS Chicago Presentation and Stuff</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/kx6MYAr2bsU/sps-chicago-presentation-and-stuff.aspx</link><guid isPermaLink="False">/archive/2010/10/17/sps-chicago-presentation-and-stuff.aspx</guid><description>&lt;div class="ExternalClass76A8C43B95424717AEBB3F176586B58C"&gt;&lt;p&gt;I had a great time this weekend in Chicago at the SharePoint Saturday event held at McCormick Place.  It's always a blast to catch up with old friends and meet some new ones- and this being my first time presenting up in Chicago (other than some AIIM events) I did get to meet quite a few new folks.&lt;/p&gt;
&lt;p&gt;The event organizers did an awesome job from the pre-communication leading up to the event (I think this was pulled together in just over a month), the speaker dinner, and at the event itself.  It was also a great new experience for me presenting in a &amp;quot;real&amp;quot; conference center / convention hall.&lt;/p&gt;
&lt;p&gt;I had a great time in my session- the audience was great and it seemed pretty effortless.  Lots of good questions too.  So here are the resources as promised from the session on &lt;a href="http://sharepointsaturday.org/chicago/meetings/40/SocialComputingwithSharePoint2010.aspx"&gt;Social Computing with SharePoint 2010&lt;/a&gt;.  I've included the mindmap that was used during the presentation (in large pannable graphic format) as well as a slidedeck version, which may be easier for some to read-- just click on the appropriate thumbnail below.&lt;/p&gt;
&lt;p style="text-align:center"&gt; &lt;a href="http://unhub.com/1uuf"&gt;&lt;img class="ms-rteImage-0" alt="Mindmap Thumb" src="http://www.thekickboard.com/Media/speaking/2010-10-16-spschicago/SPSChicago_Mindmap_Thumb.png" border="0" style="margin:5px"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;div style="text-align:center"&gt; &lt;a href="http://unhub.com/VUwe"&gt;&lt;img alt="SlideDeck Thumb" src="http://www.thekickboard.com/Media/speaking/2010-10-16-spschicago/SPSChicago_SlideDeck_Thumb.png" border="0" style="margin:5px"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;div&gt;Also, since we didn't have detailed session evaluations, I'd love to hear any feedback from those that came!  Thanks Chicago-- I'll be back next week (next time for pleasure)!​&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/kx6MYAr2bsU" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NEO\kdostalek</dc:creator><pubDate>Sun, 17 Oct 2010 14:46:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/community/default.aspx">community</category><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.thekickboard.com/archive/tags/social/default.aspx">social</category><feedburner:origLink>http://www.thekickboard.com/archive/2010/10/17/sps-chicago-presentation-and-stuff.aspx</feedburner:origLink></item><item><title>Programmatically Setting Navigation Order in a MOSS Publishing Site</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/kfSTaCIDcU8/programmatically-setting-navigation-order-in-a-moss-publishing-site.aspx</link><guid isPermaLink="False">/archive/2010/09/01/programmatically-setting-navigation-order-in-a-moss-publishing-site.aspx</guid><description>&lt;div class="ExternalClass1F75E6255CEB45B48288FBB7761CC0F3"&gt;&lt;p&gt;​I just spent a bunch of time working around a SharePoint bug related to manipulating the order that navigation items appear in a MOSS Publishing site on the TopNavigationBar.  Here I will spell out what you need to get to get various pieces of this to work- but first, let's define what we are trying to accomplish.&lt;/p&gt;
&lt;p&gt;Say you have a site that has been created in some way.  It doesn't really matter if it was declaritively deployed from a Site Definition, restored from a backup, generated by a SharePoint Deployment Wizard CMP, or built up manually from code.  The thing is once it's done being created you need to modify from code various aspects of the top navigation bar including manually setting the order of the items.  Again, it doesn't matter where this code is running from, whether it be a PowerShell script, a command line application, or a suicide webpart placed on the site.  Ok, all that being said, *MY* specific requirements were to:&lt;/p&gt;
&lt;p&gt;
&lt;ul&gt;&lt;li&gt;Change Top (global) Nav to Include Subwebs, Hide Pages, and support manual (non-automatic) ordering&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Hide one of the subwebs&lt;/li&gt;
&lt;li&gt;Reorder the other subwebs to a custom (ie. arbitrary) order&lt;/li&gt;
&lt;li&gt;All changes must be done fully in code with no &amp;quot;manual human steps&amp;quot; required as it was part of an automated deployment script.&lt;/li&gt;&lt;/ul&gt;
&lt;div&gt;The good news is that to do the first two bullets, things pretty much work like they are supposed to, although finding exactly how to do some of that took a bit of work, so I'll reproduce them here.  Unfortunately for the third bullet there's a bug that gets in the way and so weird workarounds are required.&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;First of all, my code segments below will assume you have referenced Microsoft.SharePoint.dll and Microsoft.SharePoint.Publishing.dll and have the following usings at the top of your file:&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;

&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.SharePoint;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.SharePoint.Publishing;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Microsoft.SharePoint.Navigation;​&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;To set the different properties of the root web's navigation settings simply do the following:&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;

&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; (var site = &lt;span class="kwrd"&gt;new&lt;/span&gt; SPSite(webUrl))&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    var rootPubweb = PublishingWeb.GetPublishingWeb(site.RootWeb);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    rootPubweb.NavigationOrderingMethod = OrderingMethod.Manual;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    rootPubweb.IncludeSubSitesInNavigation = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    rootPubweb.IncludePagesInNavigation = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    rootPubweb.Update();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;Now, if you want to hide a particular subweb from the top navigation, you actually need to set the property of the subweb, not a property in the root web or it's navigation collections.  So, you would add the following (inside the SPSite using statement):&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;

&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;var subwebs = rootPubweb.GetPublishingWebs();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;subwebs[&lt;span class="str"&gt;&amp;quot;subwebToHide&amp;quot;&lt;/span&gt;].IncludeInGlobalNavigation = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;subwebs[&lt;span class="str"&gt;&amp;quot;subwebToHide&amp;quot;&lt;/span&gt;].Update();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;rootPubweb.Update();&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;So far so good.  Now when it gets to actually specifying the order of the nodes, the documentation that you will find will direct you to get an SPNavigationNodeCollection from rootWebInstance.Navigation.TopNavigationBar.  If you iterate over the SPNavigationNode 's in this collection you can set their order by using the .MoveToFirst, .MoveToLast, and .Move methods.  Unfortunately on a newly build publishing site this collection will not contain any of your subwebs, only the top level pages (even though we specified to NOT include pages and to include subwebs).  In scouring the internet I found that others had indeed come across this bug as well.  What's odd is that if you use the SharePoint GUI and go to the root web's navigation settings (/_layouts/AreaNavigationSettings.aspx), select any subweb in the &amp;quot;Global Navigation&amp;quot; tree and click one of the Move buttons, then some magic code runs behind the scenes and the Navigation.TopNavigationBar collection will now be properly populated (and you won't need the following work around any more for that particular site).  However, as my requirement was to not require any manual steps I had to go on to develop the workaround below.&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;So I embarked on an effort to reproduce the &amp;quot;magic code&amp;quot; that initialized the navigation collection properly.  There was much trial and error involved while making incremental changes and then interogating object properties with PowerShell, etc...  In the end the successful strategy was to create the navigation nodes manually (in code).  The trickiest part though was getting them to be set as &amp;quot;internal&amp;quot; and not &amp;quot;external&amp;quot; links (this is a read-only property on each NavigationNode)-- it turned out the node's Url property had to be set just right for it to work.  Here is my workaround code:&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;

&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; (var site = &lt;span class="kwrd"&gt;new&lt;/span&gt; SPSite(webUrl))&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    var rootPubweb = PublishingWeb.GetPublishingWeb(site.RootWeb);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    var subwebs = rootPubweb.GetPublishingWebs();&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;   &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;span class="rem"&gt;//Build a temporary hash of the node titles (so we can use them instead of index numbers)&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    SPNavigationNodeCollection nodes = site.RootWeb.Navigation.TopNavigationBar;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    Dictionary&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, SPNavigationNode&amp;gt; nodeHash = &lt;span class="kwrd"&gt;new&lt;/span&gt; Dictionary&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, SPNavigationNode&amp;gt;();&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; x = 0; x &amp;lt; nodes.Count; x++)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;    {&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;        nodeHash.Add(nodes[x].Title, nodes[x]);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    }&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    &lt;span class="rem"&gt;//This block fixes the evil SharePoint defect ------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;    &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (PublishingWeb subweb &lt;span class="kwrd"&gt;in&lt;/span&gt; subwebs)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;    {&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (!nodeHash.ContainsKey(subweb.Title))&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;        {&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;            &lt;span class="kwrd"&gt;string&lt;/span&gt; relUrl = subweb.ParentPublishingWeb.Uri.MakeRelativeUri(subweb.Uri).ToString();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            SPNavigationNode nn =&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;                Microsoft.SharePoint.Publishing.Navigation.SPNavigationSiteMapNode.CreateSPNavigationNode(&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;                    subweb.Title, relUrl, NodeTypes.Area, site.RootWeb.Navigation.TopNavigationBar);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;            nn.Update();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;        }&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;    }&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;    site.RootWeb.Update();&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;    &lt;span class="rem"&gt;//---------------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt; &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;    &lt;span class="rem"&gt;//Rebuild the hash table since now we should have the correct nodes!&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;    nodeHash = &lt;span class="kwrd"&gt;new&lt;/span&gt; Dictionary&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, SPNavigationNode&amp;gt;();&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;    &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; x = 0; x &amp;lt; nodes.Count; x++)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;    {&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;        nodeHash.Add(nodes[x].Title, nodes[x]);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;    }&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;    &lt;span class="kwrd"&gt;string&lt;/span&gt;[] subwebTitlesInOrder = {&lt;span class="str"&gt;&amp;quot;FirstNavItem&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;SecondNavItem&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;ThirdNavItem&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;FourthNavItem&amp;quot;&lt;/span&gt;};&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;    &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;    &lt;span class="rem"&gt;//Order the nodes in the proper order&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;    SPNavigationNode currentNode;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;    SPNavigationNode previousNode=&lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;    &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; subwebTitlesInOrder.Length; i++)&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;    {&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;        currentNode = nodeHash[subwebTitlesInOrder[i]];&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (i == 0)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;        {&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  47:  &lt;/span&gt;            currentNode.MoveToFirst(nodes);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  48:  &lt;/span&gt;        }&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  49:  &lt;/span&gt;        &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  50:  &lt;/span&gt;        {&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  51:  &lt;/span&gt;            currentNode.Move(nodes, previousNode);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  52:  &lt;/span&gt;        }&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  53:  &lt;/span&gt;        previousNode = currentNode;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  54:  &lt;/span&gt;    }&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  55:  &lt;/span&gt;    site.RootWeb.Update();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  56:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;
​&lt;div&gt;And that's it!&lt;/div&gt;&lt;/div&gt;
​​&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/kfSTaCIDcU8" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NEO\kdostalek</dc:creator><pubDate>Wed, 01 Sep 2010 15:30:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/code/default.aspx">code</category><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><feedburner:origLink>http://www.thekickboard.com/archive/2010/09/01/programmatically-setting-navigation-order-in-a-moss-publishing-site.aspx</feedburner:origLink></item><item><title>Resources from my DevLink 2010 Session</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/ioR1vZWbdMo/resources-from-my-devlink-2010-session.aspx</link><guid isPermaLink="False">/archive/2010/08/07/resources-from-my-devlink-2010-session.aspx</guid><description>&lt;div class="ExternalClass510D2BAD8F5340C79F4C88BF75514659"&gt;&lt;p&gt;Wrapped up another DevLink today with my session this morning: Building a SharePoint 2010 Development Environment.  It was a full room and a great audience.  Thanks very much to all who made it in for the Saturday morning session (I know how rough that can be after Friday night shenanigans :)&lt;/p&gt;
&lt;p&gt;Anyway, I've posted below a hires picture version of the mindmap used in the presentation as well as a PDF version of the basic installation walkthrough.  Below that is a list of all the places we talked about on the internet so that you have all the links in once place.  I'd love to hear any additional feedback from the folks that attended (since at least at the moment they appear to have misplaced the speaker evals from this morning-- I'm sure they will turn up though).&lt;/p&gt;
&lt;p&gt;Click one of the two pictures below to download the presentation resources:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.thekickboard.com/Media/speaking/2010-08-07-devLink/SharePoint%202010%20Development%20Environments.png"&gt;&lt;img src="http://www.thekickboard.com/Media/speaking/2010-08-07-devLink/SharePoint%202010%20Development%20Environments%20Thumb.png" border="0" alt="" style="margin:5px"&gt;&lt;/a&gt;&lt;br&gt;&lt;a href="http://www.thekickboard.com/Media/speaking/2010-08-07-devLink/Sp2010%20Install%20Walkthrough.pdf"&gt;&lt;img src="http://www.thekickboard.com/Media/speaking/2010-08-07-devLink/SP2010%20Install%20Walkthrough%20Thumb.PNG" border="0" alt="" style="margin:5px"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Links:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://unhub.com/czsz"&gt;SPSF SharePoint Software Factory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://unhub.com/sCMu"&gt;SP Content Deployment Wizard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://unhub.com/k7-4"&gt;CKS: Development Tools Edition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://unhub.com/rwZ9"&gt;Visual Studio 2010 SharePoint Power Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://unhub.com/T8pT"&gt;AutoSPInstaller​&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://unhub.com/3Tub"&gt;Typemock Isolator for SharePoint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://unhub.com/UNPn"&gt;Pex &amp;amp; Moles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://unhub.com/Q2yM"&gt;SPDisposeCheck Static Analysis Ruleset&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://unhub.com/yv72"&gt;Muhimbi's SharePoint Development Guidelines&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://unhub.com/Qz80"&gt;Andrew Connell's step by step guide to creating an SP2010 RTM VM (via Critical Path member site)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://unhub.com/R7L7"&gt;DisableLoopbackCheck&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://unhub.com/NAgt"&gt;Tweak Your Workstation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://unhub.com/2MWi"&gt;Patterns &amp;amp; Practice Guidance for SP2010 AppDev&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://unhub.com/iohK"&gt;Redgate .Net Reflector&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/ioR1vZWbdMo" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NEO\kdostalek</dc:creator><pubDate>Sat, 07 Aug 2010 15:00:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/community/default.aspx">community</category><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.thekickboard.com/archive/tags/development/default.aspx">development</category><enclosure url="http://www.thekickboard.com/Media/speaking/2010-08-07-devLink/Sp2010%20Install%20Walkthrough.pdf" type="application/pdf" /><feedburner:origLink>http://www.thekickboard.com/archive/2010/08/07/resources-from-my-devlink-2010-session.aspx</feedburner:origLink></item><item><title>Running CKS:EBE 3.0 on SharePoint Foundation 2010</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/iqhGDWVpVDE/running-cksebe-3-0-on-sharepoint-foundation-2010.aspx</link><guid isPermaLink="False">/archive/2010/07/24/running-cksebe-3-0-on-sharepoint-foundation-2010.aspx</guid><description>&lt;div class="ExternalClassDBD331D5DE0348F28E1A16A85D26EF8C"&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;img alt="CKS Logo" src="http://www.thekickboard.com/media/cks.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px"&gt;&lt;img alt="SharePoint 2010 Logo" src="http://www.thekickboard.com/media/sharepoint2010.png" style="margin-top:5px;margin-right:5px;margin-bottom:5px;margin-left:5px"&gt;&lt;br&gt;&lt;span class="ms-rteThemeForeColor-3-4"&gt;So for those of you following me on Twitter or Facebook, you might know that this blog is now running on SharePoint Foundation 2010 and the newly released Community Kit for SharePoint Extended Blog Edition Version 3.0.  It was rumored that this may work, but also a little bit cryptic in the release notes, only saying:&lt;/span&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="Apple-style-span" style="color:rgb(87, 97, 112)"&gt;&lt;em&gt;&lt;br&gt;&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="Apple-style-span" style="color:rgb(87, 97, 112)"&gt;&lt;em&gt;*Preliminary SharePoint 2010 Beta 3 compatible (with web.config edits)&lt;/em&gt;&lt;/span&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt; &lt;br&gt;&lt;/div&gt;
&lt;p class="ms-rteElement-P ms-rteThemeForeColor-3-4"&gt;&lt;span&gt;&lt;span&gt;No mention what these web.config edits may be however, and when I tried reaching out to some of the folks on the dev team I didn't actually get an answer, but I did hear from &lt;a href="http://www.ableblue.com/blog/default.aspx"&gt;Matthew McDermot&lt;/a&gt; that it did indeed work, and so I decided to just give it a go and deal with the problems as they came up.  So here goes, but first, if you need to download the software, do so with the following links:&lt;/span&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span class="ms-rteThemeForeColor-3-4"&gt;
&lt;/span&gt;&lt;ul class="ms-rteThemeForeColor-3-4"&gt;&lt;li&gt;​&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=49c79a8a-4612-4e7d-a0b4-3bb429b46595"&gt;SharePoint 2010 Foundation&lt;/a&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://cks.codeplex.com/releases/view/28520"&gt;CKS:EBE 3.0&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;span class="ms-rteThemeForeColor-3-4"&gt;
&lt;/span&gt;&lt;p class="ms-rteThemeForeColor-3-4"&gt;&lt;span class="Apple-style-span"&gt;Now I had an existing site running in it's own web application (and it's own content database) on WSS 3.0 and CKS:EBE 2.0 (never upgraded production to 2.5).  So my first step was to get that upgraded to SPF2010.  Since I had it in it's own separate content DB this was pretty straight forward.  I just detached and reattached the DB in the SQL servers, created a new web application on SPF, and then ran the following STSADM command:&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;&lt;span class="ms-rteFontFace-2"&gt;stsadm -o addcontentdb -url http://thekickboard.com -databasename WSS_Content_TKB -preserveolduserexperience false&lt;/span&gt;&lt;br&gt;&lt;/div&gt;
&lt;span class="ms-rteFontSize-1"&gt;&lt;/span&gt;&lt;span class="ms-rteFontSize-1"&gt;&lt;/span&gt;&lt;div&gt; &lt;/div&gt;
&lt;p class="ms-rteElement-P ms-rteThemeForeColor-3-4"&gt;&lt;span&gt;&lt;span&gt;A couple notes about this upgrade process:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span class="ms-rteThemeForeColor-3-4"&gt;
&lt;/span&gt;&lt;ul class="ms-rteThemeForeColor-3-4"&gt;&lt;li&gt;You have to run that command from stsadm or powershell. The GUI doesn't support adding content databases that require upgrading.&lt;br&gt;&lt;/li&gt;
&lt;li&gt;You need to make sure if you are using all the default database settings (server, username, password, etc...) like I did above that you give the appropriate accounts access to your newly attached content DB&lt;/li&gt;
&lt;li&gt;You can use other methods for doing this upgrade of course (in place, etc..) If you want to do the DB attach method but don't have the site in it's own content DB, you can do a site collection backup with stsadm, then restore it to a new web application (with it's own content DB).  Don't try restoring your backup directly to the SPF server though, that will fail since there's no &amp;quot;upgrader&amp;quot; in that process (that would have been a nice feature though). For more information on how to migrate to SharePoint 2010 see the &lt;a href="http://technet.microsoft.com/en-us/sharepoint/ee517214.aspx"&gt;TechNet Resource Center&lt;/a&gt; on the topic.&lt;/li&gt;&lt;/ul&gt;
&lt;span class="ms-rteThemeForeColor-3-4"&gt;
&lt;/span&gt;&lt;div class="ms-rteThemeForeColor-3-4"&gt;&lt;span class="Apple-style-span"&gt;Next we need to install CKS:EBE 3.0 on the server. You might be thinking that would have been a good idea to do before, but I tried that and ran into some troubles. It probably doesn't matter, but I'm sure it works this way.  So anyway, on your server deploy the CKSEBE.wsp file.  Make sure that you activate both the web application scope feature as well as the web scope feature.  If you navigate to the site, you will notice some things working (like all your previous settings should have migrated over into the new CKS:EBE settings page in Site Settings), but a lot that isn't working, like your theme.&lt;/span&gt;&lt;/div&gt;
&lt;span class="ms-rteThemeForeColor-3-4"&gt;
&lt;/span&gt;&lt;div class="ms-rteThemeForeColor-3-4"&gt; &lt;/div&gt;
&lt;span class="ms-rteThemeForeColor-3-4"&gt;
&lt;/span&gt;&lt;p class="ms-rteElement-P ms-rteThemeForeColor-3-4"&gt;&lt;span&gt;&lt;span&gt;First of all, it's not necessarily your theme or the MTF that isn't working, but rather the HTTP module that does the URL redirection needs some attention.  This, I gather is the &amp;quot;with web.config edits&amp;quot; the note above was referring to.  So crack open web.config on the site and find the following line:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;&lt;span class="ms-rteFontFace-2"&gt;&amp;lt;add name=&amp;quot;CksEbeModule&amp;quot; type=&amp;quot;CKS.EBE.BlogHttpModule, CKS.EBE, Version=0.1.0.0, Culture=neutral, PublicKeyToken=3e8b700c069fb747&amp;quot; /&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;p class="ms-rteElement-P ms-rteThemeForeColor-3-4"&gt;&lt;span&gt;&lt;span&gt;You will find the above in the &amp;lt;httpModules&amp;gt; section.  Go ahead and CUT that line above (we'll be pasting it somewhere else in a minute).  Next find the section simply labeled &amp;lt;modules&amp;gt;.  In this section you will probably find 5 &amp;lt;remove&amp;gt; tags and 4 &amp;lt;add&amp;gt; tags.  Paste the &amp;quot;add&amp;quot; tag that you cut above so that it's after all the removes, but before the add's in the modules section.  Also, you need to add a preCondition=&amp;quot;integratedMode&amp;quot; attribute to this element.  So, your whole &amp;lt;modules&amp;gt; section will look something like this (with your additions bolded below):&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class="ms-rteFontFace-2"&gt;&amp;lt;modules runAllManagedModulesForAllRequests=&amp;quot;true&amp;quot;&amp;gt;&lt;br&gt;&lt;/div&gt;
&lt;span class="ms-rteFontFace-2"&gt;
&lt;/span&gt;&lt;p class="ms-rteFontFace-2"&gt;      &amp;lt;remove name=&amp;quot;AnonymousIdentification&amp;quot; /&amp;gt;&lt;br&gt;      &amp;lt;remove name=&amp;quot;FileAuthorization&amp;quot; /&amp;gt;&lt;br&gt;      &amp;lt;remove name=&amp;quot;Profile&amp;quot; /&amp;gt;&lt;br&gt;      &amp;lt;remove name=&amp;quot;WebDAVModule&amp;quot; /&amp;gt;&lt;br&gt;      &amp;lt;remove name=&amp;quot;Session&amp;quot; /&amp;gt;&lt;br&gt;      &amp;lt;add name=&amp;quot;CksEbeModule&amp;quot; preCondition=&amp;quot;integratedMode&amp;quot; type=&amp;quot;CKS.EBE.BlogHttpModule, CKS.EBE, Version=0.1.0.0, Culture=neutral, PublicKeyToken=3e8b700c069fb747&amp;quot; /&amp;gt;&lt;br&gt;      &amp;lt;add name=&amp;quot;SPRequestModule&amp;quot; preCondition=&amp;quot;integratedMode&amp;quot; type=&amp;quot;Microsoft.SharePoint.ApplicationRuntime.SPRequestModule, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&amp;quot; /&amp;gt;&lt;br&gt;      &amp;lt;add name=&amp;quot;ScriptModule&amp;quot; preCondition=&amp;quot;integratedMode&amp;quot; type=&amp;quot;System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot; /&amp;gt;&lt;br&gt;      &amp;lt;add name=&amp;quot;SharePoint14Module&amp;quot; preCondition=&amp;quot;integratedMode&amp;quot; /&amp;gt;&lt;br&gt;      &amp;lt;add name=&amp;quot;RSRedirectModule&amp;quot; type=&amp;quot;Microsoft.ReportingServices.SharePoint.Soap.RSRedirectModule, RSSharePointSoapProxy, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91&amp;quot; /&amp;gt;&lt;br&gt;    &amp;lt;/modules&amp;gt;​&lt;/p&gt;
&lt;span class="ms-rteFontFace-2"&gt;
&lt;/span&gt;
&lt;span class="ms-rteThemeFontFace-2"&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color:rgb(87, 97, 112)"&gt;[&lt;strong class="ms-rteForeColor-2"&gt;EDIT: 7/25/2010&lt;/strong&gt;] &lt;span class="ms-rteThemeForeColor-3-4"&gt;I also discovered that for some things to work like the RSS feed and other items controlled by httpHandlers (like pingbacks if you are crazy enough to enable those) need to be moved from the &amp;lt;httpHandlers&amp;gt; section of web.config to the &amp;lt;handlers&amp;gt; section.  Just cut and copy them as you did above, it would also be good to give each element a name attribute as well. &lt;/span&gt;[&lt;strong class="ms-rteForeColor-2"&gt;/EDIT&lt;/strong&gt;&lt;span class="ms-rteForeColor-2"&gt;]&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;span class="Apple-style-span" style="color:rgb(87, 97, 112)"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p class="ms-rteElement-P ms-rteThemeForeColor-3-4"&gt;&lt;span&gt;&lt;span&gt;Ok, so now at this point you can hopefully pull up the EBE site and have the MTF working.  If not, then try going into the CKSEBE settings and change your default theme to DEFAULT (and make sure you have that one deployed).  This will eliminate any issues in your customized theme for a baseline.  Another gotcha (which got me) is that you need to make sure that you have all of your access mappings done correctly.  It seems like under SPF the BlogHttpModule is a lot more finicky that it was under WSS3. In my case I have my blog server being reverse proxied by an IIS 7.5 server, so it can get a little confusing with all the host headers flying around.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span class="ms-rteThemeForeColor-3-4"&gt;
&lt;/span&gt;&lt;p class="ms-rteElement-P ms-rteThemeForeColor-3-4"&gt;&lt;span&gt;&lt;span&gt;So now we are at a point that the OOB CKS themes should be working on SPF 2010. Yey! The next step is to get your theme working.  If you made any changes to the &amp;quot;content&amp;quot; pages, like home.aspx, post.aspx, categories.aspx, and month.aspx, then now is the time to go and make those again since when you activated the new CKS:EBE web feature it would have overwritten those that were upgraded from your old content DB.  For example, in mine, since I don't use webparts on my blog, I changed all of these pages to not inherit from webpart page since that does lots of crazy things like pushing down core.css and core/init.js which we don't need.  I also don't have a placeholder for blogcomments in my theme's masterpage since I use JS-KIT Echo.  If I didn't remove those from the content pages, then they would throw errors.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span class="ms-rteThemeForeColor-3-4"&gt;
&lt;/span&gt;&lt;p class="ms-rteElement-P ms-rteThemeForeColor-3-4"&gt;&lt;span&gt;&lt;span&gt;And finally, the one last thing that I had to tweak to get my blog working again was related to the tagcloud.xsl where it was rendering all of my tags tiny (w8 class).  After a little debugging it appeared that the PostCount variable was not getting set for each category that came back in the &amp;lt;EBE:CategoriesList&amp;gt; webcontrol.  A quick look in reflector showed me that this control has a property &lt;em&gt;IncludePostCount.  &lt;/em&gt;It seems that in the past this defaulted to true and now it defaults to false.  Not a big deal, just make sure you set it to true in the &amp;lt;EBE:CategoriesList&amp;gt; webcontrol if you want those populated so that the TagCloud.xsl can do it's thing and calculate relative frequency styling.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span class="ms-rteThemeForeColor-3-4"&gt;
&lt;/span&gt;&lt;p class="ms-rteElement-P ms-rteThemeForeColor-3-4"&gt;&lt;span&gt;&lt;span&gt;I have a feeling I will find other little quirks along the way- which won't be a suprise since this version doesn't actually make claims that it is &amp;quot;SP2010 Ready&amp;quot; or anything.  I may start trying to take advantage of other SP2010 native functions over time, but for now if nothing else, I recommend this upgrade for the sole reason that the post editing interface is so much nicer!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span class="ms-rteThemeForeColor-3-4"&gt;
&lt;/span&gt;&lt;p class="ms-rteElement-P ms-rteThemeForeColor-3-4"&gt;If you want to read more about how this blog is put together and more about customizing the CKS:EBE (older 2.0 version), then look through the &lt;a href="http://thekickboard.com/archive/tags/kickboard/default.aspx"&gt;kickboard tag&lt;/a&gt; on this blog.&lt;/p&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/iqhGDWVpVDE" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">NEO\kdostalek</dc:creator><pubDate>Sat, 24 Jul 2010 20:00:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/kickboard/default.aspx">kickboard</category><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.thekickboard.com/archive/tags/community/default.aspx">community</category><feedburner:origLink>http://www.thekickboard.com/archive/2010/07/24/running-cksebe-3-0-on-sharepoint-foundation-2010.aspx</feedburner:origLink></item><item><title>IndyTechFest Presentation and Sample Code</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/8vBre8ZozJc/indytechfest-presentation-and-sample-code.aspx</link><guid isPermaLink="False">/archive/2010/06/14/indytechfest-presentation-and-sample-code.aspx</guid><description>&lt;div class="ExternalClass936869C996A14B31BC4B2D0C9DDCB122"&gt;
&lt;div align="center"&gt;&lt;img alt="IndyTechFest Logo" src="http://thekickboard.com/media/indytechfest.jpg"&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Seems like I keep getting behind on posting these (at least every other one-- then I catch up by posting two :)  Anyway a few weeks back I did a presentation here in Indianapolis for the &lt;a href="http://indytechfest.com/"&gt;Indy TechFest&lt;/a&gt;.  I had a great audience both in size, over 50, and in makeup-- almost everyone there was a developer, which is a first for me when giving this DEV presentation.  This time around I did my &amp;quot;Leveraging SharePoint 2010 as a Social Computing Development Platform&amp;quot; session, and it was the first time that I presented it on the RTM bits (and it all worked! yey!).&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;As usual, I didn't do slides, only a mindmap, which can be &lt;a href="http://www.thekickboard.com/Media/speaking/2010-04-10-spsclt/LeveragingSP2010AsASocialComputingDevPlatform.png"&gt;downloaded here&lt;/a&gt;.  If you'd like the sample code, read my blog posts from &lt;a href="http://www.thekickboard.com/archive/2010/04/12/sps-charlotte-presentation-resources.aspx"&gt;SPS Charlotte &lt;/a&gt;and &lt;a href="http://www.thekickboard.com/archive/2010/01/15/mindmap-and-codesamples-from-nspin-2010-jan-14.aspx"&gt;nSpin&lt;/a&gt; as they have a link and some pointers as how to get it all to work.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Thanks to the event organizers, sponsors, volunteers, and attendees (especially all of you that came to my session!) for a great day!&lt;/div&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/8vBre8ZozJc" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dostalek, Kevin</dc:creator><pubDate>Mon, 14 Jun 2010 13:56:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/community/default.aspx">community</category><category domain="http://www.thekickboard.com/archive/tags/code/default.aspx">code</category><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.thekickboard.com/archive/tags/social/default.aspx">social</category><feedburner:origLink>http://www.thekickboard.com/archive/2010/06/14/indytechfest-presentation-and-sample-code.aspx</feedburner:origLink></item><item><title>SPS DC Reflections</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/2K8agXPFsyY/sps-dc-reflections.aspx</link><guid isPermaLink="False">/archive/2010/05/19/sps-dc-reflections.aspx</guid><description>&lt;div class="ExternalClass65FF9DECD1D94492A20FF10947689580"&gt;
&lt;p&gt;&lt;img hspace="4" alt="Yes this picture is photoshopped (and not very well)" align="right" src="http://www.thekickboard.com/Media/speaking/2010-05-15-spsdc/spsdc-capitol.png"&gt;This past weekend I had the privilege of participating in the largest SharePoint Saturday event to date!  The event took place in Annandale, VA which is just south of our nation's capital (hence the event name - &lt;a href="http://www.sharepointsaturday.org/dc"&gt;SPSDC&lt;/a&gt;).  There were over 900 attendees and 90 speakers not to mention numerous sponsors, volunteers, and of course organizers.  The event was pulled off very smoothly with no real noticeable mishaps which for this size of event is quite impressive especially when you consider that it was not planned out by folks that do event planning for a living!  Kudos to the organizing committee and all of the volunteers that kept all of the logistical issues at bay!&lt;/p&gt;
&lt;p&gt;My session was in the last slot of the day, and I presenting my 75 minute version of &amp;quot;Building a Kickin' Public Facing Blog with the CKS:EBE&amp;quot;. While I don't particularly like this time slot, you get what you get, and really this is probably a good end of the day session as it's mostly fun and doesn't require too much brain stretching.  With 13 other high quality sessions going on as well, my audience was a bit smaller than normal, but they were very much engaged in the content, so I couldn't ask for more!  For those that attended, looking for the mindmap, you can grab it by clicking on the thumbnail below.  I've also sent it over to the &lt;a href="http://www.sharepointsaturday.org/dc"&gt;SPSDC Site&lt;/a&gt; to be posted with all the other session slide decks as well.  Don't forget to also browse the &lt;a href="http://www.thekickboard.com/archive/tags/kickboard/default.aspx"&gt;kickboard tag&lt;/a&gt; on this blog site for more in depth screencast versions on the same topic but more focused on specific design and development tasks.&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.thekickboard.com/Media/speaking/2010-05-15-spsdc/SPSDC%20-%20Kickin%27%20Blog.png"&gt;&lt;img border="0" alt="Mindmap Thumb" src="http://www.thekickboard.com/Media/speaking/2010-05-15-spsdc/SPSDC%20-%20Kickin%27%20Blog%20Thumb.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As I've come to expect at these events delivering a presentation (sharing my art) and attending others presentations (learning and accepting the gift of their art) are quite sufficient reasons to participate.  However, what truly makes it worth driving (or in this case flying) across the country, being away from the family, etc... is the interactions I get to have with the community outside of the seminar rooms.  Because of the sheer size of this event there are way too many of these to call out here-- I did truly enjoy meeting a ton of new folks and catching up with a lot of old friends.  There were a few special moments though that stand out though (funny that most of them involve food or drink):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lunch on Friday with &lt;a href="http://www.sharepointdan.com/"&gt;Dan Usher&lt;/a&gt;, &lt;a href="http://www.gscottsingleton.com/"&gt;Scott Singleton&lt;/a&gt;, and &lt;a href="http://www.sharepointhillbilly.com/"&gt;Mark Rackley&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Sitting between &lt;a href="http://blog.michaellotter.com/"&gt;Michael Lotter&lt;/a&gt; and &lt;a href="http://www.mosslover.com/"&gt;Becky Isserman&lt;/a&gt; (Ma and Pa SPS) and meeting about 30 new people at the speaker dinner&lt;/li&gt;
&lt;li&gt;Hanging out with &lt;a href="http://www.ericharlan.com/"&gt;Eric Harlan&lt;/a&gt;, &lt;a href="http://www.endusersharepoint.com/"&gt;Mark Miller&lt;/a&gt;, &lt;a href="http://spinsiders.com/ruveng/"&gt;Ruven Gotz&lt;/a&gt;, &lt;a href="http://www.sharepointcat.com/"&gt;Cathy Dew&lt;/a&gt;, and a bunch of others Friday night&lt;/li&gt;
&lt;li&gt;Getting logo design advice from &lt;a href="http://www.sharepointcat.com/"&gt;Cathy Dew&lt;/a&gt; and &lt;a href="http://twitter.com/marcykellar"&gt;Marcy Kellar&lt;/a&gt; while they psychoanalyzed my speech patterns&lt;/li&gt;
&lt;li&gt;A huge SharePint (at least 50-60 people at peak I think) and having dinner with &lt;a href="http://twitter.com/sandyu"&gt;SandyU&lt;/a&gt;, &lt;a href="http://twitter.com/janishall"&gt;Janis Hall&lt;/a&gt; and &lt;a href="http://www.sharepointcomic.com/default.aspx"&gt;Dan Lewis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Chatting late into the night at the after-SharePint SharePint with &lt;a href="http://briantjackett.com/"&gt;Brian Jackett&lt;/a&gt;, &lt;a href="http://www.sharepointdan.com/"&gt;Dan Usher&lt;/a&gt; (how were you still awake!), &lt;a href="http://gvaro.spaces.live.com/"&gt;Geoff Varosky&lt;/a&gt;, &lt;a href="http://www.sharepointcat.com/"&gt;Cathy Dew&lt;/a&gt;, &lt;a href="http://spinsiders.com/ruveng/"&gt;Ruven Gotz&lt;/a&gt;, &lt;a href="http://twitter.com/globitz"&gt;Monica Rosenberg&lt;/a&gt;, &lt;a href="http://joyknows.wordpress.com/"&gt;Joy Earles&lt;/a&gt;, &lt;a href="http://twitter.com/janishall"&gt;Janis Hall&lt;/a&gt;, &lt;a href="http://www.sharepointcomic.com/default.aspx"&gt;Dan Lewis&lt;/a&gt; and bout 10 others&lt;/li&gt;
&lt;li&gt;And finally, folks that I seemed to run into all weekend long and just fire up conversations with: &lt;a href="http://fabiangwilliams.wordpress.com/"&gt;Fabian Williams&lt;/a&gt;, &lt;a href="http://sharepoint.mindsharpblogs.com/ChristinaW/default.aspx"&gt;Christina Wheeler&lt;/a&gt;, and &lt;a href="http://buckleyplanet.typepad.com/"&gt;Christian Buckley&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;So that about wraps it up.. special thanks to &lt;a href="http://sp.meetdux.com/default.aspx"&gt;Dux&lt;/a&gt;, &lt;a href="http://twitter.com/jensterd"&gt;Jennifer&lt;/a&gt;, &lt;a href="http://www.sharepointdan.com/"&gt;Dan&lt;/a&gt;, and &lt;a href="http://www.bravocg.com/Pages/default.aspx"&gt;Gino&lt;/a&gt; for pulling off an awesome event.  Hope to see lots of you all again at other events this year.  Next stops for me will be &lt;a href="http://indytechfest.org/"&gt;Indy Tech Fest&lt;/a&gt; and then &lt;a href="http://www.sharepointsaturday.org/ozarks/default.aspx"&gt;SPS Ozarks&lt;/a&gt;!&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/2K8agXPFsyY" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dostalek, Kevin</dc:creator><pubDate>Wed, 19 May 2010 12:20:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/community/default.aspx">community</category><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.thekickboard.com/archive/tags/web 2.0/default.aspx">web 2.0</category><feedburner:origLink>http://www.thekickboard.com/archive/2010/05/19/sps-dc-reflections.aspx</feedburner:origLink></item><item><title>SPS Huntsville Mindmaps</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/1Yg3t5d1HK4/sps-huntsville-mindmaps.aspx</link><guid isPermaLink="False">/archive/2010/05/18/sps-huntsville-mindmaps.aspx</guid><description>&lt;div class="ExternalClass00613A8F231B46B88F543D52DB035E5F"&gt;
&lt;div&gt;&lt;img alt="SPSHSV Logo" align="right" src="http://www.thekickboard.com/Media/speaking/2010-05-01-spshsv/spshsvlogo.PNG"&gt;Wow, I seemed to have gotten quite behind in posting the resources from all my recent presentations!  Sorry about that!  Anyway, SharePoint Saturday Huntsville was a blast (pun) that was on May 1st earlier this month.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;I got to present twice during the day, with the morning session being my Introduction to Social Computing with SharePoint 2010.  The mindmap for that presentation can be downloaded by clicking on the thumbnail below:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div align="center"&gt;&lt;a href="http://www.thekickboard.com/Media/speaking/2010-05-01-spshsv/Social%20Computing%20with%20SharePoint%202010.png"&gt;&lt;img border="0" hspace="4" alt="Social Mindmap" src="http://www.thekickboard.com/Media/speaking/2010-05-01-spshsv/Social%20Computing%20with%20SharePoint%202010%20Thumb.png"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;In the afternoon I presented &amp;quot;Creating a Kickin' Public Facing Blog with the CKS:EBE&amp;quot;.  That one was lots of fun, and you can download that mindmap by clicking on the thumbnail below.  Also don't forget to click on the TAG off to the right --&amp;gt;&amp;gt;&amp;gt;&amp;gt;  labled &amp;quot;kickboard&amp;quot;, as I have many screencast versions of this presentation that go into more depth than I was able to during the Huntsville session.&lt;/div&gt;
&lt;div align="center"&gt;&lt;a href="http://www.thekickboard.com/Media/speaking/2010-05-01-spshsv/Building%20a%20Kickin%27%20Public%20Facing%20Blog%20with%20CKS%20EBE.png"&gt;&lt;img border="0" alt="Blog Mindmap" src="http://www.thekickboard.com/Media/speaking/2010-05-01-spshsv/Building%20a%20Kickin%27%20Public%20Facing%20Blog%20with%20CKS%20EBE%20Thumb.png"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;Thanks to everyone that came to my sessions, all of the event organizers, especially &lt;a href="http://www.sharepointcat.com/"&gt;Cathy Dew&lt;/a&gt; for all her hard work, the other speakers and all the volunteers.  It's truly an honor to be part of such a great community!&lt;/div&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/1Yg3t5d1HK4" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dostalek, Kevin</dc:creator><pubDate>Tue, 18 May 2010 13:01:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/community/default.aspx">community</category><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.thekickboard.com/archive/tags/social/default.aspx">social</category><category domain="http://www.thekickboard.com/archive/tags/web 2.0/default.aspx">web 2.0</category><feedburner:origLink>http://www.thekickboard.com/archive/2010/05/18/sps-huntsville-mindmaps.aspx</feedburner:origLink></item><item><title>SPS Charlotte Presentation Resources</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/Gn5T2SR-ePs/sps-charlotte-presentation-resources.aspx</link><guid isPermaLink="False">/archive/2010/04/12/sps-charlotte-presentation-resources.aspx</guid><description>&lt;div class="ExternalClass2699A1F6879D4679AB03D377188DFC9D"&gt;&lt;div&gt;This past weekend I presented at the &lt;a href="http://sharepointsaturday.org/charlotte"&gt;SharePoint Saturday event in Charlotte, NC&lt;/a&gt;.  I had a great time both during the event and hanging out before and after with folks.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;My &lt;a href="http://sharepointsaturday.org/charlotte/meetings/40/LeveragingSharePoint2010asaSocialComputingPlatform.aspx"&gt;session&lt;/a&gt; was in the first slot (8:30AM) and I presented my &amp;quot;Leveraging SharePoint 2010 as a Social Computing Development Platform&amp;quot;.  Now even under normal circumstances that's a pretty heavy way to start off a morning (it's a 300 level developer presentation).  However, after I polled the audience at the start, I found I had a full room with only a handful of developers.  So I kind of changed my presentation on the fly and did quite a bit more demo'ing of the social computing features (from an end-user perspective) and completely cut out my 3rd demo (creating an activity feed custom gatherer for twitter).  All in all I think it went quite well!&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;For those that were at the session (or my other ones in the past) know that I had an aversion to slide based presentations.  However, posted below is both the mindmap version of the presentation (just click on the thumbnail to get a very large pannable image) as well as a slide deck version (just pretend the SPSIndy logo is SPSCLT).&lt;/div&gt;
&lt;div align="center"&gt;&lt;a href="http://www.thekickboard.com/Media/speaking/2010-04-10-spsclt/LeveragingSP2010AsASocialComputingDevPlatform.png"&gt;&lt;img border="0" alt="Presentation Mindmap" src="http://www.thekickboard.com/Media/speaking/2010-04-10-spsclt/LeveragingSP2010AsASocialComputingDevPlatform%20thumb.png"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div align="center"&gt; &lt;/div&gt;
&lt;div align="center"&gt;&lt;a href="http://www.thekickboard.com/Media/speaking/2010-04-10-spsclt/Overview%20of%20the%20SP2010%20Social%20Platform%20for%20Developers.pdf"&gt;&lt;img border="0" alt="PowerPoint" src="http://www.thekickboard.com/Media/speaking/2010-04-10-spsclt/PPT%20Thumb.png"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div align="center"&gt; &lt;/div&gt;
&lt;div align="left"&gt;&lt;a href="http://www.thekickboard.com/Media/speaking/2010-04-10-spsclt/SP2010.Social.DevPlatform.zip"&gt;&lt;img border="0" alt="Code Samples" align="right" src="http://www.thekickboard.com/Media/speaking/2010-04-10-spsclt/codesample_thumb.png"&gt;&lt;/a&gt;And finally, as promised, the icon to the right will get you a zip of all the code samples I used in the presentation.  If you are going to try and actually make this code work your self, you should probably go &lt;a href="http://www.thekickboard.com/archive/2010/01/15/mindmap-and-codesamples-from-nspin-2010-jan-14.aspx"&gt;read this post&lt;/a&gt;, as it has more information about each VS project and what you may need to do to get it all working (read the comments too).&lt;/div&gt;
&lt;div align="left"&gt; &lt;/div&gt;
&lt;div align="left"&gt;I want to thank the SPSCLT organizers, especially Brian Gough and Dan Lewis, the speakers, sponsors, and attendees for a great event!  I'm very happy I made the trip down and hope to see some of you at other events very soon!&lt;/div&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/Gn5T2SR-ePs" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dostalek, Kevin</dc:creator><pubDate>Mon, 12 Apr 2010 11:30:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/community/default.aspx">community</category><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.thekickboard.com/archive/tags/development/default.aspx">development</category><category domain="http://www.thekickboard.com/archive/tags/social/default.aspx">social</category><category domain="http://www.thekickboard.com/archive/tags/code/default.aspx">code</category><enclosure url="http://www.thekickboard.com/Media/speaking/2010-04-10-spsclt/Overview%20of%20the%20SP2010%20Social%20Platform%20for%20Developers.pdf" type="application/pdf" /><feedburner:origLink>http://www.thekickboard.com/archive/2010/04/12/sps-charlotte-presentation-resources.aspx</feedburner:origLink></item><item><title>Speaking at SPS Charlotte in April</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/Jre1D7y4X8Q/speaking-at-sps-charlotte-in-april.aspx</link><guid isPermaLink="False">/archive/2010/03/26/speaking-at-sps-charlotte-in-april.aspx</guid><description>&lt;div class="ExternalClass7B34FDEE46BD4F5FA74A214C721F7429"&gt;
&lt;div&gt;&lt;img hspace="10" alt="Charlotte, NC Nightscape" align="left" src="http://thekickboard.com/media/charlotte-nc.jpg"&gt;I'm honored to be speaking at the SharePoint Saturday in Charlotte, NC on April 10th. I'm doing a slightly tweaked and expanded version of my &amp;quot;Leveraging SharePoint 2010 as a Social Development Platform&amp;quot; presentation which is probably my current favorite session to do (although it doesn't have quite the wow factor and broad audience appeal as my End-User Social Computing w/ SP2010 session).  My only big decision point is whether to do the PPT version or the MindMap version of the slide content (but really it's 80% demos anyway).&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Anyway, looks to be a great time and I will certainly enjoy meeting lots of new people (it's my first &amp;quot;east coast gig&amp;quot;) as well as reconnecting with lots of others.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;You can find out more information about this event on their official website:&lt;/div&gt;
&lt;div&gt;&lt;a href="http://sharepointsaturday.org/charlotte"&gt;http://sharepointsaturday.org/charlotte&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;See ya there!&lt;/div&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/Jre1D7y4X8Q" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dostalek, Kevin</dc:creator><pubDate>Fri, 26 Mar 2010 09:48:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/community/default.aspx">community</category><category domain="http://www.thekickboard.com/archive/tags/development/default.aspx">development</category><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.thekickboard.com/archive/tags/social/default.aspx">social</category><feedburner:origLink>http://www.thekickboard.com/archive/2010/03/26/speaking-at-sps-charlotte-in-april.aspx</feedburner:origLink></item><item><title>Microsoft Morning Perk Presentation Recap</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/5a4egNXGYLE/microsoft-morning-perk-presentation-recap.aspx</link><guid isPermaLink="False">/archive/2010/02/16/microsoft-morning-perk-presentation-recap.aspx</guid><description>&lt;div class="ExternalClass69031E91A9D940D18113045445BEE851"&gt;
&lt;div&gt;Earlier this morning I presented a revised version of my Social Computing with SharePoint 2010 presentation at the local Microsoft office as part of their &amp;quot;Morning Perk&amp;quot; series which highlights new technology paired with customer case studies.  I had the honor of once again sharing the stage with long-time customer and friend Dr. Ron Thieme, VP and CIO of AIT Laboratories.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Although breakfast was late, we ended up with a full house and overall a great event.  As I promised in my session, you can grab a full sized copy of my mindmap by clicking on the thumbnail below.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div align="center"&gt;&lt;a href="http://www.thekickboard.com/Media/speaking/2010-02-16-MSMP/Social%20Computing%20with%20SharePoint%202010.png"&gt;&lt;img border="0" alt="Mindmap Thumbnail" src="http://www.thekickboard.com/Media/speaking/2010-02-16-MSMP/Social%20Computing%20with%20SharePoint%202010%20Thumb.png"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div align="left"&gt; &lt;/div&gt;
&lt;div align="left"&gt;I think I also mentioned in the presentation, that for those that would prefer a more traditional presentation of this infomration, you can find a PDF of my slides that I used at SharePoint Saturday a few weeks back in &lt;a href="http://www.thekickboard.com/archive/2010/02/01/sharepoint-saturday-indianapolis-recap.aspx"&gt;this blog post&lt;/a&gt; (scroll to the bottom, and click on the title slide image).&lt;/div&gt;
&lt;div align="left"&gt; &lt;/div&gt;
&lt;div align="left"&gt;&lt;a href="http://www.thekickboard.com/Media/speaking/2010-02-16-MSMP/Ambassador-AIT%20SP2010%20Seminar.pdf"&gt;&lt;img border="0" hspace="10" alt="AIT Deck Thumb" align="right" src="http://www.thekickboard.com/Media/speaking/2010-02-16-MSMP/AITDeckThumb.png"&gt;&lt;/a&gt;Ron's presentation can be downloaded (in PDF form) by clicking on his title slide to the right.  You can also visit &lt;a href="http://www.aitlabs.com/"&gt;AIT Labs corporate website&lt;/a&gt; to find out more about this dynamic and growing company.&lt;/div&gt;
&lt;div align="left"&gt; &lt;/div&gt;
&lt;div align="left"&gt;Thanks again to all that attended and those that helped in organizing the event.  As always, please feel free to contact me with questions/comments or if you are interested learning more about these topics and how &lt;a href="http://www.ambassadorsolutions.com/"&gt;Ambassador Solutions can help&lt;/a&gt;, we're ready and waiting.&lt;/div&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/5a4egNXGYLE" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dostalek, Kevin</dc:creator><pubDate>Tue, 16 Feb 2010 12:50:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/community/default.aspx">community</category><category domain="http://www.thekickboard.com/archive/tags/enterprise/default.aspx">enterprise</category><category domain="http://www.thekickboard.com/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.thekickboard.com/archive/tags/social/default.aspx">social</category><enclosure url="http://www.thekickboard.com/Media/speaking/2010-02-16-MSMP/Ambassador-AIT%20SP2010%20Seminar.pdf" type="application/pdf" /><feedburner:origLink>http://www.thekickboard.com/archive/2010/02/16/microsoft-morning-perk-presentation-recap.aspx</feedburner:origLink></item><item><title>SharePoint Saturday Indianapolis Recap</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/8RcRf1Xo4tg/sharepoint-saturday-indianapolis-recap.aspx</link><guid isPermaLink="False">/archive/2010/02/01/sharepoint-saturday-indianapolis-recap.aspx</guid><description>&lt;div class="ExternalClass5D3DD2588B24422D9ACB84791124A063"&gt;
&lt;div&gt;&lt;img hspace="10" alt="SPSIndy Logo" align="left" src="http://www.thekickboard.com/Media/SharePointSaturdayIndy.png"&gt;Wow, what a great day we had on Saturday at the first ever &lt;a href="http://bit.ly/spsindy"&gt;SharePoint Saturday Indianapolis event&lt;/a&gt;.  I was fortunate to be on the organizing committee for this event along with &lt;a href="http://www.thorprojects.com/blog/default.aspx"&gt;Rob Bogue&lt;/a&gt;, &lt;a href="http://twitter.com/ferringer"&gt;John Ferringer&lt;/a&gt;, &lt;a href="http://twitter.com/korygeyer"&gt;Kory Geyer&lt;/a&gt;, &lt;a href="http://www.apparatus.net/company/bio/reed/"&gt;David Reed&lt;/a&gt;, &lt;a href="http://twitter.com/sellerystalk"&gt;Krista Sellery&lt;/a&gt;, and Mike Mitchell.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;We also had a great group of volunteers that really helped with all the logistics of the day including: Andy Bradley, Tuong Do, Keith Oswalt, Karyn Williams, John Boomershine, and Mike Ticker.  The folks at our facility, the &lt;a href="http://www.jaindy.org/"&gt;Gene Glick Junior Achievement Center&lt;/a&gt;, were also great all day long!&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;I also heard from all the sponsors that they really felt appreciated by both the organizers and the attendees and were looking forward to future opportunities to be involved in similar community events in Indianapolis!  &lt;a href="http://www.sharepointsaturday.org/indy/Pages/sponsors.aspx"&gt;Support these folks&lt;/a&gt; because without them “free” events just can’t happen!&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;For my part, in addition to having a speaking slot (more on that below), I was put in charge of speaker management and service.  This was certainly the most rewarding part of the entire experience for me as I got to meet and interact with a lot of great folks from the SharePoint community, both local and from other regions.  In addition to the event on Saturday, we all had a great time out at &lt;a href="http://scottysbrewhouse.com/"&gt;Scotty’s Brewhouse &lt;/a&gt;for the speaker dinner on Friday night.  I have a &lt;a href="http://unhub.com/lyb0"&gt;few pictures from that here&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;&lt;br&gt;All the speakers did an outstanding job, both inside the walls of their sessions, as well as outside in the hallways.  I saw numerous side conversations going on as our expert community played good-will ambassadors to all.  Please join me in thanking all the speakers including: Andy Hoffman, Chris Geier, Daniel Galant, Darrin Bishop, David Petersen, Enrique Lima, Fabian Williams, Hope Foley, James Curtis, Jeff Willinger, Jennifer Martinez, Jennifer Mason, Jim Grabinski, Joe Mack, John Ferringer, Kevin Dostalek, Marcy Kellar, Ram Gopinathan, Rob Wilson, Sean McDonough, Steve Pietrek, and Woody Windischman.  If you want to follow all these fine SharePoint experts easily on Twitter, I’ve created a Twitter list that you can &lt;a href="http://bit.ly/SPSIndySpeakers"&gt;follow here&lt;/a&gt;.&lt;/div&gt;
&lt;p&gt;A few statistics that we have about the event:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Registrations – 372&lt;/li&gt;
&lt;li&gt;Attendees - 250&lt;/li&gt;
&lt;li&gt;Sponsors – 10&lt;/li&gt;
&lt;li&gt;Speakers – 22&lt;/li&gt;
&lt;li&gt;Sessions – 20 (in 4 tracks of 5 each, then we also had a welcome and closing session)&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;My Session:&lt;/strong&gt;&lt;br&gt;So I presented “Social Computing with SharePoint 2010”.  Unlike my &lt;a href="http://www.thekickboard.com/archive/2010/01/15/mindmap-and-codesamples-from-nspin-2010-jan-14.aspx"&gt;nSpin presentation&lt;/a&gt; from a few weeks ago which was developer focused, this presentation was in the “Business and End User Track” and so was a bit less technical.  I had a pretty experienced SharePoint audience, however not very experienced when it came to “social” especially inside the enterprise.  I love this topic because it virtually presents itself and demo’s very well.  To add a little bit of fun to the demos I mocked up the Dunder Mifflin corporate organization, complete with about 30 of “The Office” profiles as employees (all under the Fair Use Copyright exemption for Educational use only of course :)  This was pretty well appreciated by the audience, but it also made putting in all those status updates, social tags, and comments much more self-entertaining as well [that’s what she said].&lt;/p&gt;
&lt;p align="center"&gt;&lt;img alt="Dunder Mifflin Org. Browser Screencap" src="http://www.thekickboard.com/Media/speaking/2010-01-30-spsindy/DMorgbrowser.png"&gt;&lt;/p&gt;
&lt;div&gt;&lt;a href="http://bit.ly/cOvmhO"&gt;&lt;img border="0" hspace="10" alt="Presentation Thumbnail" align="right" src="http://www.thekickboard.com/Media/speaking/2010-01-30-spsindy/spsindy_deckthumb.png"&gt;&lt;/a&gt;Thank you to everyone that attended the session.  For those that missed it, I’m doing a slightly altered version of it along with a customer on February 16th at the Microsoft offices.  &lt;a href="http://www.ambassadorsolutions.com/news/Pages/LiveEventSocialComputingandCollaborationwithSharePoint2010.aspx"&gt;Go here for more information&lt;/a&gt;.  If you’d like a copy of my slides, you can download them by clicking on the thumbnail on the right- although about 50% of the presentation was demo.&lt;/div&gt;
&lt;div&gt;&lt;br&gt;Do you have a favorite memory from SPSIndy or any other feedback for the organizing committee?  If so, please post it below!&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/8RcRf1Xo4tg" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dostalek, Kevin</dc:creator><pubDate>Mon, 01 Feb 2010 11:45:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/community/default.aspx">community</category><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.thekickboard.com/archive/tags/enterprise/default.aspx">enterprise</category><category domain="http://www.thekickboard.com/archive/tags/social/default.aspx">social</category><feedburner:origLink>http://www.thekickboard.com/archive/2010/02/01/sharepoint-saturday-indianapolis-recap.aspx</feedburner:origLink></item><item><title>Mindmap and CodeSamples from nSpin</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/uRf-heJAh-0/mindmap-and-codesamples-from-nspin-2010-jan-14.aspx</link><guid isPermaLink="False">/archive/2010/01/15/mindmap-and-codesamples-from-nspin-2010-jan-14.aspx</guid><description>&lt;div class="ExternalClassB6224449AF544459A048A55DBBE3EF33"&gt;
&lt;div&gt;Here is the mindmap and code samples from the presentation I gave last night (2010-Jan-14) at nSpin entitled &amp;quot;Overview of the SP2010 Social Platform for Developers&amp;quot;.  &lt;strong&gt;NOTE: This is NOT the presentation I'm giving at SPSINDY.&lt;/strong&gt;  To view/download the whole mindmap just click on the thumb below:&lt;/div&gt;
&lt;div align="center"&gt;&lt;a href="http://www.thekickboard.com/Media/speaking/2010-01-14-nSpin/Overview%20of%20the%20SP2010%20Social%20Platform%20for%20Developers.png"&gt;&lt;img border="0" alt="Mindmap Thumb" src="http://www.thekickboard.com/Media/speaking/2010-01-14-nSpin/Overview%20of%20the%20SP2010%20Social%20Platform%20for%20Developers%20Thumb.png"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div align="left"&gt;As for the codesamples, here are a couple notes:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;General&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;These are all VS2010 projects&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;You will need to change some of the hardcoded SPSite URLS to yours- anywhere you see &lt;a href="http://sp2010/"&gt;http://sp2010&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;The first and third projects must be run on a SharePoint 2010 server.  As such, you need to insure that your project's framework targets are .Net 3.5 and the CPU targets are either x64 or AnyCPU -- do not try to use x86 for these.  The second project doesn't matter.  If you load the solution file, these will all be set properly.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;The first project is a visual webpart (AreaSpecialist) that accesses the user profile manager to pull down out a profile image, and allows the user to &amp;quot;give them Kudos&amp;quot; as it tracks their peer rating.&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;You'll need to change the deploy location in the project settings.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;Remember to create the custom property in the user profile service application called &amp;quot;KudosRating&amp;quot; of type integer.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;This version of the code has the elevated privilege implemented.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;The second project is a windows form application (SocialBrowser) that allows a user to browse around your portal or the internet and it automatically adds any comments that have been made by folks within your organization to the datagrid at the bottom by accessing the SocialData webservice.&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;You will need to change the URL for the social data webservice reference, and then choose &amp;quot;update webservice&amp;quot;.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;The third project is a command line application that is a custom gatherer that imports and publishes twitter feeds to the SharePoint activity feed.&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="left"&gt;Don't forget to create the custom profile property &amp;quot;TwitterAccount&amp;quot; and fill in a couple in your user's profiles.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;You need to run the &amp;quot;RegisterTwitterActivityApplication&amp;quot; at least once successfully (it's presently commented out in Program.Main).&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;After you register the twitter application, doublecheck that &amp;quot;Twitter&amp;quot; is available as an ActivityType at the bottom of your &amp;quot;Edit Profile&amp;quot; screen (and check the box if it isn't already).&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;Remember to deploy the RESX files to \14\Resources&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;Remember to deploy the twitter image (if you want to use it) to \14\Templates\Images&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="left"&gt;This code was cobbled together from the &lt;a href="http://code.msdn.microsoft.com/activityfeedsconsole"&gt;official custom gatherer sample&lt;/a&gt; as well as &lt;a href="http://httpcode.com/blogs/PermaLink,guid,b3af80e2-4e6f-41d6-ae93-61950a332a39.aspx"&gt;this blog post&lt;/a&gt; and &lt;a href="http://blogs.tamtam.nl/stef/2009/12/02/GettingTheWebInsideSP2010CodeSample.aspx"&gt;this one&lt;/a&gt;.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;
&lt;p align="left"&gt;To download all the sample code projects click the image below:&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://www.thekickboard.com/Media/speaking/2010-01-14-nSpin/SP2010.Social.DevPlatform.zip"&gt;&lt;img border="0" alt="Codesample Download Thumb" src="http://www.thekickboard.com/Media/speaking/2010-01-14-nSpin/codesample%20thumb.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="left"&gt;All content posted here is free for anyone else to (re)use so long as you attribute it.  &lt;strong&gt;If I get at least 10 requests in the replies to this blog post, I will record a camtasia screencast and post it for everyone that couldn't attend last night.&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/uRf-heJAh-0" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dostalek, Kevin</dc:creator><pubDate>Fri, 15 Jan 2010 13:57:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/community/default.aspx">community</category><category domain="http://www.thekickboard.com/archive/tags/code/default.aspx">code</category><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.thekickboard.com/archive/tags/social/default.aspx">social</category><feedburner:origLink>http://www.thekickboard.com/archive/2010/01/15/mindmap-and-codesamples-from-nspin-2010-jan-14.aspx</feedburner:origLink></item><item><title>Kevin's Speaking Engagements in January</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/x3chJ5E4O2Y/kevins-speaking-engagements-in-january.aspx</link><guid isPermaLink="False">/archive/2010/01/11/kevins-speaking-engagements-in-january.aspx</guid><description>&lt;div class="ExternalClass608BAE82D03648B49CB345192D033753"&gt;
&lt;div&gt;Hey everyone!&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;I just wanted to drop a note to all about two speaking engagements I've got lined up here in the month of January.  I hope if any of the topics below are of interest that you'll be able to come and check them out.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;The first is a SharePoint 2010 Development topic for the nSpin group that is coming up THIS THURSDAY.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;table style="display:inline;border-collapse:collapse;font-size:1em" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells" colspan="2"&gt;
&lt;p align="center"&gt;&lt;img alt="nSpin Logo" src="http://www.thekickboard.com/Media/nspin.png"&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;Event&lt;/div&gt;&lt;/td&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;nSpin SIG meeting following the Indy .Net UG meetin&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;Date/Time&lt;/div&gt;&lt;/td&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;1/14/10, 7:30ish (.NET UG starts at 6)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;Title&lt;/div&gt;&lt;/td&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;Overview of the SharePoint 2010 Social Platform for Developers&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;Level&lt;/div&gt;&lt;/td&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;200-300ish&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;Audience&lt;/td&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;SharePoint Developers&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;Link&lt;/div&gt;&lt;/td&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;&lt;a href="http://nspin.net/"&gt;http://nspin.net&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;Description&lt;/div&gt;&lt;/td&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;In this session we're going to run through a brief overview of the new social features in SP2010 just to provide a bit of context and then immediately dive into a talk about how you can leverage these features as a social computing platform as you build out custom socially aware applications within the enterprise.  Specifically we're going to look at the User Profile Service, the Social Data Service, and Activity Feeds.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;The second is a more general overview of all the new social features in SP2010 being delivered at the SharePoint Saturday event on January 30th.  This will be a great event-- we have 21 speakers lined up in 4 tracks.  As of last week, there were already 175+ attendees signed up!  &lt;strong&gt;We absolutely will run out of space, so if you are interested in this event, then you need to go and register immediately!&lt;/strong&gt;  Here's the details around my session:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;table style="display:inline;border-collapse:collapse;font-size:1em" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells" colspan="2"&gt;
&lt;p align="center"&gt;&lt;img alt="SPSIndy Logo" src="http://www.thekickboard.com/Media/SharePointSaturdayIndy.png"&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;Event&lt;/div&gt;&lt;/td&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;SharePoint Saturday Indianapolis&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;Date/Time&lt;/div&gt;&lt;/td&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;1/30/10, ~11:00 (slot 2), event starts at 8:00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;Title&lt;/div&gt;&lt;/td&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;Social Computing with SharePoint 2010&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;Level&lt;/div&gt;&lt;/td&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;200&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;Audience&lt;/td&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;General&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;Link&lt;/div&gt;&lt;/td&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;&lt;a href="http://bit.ly/spsindy"&gt;http://bit.ly/spsindy&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;Description&lt;/div&gt;&lt;/td&gt;
&lt;td style="vertical-align:top" class="ms-rtetablecells"&gt;
&lt;div&gt;In this session we'll explore the many social computing features in the new platform including improvements to MySites (MyProfile and MyNetwork), Search, Blogs, and Wiki's as well as looking at new features such as Social Tagging, Comments, Ratings, and the Activity Feed.  In addition to the feature tour, we'll also discuss the business case for social computing within the enterprise and key considerations as you formulate your plans.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Hope to see lots of folks at these events and their related after-hours activities.  If you make it to any of them, be sure to stop by and say hi!&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/x3chJ5E4O2Y" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dostalek, Kevin</dc:creator><pubDate>Mon, 11 Jan 2010 13:02:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/community/default.aspx">community</category><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.thekickboard.com/archive/tags/social/default.aspx">social</category><feedburner:origLink>http://www.thekickboard.com/archive/2010/01/11/kevins-speaking-engagements-in-january.aspx</feedburner:origLink></item><item><title>CKS:EBE Customization Screencast</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/Q9cr-jpq17k/cksebe-customization-screencast.aspx</link><guid isPermaLink="False">/archive/2009/10/12/cksebe-customization-screencast.aspx</guid><description>&lt;div class="ExternalClass9A6637D4AD4B494E846A70444E4EE676"&gt;&lt;p&gt;I recently did a presentation at the Indianapolis SharePoint Developers group, &lt;a href="http://nspin.net/"&gt;nSpin&lt;/a&gt; (a SIG of the &lt;a href="http://indynda.org/"&gt;IndyNDA&lt;/a&gt;) on how to use the Community Kit for SharePoint Extended Blog Edition (&lt;a href="http://codeplex.com/cks"&gt;CKS:EBE&lt;/a&gt;) to customize your blog running on top of SharePoint.&lt;br&gt; &lt;br&gt;Due to other environmental factors outside of our control, we ended up having to compress the 85 minute presentation into 30 minutes.  There were also quite a few people that couldn't make it and were asking me for slides.  Well, I'm not really a slide kind of guy-- this particular presentation was about 33% Animated MindMap and 66% demos.  So anyway, I decided to record it over the weekend as a screencast for everyone!&lt;br&gt; &lt;br&gt;Hope you enjoy it, it is split into two parts below (sorry Viddler had trouble encoding it as a single file).  Please let me know if I got anything wrong- I'm always looking to improve.  If anyone out there is wanting a live version of this presentation (speaking engagement) or any others for that matter, now or in the future, please keep me in mind and drop me a line.&lt;br&gt; &lt;/p&gt;
&lt;p align="center"&gt;&lt;strong&gt;PART 1&lt;br&gt;&lt;span id="%3Cembed%20src%3D%22http%3A//www.viddler.com/player/9e745b2c/%22%20width%3D%22437%22%20height%3D%22370%22%20type%3D%22application/x-shockwave-flash%22%20allowScriptAccess%3D%22always%22%20allowFullScreen%3D%22true%22%20name%3D%22viddler_9e745b2c%22%3E%3C/embed%3E" class="erte_embed"&gt;Customizing CKS:EBE Part 1 Video&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="center"&gt;&lt;strong&gt;&lt;span class="erte_embed"&gt;PART 2&lt;br&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span id="%3Cembed%20src%3D%22http%3A//www.viddler.com/player/9b6d9585/%22%20width%3D%22437%22%20height%3D%22370%22%20type%3D%22application/x-shockwave-flash%22%20allowScriptAccess%3D%22always%22%20allowFullScreen%3D%22true%22%20name%3D%22viddler_9b6d9585%22%3E%3C/embed%3E" class="erte_embed"&gt;Customizing CKS:EBE Part 2 Video&lt;/span&gt;&lt;br&gt;&lt;p&gt;&lt;/strong&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/Q9cr-jpq17k" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dostalek, Kevin</dc:creator><pubDate>Mon, 12 Oct 2009 13:17:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.thekickboard.com/archive/tags/web 2.0/default.aspx">web 2.0</category><category domain="http://www.thekickboard.com/archive/tags/video/default.aspx">video</category><category domain="http://www.thekickboard.com/archive/tags/community/default.aspx">community</category><category domain="http://www.thekickboard.com/archive/tags/kickboard/default.aspx">kickboard</category><feedburner:origLink>http://www.thekickboard.com/archive/2009/10/12/cksebe-customization-screencast.aspx</feedburner:origLink></item><item><title>JS Injection for SharePoint List Forms</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/g8Lt9hMXD-E/js-injection-for-sharepoint-list-forms.aspx</link><guid isPermaLink="False">/archive/2009/09/24/js-injection-for-sharepoint-list-forms.aspx</guid><description>&lt;div class="ExternalClassE181447D6C5D4F7B86AC536CD53A8147"&gt;
&lt;p&gt;I’ve seen a few questions out on Twitter in the past few weeks on how to change SharePoint page behavior based on querystrings passed in an URL.  While the context for this question leads to many possible alternatives (filter web parts, custom web part, xslt, js, etc…)  I found that the advice I was giving in most cases was “if you just need something quick (and dirty), then just inject some javascript.  It seems though that arn’t many easily findable tutorials around for how to do this, so I decided to write this article.  Please note that this is NOT the best way to accomplish every possible problem scenario taking into account security, maintainability, performance, etc…  It does however work which makes it a viable tool to add to your bag of tricks in my book.  Also, I’m going to present the code samples here using straight javascript, but you could certainly streamline some of the code by using other frameworks like jQuery.&lt;/p&gt;
&lt;p&gt;So to begin, the first thing we need is some javascript that can read the querystring and parse it into a JS array for us to use later.  There are a ton of these snippits all around the web, here’s the one I use:&lt;/p&gt;
&lt;div class="codeText"&gt;
&lt;blockquote&gt;
&lt;p&gt;function getQueryStringArray() {&lt;br&gt;    var qs = location.search.substring(1, location.search.length);&lt;br&gt;    var args = qs.split(&amp;quot;&amp;amp;&amp;quot;);&lt;br&gt;    var vals = new Object();&lt;br&gt;    for (var i=0; i &amp;lt; args.length; i++) {&lt;br&gt;        var nameVal = args[i].split(&amp;quot;=&amp;quot;);&lt;br&gt;        var temp = unescape(nameVal[1]).split('+');&lt;br&gt;        nameVal[1] = temp.join(' ');&lt;br&gt;        vals[nameVal[0]] = nameVal[1];&lt;br&gt;    }&lt;br&gt;    return vals;&lt;br&gt;}&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;p&gt;Ok, so now we need a function to “find” the control we’re after on the page so that we can do stuff to it (like set it’s value, or hide it).  I have found that the easiest way of doing this is to look for an element that has the right TagName (e.g. “input”), the right SharePoint Datatype (e.g. “TextField”), and SharePoint FieldName (e.g. “Title”).  The TagName is easy, since that’s the actual tag of the element in the DOM.  The SharePoint Datatype is actually appended to the END of the ID attribute, so a little parsing will be required.  Finally, the SharePoint FieldName is the value assigned to the TITLE attribute of the element.  It would be cool if we could just key off this alone, but obviously on any given page you can’t guarantee all items will have a unique TITLE attribute.  Here is an example of an element that you may want to target on a form’s NewForm.aspx or EditForm.aspx pages:&lt;/p&gt;
&lt;div class="codeText"&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;input name=&amp;quot;ctl00$m$g_beee8c5c_b1a1_4356_84f5_&lt;br&gt;462f43dc6b4a$ctl00 $ctl04$ctl09$ctl04$ctl00$ctl00$TextField&amp;quot; type=&amp;quot;text&amp;quot; maxlength=&amp;quot;255&amp;quot; id=&amp;quot;ctl00_m_g_beee8c5c_b1a1_4356_84f5_&lt;br&gt;462f43dc6b4a_ctl00_ctl04_ctl09_ctl04_ctl00&lt;br&gt;_ctl00_TextField&amp;quot; title=&amp;quot;RelatedCT&amp;quot; class=&amp;quot;ms-long&amp;quot; /&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;p&gt;And here is an example function that you could use to parse the DOM and return the target element based on these three pieces of information:&lt;/p&gt;
&lt;div class="codeText"&gt;
&lt;blockquote&gt;
&lt;p&gt;function getFieldElement(tagName, identifier, title) {&lt;br&gt;  var len = identifier.length;&lt;br&gt;  var tags = document.getElementsByTagName(tagName);&lt;br&gt;  for (var i=0; i &amp;lt; tags.length; i++) {&lt;br&gt;    var tempString = tags[i].id;&lt;br&gt;    if (tags[i].title == title &amp;amp;&amp;amp; &lt;br&gt;            (identifier == &amp;quot;&amp;quot; ||&lt;br&gt;             tempString.indexOf(identifier) == tempString.length – len&lt;br&gt;            )&lt;br&gt;       ) {&lt;br&gt;         return tags[i];&lt;br&gt;    }&lt;br&gt;  }&lt;br&gt;  return null;&lt;br&gt;}&lt;br&gt;&lt;br&gt;// So for Example, to return the target element above we’d make the following call&lt;br&gt;var theElement = getFieldElement(“input”, “TextField”, “RelatedCT”);&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;p&gt;Once you have a handle to the element, you can do all sorts of things with it.  For exmaple, setting it’s value, making it readonly (if you don’t want to the user to change it’s value once you’ve populated it from the querystring), or even hiding the whole field all-together.  Here is an example function that can does all of the above (note, slight changes are required to work with non-textfields such as checkboxes, dropdowns, lookup lists, etc.)&lt;/p&gt;
&lt;div class="codeText"&gt;
&lt;blockquote&gt;
&lt;p&gt;function processField(theFieldName, theValue, setReadOnly, setHidden) {&lt;br&gt;    var el=getFieldElement(&amp;quot;input&amp;quot;, &amp;quot;TextField&amp;quot;, theFieldName);&lt;br&gt;    if(el!=null) {&lt;br&gt;        if(theValue!=null) {  el.value=theValue;  }&lt;br&gt;        if(setReadOnly) {  theField.readOnly=true;  }&lt;br&gt;        if(setHidden) {  &lt;br&gt;            //Set the whole table row to not display (includes label and all)&lt;br&gt;            theField.parentElement.parentElement.parentElement&lt;br&gt;        .style.display=&amp;quot;none&amp;quot;;&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt;}&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;p&gt;Ok, now that we have all of our helper functions ready to go, we need to put them all in a JS file and drop that where it can be accessed from the form pages (or where ever you plan to do the injection).  Possible places to consider are a document library (if you don’t have physical access to the server) or  12/TEMPLATE/LAYOUTS/1033 (if you do have physical server access).  The nice thing about the later location is that you can either directly link to the script from anywhere via /_layouts, OR you can use the  &amp;lt;SharePoint:ScriptLink&amp;gt; tag to have SharePoint automatically generate a non-client-cachable link to the script.  You will also need to use the _spBodyOnLoadFunctionNames.push method on the pages to get SharePoint to correctly insert you “injected” code into the proper spot in the whole JS Init of the pages (remember there are all sorts of things SharePoint pages need to run before we get to your injected code).  When I edit/customize a list’s NewForm.aspx or EditForm.aspx page I generally like to inject this bit of code at the very top of the PlaceHolderMain content placeholder.  Here is an example that links to my saved helper functions from above, pushes a function onto the OnLoad chain, and then set’s the values and visibility of 3 fields from the querystring.&lt;/p&gt;
&lt;div class="codeText"&gt;
&lt;blockquote&gt;&amp;lt;asp:Content ContentPlaceHolderID=”PlaceHolderMain” runat=”server”&amp;gt;&lt;br&gt;     &amp;lt;SharePoint:ScriptLink runat=”server” Name=”ListFuncs.js”/&amp;gt;&lt;br&gt;     &amp;lt;script type=”text/javascript”&amp;gt;&lt;br&gt;          _spBodyOnloadFunctionNames.push(“processFields”);&lt;br&gt;          function processFields() {&lt;br&gt;               var vals=getQueryStringArray();&lt;br&gt;               processField(“TaskList”, vals[“List”], true, false);&lt;br&gt;               processField(“TaskID”, vals[“TaskID”], true, true);&lt;br&gt;               processField(“OriginalAuthor”, vals[“author”], false, false);&lt;br&gt;          }&lt;br&gt;     &amp;lt;/script&amp;gt;&lt;br&gt;[ … rest of the form …]&lt;br&gt;&amp;lt;/asp:Content&amp;gt;&lt;/blockquote&gt;&lt;/div&gt;
&lt;p&gt;While this article certainly was an exhaustive tutorial on how to do this form of SharePoint customization, I’m hoping it will be enough to get some of you started in the right direction and experimenting.&lt;/p&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/g8Lt9hMXD-E" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dostalek, Kevin</dc:creator><pubDate>Thu, 24 Sep 2009 12:15:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/code/default.aspx">code</category><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><feedburner:origLink>http://www.thekickboard.com/archive/2009/09/24/js-injection-for-sharepoint-list-forms.aspx</feedburner:origLink></item><item><title>Benefits of Micro-Blogging in the Enterprise</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/fwhYolUS2hs/benefits-of-micro-blogging-in-the-enterprise.aspx</link><guid isPermaLink="False">/archive/2009/09/18/benefits-of-micro-blogging-in-the-enterprise.aspx</guid><description>&lt;div class="ExternalClassB2A9B48244ED4A8FB3500688C8D27FDB"&gt;
&lt;p&gt;It’s been about a year since I first wrote about micro-blogging within the context of Web 2.0 technologies that could provide value on the corporate intranet portal.  Since that time, the explosion platforms such as &lt;a href="http://twitter.com/"&gt;Twitter &lt;/a&gt;have highlighted the value of this type of communication in an open public context.  Other major platforms such as &lt;a href="http://facebook.com/"&gt;Facebook &lt;/a&gt;have revamped their primary information aggregation user interfaces (the “wall”) to be decidedly more micro-blogging-like, proving that this type of rich “status update” stream can be valuable within smaller communities as well.  Niche players have emerged such as &lt;a href="http://yammer.com/"&gt;Yammer &lt;/a&gt;and &lt;a href="http://present.ly/"&gt;Present.ly &lt;/a&gt;to fill the micro-blogging gap in the current best-of-breed intranet portal solutions.  I’ve decided to take many of the lessons learned in the past year, primarily from our corporate use of both Twitter and Yammer to describe some of the benefits that micro-blogging can allow an enterprise to realize and capitalize upon.&lt;/p&gt;
&lt;p&gt;Before I get ahead of myself, for those of you that may not be familiar with micro-blogging, it is essentially a way of sharing small bits of information usually from one-to-many (think of an email distribution list).  Most micro-blogging platforms represent these “small bits of content” in streams.  There is generally an author’s stream (everything you’ve posted) and also your aggregated stream which will be a filtered view of everyone else’s streams.  Many platforms, like Twitter, use the concept of “following” that provides the main filtering mechanism on your twitter stream, but other filtering concepts such as by keyword, group, hashtag, etc. can be used.  Note here the main difference between a micro-blog and an email system:  in the email system it is the author that decides who will receive the messages; in a micro-blogging system, it is primarily the recipients that have control over what they receive.  This plays an interesting role in the dynamics of spam, relevancy, and attention—but that is a post for another time.  One of the best introductions to micro-blogging may be Common Craft’s “&lt;a href="http://www.youtube.com/watch?v=ddO9idmax0o"&gt;Twitter in Plain English&lt;/a&gt;” (note that this is not enterprise-focused).&lt;/p&gt;
&lt;p&gt;The rest of this article will cover some of the benefits of micro-blogging in the enterprise including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mass Content Distribution&lt;/li&gt;
&lt;li&gt;Expert/Connector Location&lt;/li&gt;
&lt;li&gt;Trust Building / Culture&lt;/li&gt;
&lt;li&gt;Knowledge Management / Relevancy&lt;/li&gt;
&lt;li&gt;Training / Information Radiation&lt;/li&gt;
&lt;li&gt;Idea Exchange / Suggestion Box / Employee Voice&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Mass Content Distribution&lt;/strong&gt;&lt;br&gt;There are many times within an enterprise when you want to get a piece of information out to either all of the employees or a subset group of employees quickly.  Today the primary way of accomplishing this task would be an email distribution list (either company wide or a department list).  This works fine, except today our email boxes are overwhelmed with chatter both from the inside and certainly from outside (even with modern spam filters).  It is quite possible that a critical email sent from the CEO company-wide may not get read by some for hours or days.  This is not to say that a micro-blog will fix this problem completely or eliminate the need for “author-based recipient control” that an email provides, however, the fact that recipients have greater control over what they choose to listen to also means that will pay special attention to what they’ve opted into.&lt;/p&gt;
&lt;p&gt;Micro-blogging also has a distinct advantage over group emails when the intent of the communiqué is to elicit a discussion amongst the recipients.  Email “reply-to-all’s” are incredibly difficult to follow, especially as the replies create split branches and varying “quoted” chains below them.  In fact, the next version of Outlook even contains a feature to “mute” an email thread you’ve been placed on so that you don’t have to bother reading them :)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Expert/Connector Location&lt;/strong&gt;&lt;br&gt;By reading about what people are talking about in a stream you can start to get a better feel for what they are expert in.  This might include knowing who would make a good target for your pick-up game of basketball tomorrow evening, but more importantly, it will tell you who is knowledgeable, helpful, and passionate about various areas you need to complete your job!  Most micro-blogging systems also let each author create self-edited profiles that are searchable for areas of expertise, experience, and interests.  Some also have creative features that tag users (either by system analysis of posts, or by other users opinions of them) and track various “reputation” scores allowing those searching for expertise to get potentially more relevant and unbiased filter criteria for the so-called experts.&lt;/p&gt;
&lt;p&gt;Connectors are people within the enterprise that connect people to others.  While the gist of the above paragraph is that a micro-blogging platform may reduce the need for these individuals making it easier to find experts within the enterprise, it will never eliminate it.  This is because as most seasoned networkers will tell you, these connections are built upon shared trust, which takes time to establish (see next section and also my article “&lt;a href="http://www.thekickboard.com/archive/2008/06/14/discovering-your-relationship-topology.aspx"&gt;Discovering Your Relationship Topology&lt;/a&gt;”).  These connectors play a critical role in how your business gets done and should be the targets of both succession planning and process optimization strategies.   Micro-blogging platforms easily expose these individuals through follower counts, interaction counts, and reputation scores.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Trust Building / Culture&lt;br&gt;&lt;/strong&gt;At first the idea of micro-blogging is crazy to people.  I hear “why would anybody care about what I’m eating for lunch?” when explaining twitter to first time users (note of course a typical prompt in an enterprise micro-blog is “what are you currently working on?” not “what are you currently doing?” like with Twitter).  However, think about how you interact with people in real life.  When you see a colleague on a Monday morning do you immediately ask them “what’s our revenue forecast for the week?” or do you ask them if they did anything interesting over the weekend?  Oh you went downtown to that new restaurant with your wife?  How was it?  What did you have to eat?&lt;/p&gt;
&lt;p&gt;The point is that to build trust between individuals (which collectively can be extrapolated to an entire corporate culture) we absolutely MUST have these types of trust-building small-talk conversations to establish personal connections which can then lead to more meaningful relationships and deeper discussions.  For more details on this idea of trust building, pick up Chris Brogan’s new book &lt;a href="http://www.amazon.com/gp/product/0470743085?ie=UTF8&amp;amp;tag=kevindostales-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0470743085"&gt;Trust Agents &lt;/a&gt;or Shel Israel’s &lt;a href="http://www.amazon.com/gp/product/1591842794?ie=UTF8&amp;amp;tag=kevindostales-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1591842794"&gt;Twitterville&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Knowledge Management / Relevancy&lt;br&gt;&lt;/strong&gt;Since micro-blogs are content streams themselves, they by default become a knowledge repository, which as long as items of interest can be located, either by keyword or metadata search, then this alone qualifies it as a viable knowledge management strategy.  However, this is not really the main way micro-blogging can benefit a larger knowledge management strategy.  We already have big huge systems with taxonomies and formalized metadata for capturing and archiving documents.  And we also have big huge systems that capture our structured line of business data.  These two pillars are certainly enough to capture any and all data – sometimes to the point at which it has no chance of ever escaping (snark).&lt;/p&gt;
&lt;p&gt;These systems do a good job of storing the information, and some are even pretty good at helping you find it again.  However, once you start amassing a lot of it, relevancy becomes a problem.  That is, how quickly can I find the piece of information that is most relevant *to me* based on my specific need and ability level to consume the information?  Be honest, if you could, you’d probably just go ask the internal subject matter expert and have them direct you to the best information.  What micro-blogs allow (as well as other social media technologies like social-tagging and folksonomies) is that it provides a way for individuals to point at (with a hyperlink) subjectively high quality content which provides a means to store “tacit relevancy” metadata about the most important topics within your enterprise.&lt;/p&gt;
&lt;p&gt;Micro-blogs also do a better job of capturing conversation context (the who, when, what aspects) around content than many other mechanisms, thus shedding light on the sometimes elusive “why” or intent questions.  A very important point to micro-blogs and knowledge management that I want to underscore is that sometimes the content IS the conversation, but often the conversion is about OTHER content (hyperlinked in the post) and thus serves an important role in a larger enterprise content management strategy.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Training / Information Radiation&lt;br&gt;&lt;/strong&gt;New hire training can be accelerated by Micro-blogs especially in the realm of “how we do things around here”.  Often we find that it takes longer for new folks to internalize this aspect of their job than the actual technical or business skills required to execute the mechanics of their job.  This is especially true if you have either a unique culture (positive) or a dysfunctional one (and lord help you if you have a uniquely dysfunctional one).&lt;/p&gt;
&lt;p&gt;Seeing folks from across the enterprise share their content and helpful “finds” will also aid in the continuous learning and training for all employees.  In Alistair Cockburn’s &lt;a href="http://www.amazon.com/gp/product/0321482751?ie=UTF8&amp;amp;tag=kevindostales-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321482751"&gt;Agile Software Development &lt;/a&gt;he describes information radiation and osmotic communication as the natural and efficient way knowledge travels across a co-located project team performing software development.  Micro-blogging platforms extend this concept so that the co-located aspect (both physical and temporal proximity) is no longer a necessary component for this knowledge sharing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Idea Exchange / Suggestion Box / Employee Voice&lt;br&gt;&lt;/strong&gt;Micro-blogging has the effect of giving all employees a voice and you’d be surprised at the wonderful ideas and tips some have to share that otherwise would not be surfaced either due to their personality or perceived “place”.  Employers are sometimes afraid of giving their employees this voice, but most of the fears are not well founded.  One of these fears is that employees will use the platform to spread negative thoughts to their peers.  Generally, if these ideas are not based in truth, you will see other employees “setting the record straight” in a much more transparent fashion than you would get in hallway/water cooler talks.  Also, people will generally not be dramatically nasty in a micro-blogging setting since their comments are recorded, attributed to them, and usable against them if disciplinary action is called for.  If the ideas are based in truth, then you can be thankful that you have an early warning mechanism for problems in time to take proactive measures to address them.&lt;/p&gt;
&lt;p&gt;Another fear employers often have is that it feels like they are giving up some measure of control.  This is actually true to a degree, but it is only by giving up control that you gain trust.  This is the crux of the cultural change happening right now both inside and outside the enterprise.  The shift from traditional advertising (corporate controlled) to social media (consumer controlled) epitomizes this statement.  Those new employees that have grown up in the digital age are now starting to move into high level leadership positions within many organizations and fill out the majority of the workforce.  They understand and demand this change in dynamic so companies would do well to embrace it.  For more reading on this topic, please pick up Dan Tapscott’s &lt;a href="http://www.amazon.com/gp/product/0071508635?ie=UTF8&amp;amp;tag=kevindostales-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0071508635"&gt;Grown Up Digital&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;There are probably other areas of benefit that I’ve missed here (let me hear about them), but I based these 6 primary areas on actual observations over the past year.  For each of the above areas I have more specific anecdotes I can share, and may do that over the next few months.  Other than mentioning a few platforms at the beginning of this article, I tried to stay away from a technical/tools discussion, but obviously once you are sold on the need for micro-blogging within the enterprise or at least willing to experiment, there are a universe of choices in the form of platforms and add-on products to platforms to consider.&lt;/p&gt;
&lt;p&gt;Please tell me about your experiences with micro-blogging within your enterprise!&lt;/p&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/fwhYolUS2hs" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dostalek, Kevin</dc:creator><pubDate>Fri, 18 Sep 2009 22:45:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/web 2.0/default.aspx">web 2.0</category><category domain="http://www.thekickboard.com/archive/tags/strategy/default.aspx">strategy</category><category domain="http://www.thekickboard.com/archive/tags/twitter/default.aspx">twitter</category><category domain="http://www.thekickboard.com/archive/tags/enterprise/default.aspx">enterprise</category><category domain="http://www.thekickboard.com/archive/tags/social/default.aspx">social</category><feedburner:origLink>http://www.thekickboard.com/archive/2009/09/18/benefits-of-micro-blogging-in-the-enterprise.aspx</feedburner:origLink></item><item><title>DevLink 2009 Thanks!</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/rXCEE6tSot0/devlink-2009-thanks.aspx</link><guid isPermaLink="False">/archive/2009/08/19/devlink-2009-thanks.aspx</guid><description>&lt;div class="ExternalClass89B6FD9BED044C93B3FCCFCE47BDE183"&gt;&lt;img alt="DevLink Logo" align="right" src="http://www.thekickboard.com/media/devlink.gif"&gt;Well I attended &lt;a href="http://devlink.net/"&gt;DevLink &lt;/a&gt;down in Nashville, TN last week.  It was my first time, but certainly won't be my last.  &lt;a href="http://www.johnkellar.com/"&gt;John Kellar &lt;/a&gt;and all the volunteers did a great job pulling off a super conference that felt more like a huge extended community code camp than what I traditional think of as an &amp;quot;industry conference&amp;quot; (e.g. TechEd, SxSW, PDC, etc...).  Don't read that as a negative in any way- it was a great experience, and by far one of the best values all year (it was $100).&lt;/div&gt;
&lt;div class="ExternalClass89B6FD9BED044C93B3FCCFCE47BDE183"&gt; &lt;/div&gt;
&lt;div class="ExternalClass89B6FD9BED044C93B3FCCFCE47BDE183"&gt;The sessions were great and they had even added a SharePoint track this year, so there was no shortage of good stuff happening each day.  One thing that I do regret is not checking out the Open Spaces stuff (sorry &lt;a href="http://netcave.org/"&gt;Alan&lt;/a&gt;, the timing just never worked out).  As is often the case with conferences though, it was the networking that happens informally in the evenings that really provides the incalculable value.  From the quiet lobby-bar chats to the loud parties out at the &lt;a href="http://en.wikipedia.org/wiki/Honky_tonk"&gt;Honky Tonks &lt;/a&gt;(&lt;a href="http://www.tootsies.net/"&gt;Tootsie's Orchid Lounge &lt;/a&gt;was a favorite) I made a ton of new friends that I'm sure I'll keep in touch with and see again and again.&lt;/div&gt;
&lt;div class="ExternalClass89B6FD9BED044C93B3FCCFCE47BDE183"&gt; &lt;/div&gt;
&lt;div class="ExternalClass89B6FD9BED044C93B3FCCFCE47BDE183"&gt;Particularly I'd like to thank my new friends from the SharePoint community,&lt;a href="http://www.sharepointcowboy.com/"&gt;Eric Shupps&lt;/a&gt;, &lt;a href="http://www.sharepointcat.com/"&gt;Cathy Dew&lt;/a&gt;, &lt;a href="http://www.sharepointdan.com/"&gt;Dan Usher&lt;/a&gt;, &lt;a href="http://geekswithblogs.net/rfoster/Default.aspx"&gt;Rob Foster&lt;/a&gt;, &lt;a href="http://www.rickdoes.net/"&gt;Rick Kierner&lt;/a&gt;, &lt;a href="http://www.mosslover.com/"&gt;Becky Isserman&lt;/a&gt;, and &lt;a href="http://drowningintechnicaldebt.com/blogs/dennisbottjer/"&gt;Dennis Bottjer&lt;/a&gt;.&lt;/div&gt;
&lt;div class="ExternalClass89B6FD9BED044C93B3FCCFCE47BDE183"&gt; &lt;/div&gt;
&lt;div class="ExternalClass89B6FD9BED044C93B3FCCFCE47BDE183"&gt;Lastly, let me post a quick soundbite from the closing panel.  It's &lt;a href="http://libra.franklins.net/GoliathAtDevLink.mp3"&gt;Richard Campbell telling his Goliath story&lt;/a&gt;.  Seriously, this guy is a great story-teller- I can just imagine him on NPR or something listening to this.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/rXCEE6tSot0" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dostalek, Kevin</dc:creator><pubDate>Wed, 19 Aug 2009 13:10:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/audio/default.aspx">audio</category><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.thekickboard.com/archive/tags/development/default.aspx">development</category><category domain="http://www.thekickboard.com/archive/tags/community/default.aspx">community</category><enclosure url="http://libra.franklins.net/GoliathAtDevLink.mp3" type="audio/mpeg" /><feedburner:origLink>http://www.thekickboard.com/archive/2009/08/19/devlink-2009-thanks.aspx</feedburner:origLink></item><item><title>SharePoint Search Crawler Content Access Issues</title><link>http://feedproxy.google.com/~r/TheKickBoard/~3/xqX1WWLhYSc/sharepoint-search-crawler-content-access-issues.aspx</link><guid isPermaLink="False">/archive/2009/08/18/sharepoint-search-crawler-content-access-issues.aspx</guid><description>&lt;div class="ExternalClass0B3191E17F884F4AA5DB9CB30D05433A"&gt;
&lt;div&gt;I just recently had a bout with my MOSS search service.  After a couple faithful years of service our SSP got a tick and so we decided the best thing to do was rebuild it (pretty easy really, only a few BDC apps to port, etc...)  Unfortunately once everything was done we could not get the search service to crawl the &amp;quot;All Local Sites&amp;quot; content source.  Here were the symptoms:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Crawler Log indicated &amp;quot;Access Denied&amp;quot; when it tried to crawl the root of our intranet or mysites.&lt;/li&gt;
&lt;li&gt;Crawling of the sps:// people content source was fine.&lt;/li&gt;
&lt;li&gt;Content Access account had the proper policy (Read All), and actually even had rights to the site.  You could log in as that user and browse all around the site from another computer.&lt;/li&gt;
&lt;li&gt;When a crawl was started (and thus ended very quickly with the one access denied log event) you could no longer open up the content source edit page in search administration (returned a .net &amp;quot;object not found&amp;quot; error).&lt;/li&gt;
&lt;li&gt;If you cleared all indexed content, then you could get back into the content source edit page, so long as you didn't actually attempt a crawl.&lt;/li&gt;
&lt;li&gt;Nothing else really significant in the windows logs (except a failure audit).&lt;/li&gt;
&lt;li&gt;Trying to navigate to the intranet root &lt;em&gt;from the server &lt;/em&gt;with the content access account returned a 403 error &lt;strong&gt;&lt;font color="#ff0000"&gt;&amp;lt;--- WHOA... BIG RED FLAG / HINT HERE&lt;/font&gt;&lt;/strong&gt;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;So after searching around (sorry I'd link the blogs here, but the search was quite far and wide and I didn't properly keep track) I discovered that in Windows Server 2003 SP1 they introduced this new feature called &amp;quot;Loopback Check Security Feature&amp;quot;.  Essentially this means that any attempt by that machine to access an FQDN from the console (or apparently from services running on the box) will fail if it resolves back to itself.  I presume the little scriptkiddie hack goes something like this: 1) trick an admin into installing your worm, 2) modify the hosts file or proxy settings so that some official site, say Paypal or your HR payrole system for example, gets redirected back to a local hacked up version of the site, 3) continue with man-in-middle attack, except without the middle man....&lt;/p&gt;
&lt;p&gt;Anyway, you may be wonder why FQDN's were involved here since SharePoint by default pops in &lt;a href="http://servername/"&gt;http://servername&lt;/a&gt; as the default &amp;quot;All Local Sites&amp;quot; content source.  Well apparently we had changed the default access mapping for these sites a while back (typical) to their FQDN's.  When we went to recreate the new SSP it just picked these up and used them.&lt;/p&gt;
&lt;p&gt;SO-- the solution can be found &lt;a href="http://support.microsoft.com/kb/896861"&gt;at this KB article&lt;/a&gt;.  Rather than turning off this loopback check (method 2) even though the scenario that it protects against seems pretty far fetched to me, I decided to use method 1, which worked great and didn't require a server reboot :)  I've reproduced it below:&lt;/p&gt;&lt;span style="text-transform:none;text-indent:0px;border-collapse:separate;font:medium 'Times New Roman';white-space:normal;letter-spacing:normal;color:rgb(0,0,0);word-spacing:0px" class="Apple-style-span"&gt;&lt;span style="line-height:16px;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px" class="Apple-style-span"&gt;
&lt;h3 style="margin:15px 0px 5px;font-size:13px" id="tocHeadRef"&gt;Method 1: Specify host names&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;We recommend that you use this method.&lt;br&gt;&lt;br&gt;To specify the host names that are mapped to the loopback address and can connect to Web sites on your computer, follow these steps:&lt;/p&gt;
&lt;ol style="position:relative"&gt;
&lt;li style="position:relative"&gt;Click&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;strong class="uiterm"&gt;Start&lt;/strong&gt;, click&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;strong class="uiterm"&gt;Run&lt;/strong&gt;, type&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;span style="margin:10px 0px;font-weight:bold" class="userInput"&gt;&lt;font size="2"&gt;regedit&lt;/font&gt;&lt;/span&gt;, and then click&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;strong class="uiterm"&gt;OK&lt;/strong&gt;.&lt;/li&gt;
&lt;li style="position:relative"&gt;In Registry Editor, locate and then click the following registry key: 
&lt;div style="padding-bottom:10px;padding-left:20px;padding-right:20px;padding-top:0px" class="indent"&gt;&lt;strong class="uiterm"&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style="position:relative"&gt;Right-click&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;strong class="uiterm"&gt;MSV1_0&lt;/strong&gt;, point to&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;strong class="uiterm"&gt;New&lt;/strong&gt;, and then click&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;strong class="uiterm"&gt;Multi-String Value&lt;/strong&gt;.&lt;/li&gt;
&lt;li style="position:relative"&gt;Type&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;span style="margin:10px 0px;font-weight:bold" class="userInput"&gt;&lt;font size="2"&gt;BackConnectionHostNames&lt;/font&gt;&lt;/span&gt;, and then press ENTER.&lt;/li&gt;
&lt;li style="position:relative"&gt;Right-click&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;strong class="uiterm"&gt;BackConnectionHostNames&lt;/strong&gt;, and then click&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;strong class="uiterm"&gt;Modify&lt;/strong&gt;.&lt;/li&gt;
&lt;li style="position:relative"&gt;In the&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;strong class="uiterm"&gt;Value data&lt;/strong&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;box, type the host name or the host names for the sites that are on the local computer, and then click&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;strong class="uiterm"&gt;OK&lt;/strong&gt;.&lt;/li&gt;
&lt;li style="position:relative"&gt;Quit Registry Editor, and then restart the IISAdmin service.&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p style="position:relative"&gt;And that dear friends concludes this edition of &amp;quot;why is search not working...today (there is hope!)&amp;quot;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/TheKickBoard/~4/xqX1WWLhYSc" height="1" width="1"/&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dostalek, Kevin</dc:creator><pubDate>Tue, 18 Aug 2009 15:28:00 GMT</pubDate><category domain="http://www.thekickboard.com/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.thekickboard.com/archive/tags/search/default.aspx">search</category><feedburner:origLink>http://www.thekickboard.com/archive/2009/08/18/sharepoint-search-crawler-content-access-issues.aspx</feedburner:origLink></item></channel></rss>
