Sunday, August 04, 2013

SSL and Empty SharePoint People Search Results

The great thing about SharePoint Enterprise Search is that once it's up and running it mostly just works. Except, of course, when it doesn't. Recently I was troubleshooting a farm in which People search stopped returning any results. In this environment, the main OU containing user accounts had been moved and a new profile import run to re-populate the profile database. The import was successful but the changes required a full crawl of the content source which had been working just fine up until that point. After the next crawl completed all queries against the People scope returned an empty result set.

After confirming that none of the permissions had changed, and that the default crawl account still had access to the User Profile service app and all web applications, another full was run without success. It was during this run that the crawl log displayed the following error for the primary web application (which had probably been there all along but was buried beneath a number of other content-related crawl errors):

An unrecognized HTTP response was received when attempting to crawl this item. Verify whether the item can be accessed using your browser.

A bit of research indicated that this is usually due to insufficient permissions – either the crawl account does not have Full Read permissions set in the web application User Policy or it hasn't been granted the "Retrieve People Data for Search Crawlers" right for the user profile service application. But in this case both sets of permissions were valid. An attempt to connect to the search crawl web service (/_vti_bin/spscrawl.asmx) confirmed this but also revealed something interesting – all HTTP requests were being redirected to HTTPS. Another look at the Content Source in Search Administration showed that the primary web application was, in fact, set up to crawl content via an HTTPS URL.
 
The SharePoint People Search mechanism requires a specific URL format within a Content Source, one that begins with "sps3://" instead of the usual "http://". The site cannot actually be browsed via this URL; instead, it's merely a connector reference that the search crawler associates it with the proper URI under the covers. When a web application is secured via SSL the protocol portion of the URL has to be changed from "sps3://" to "sps3s://" – the "s" letting the crawler know it should use HTTPS instead of HTTP.
 

Specifying an SSL target for the People search content source

Changing the URL value in the Content Source from "sps3://" to "sps3s://" resulted in a successful crawl and People search started returning results at the conclusion of the next full crawl. So if any of the web applications in your farm use HTTPS by default, be sure to check the Content Source settings to be sure that the search crawler can properly access them.


ArticlesTen Steps to Optimize SharePoint Performance

Webcasts

Secrets of SharePoint Part 5: Configuring Microsoft Office SharePoint Server 2007 for Optimal Performance
Creating End User SharePoint Solutions for Performance and Scalability 
SharePoint 2010 Performance Enhancements for Administrators
Microsoft SharePoint Server 2010 for the ASP.NET Developer
Following Best Practices and Avoiding Common Errors with Microsoft Office SharePoint Server 2007 Development
SharePoint Performance and Capacity Planning Essentials
Troubleshooting Common Performance Problems in SharePoint 2010

Videos

Channel 9 Interview with Eric Shupps
SharePoint TechTalk - Different Views on Social Computing
SharePoint Post-Deployment Planning and Management

Podcasts

SharePoint Pod Show - Design for Performance
SharePoint Pod Show - Test Driven Development
Run As Radio - Eric Shupps Improves SharePoint Performance

Wednesday, February 27, 2013

Wrapping Long String Values in Firefox

I know it's all the rage among web developers to blame IE for everything that's wrong on the Internet but sometimes - just sometimes - the folks in Redmond get it right and the fine volunteers of the Mozillaverse get it wrong.  Perhaps there's no better example of this than word breaking in columns.  For years, IE has had the ever-so-useful CSS property "word-wrap" which, when supplied with a value like "break-word", will split up a long string of text and preserve the precious layout you've slaved for hours to create.  It's so handy, in fact, that it actually made it into the CSS3 spec (don't be a hater - even the standards busybodies know a good thing when they see it).

