Friday, April 11, 2014

I Have Been Renewed as MVP for Second Year

On the April Fools Day, I have received the confirmation that my MVP Award has been renewed. I wish to thank to everyone who made it possible: the conference and community event organizers, the sponsors, Microsoft community leads and, of course, the attendees that come to the community to learn, mix and network. Thank you very much!

mvp_logo

This year has begun with me speaking at SharePoint Saturday Stockholm in January. Then, the most expected SharePoint event of the year: Microsoft SharePoint Conference 2014 in Las Vegas. Right now on my radar there are three more events: SharePoint Saturday Belgium later this April, the European SharePoint Conference Barcelona in May and SharePoint Summit Toronto in late May.

The community work never stops.

Saturday, March 29, 2014

Business Value of Social Computing (I)

Hello there! I'd like to start a new serie of posts where I want to hightlight and demystify the benefits of introducing and extending enterprise social networks (ESN) in companies. There is a lot of material online about the social networks, with diverging and even contradictory findings. I would like to present a summary of the most important points that link social networks and business. I will not talk about a specific technology such as Beezy or Yammer or SharePoint, but about the underlying business value.

In this first post I will focus on defining the subject at hand.

What is Social?

The first thing to define is the "social" we all talk about. If we look up the origin of the word, it comes from Latin "sociālis" and it means "of or belonging to a companion or companionship or association". It further refers us to Latin word "socius" which means "a companion, fellow, partner, associate, ally". As you can see, the word "social" always means something that is shared among our companions, it is always something that belongs to more than one person.

The term "social networking" is also defined in the dictionary as "the interaction between a group of people who share a common interest". This is the definition that is more important to us. It highlights that we engage in social networking to interact with other people that share a common goal or interest.

Up to now, social and social networking doesn't mean that we use technology at all. We exercise social networking when we chat with our friends over a beer. But, when we introduce social networking in the corporate world, we find that the clear-cut definition we had until now transforms into several enterprise social networking definitions.

In order to establish a baseline with the keywords that will help us later on, let's define "enterprise social networking" as a combination of three factors orbiting around the concept of communities.

Communities, People, Activities and Content

image

  • Community
    • A community is the group of people that share a specific interest. The whole idea of social network is intimately related to the concept of emerging communities. Communities can arise around a certain interest common to the members (communities of interest or practice) or around a common feature that the members share (departamental, gender and geographical-based communities). However, the concept of community is that it always revolve around something common to more than one person.
  • People
    • The members of a community and the participants in the social network. The people contribute their individual diversity to enrich a community with their activities and content.
  • Activities
    • People post statuses, ask questions, look for answers and rank the information and people in the community. All these discrete actions are called activities.
  • Content
    • The information contributed by the people with their activities inside the community. A community without content is possible, but it is not a healthy community.

Now we should have a clear meaning of the factors that interact in a enterprise social network environment: the communities, the people, the activities and the content. With this in mind, we can review what social is used for in the corporate environment.

Friday, February 28, 2014

SharePoint Conference 2014 and Scalable App Architecture Talk

Tomorrow I will be flying to Las Vegas, for my third SharePoint Conference there (you can see my impressions from 2009 and 2012). This time, I'm honoured to be a speaker.

imageBeezy-logo-M

By the way, I can't believe that it has been 5 years since my first SharePoint Conference in Vegas. Time really flies.

Beezy at SPC14

My colleagues from Beezy will also be present at the conference, showcasing our best-of-the-breed enterprise social network for SharePoint. Please visit them at the booth #1140. You'll find out what Beezy is and how it can help you embrace social computing at work.

The idea for my talk came out of Beezy development. We had to design Beezy for high scalability, as it was going to be used in companies with tens of thousands of users. I have envisioned a talk that summarizes the key tenets and practices for scalable applications, especially at the back-end (API end). It's a topic that hasn't really entered the mainstream programming in SharePoint, but with the app model that exposes your app to potentially millions of users, it should be gaining wider audience.

7 Tenets for Highly Scalable Apps for SharePoint 2013