Unfortunately, Firefox doesn't recognize this property.  Yes, I know it's supposed to in version 3.5+ but I have yet to see it actually working.  I've spent the better part of the last 9 months doing JavaScript programming for SharePoint 2013 apps so I've spent way too much time testing browser compatibility and not once have I seen FF honor this property.  Perhaps there's some secret Little Orphan Annie Decoder Ring trick to make it work - if so, please share it with me but until then we'll have to continue  hacking our way around this ridiculous exclusion in an otherwise fine browser.

A lot of people suggest doing this in CSS like so:

.wrap {
white-space: pre-wrap;       /* CSS3 */
white-space: -moz-pre-wrap;  /* Mozilla */
}

But I've found that solution is spotty - it sometimes works and sometimes doesn't (mostly the latter).  Instead, I prefer to use JavaScript to solve this problem, which eliminates the need for browser-dependent CSS tricks.  Taking, for example, a string that has 20 characters and must fit into a column that only permits 10 characters, the solution would look something like this:

var newstring = oldstring.replace(/([^\s\t\r\n<>]{11})/g, "$1<wbr>");

Or, if you would prefer a hyphen instead of a soft line break:

var newstring = oldstring.replace(/([^\s\t\r\n<>]{11})/g, "$1&shy;");  

Inline replacement is fine but if you end up doing it repeatedly within an application all those Regular Expressions get pretty redundant.  Plus, it would be nice to be able to specify the length as a parameter for a reusable function.  A quick bit of additional code will get us there:

function breakWord(string, length) {
    var reg = new RegExp("([^\s\t\r\n<>]{" + length + "})", "g");
    var s = string.replace(reg, "$1<wbr>");
    return s;
}

We can now call that function on any string we like:

var newstring = breakWord(oldstring,10);
Ah, that's better.  Word breaking for any string in IE and Firefox.  Now, Microsoft, let's talk about all those web pages that don't work in IE10, shall we?  Like, I dunno, just as a random example, SharePoint 2010 dialogs.  How 'bout it?


Articles
Ten Steps to Optimize SharePoint Performance

Webcasts

Secrets of SharePoint Part 5: Configuring Microsoft Office SharePoint Server 2007 for Optimal Performance
Creating End User SharePoint Solutions for Performance and Scalability 
SharePoint 2010 Performance Enhancements for Administrators
Microsoft SharePoint Server 2010 for the ASP.NET Developer
Following Best Practices and Avoiding Common Errors with Microsoft Office SharePoint Server 2007 Development
SharePoint Performance and Capacity Planning Essentials
Troubleshooting Common Performance Problems in SharePoint 2010

Videos

Channel 9 Interview with Eric Shupps
SharePoint TechTalk - Different Views on Social Computing
SharePoint Post-Deployment Planning and Management

Podcasts

SharePoint Pod Show - Design for Performance
SharePoint Pod Show - Test Driven Development
Run As Radio - Eric Shupps Improves SharePoint Performance

Wednesday, November 28, 2012

SharePoint 2013 REST Library

As part of his TypeScript presentation at SharePoint Conference 2012, Rob Bogue had to do a lot of work with the new REST API's for SharePoint 2013 (as we all did).   Not happy to simply sling a bunch of JavaScript and call it a day, Rob took things a step further and created a reference library implementation to make things a bit easier on all of us.

Wiring up a REST query from a provider-hosted app to SharePoint 2013 looks like this if you set up the call and handle results manually:

var executor = new SP.RequestExecutor(appWebUrl);
var reqUrl = appWebUrl + "/_api/SP.AppContextSite(@target)/web/lists/getbytitle('" + myList + "')/items?$select=Title&@target='" + hostWebUrl + "'";
executor.executeAsync({
 url: reqUrl,
 method: "GET",
 headers: { "Accept": "application/json;odata=verbose" },
 success: function (result) {
  var objData = $.parseJSON(result.body);
  response($.map(objData.d.results, function (item) {
   return {
    label: item.Title
   }
  }));
 },
 error: function (result, code, message) {
  alert(message);
 }
});


Using SP REST, the syntax is much cleaner and easier to read (and if you're using TypeScript you also get full Intellisense support):

obj.list.GetItemsByQuery([
{
   field: 'Title',
   operator: 'eq',
   value: obj.myValue
}]).done(function (items) { //Do Something Here });

Rob is releasing SP REST to the community and is asking for contributors to help take the project forward.  If you're interested, contact Rob via his blog and jump on the SP REST bandwagon.


Articles

Ten Steps to Optimize SharePoint Performance

Webcasts

Secrets of SharePoint Part 5: Configuring Microsoft Office SharePoint Server 2007 for Optimal Performance
Creating End User SharePoint Solutions for Performance and Scalability 
SharePoint 2010 Performance Enhancements for Administrators
Microsoft SharePoint Server 2010 for the ASP.NET Developer
Following Best Practices and Avoiding Common Errors with Microsoft Office SharePoint Server 2007 Development
SharePoint Performance and Capacity Planning Essentials
Troubleshooting Common Performance Problems in SharePoint 2010

Videos

Channel 9 Interview with Eric Shupps
SharePoint TechTalk - Different Views on Social Computing
SharePoint Post-Deployment Planning and Management

Podcasts

SharePoint Pod Show - Design for Performance
SharePoint Pod Show - Test Driven Development
Run As Radio - Eric Shupps Improves SharePoint Performance

Saturday, November 24, 2012

Creating Permalinks for SharePoint Blog Posts

Most commercial blogging platforms use a fixed URL structure, known as a "permalink", to identify posts – something like "http://www.myblog.com/2012/09/13/This-Is-My-Post.html". This structure makes it easy to reference a particular post, supports trackbacks/pingbacks, and makes it simple for search crawlers to locate content. Unfortunately, the SharePoint 2010 Blog template has no concept of how an actual blog platform should work – permalinks are an entirely foreign concept. Because SharePoint stores blog posts as individual list items, the URL structure is comprised of a fixed root path with a query string parameter for the item ID, such as "http://www.binarywave.com/blogs/eshupps/Lists/Posts/Post.aspx?ID=270". Awful stuff.

Short of writing an HTTP Handler to construct friendly URL's, SharePointers are stuck with this less-than-optimal format. That being said, it would be helpful if the various views for the Posts list in a blog actually used this link structure to refer to each item but, alas, they don't; instead, they use and even worse path identifier that references an application page in the _layouts directory with parameters for the list and item ID (i.e. "http://www.myblog.com/_layouts/listform.aspx?PageType=4&ListId={89CBE813-99F7-4257-A23A-5FEFC377336B}&ID=269"). This is the equivalent of not only forgetting to put bullets in your gun but leaving the gun behind at the saloon on your way to the OK Corral – in other words, it makes an already bad situation even worse...


Read more from Eric Shupps

Saturday, November 03, 2012

Hiding Toolbars in the SharePoint 2010 Chart Web Part

SharePoint Server 2010 ships with a nifty Chart web part that displays visual data from a number of sources – SharePoint lists, BDC, Excel services, etc. It's a handy control and one that was sorely missing from the 2007 version. It provides a number of chart options, including pies, lines, bars, cones, scatters, etc. in both 2D and 3D. Neat…but (and there's always a 'but')…it has one very annoying characteristic that drives site administrators crazy. When you drop it onto the page, it displays a toolbar with links for "Data & Appearance" and "Advanced Properties" to everyone with more than basic read permissions.

We certainly don't want everyone to see that – too much temptation to click on those links and blow up our pretty little graphs. Well, ok, should be easy enough to turn that off, right? Wrong.

Somebody, somewhere, forget to include the ubiquitous hide toolbar switch that's on most other out of the box web parts. While trying to figure out a workaround for this nice little undocumented feature, I came across a lot of links to this blog post by Nick Grattan in which he suggests editing the page in SharePoint Designer and changing the web part properties manually in the markup. That's all well and good but anyone who has ever heard me speak at a conference knows that I am not exactly the world's biggest fan of using SPD to edit pages (that may be understating it a bit, sort of like saying the Pope is a little bit Catholic or Texas gets a bit warm in the summertime). So what to do...

Read more from Eric Shupps


Articles

Ten Steps to Optimize SharePoint Performance

Webcasts

Secrets of SharePoint Part 5: Configuring Microsoft Office SharePoint Server 2007 for Optimal Performance
Creating End User SharePoint Solutions for Performance and Scalability 
SharePoint 2010 Performance Enhancements for Administrators
Microsoft SharePoint Server 2010 for the ASP.NET Developer
Following Best Practices and Avoiding Common Errors with Microsoft Office SharePoint Server 2007 Development
SharePoint Performance and Capacity Planning Essentials
Troubleshooting Common Performance Problems in SharePoint 2010

Videos

Channel 9 Interview with Eric Shupps
SharePoint TechTalk - Different Views on Social Computing
SharePoint Post-Deployment Planning and Management

Podcasts

SharePoint Pod Show - Design for Performance
SharePoint Pod Show - Test Driven Development
Run As Radio - Eric Shupps Improves SharePoint Performance

Social

ConferenceHound
Talk TechNet
Channel 9
Planet SharePoint
Lanyrd
MVP Profile
About.me
Tumblr
Speakerfile
Facebook
LinkedIn
Google+
Twitter

Sunday, October 28, 2012

Using Multiple Displays and Projectors with Windows 8 and Lenovo W520

When Lenovo started shipping hybrid graphics in their W500-series workstations, it was a great improvement for road warriors who need both full-power graphics when connected to a power source and long battery life on the go. This is achieved by the presence of two video cards – an integrated Intel chip side-by-side with an nVidia Quadro GPU. The nVidia drivers ship with software that automatically switch between graphics modes based on the current power profile.

This configuration works great until the machine is connected to an external monitor or projector via the VGA port. For some reason, the nVidia software is unable to automatically balance the output between both video cards when the display is duplicated. Many users have resorted to disabling one or the other video cards in the BIOS, which works fine but requires that the change be made manually each time to computer is rebooted (assuming that the user wants the low power mode at some point – if the machine is always plugged in then it's really not an issue).

There is, however, a way to get display duplication working with the auto-switching Optimus mode. All the configuration options are there in the nVidia control panel but the configuration isn't very intuitive. Here's how to make it work (this holds true for both Windows 7 and Windows 8, although the sub-menu text in the control panel is a bit different between driver versions)...

Read more from Eric Shupps


Articles

Ten Steps to Optimize SharePoint Performance

Webcasts

Secrets of SharePoint Part 5: Configuring Microsoft Office SharePoint Server 2007 for Optimal Performance
Creating End User SharePoint Solutions for Performance and Scalability 
SharePoint 2010 Performance Enhancements for Administrators
Microsoft SharePoint Server 2010 for the ASP.NET Developer
Following Best Practices and Avoiding Common Errors with Microsoft Office SharePoint Server 2007 Development
SharePoint Performance and Capacity Planning Essentials
Troubleshooting Common Performance Problems in SharePoint 2010

Videos

Channel 9 Interview with Eric Shupps
SharePoint TechTalk - Different Views on Social Computing
SharePoint Post-Deployment Planning and Management

Podcasts

SharePoint Pod Show - Design for Performance
SharePoint Pod Show - Test Driven Development
Run As Radio - Eric Shupps Improves SharePoint Performance

Social

ConferenceHound
Talk TechNet
Channel 9
Planet SharePoint
Lanyrd
MVP Profile
About.me
Tumblr
Speakerfile
Facebook
LinkedIn
Google+
Twitter

Monday, October 15, 2012

Using the Chrome Control in SharePoint 2013 Apps

In the new SharePoint 2013 App model, there are essentially two ways to host apps – within SharePoint itself or from an external web site (also known as "provider hosted" or "autohosted"). One of the disadvantages of external apps is that they don't look or feel like SharePoint. All the familiar navigation menus and shortcuts are missing, resulting in a stark contrast between the default SharePoint visual experience and whichever app is currently being used unless the app developer went the extra mile (or ten) to style their app.

While this isn't really a bad thing – the app is fully functional and can communicate with SharePoint – it doesn't quite lend itself to a cohesive user experience. To bridge this gap, Microsoft allows developers to import a very basic version of the SharePoint 2013 chrome into their apps without having to manually create matching HTML controls. The functionality for this can be found in the SP.UI.Controls.js file located in the new /_layouts/15 directory. To use the chrome control, first add a reference to SP.UI.Controls.js (make sure you've already loaded the requisite JQuery files and other dependencies), then add an empty <div> to your page markup at or near the top of the page..

Read more from Eric Shupps


ArticlesTen Steps to Optimize SharePoint Performance

Webcasts

Secrets of SharePoint Part 5: Configuring Microsoft Office SharePoint Server 2007 for Optimal Performance
Creating End User SharePoint Solutions for Performance and Scalability 
SharePoint 2010 Performance Enhancements for Administrators
Microsoft SharePoint Server 2010 for the ASP.NET Developer
Following Best Practices and Avoiding Common Errors with Microsoft Office SharePoint Server 2007 Development
SharePoint Performance and Capacity Planning Essentials
Troubleshooting Common Performance Problems in SharePoint 2010

Videos

Channel 9 Interview with Eric Shupps
SharePoint TechTalk - Different Views on Social Computing
SharePoint Post-Deployment Planning and Management

Podcasts

SharePoint Pod Show - Design for Performance
SharePoint Pod Show - Test Driven Development
Run As Radio - Eric Shupps Improves SharePoint Performance
Social

ConferenceHound
Talk TechNet
Channel 9
Planet SharePoint
Lanyrd
MVP Profile
About.me
Tumblr
Speakerfile
Facebook
LinkedIn
Google+
Twitter

Thursday, October 11, 2012

Using PowerShell to Set List View Parameters in SharePoint Web Parts

While working on some modifications to the SharePoint 2010 blog site template I ran across an interesting problem. I was trying to duplicate the functionality of a particular web part; in this case, the Posts web part which outputs a formatted display of list items on the Category.aspx page of a blog site. The default web part was listed in the contents page (reachable using the "?contents=1" query string parameter) as a basic XsltListViewWebPart, which meant that I should be able to drop the Posts web part from Lists and Libraries in the web part gallery, set the view, and get the desired results. If only it were that simple.

No matter which view I picked, all the web part showed was a standard list view with rows and columns, not the nicely formatted view with the calendar page image, title link and summary information that I was after. Since it was a stock list view web part I knew it was using a view to fetch the data and then transforming it in XSL but there didn't seem to be any way to force it into using the correct view. Assuming that the view itself might be hidden from the drop-down selector, I turned to PowerShell to see if I could find out what was going on. I began by iterating through the web parts on the page to find the one I wanted and writing out the view ID...

Read more from Eric Shupps


Articles
Ten Steps to Optimize SharePoint Performance

Webcasts

Secrets of SharePoint Part 5: Configuring Microsoft Office SharePoint Server 2007 for Optimal Performance
Creating End User SharePoint Solutions for Performance and Scalability 
SharePoint 2010 Performance Enhancements for Administrators
Microsoft SharePoint Server 2010 for the ASP.NET Developer
Following Best Practices and Avoiding Common Errors with Microsoft Office SharePoint Server 2007 Development
SharePoint Performance and Capacity Planning Essentials
Troubleshooting Common Performance Problems in SharePoint 2010

Videos

Channel 9 Interview with Eric Shupps
SharePoint TechTalk - Different Views on Social Computing
SharePoint Post-Deployment Planning and Management

Podcasts

SharePoint Pod Show - Design for Performance
SharePoint Pod Show - Test Driven Development
Run As Radio - Eric Shupps Improves SharePoint Performance
Social

ConferenceHound
Talk TechNet
Channel 9
Planet SharePoint
Lanyrd
MVP Profile
About.me
Tumblr
Speakerfile
Facebook
LinkedIn
Google+
Twitter

Thursday, October 04, 2012

Configuring High Trust Apps for SharePoint 2013

The SharePoint 2013 Application Model supports app development for both cloud and on-premise environments; however, there are distinct differences between the two implementations. In the cloud, apps rely upon an external authorization process to validate that an application hosted outside of SharePoint – in a vendor's data center, for example – is allowed to communicate with the SharePoint site where the app has been deployed. Within the enterprise, it is unlikely that an authorization server will be present or even necessary; rather, apps developed and deployed internally are assumed to have "high trust". In order to facilitate a high trust relationship in the absence of a pre-configured authorizing entity, a specific set of configuration tasks must be performed for each app that will be deployed...

Read more from Eric Shupps


Articles

Eric Shupps eshupps SharePoint Cowboy - Ten Steps to Optimize SharePoint Performance

Webcasts

Eric Shupps eshupps SharePoint Cowboy - Secrets of SharePoint Part 5: Configuring Microsoft Office SharePoint Server 2007 for Optimal Performance
Eric Shupps eshupps SharePoint Cowboy - Creating End User SharePoint Solutions for Performance and Scalability
Eric Shupps eshupps SharePoint Cowboy - SharePoint 2010 Performance Enhancements for Administrators
Eric Shupps eshupps SharePoint Cowboy - Microsoft SharePoint Server 2010 for the ASP.NET Developer
Eric Shupps eshupps SharePoint Cowboy - Following Best Practices and Avoiding Common Errors with Microsoft Office SharePoint Server 2007 Development
Eric Shupps eshupps SharePoint Cowboy - SharePoint Performance and Capacity Planning Essentials
Eric Shupps eshupps SharePoint Cowboy - Troubleshooting Common Performance Problems in SharePoint 2010

Videos

Eric Shupps eshupps SharePoint Cowboy - Channel 9 Interview with Eric Shupps
Eric Shupps eshupps SharePoint Cowboy - SharePoint TechTalk - Different Views on Social Computing
Eric Shupps eshupps SharePoint Cowboy - SharePoint Post-Deployment Planning and Management

Podcasts

Eric Shupps eshupps SharePoint Cowboy - SharePoint Pod Show - Design for Performance
Eric Shupps eshupps SharePoint Cowboy - SharePoint Pod Show - Test Driven Development
Eric Shupps eshupps SharePoint Cowboy - Run As Radio - Eric Shupps Improves SharePoint Performance

Eric Shupps eshupps SharePoint Cowboy on ConferenceHound
Eric Shupps eshupps SharePoint Cowboy - Talk TechNet
Eric Shupps eshupps SharePoint Cowboy on Channel 9
Eric Shupps eshupps SharePoint Cowboy on Planet SharePoint
Eric Shupps eshupps SharePoint Cowboy on Lanyrd
Eric Shupps eshupps SharePoint Cowboy MVP Profile
Eric Shupps eshupps SharePoint Cowboy About.me
Eric Shupps eshupps SharePoint Cowboy Tumblr
Eric Shupps eshupps SharePoint Cowboy Speakerfile
Eric Shupps eshupps SharePoint Cowboy Facebook
Eric Shupps eshupps SharePoint Cowboy LinkedIn
Eric Shupps eshupps SharePoint Cowboy Google+
Eric Shupps eshupps SharePoint Cowboy Twitter

Monday, October 01, 2012

SharePoint MVP Again

Well, it's that time of year again, and Microsoft has seen fit to keep me in the MVP program for another go around.  This will be my sixth year as an MVP.  When I first came into the program there were only a few dozen SharePoint MVP's - now there are hundreds all over the world.  The yearly MVP summit used to be an opportunity to catch up with old friends you didn't see very often but with the growth of the group (which is still quite small compared with groups like SQL or ASP.NET) it's now become a way to meet new people you might not have even heard of before.  

For those of us who have been around a while, the quarterly renewal cycles can often be bittersweet - sometimes we have to say goodbye to friends who have moved on or focused their community efforts in other directions.  Despite what some people on the outside who have no knowledge of the inner workings of the program may think, it still takes a lot of work to attain and retain MVP status.  You don't have to be the brightest technical guru or constantly on the speaking circuit to become an MVP (although both of those certainly help) but you do have to put in the hours contributing to the community in whatever fashion suits you.  Not everyone has the capability or flexibility to continue contributing at a high level - life and circumstances change and sometimes there's just not enough hours in the day.  It's sad to see good people leave the program but always exciting to meet the new kids on the block.

So congratulations to all the new and returning SharePoint MVP's.  With a new product release on the horizon it's going to be a busy year ahead.  Be sure to join us all in Las Vegas on November 12th - 15th for SharePoint Conference 2012 for lots of learning and plenty of partying!
 
Articles
Eric Shupps eshupps SharePoint Cowboy - Ten Steps to Optimize SharePoint Performance

Webcasts
Eric Shupps eshupps SharePoint Cowboy - Secrets of SharePoint Part 5: Configuring Microsoft Office SharePoint Server 2007 for Optimal Performance

Eric Shupps eshupps SharePoint Cowboy - Creating End User SharePoint Solutions for Performance and Scalability
Eric Shupps eshupps SharePoint Cowboy - SharePoint 2010 Performance Enhancements for Administrators Eric Shupps eshupps SharePoint Cowboy - Microsoft SharePoint Server 2010 for the ASP.NET Developer Eric Shupps eshupps SharePoint Cowboy - Following Best Practices and Avoiding Common Errors with Microsoft Office SharePoint Server 2007 Development
Eric Shupps eshupps SharePoint Cowboy - SharePoint Performance and Capacity Planning Essentials
Eric Shupps eshupps SharePoint Cowboy - Troubleshooting Common Performance Problems in SharePoint 2010

Videos


Eric Shupps eshupps SharePoint Cowboy - Channel 9 Interview with Eric Shupps
Eric Shupps eshupps SharePoint Cowboy - SharePoint TechTalk - Different Views on Social Computing
Eric Shupps eshupps SharePoint Cowboy - SharePoint Post-Deployment Planning and Management

Podcasts


Eric Shupps eshupps SharePoint Cowboy - SharePoint Pod Show - Design for Performance
Eric Shupps eshupps SharePoint Cowboy - SharePoint Pod Show - Test Driven Development
Eric Shupps eshupps SharePoint Cowboy - Run As Radio - Eric Shupps Improves SharePoint Performance

Eric Shupps eshupps SharePoint Cowboy on ConferenceHound
Eric Shupps eshupps SharePoint Cowboy - Talk TechNet
Eric Shupps eshupps SharePoint Cowboy on Channel 9
Eric Shupps eshupps SharePoint Cowboy on Planet SharePoint
Eric Shupps eshupps SharePoint Cowboy on Lanyrd
Eric Shupps eshupps SharePoint Cowboy MVP Profile
Eric Shupps eshupps SharePoint Cowboy About.me
Eric Shupps eshupps SharePoint Cowboy Tumblr
Eric Shupps eshupps SharePoint Cowboy Speakerfile
Eric Shupps eshupps SharePoint Cowboy Facebook
Eric Shupps eshupps SharePoint Cowboy LinkedIn
Eric Shupps eshupps SharePoint Cowboy Google+
Eric Shupps eshupps SharePoint Cowboy Twitter