My session is about highly scalable apps for SharePoint 2013 and how to architect the solutions for scalability. There are several techniques that can be used to achieve scalability, such as aggressive and distributed caching, queuing, using non-relational storage, using non-blocking async calls and so on. I will try to give a glimpse of those techniques and to enable you as a developer to use those new tools in your toolbelt.

Are you attending SPC14? Join the conversation at Yammer about my session! Ask questions and post comments to help me make the session live up to your expectations.

Ongoing Sample App Code

I have also started an ongoing scalable app demo (https://bitbucket.org/ekapic/scalable-app) that I intend to evolve to a complete example app built with the core messages of my session. Right now I have the source code that I'll use in my demos, but I will keep adding the app code in the next months. You can find the ongoing demo app code hosted at BitBucket. Feel free to fork it as you wish.

See you all in Vegas!

Friday, February 21, 2014

SharePoint Search Alerts and the Case of Only 10 Results

A puzzling SharePoint search alert behaviour was keeping our team of three scratching our heads for days. If you speak Spanish, you can check my teammates' blog posts about this same error: Ignasi and Miguel.

SYMPTOMS

You have a SharePoint search configured correctly in SharePoint 2010/2013. You search for a keyword and create a search alert for the results.

image

You make more than 10 changes that should trigger the alert. However, the search alert email you receive lists only 10 changes. The rest of the changes are not sent as alerts.

CAUSE

The Search Alert mechanism in SharePoint 2010/2013 is described in great detail in the following MSDN article. In a nutshell, the process is as follows:

  1. The alert is invoked once a day ("daily summary") or once a week ("weekly summary").
  2. The alert runs the query again with the user-supplied search criteria (in my example case: "Hello").
  3. If there are no new results (the results that are more recent than the last time the alert was run), the alert finishes.
  4. If there are new results, they are formatted according to the search alert email template and sent to the user.

There is one tiny bit of missing information here. The step 2, where the search query is run again, has a hidden parameter that limits the number of results that are returned from the search index. If you look inside the SharePoint code that processes the alert, you will find a RowLimit parameter supplied to the query:

image

This searchAlertNotificationQuota is a property that is ultimately established as AlertNotificationQuota property at the SearchApplicationService object in the Sharepoint server object model.

SOLUTION

Run a PowerShell script to update this property in the Search service application and set a  number of returned search results to a value of your convenience. Let's say 75:

$sapp = Get-SPServiceApplication –Name "Search Service Application"
$sapp.AlertNotificationQuota = 75
$sapp.Update()

Wednesday, January 15, 2014

Failed to create a custom control 'PublishingSiteActionsMenuCustomizer'

A very weird and hard to pinpoint SharePoint error has haunted me these last days.

The Symptoms

You have a SharePoint site collection that uses Publishing features. Suddenly, the users can't access your site. All user accounts, including site collection administrators, get the dreaded "Access Denied" error. In my case, it was SharePoint 2010 with a custom site template with publishing features included in it.

The SharePoint log files mention this:

Failed to create a custom control 'PublishingSiteActionsMenuCustomizer', feature 'Publishing' (id:22a9ef51-737b-4ff2-9346-694633fe4416) using attributes (ControlSrc='', ControlAssembly='Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c', ControlClass='Microsoft.SharePoint.Publishing.WebControls.PublishingSiteActionsMenuCustomizer': 







The Cause



It is really strange that SharePoint can't load it's own components. But, the real cause it that the web application that a culprit site collection is running on is missing its "superuser" settings. The SuperUsers are the users configured for Publishing infrastructure to read and write publishing cache. It seems that if the users are not correctly configured, the publishing infrastructure fails badly and SharePoint interprets it as "Access Denied".



Two blog posts were of great help: Khashish Sukhija and Nico Marten's. Thank you guys! I checked the web application properties from PowerShell and the super user entries were empty for the web application that was behaving strangely.



The Fix



Execute the script found on Nico's post (reproduced here for convenience, all credit is his) and IISRESET.




# This script will add the superuser and superreader account to the Policy for web app 
# and also set the web application properties so that the users will be used for caching
# The script is designed in a way that you do NOT have to adjust the script before useAdd-PSSnapin Microsoft.SharePoint.PowerShell
# Function
function addUsersToPolicyAndProperties
{
$webapps = get-spwebapplication
$superuser = Read-Host "Fill in the SuperUser account: <Domain>\<Username>"
$superreader = Read-Host "Fill in the SuperReader: <Domain>\<Username>"
#foreach statement that will loop through all web applications
foreach($webapp in $webapps)
{
try {
$SUpolicy = $webapp.Policies.Add($superuser,$superuser)
$SUpolicy.PolicyRoleBindings.Add($webapp.PolicyRoles.GetSpecialRole([Microsoft.SharePoint.Administration.SPPolicyRoleType]::FullControl))
$SRpolicy = $webapp.Policies.Add($superreader,$superreader)
$SRpolicy.PolicyRoleBindings.Add($webapp.PolicyRoles.GetSpecialRole([Microsoft.SharePoint.Administration.SPPolicyRoleType]::FullRead))
$webapp.Properties["portalsuperuseraccount"] = [string]$superuser
$webapp.Properties["portalsuperreaderaccount"] = [string]$superreader
$webapp.Update()
Write-Host "$webapp.displayname has been configured correctly"
}
catch
{
Write-Host "Error adding the users for $webapp.displayname" -fore red
}
}
Write-Host "All web applications are done, press any key to exit" -fore green
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}
#Call function
addUsersToPolicyAndProperties



Monday, December 02, 2013

Come see me at the European SharePoint Conference 2014!

In case you missed it, the European SharePoint Conference 2014 programme is now available and I’m delighted to announce that I am speaking at Europe’s largest SharePoint event in Barcelona, Spain from the 5-8th May 2014. For me it's double satisfaction: to be speaking again at the ESPC and to see SharePoint circus coming to my home city. (It's easier to play at home)

I will be conducting a session on Social Business Value Demystified: Real-World Experiences aimed at Business Decisions Markers and End Users. In this session you will learn how to connect business value and social features of SharePoint in order to support the organizational activities, how to organize communities of knowledge and how to integrate search and metadata into your overall social enterprise strategy. clip_image002

The European SharePoint Conference will be run over four days and will feature over 100 informative SharePoint sessions and 6 preconference tutorials providing you with a fantastic opportunity for learning and building your SharePoint skills. Check out the full Conference Programme to see all sessions and topics that are being covered by me and other renowned SharePoint experts from Europe and all over the world.

If you want to deepen your SharePoint expertise, to understand the trend of the SharePoint market, and to learn how to SharePoint for your business, including the revolutionary Enterprise Social wave, the European SharePoint Conference is the best place to be in 2014!

Prices start as low as €995! There is also special group discounts for bookings of 3 or more people. Book Now and I’ll see you in Barcelona in May!

Friday, November 29, 2013

My Talk at SharePoint Summit Vancouver 2013

Last month I attended SharePoint Summit 2013 in Vancouver as a speaker. I was really looking forward to it, being my first time in Canada.

First I did a tour of Vancouver, strolling around and getting to know the neighbourhood. The city downtown is very compact and can be explored by simply walking around. I event tried the famous Japadog from the stand on Burrard St. Delicious!

DSC_0100DSC_0108DSC_0179DSC_0008

My first talk was about the hype of enterprise social networks and how to get the real business value out of them. Several very interesting questions were raised during the session. Here are the slides:

My second talk, the day after, was about how to build a highly scalable app on the cloud, leveraging Windows Azure. I explained concepts such as queuing, distributed caching and async requests (with a short and eye-opening demo). It was also received very well and sparked a debate.

The organization of the event was done very professionaly. The venue (Fairmont Hotel Vancouver) was a perfect place, very centric and friendly to the business attendees. Not to mention Mavis and Beau, two sweet dogs that are the official dog ambassadors of the hotel.

On the downside, the scheduling of the sessions could be improved as several sessions with similar audiences were being scheduled on the same time, and the "keynote" presentations were also scheduled at the same time as some of the breakout sessions, in detriment of the assistance. The organizing team should take note of that for the future editions.

The best thing about the summit was the opportunity I had to connect to speakers and attendees and exchange many ideas about the use of our favourite platform. Thank you all for a very good time in Vancouver!